Raspberry Pi 3를 원격 모니터링 솔루션에 연결하고 Node.js를 사용하여 시뮬레이트된 원격 분석 전송
이 자습서에서는 Raspberry Pi 3를 사용하여 클라우드로 전송할 온도 및 습도 데이터를 시뮬레이트하는 방법을 보여 줍니다. 이 자습서에서는 다음을 사용합니다.
- Raspbian OS, Node.js 프로그래밍 언어 및 Node.js용 Microsoft Azure IoT SDK를 사용하여 샘플 디바이스를 구현합니다.
- 클라우드 기반 백 엔드로 미리 구성된 IoT Suite 원격 모니터링 솔루션
개요
이 자습서에서는 다음 단계를 완료합니다.
- Azure 구독에서 미리 구성된 원격 모니터링 솔루션의 인스턴스를 배포합니다. 이 단계에서는 여러 Azure 서비스를 자동으로 배포하고 구성합니다.
- 사용자 컴퓨터 및 원격 모니터링 솔루션과 통신하도록 디바이스를 설정합니다.
- 샘플 디바이스 코드를 업데이트하여 원격 모니터링 솔루션에 연결하고 솔루션 대시보드에서 볼 수 있는 시뮬레이션된 원격 분석을 보냅니다.
사전 요구 사항
이 자습서를 완료하려면 활성 Azure 구독이 필요합니다.
참고
계정이 없는 경우 몇 분 만에 무료 평가판 계정을 만들 수 있습니다. 자세한 내용은 Azure 평가판을 참조하세요.
필수 소프트웨어
Raspberry Pi의 명령줄에 원격으로 액세스할 수 있도록 데스크톱 컴퓨터에 SSH 클라이언트가 필요합니다.
- Windows에서는 SSH 클라이언트를 포함하지 않습니다. PuTTY를 사용하는 것이 좋습니다.
- 대부분의 Linux 배포판 및 Mac OS는 명령줄 SSH 유틸리티를 포함합니다. 자세한 내용은 Linux 또는 Mac OS를 사용하는 SSH를 참조하세요.
필수 하드웨어
Raspberry Pi의 명령줄에 원격으로 연결할 수 있는 데스크톱 컴퓨터이며
Raspberry Pi 3용 Microsoft IoT 시작 키트 또는 동등한 구성 요소입니다. 이 자습서에서는 키트에서 다음 항목을 사용합니다.
- Raspberry Pi 3
- MicroSD 카드(NOOBS 포함)
- USB 미니 케이블
- 이더넷 케이블
솔루션 프로비전
계정에서 미리 구성된 원격 모니터링 솔루션을 미리 프로비전하지 않은 경우 다음 작업을 수행합니다.
- Azure 계정 자격 증명을 사용하여 azureiotsuite.com에 로그인한 다음, +를 클릭하여 솔루션을 만듭니다.
- 원격 모니터링 타일에서 선택을 클릭합니다.
- 미리 구성된 원격 모니터링 솔루션에 솔루션 이름 을 입력합니다.
- 솔루션을 프로비전하는 데 사용할 지역 및 구독을 선택합니다.
- 솔루션 만들기 를 클릭하여 프로비전 프로세스를 시작합니다. 일반적으로 이 프로세스는 실행하는 데 몇 분 정도 걸립니다.
프로비전 프로세스가 완료될 때까지 대기
- 프로비전 상태인 솔루션 타일을 클릭합니다.
- Azure 서비스가 Azure 구독에 배포될 때 프로비전 상태 입니다.
- 프로비전이 완료되면 준비상태로 바뀝니다.
- 타일을 클릭하여 오른쪽 창에 솔루션의 세부 정보를 표시합니다.
참고
미리 구성된 솔루션을 배포하는 데 문제가 발생하면 azureiotsuite.com 사이트에 대한 사용 권한 및 FAQ를 검토하세요. 문제가 지속되면 포털에서 서비스 티켓을 만듭니다.
목록에는 없지만 솔루션에 대해 참조하고 싶은 세부 정보가 있나요? 사용자 의견에 기능 제안을 보내주세요.
경고
원격 모니터링 솔루션은 Azure 구독에서 Azure 서비스 세트를 프로비저닝합니다. 배포는 실제 엔터프라이즈 아키텍처를 반영합니다. 불필요한 Azure 사용료가 부과되지 않도록 하려면 배포가 완료된 후 azureiotsuite.com에서 미리 구성된 솔루션 인스턴스를 삭제합니다. 미리 구성된 솔루션이 다시 필요하면 쉽게 다시 만들 수 있습니다. 원격 모니터링 솔루션이 실행되는 동안 소비를 감소하는 방법에 대한 자세한 내용은 데모 목적으로 미리 구성된 Azure IoT Suite 솔루션 구성을 참조하세요.
솔루션 대시보드 보기
솔루션 대시보드를 사용하면 배포된 솔루션을 관리할 수 있습니다. 예를 들어 원격 분석 보기, 디바이스 추가 및 메서드 호출 작업을 수행할 수 있습니다.
프로비전이 완료되고 미리 구성된 솔루션에 대한 타일이 준비를 가리키면 시작을 선택하여 새 탭에서 원격 모니터링 솔루션 포털을 엽니다.
기본적으로 솔루션 포털에 대시보드가 표시됩니다. 페이지 왼쪽의 메뉴를 사용하여 솔루션 포털의 다른 영역으로 이동할 수 있습니다.
디바이스 추가
미리 구성된 솔루션에 연결하는 디바이스는 유효한 자격 증명을 사용하여 IoT Hub에 자신을 식별할 수 있어야 합니다. 솔루션 대시보드에서 디바이스 자격 증명을 검색할 수 있습니다. 이 자습서의 뒷부분에서는 클라이언트 애플리케이션에 있는 디바이스 자격 증명을 포함합니다.
원격 모니터링 솔루션에 사용자 지정 디바이스를 추가하지 았다면 추가합니다. 솔루션 대시보드에서 다음 단계를 완료합니다.
대시보드의 왼쪽 아래 모서리에서 디바이스 추가를 클릭합니다.
사용자 지정 디바이스 패널에서 새로 추가를 클릭합니다.
직접 나만의 디바이스 ID 정의를 선택합니다. 디바이스 ID(예: rasppi)를 입력하고 ID 확인을 클릭하여 솔루션에서 해당 이름이 이미 사용되고 있는지 확인한 다음, 만들기를 클릭하여 디바이스를 프로비전합니다.
디바이스 자격 증명(디바이스 ID, IoT Hub 호스트 이름 및 디바이스 키)을 기록해 둡니다. 원격 모니터링 솔루션에 연결하려면 Raspberry Pi의 클라이언트 애플리케이션에 다음 값이 필요합니다. 완료를 클릭합니다.
솔루션 대시보드의 디바이스 목록에서 디바이스를 선택합니다. 그런 다음, 디바이스 세부 정보 패널에서 디바이스 사용을 클릭합니다. 현재 디바이스 상태는 실행 중입니다. 이제 원격 모니터링 솔루션은 디바이스에서 원격 분석을 수신하고 디바이스에서 메서드를 호출할 수 있습니다.
Raspberry Pi 준비
Raspbian 설치
처음으로 Raspberry Pi를 사용하는 경우 키트에 포함된 SD 카드에서 NOOBS를 사용하여 Raspbian 운영 체제를 설치해야 합니다. Raspberry Pi 소프트웨어 가이드는 Raspberry Pi에 운영 체제를 설치하는 방법을 설명합니다. 이 자습서에서는 Raspberry Pi에 Raspbian 운영 체제를 설치했다고 가정합니다.
참고
Raspberry Pi 3용 Microsoft Azure IoT 시작 키트에 포함된 SD 카드에는 이미 NOOBS가 설치되어 있습니다. 이 카드에서 Raspberry Pi를 부팅할 수 있으며 Raspbian OS를 설치할 수 있습니다.
하드웨어 설정을 완료하려면 다음을 수행해야 합니다.
- Raspberry Pi를 키트에 포함된 전원 공급 장치에 연결합니다.
- 키트에 포함된 이더넷 케이블을 사용하여 Raspberry Pi를 네트워크에 연결합니다. 또는 Raspberry Pi에 대해 무선 연결을 설정할 수 있습니다.
이제 Raspberry Pi의 하드웨어 설정을 완료했습니다.
터미널 로그인 및 액세스
Raspberry Pi의 터미널 환경에 액세스하는 두 가지 옵션이 있습니다.
키보드 및 모니터가 Raspberry Pi에 연결된 경우 Raspbian GUI를 사용하여 터미널 창에 액세스할 수 있습니다.
데스크톱 컴퓨터에서 SSH를 사용하여 Raspberry Pi의 명령줄에 액세스합니다.
GUI에서 터미널 창 사용
Raspbian에 대한 기본 자격 증명은 사용자 이름 pi 및 암호 raspberry입니다. GUI의 작업 표시줄에서 모니터 모양의 아이콘을 사용하여 터미널 유틸리티를 시작할 수 있습니다.
SSH를 사용하여 로그인
Raspberry Pi에 명령줄 액세스를 위해 SSH를 사용할 수 있습니다. SSH(Secure Shell) 문서에서는 Raspberry Pi에서 SSH를 구성하는 방법 및 Windows 또는 Linux 및 Mac OS에서 연결하는 방법을 설명합니다.
사용자 이름 pi 및 암호 raspberry로 로그인합니다.
선택 사항: Raspberry Pi의 폴더 공유
필요에 따라 다음 데스크톱 환경을 사용하여 Raspberry Pi의 폴더를 공유할 수 있습니다. 폴더를 공유하면 nano
또는 vi
을 사용하는 대신 원하는 데스크톱 텍스트 편집기(예: Visual Studio Code 또는 Sublime Text)를 사용하여 Raspberry Pi의 파일을 편집할 수 있습니다.
Windows 폴더를 공유하려면 Raspberry Pi Samba 서버를 구성합니다. 데스크톱에서 SFTP 클라이언트를 포함한 기본 제공 SFTP 서버를 사용합니다.
샘플 다운로드 및 구성
이제 Raspberry Pi에서 원격 모니터링 클라이언트 애플리케이션을 다운로드하고 구성할 수 있습니다.
Node.js 설치
아직 그렇게 하지 않은 경우 Raspberry Pi에 Node.js를 설치합니다. Node.js용 IoT SDK에는 Node.js 0.11.5 이상 버전의 Node.js가 필요합니다. 다음 단계에서는 Raspberry Pi에 Node.js v6.10.2를 설치하는 방법을 보여 줍니다.
다음 명령을 사용하여 Raspberry Pi를 업데이트합니다.
sudo apt-get update
다음 명령을 사용하여 Raspberry Pi에 Node.js 이진 파일을 다운로드합니다.
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
다음 명령을 사용하여 이진 파일을 설치합니다.
sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
다음 명령을 사용하여 Node.js v6.10.2를 성공적으로 설치했는지 확인합니다.
node --version
리포지토리 복제
아직 해당 작업을 수행하지 않은 경우 Pi의 터미널에서 다음 명령을 실행하여 필요한 리포지토리를 복제합니다.
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git
디바이스 연결 문자열 업데이트
다음 명령을 사용하여 nano 편집기에서 샘플 원본 파일을 엽니다.
nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
다음과 같은 줄을 찾습니다.
var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';
자리 표시자 값을 이 자습서를 시작할 때 만들어 저장한 디바이스 및 IoT Hub 정보로 바꿉니다. 변경 내용을 저장하고(Ctrl-O, Enter) 편집기를 종료합니다(Ctrl-X).
샘플 실행
다음 명령을 실행하여 이 샘플에 대한 필수 구성 요소 패키지를 설치합니다.
cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator
npm install
이제 Raspberry Pi에서 샘플 프로그램을 실행할 수 있습니다. 다음 명령을 입력합니다.
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
다음 샘플 출력은 Raspberry Pi의 명령 프롬프트에 표시되는 출력의 예입니다.
Ctrl+C를 눌러 언제든지 프로그램을 종료합니다.
원격 분석 보기
이제 Raspberry Pi는 원격 분석을 원격 모니터링 솔루션으로 전송합니다. 솔루션 대시보드에서 원격 분석을 볼 수 있습니다. 솔루션 대시보드에서 Raspberry Pi로 메시지를 보낼 수 있습니다.
- 솔루션 대시보드로 이동합니다.
- 볼 디바이스 드롭다운에서 디바이스를 선택합니다.
- Raspberry Pi의 원격 분석은 대시보드에 표시됩니다.
디바이스에 대한 작업
솔루션 대시보드에서 Raspberry Pi에 메서드를 호출할 수 있습니다. Raspberry Pi가 원격 모니터링 솔루션에 연결되는 경우 지원되는 메서드에 대한 정보를 보냅니다.
솔루션 대시보드에서 디바이스를 클릭하여 디바이스 페이지로 이동합니다. 디바이스 목록에서 Raspberry Pi를 선택합니다. 그런 다음 메서드를 선택합니다.
메서드 호출 페이지의 메서드 드롭다운에서 LightBlink를 선택합니다.
InvokeMethod를 선택합니다. 시뮬레이터는 Raspberry Pi의 콘솔에 메시지를 인쇄합니다. Raspberry Pi의 앱은 솔루션 대시보드로 승인 메시지를 전송합니다.
LightStatusValue를 사용하려면 1, 해제하려면 0으로 설정하는 ChangeLightStatus 메서드를 사용하여 LED 켜기 및 끄기를 전환할 수 있습니다.
경고
Azure 계정에서 원격 모니터링 솔루션을 실행하는 경우 실행하는 동안 요금이 청구됩니다. 원격 모니터링 솔루션이 실행되는 동안 소비를 감소하는 방법에 대한 자세한 내용은 데모 목적으로 미리 구성된 Azure IoT Suite 솔루션 구성을 참조하세요. 사용을 마친 경우 Azure 계정에서 미리 구성된 솔루션을 삭제합니다.
다음 단계
Azure IoT에 대한 추가 샘플 및 설명서를 보려면 Azure IoT 개발자 센터를 방문하세요.