- Microsoft Azure IoT Hub 란 무엇입니까?
- Azure IoT Hub 만들기
- Raspberry Pi를 사용하여 Azure IoT 용 테스트 회로를 구축하는 데 필요한 구성 요소
- Raspberry Pi를 사용한 Azure IoT – 하드웨어 회로도
- Azure IoT Hub에 데이터를 게시하도록 Raspberry Pi 프로그래밍
- Azure IoT Hub에 데이터 게시 – 테스트
Microsoft의 클라우드 컴퓨팅 서비스 인 Azure IoT Hub를 통해 개발자는 단일 플랫폼에서 수십억 개의 IoT 장치를 연결, 모니터링 및 관리 할 수 있습니다. 이미 홈 자동화 시스템, 보안, 감시 및 모니터링 시스템과 같은 다양한 IoT 애플리케이션에 사용되고 있습니다. Azure IoT hub 의 기능을 보여주기 위해 센서 데이터를 처리하기 위해 Raspberry Pi, DHT11 온도 및 습도 센서를 사용하여 작은 회로를 구축 할 것입니다. 마지막으로 MQTT 프로토콜을 사용하여 센서 데이터를 Azure IoT 서버에 게시 합니다. 이 자습서에서는 Azure 서버를 설정 및 구성하고 Raspberry Pi를 사용하여 데이터를 보내는 방법을 알아 봅니다.
Microsoft Azure IoT Hub 란 무엇입니까?
Azure IoT Hub 는 IoT 장치를 연결, 모니터링 및 제어 할 수있는 관리 서비스 모음입니다. 또한 장치 제조업체가 Azure 클라우드 의 도움으로 IoT 애플리케이션을 빌드, 배포 및 관리하는 데 도움이되는 데이터 시각화 및 분석과 함께 장치에 대한 보안 통신이 포함됩니다 . Azure IoT Hub의 Device-to-Cd 원격 분석 데이터를 통해 연결된 IoT 장치의 상태를 알 수 있으며 Cloud-to-Device 메시지를 통해 연결된 장치에 명령 및 알림을 보낼 수 있습니다. 예를 들어, 스마트 홈 자동화 시스템을 사용하여 다양한 센서 데이터를 수집하고이를 시각화, 저장 및 관리하기 위해 Azure IoT Hub로 보낼 수 있습니다. Azure IoT Hub 인터페이스에서 출력 장치를 제어 할 수도 있습니다.
IoT 애플리케이션 및 디바이스를위한 양방향 통신을위한 중앙 허브는 디바이스 클라우드 및 클라우드 디바이스 통신을 모두 지원하며 디바이스에서 클라우드로의 원격 측정, 디바이스에서 파일 업로드, 요청-응답 방법과 같은 여러 메시징 패턴을 지원하며 마지막으로, 각 디바이스가 IoT Hub에 안전하게 연결할 수 있도록하는 디바이스 별 인증 방법을 사용할 수 있습니다. 이제 Azure IoT Hub의 기본 사항을 이해 했으므로 시스템 설정으로 이동하겠습니다.
Azure IoT Hub 만들기
Microsoft Azure 서비스 를 설정하는 데 필요한 모든 필수 설정을 수행 할 준비가 되었지만 그 전에 Microsoft 계정이 있는지 확인하세요. 없는 경우 가입하면됩니다. 그런 다음 portal.azure.com을 사용하여 Azure Portal로 이동 하고 로그인합니다.
로그인 한 후 Azure 홈페이지로 이동하여 리소스 만들기 단추를 선택한 다음 Marketplace 검색 필드 에서 IoT Hub 를 검색합니다. 선택 의 IoT 허브를 검색 결과에서 다음을 선택 만듭니다. 아래 이미지는 프로세스에 대한 더 나은 아이디어를 제공합니다.
IoT Hub를 만드는 데 필요한 세부 정보를 입력합니다.
구독 섹션에서 허브에 사용할 구독을 선택해야합니다. 우리의 경우 평가판 계정을 선택하고 " 무료 평가판"을 선택했습니다 .
다음으로 리소스 그룹 섹션에서 리소스 그룹을 선택합니다 . 계정이없는 경우 새로 만들기 를 클릭 하고 리소스 이름을 입력하여 새 계정을 만들어야합니다.
지역 섹션 에서 드롭 다운 메뉴를 사용하여 원하는 지역을 선택할 수 있습니다.
여잔 허브 이름 섹션에서, 당신은 필요 전자 허브의 이름 nter. 이것은 고유해야합니다. 필요한 모든 통신은이 이름으로 이루어집니다.
"크기 및 규모" 탭 에서 " 프리 티어 "를 선택하고 다음을 클릭합니다. 그런 다음 "Review + Create"를 클릭합니다 . IoT Hub를 만드는 데 몇 분 정도 걸립니다. 만든 IoT Hub의 이름을 클릭합니다. 아래 이미지와 같이 창 에서 호스트 이름 을 기록해 둡니다 . 그런 다음 설정에서 공유 액세스 정책 을 클릭하십시오. 공유 액세스 정책은 아래 이미지에 강조 표시되어 있습니다. 정책 에서 iothubowner 옵션을 클릭하십시오. 나중에 참조 할 수 있도록 기본 키 및 연결 문자열-기본 키 를 기록해 둡니다. 이제 IoT Hub에서 새 장치를 등록하려면 IoT 장치를 클릭 합니다. 장치 탐색기 창에서 추가 를 클릭 하여 허브에 장치를 추가합니다.
새 장치 탭에서 다음 정보를 입력하십시오.
- 장치 ID: 장치의 ID를 입력합니다. 기기 ID는 고유해야합니다.
- 인증 유형: 대칭 키를 선택합니다.
- 키 자동 생성: 이 확인란을 선택합니다.
- IoT Hub에 디바이스 연결: 사용을 클릭합니다.
장치가 생성되면 장치 탐색기 섹션 에서 새로 생성 된 장치를 찾을 수 있습니다. 장치 이름을 클릭하십시오. 장치의 세부 정보가 표시됩니다. 장치의 기본 키 와 연결 문자열-기본 키 를 기록해 둡니다. 이것은 우리가 의사 소통을 위해 필요하기 때문에 중요합니다.
이제이 작업이 완료되면 하드웨어 측면으로 넘어갈 수 있습니다.
Raspberry Pi를 사용하여 Azure IoT 용 테스트 회로를 구축하는 데 필요한 구성 요소
이 회로의 하드웨어 부분이 매우 간단하므로 구성 요소 요구 사항도 매우 간단합니다. 필수 구성 요소 목록은 다음과 같습니다.
- Raspberry Pi 3B (다른 Pi 모델도 사용할 수 있음)
- 마이크로 SD 카드 -16GB
- DHT11 센서
- 마이크로 USB 5V, 2.4A 전원 공급 장치
Raspberry Pi를 사용한 Azure IoT – 하드웨어 회로도
Raspberry Pi 프로젝트가 포함 된 Azure IoT 의 전체 회로 다이어그램 은 아래에 나와 있으며 fritzing을 사용하여 빌드되었습니다. 회로도 및 연결을 따라 직접 회로를 만드십시오.
위의 회로는 온도 및 습도 데이터를 Microsoft IoT Hub로 보냅니다. 이 회로에서는 DHT11 센서를 사용 하여 온도 및 습도 데이터 를 수집했으며 데이터 처리 장치로 Raspberry Pi 3B를 사용하고 있습니다. DHT11 센서에는 3 개의 핀이 있습니다. VCC 및 GND 핀은 센서에 5V DC 전원을 공급하는 데 사용되며 DHT11의 데이터 출력 핀은 Raspberry Pi의 GPIO4에 연결됩니다. DHT11 온도 및 습도 센서를 Raspberry Pi와 인터페이스하는 방법을 배우고 싶다면 주제에 대한 이전 기사를 확인할 수 있습니다. 또한이 센서를 사용하여 IoT Raspberry Pi Weather Station을 구축했습니다.
Azure IoT Hub에 데이터를 게시하도록 Raspberry Pi 프로그래밍
이 프로젝트의 코딩을 시작하기 전에 Azure Portal 에서 Azure Cloud Shell (CLI) 을 만들어야합니다. 이것은 여러면에서 유용 할 것입니다. 이를 위해 아래와 같이 포털에서 Azure 클라우드 셸 버튼을 클릭합니다. 그런 다음 빨간색으로 표시된 스토리지 생성 옵션을 클릭하십시오.
완료되면, 당신은 CLI를 열고 설치하려면 다음 명령을 실행할 수 있습니다 하늘빛의 추가 기능 ' 의 센서 데이터를 표시하는 데 사용됩니다.
az 확장 추가 --name azure-cli-iot-ext
완료되면 DHT11 센서 와 통신하고 Azure IoT 서비스에 대한 통신 프로세스를 쉽게 만들기 위해 Raspberry Pi에 대한 종속성을 설치해야 합니다. 이를 위해 Raspberry Pi 터미널을 열어 프로젝트에 사용되는 종속 패키지를 설치하십시오.
먼저 Raspberry Pi 용 DHT 라이브러리를 다운로드 한 다음 루트 폴더에서 추출하고 다음 명령을 실행하여 설치해야합니다.
sudo python setup.py 설치
성공적으로 설치 한 후 다음 명령을 실행하여 Azure IoT Hub에 모든 종속 패키지를 설치합니다.
sudo pip3 install azure-iot-device sudo pip3 install azure-iot-hub sudo pip3 install azure-iothub-service-client sudo pip3 install azure-iothub-device-client
모든 필수 구성 요소를 설치했으면 이제 Python으로 코드를 작성할 차례입니다. 이렇게하려면 먼저 모든 라이브러리를 가져옵니다.
azure.iot.device에서 임의 가져 오기 Adafruit_DHT 가져 오기 시간 가져 오기 import IoTHubDeviceClient, 메시지
이 프로젝트에서는 DHT11 데이터의 데이터를 처리하기 위해 Raspberry Pi의 핀 4를 사용하고 있으므로 표시된대로 선언해야합니다.
센서 = Adafruit_DHT.DHT11 핀 = 4
다음으로 코드의 연결 문자열을 정의합니다. 이전에 저장 한 장치 기본 연결 문자열로 바꿉니다.
CONNECTION_STRING = "호스트 이름 = sensordata.azure-devices.net; DeviceId = ZZZZZ; SharedAccessKey = ZZZZZZZZZZZZZZZZZZ"
다음으로 Azure IoT Hub로 데이터를 보내는 데 사용할 배열을 만듭니다. 아래와 같이 할 수 있습니다.
MSG_SND = '{{ "온도": {온도}, "습도": {습도}}}'
다음으로 while 루프를 정의했습니다. while 루프에서 습도 및 온도 데이터는 Adafruit_DHT.read_retry 함수를 사용하여 처리 됩니다. 또한 두 개의 특수 변수를 정의하고 해당 변수에 출력 데이터를 할당합니다.
True 일 때: 습도, 온도 = Adafruit_DHT.read_retry (sensor, pin)
다음으로 이전에 정의한 연결 매개 변수를 사용하여 IoT Hub를 연결하는 함수가 작성됩니다.
def iothub_client_init (): client = IoTHubDeviceClient.create_from_connection_string (CONNECTION_STRING) return client
마지막으로, 다음 단계에서 온도 및 습도 데이터는 아래 코드에 표시된 형식을 사용하여 Azure Hub로 전송됩니다. 또한 코드에 오류가 있는지 확인하기 위해 try and catch 메서드를 사용했습니다.
def iothub_client_telemetry_sample_run (): try: client = iothub_client_init () print ("IoT Hub로 데이터 보내기, 종료하려면 Ctrl-C 누르기") while True: msg_txt_formatted = MSG_SND.format (온도 = 온도, 습도 = 습도) 메시지 = 메시지 (msg_txt_formatted) print ("메시지 보내기: {}". format (message)) client.send_message (message) print ("메시지를 성공적으로 보냈습니다") time.sleep (3)
Azure IoT Hub에 데이터 게시 – 테스트
코드를 성공적으로 작성한 후 컴파일하고 오류가 있는지 확인하십시오. 코드 블록이 성공적으로 컴파일되면 코드를 실행합니다. 터미널 창에 "메시지를 성공적으로 보냈습니다"라는 메시지가 표시되어야합니다. 창의 스크린 샷은 다음과 같습니다.
이제 Azure IoT Hub의 데이터를 보려면 포털로 이동하여 CLI 터미널을 클릭 하고 다음 명령을 실행하여 자격 증명을 바꿉니다.
az iot hub monitor-events --hub-name XYZ --device-id XYZ
노트:
XYZ를 허브 이름 및 장치 ID로 바꿉니다.
위의 명령을 실행하면 화면에 아래와 같은 데이터가 표시됩니다. 이것은 Raspberry Pi에서 보낸 것과 동일한 데이터입니다.
이것으로이 튜토리얼이 끝났습니다. 기사를 좋아하고 새로운 것을 배웠기를 바랍니다. 기사에 대한 질문이 있으면 아래 댓글 섹션에 남겨 둘 수 있습니다. 또는 전자 포럼을 사용하여 더 빠르고 더 나은 응답을 얻을 수 있습니다.