보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-Azure IoT Hub MQTTS 통신)
소개
2019년 5월에 IoTLT에서 LT를 했습니다.
그 내용의 팔로우를 기입하면서 나름대로 정리해 가고 싶습니다.
발표 내용:
스타트업 IoT 디바이스 보안 고려
마지막까지의 개요
보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-DPS 프로비저닝) 에서 Azure IoT Hub에 대한 연결을 준비했습니다.
이번 기사와 관련된 소스 코드는 아래에서 공개 중.
ECC608-AzureIoT-Connect
Azure IoT Hub에 연결
전회의 DPS 접속의 코드는, 다층의 레이어가 되어 있어 핸들도 다수로 알기 어려워, 심플하게 접속할 수 있도록 해, 가능한 한 TLS 레이어까지의 자원을 삭감하고 싶다.
따라서 보안 IoT 장치 통신을 시도했다 (MbedTLS 이식편-MQTTS)을 사용자 정의하고 연결하십시오.
연결에 필요한 정보는 이미 마지막 DPS 프로비저닝으로 장치에 저장되어 있습니다.
포팅 포인트
MQTT 프로토콜을 사용하여 IoT Hub와 통신 가 참고가 된다.
그에 따르면,
MQTT 프로토콜 직접 사용(장치로)
디바이스에서 디바이스 SDK를 사용할 수 없는 경우에도 포트 8883에서 MQTT 프로토콜을 사용하여 디바이스를 공용 디바이스 엔드포인트에 연결할 수 있습니다. CONNECT 패킷의 경우 장치는 다음 값을 사용해야 합니다.
ClientId 필드에는 deviceId를 사용합니다.
Usename 필드에는 {iothubhostname}/{device_id}/?api-version=2018-06-30을 사용합니다. {iothubhostname}은 IoT Hub의 전체 CName입니다.
예를 들어, IoT Hub의 이름이 contoso.azure-devices.net이고 장치 이름이 MyDevice01이라면 Username 필드의 내용은 다음과 같습니다.
contoso.azure-devices.net/MyDevice01/?api-version=2018-06-30
라는 것. 기기의 게시는
기기에서 클라우드로 메시지 보내기
연결에 성공하면 장치에서 IoT Hub로 >devices/{device_id}/messages/events/또는 >devices/{device_id}/messages/events/{property_bag}를 주제 이름으로 사용하여 메시지를 보낼 수 있습니다. {property_bag} 요소를 사용하면 장치가 추가 속성이 있는 메시지를 URL 인코딩 형식으로 보낼 수 있습니다.
구독은
클라우드에서 기기로 메시지 수신
IoT Hub에서 메시지를 받으려면 장치에서 devices/{device_id}/messages/devicebound/#를 주제 필터로 사용하여 구독해야 합니다.
로 배열할 수 있다. 이것들을 설정하기 위해, main.c내에서 변수를 설정.
char subtopic[100] = {};
char pubtopic[100] = {};
char usrname[100] = {};
char serialstr[20] = {};
char azureioturl[48] = {};
usrname은 ATECC608A에서 일련 번호를 추출하여 할당하여 ClientID로 사용합니다.
azureioturl도 ATECC608A의 슬롯 8에서 읽습니다.
나머지는 sprintf로 생성하여 만들었다.
Azure IoT와의 통신 결과
아래와 같이 시리얼 콘솔로 퍼블리시한 곳.
Azure IoT Hub에서 디바이스로의 메시지를 테스트로 보내면 디바이스 측에서도 수신이 가능하다.
접속한 BME280의 온도, 습도, 기압 데이터를 시각화해 보았다.
데이터 흐름은
Azure IoT Hub → Stream Analytics → Power BI
된다. 설정에 대해서는 하기를 참고로 했다.
Power BI를 사용하여 Azure IoT Hub의 실시간 센서 데이터 시각화
위의 내용은 웹 버전의 Power BI이지만 작동하지 않으며 Windows 데스크톱 응용 프로그램 버전의 Power BI Desktop에서 수행되었습니다.
먼저 Power BI 데이터 세트를 선택합니다.
Stream Analytics 설정이 완료되고 작업이 실행된 상태에서 데이터를 받기 시작하면 위와 같이 데이터 세트가 나타난다.
거기로부터 칼럼의 데이터형(temparature,Humidity,Pressure를 수치형)을 세트하여 그래프화했다.
이제 보안 요소를 사용하여 Azure IoT에 연결할 수 있습니다.
Reference
이 문제에 관하여(보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-Azure IoT Hub MQTTS 통신)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kmitsu76/items/f05a5635414b4eb039d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-DPS 프로비저닝) 에서 Azure IoT Hub에 대한 연결을 준비했습니다.
이번 기사와 관련된 소스 코드는 아래에서 공개 중.
ECC608-AzureIoT-Connect
Azure IoT Hub에 연결
전회의 DPS 접속의 코드는, 다층의 레이어가 되어 있어 핸들도 다수로 알기 어려워, 심플하게 접속할 수 있도록 해, 가능한 한 TLS 레이어까지의 자원을 삭감하고 싶다.
따라서 보안 IoT 장치 통신을 시도했다 (MbedTLS 이식편-MQTTS)을 사용자 정의하고 연결하십시오.
연결에 필요한 정보는 이미 마지막 DPS 프로비저닝으로 장치에 저장되어 있습니다.
포팅 포인트
MQTT 프로토콜을 사용하여 IoT Hub와 통신 가 참고가 된다.
그에 따르면,
MQTT 프로토콜 직접 사용(장치로)
디바이스에서 디바이스 SDK를 사용할 수 없는 경우에도 포트 8883에서 MQTT 프로토콜을 사용하여 디바이스를 공용 디바이스 엔드포인트에 연결할 수 있습니다. CONNECT 패킷의 경우 장치는 다음 값을 사용해야 합니다.
ClientId 필드에는 deviceId를 사용합니다.
Usename 필드에는 {iothubhostname}/{device_id}/?api-version=2018-06-30을 사용합니다. {iothubhostname}은 IoT Hub의 전체 CName입니다.
예를 들어, IoT Hub의 이름이 contoso.azure-devices.net이고 장치 이름이 MyDevice01이라면 Username 필드의 내용은 다음과 같습니다.
contoso.azure-devices.net/MyDevice01/?api-version=2018-06-30
라는 것. 기기의 게시는
기기에서 클라우드로 메시지 보내기
연결에 성공하면 장치에서 IoT Hub로 >devices/{device_id}/messages/events/또는 >devices/{device_id}/messages/events/{property_bag}를 주제 이름으로 사용하여 메시지를 보낼 수 있습니다. {property_bag} 요소를 사용하면 장치가 추가 속성이 있는 메시지를 URL 인코딩 형식으로 보낼 수 있습니다.
구독은
클라우드에서 기기로 메시지 수신
IoT Hub에서 메시지를 받으려면 장치에서 devices/{device_id}/messages/devicebound/#를 주제 필터로 사용하여 구독해야 합니다.
로 배열할 수 있다. 이것들을 설정하기 위해, main.c내에서 변수를 설정.
char subtopic[100] = {};
char pubtopic[100] = {};
char usrname[100] = {};
char serialstr[20] = {};
char azureioturl[48] = {};
usrname은 ATECC608A에서 일련 번호를 추출하여 할당하여 ClientID로 사용합니다.
azureioturl도 ATECC608A의 슬롯 8에서 읽습니다.
나머지는 sprintf로 생성하여 만들었다.
Azure IoT와의 통신 결과
아래와 같이 시리얼 콘솔로 퍼블리시한 곳.
Azure IoT Hub에서 디바이스로의 메시지를 테스트로 보내면 디바이스 측에서도 수신이 가능하다.
접속한 BME280의 온도, 습도, 기압 데이터를 시각화해 보았다.
데이터 흐름은
Azure IoT Hub → Stream Analytics → Power BI
된다. 설정에 대해서는 하기를 참고로 했다.
Power BI를 사용하여 Azure IoT Hub의 실시간 센서 데이터 시각화
위의 내용은 웹 버전의 Power BI이지만 작동하지 않으며 Windows 데스크톱 응용 프로그램 버전의 Power BI Desktop에서 수행되었습니다.
먼저 Power BI 데이터 세트를 선택합니다.
Stream Analytics 설정이 완료되고 작업이 실행된 상태에서 데이터를 받기 시작하면 위와 같이 데이터 세트가 나타난다.
거기로부터 칼럼의 데이터형(temparature,Humidity,Pressure를 수치형)을 세트하여 그래프화했다.
이제 보안 요소를 사용하여 Azure IoT에 연결할 수 있습니다.
Reference
이 문제에 관하여(보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-Azure IoT Hub MQTTS 통신)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kmitsu76/items/f05a5635414b4eb039d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MQTT 프로토콜을 사용하여 IoT Hub와 통신 가 참고가 된다.
그에 따르면,
MQTT 프로토콜 직접 사용(장치로)
디바이스에서 디바이스 SDK를 사용할 수 없는 경우에도 포트 8883에서 MQTT 프로토콜을 사용하여 디바이스를 공용 디바이스 엔드포인트에 연결할 수 있습니다. CONNECT 패킷의 경우 장치는 다음 값을 사용해야 합니다.
ClientId 필드에는 deviceId를 사용합니다.
Usename 필드에는 {iothubhostname}/{device_id}/?api-version=2018-06-30을 사용합니다. {iothubhostname}은 IoT Hub의 전체 CName입니다.
예를 들어, IoT Hub의 이름이 contoso.azure-devices.net이고 장치 이름이 MyDevice01이라면 Username 필드의 내용은 다음과 같습니다.
contoso.azure-devices.net/MyDevice01/?api-version=2018-06-30
라는 것. 기기의 게시는
기기에서 클라우드로 메시지 보내기
연결에 성공하면 장치에서 IoT Hub로 >devices/{device_id}/messages/events/또는 >devices/{device_id}/messages/events/{property_bag}를 주제 이름으로 사용하여 메시지를 보낼 수 있습니다. {property_bag} 요소를 사용하면 장치가 추가 속성이 있는 메시지를 URL 인코딩 형식으로 보낼 수 있습니다.
구독은
클라우드에서 기기로 메시지 수신
IoT Hub에서 메시지를 받으려면 장치에서 devices/{device_id}/messages/devicebound/#를 주제 필터로 사용하여 구독해야 합니다.
로 배열할 수 있다. 이것들을 설정하기 위해, main.c내에서 변수를 설정.
char subtopic[100] = {};
char pubtopic[100] = {};
char usrname[100] = {};
char serialstr[20] = {};
char azureioturl[48] = {};
usrname은 ATECC608A에서 일련 번호를 추출하여 할당하여 ClientID로 사용합니다.
azureioturl도 ATECC608A의 슬롯 8에서 읽습니다.
나머지는 sprintf로 생성하여 만들었다.
Azure IoT와의 통신 결과
아래와 같이 시리얼 콘솔로 퍼블리시한 곳.
Azure IoT Hub에서 디바이스로의 메시지를 테스트로 보내면 디바이스 측에서도 수신이 가능하다.
접속한 BME280의 온도, 습도, 기압 데이터를 시각화해 보았다.
데이터 흐름은
Azure IoT Hub → Stream Analytics → Power BI
된다. 설정에 대해서는 하기를 참고로 했다.
Power BI를 사용하여 Azure IoT Hub의 실시간 센서 데이터 시각화
위의 내용은 웹 버전의 Power BI이지만 작동하지 않으며 Windows 데스크톱 응용 프로그램 버전의 Power BI Desktop에서 수행되었습니다.
먼저 Power BI 데이터 세트를 선택합니다.
Stream Analytics 설정이 완료되고 작업이 실행된 상태에서 데이터를 받기 시작하면 위와 같이 데이터 세트가 나타난다.
거기로부터 칼럼의 데이터형(temparature,Humidity,Pressure를 수치형)을 세트하여 그래프화했다.
이제 보안 요소를 사용하여 Azure IoT에 연결할 수 있습니다.
Reference
이 문제에 관하여(보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-Azure IoT Hub MQTTS 통신)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kmitsu76/items/f05a5635414b4eb039d9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(보안 IoT 장치 통신을 시도했습니다 (Azure IoT Connection-Azure IoT Hub MQTTS 통신)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kmitsu76/items/f05a5635414b4eb039d9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)