Azure IoT Hub의 REST API를 사용하여 M5ATOM Lite에서 데이터를 보내는 방법
11886 단어 AzureArduinoM5stackIoTAzureIoTHub
소개
Azure IoT Hub에 M5ATOM Lite에서 데이터를 보내는 메모입니다.
IoT Hub의 REST API를 활용합니다.
소스 코드는 GitHub에 게시됩니다.
htps : // 기주 b. 이 m / t Mitsuoka 0423 / m5s CK-Azurei-Thh tp-po st
Azure IoT Hub 주변 작업
Azure IoT Hub 배포
공식 빠른 시작 을 참고로 IoT Hub의 인스턴스를 작성합니다.
F1
를 선택. (무료 버전) Azure IoT Hub REST API 엔드포인트의 루트 인증서 얻기
ESP32에서 HTTPS 통신을 수행하는 경우 루트 인증서를 지정해야합니다.
이 기사( Arduino – ESP32 WiFiClientSecure 라이브러리에서 안정적으로 https (SSL) 기사를 GET하는 방법 )를 참고로 하여 루트 증명서를 취득합니다.
https://<Iot Hubの名前>.azure-devices.net/
를 Chrome에서 열어 인증서를 얻습니다.(실제로 열면 Bad Request가 됩니다만, 루트 증명서를 취하는 것만이므로 문제 없음)
IoT 기기 등록
Azure IoT Hub 콘솔을 열고
IoTデバイス > 新規
에서 장치를 등록합니다.장치 ID는 원하는 값을 지정하고 다른 것은 변경 없이 OK입니다.
M5ATOM Lite 프로그램
샘플 코드
상기 (M5ATOM Lite에서 HTTP POST하는 간단한 샘플 코드) 에서 만든 코드를 변경합니다.
test
라는 문자열을 보냅니다.arduino-esp32
의 HTTPClient.h
를 보면 begin
메서드에 URL
와 ルート証明書
를 전달하면 좋을 것 같습니다.htps : // 기주 b. 이 m / e sp ret f / ar zue-e sp 32 / bb b / t d513df124bd39736 96c2b03b23d48b t. h#L160
bool begin(String url, const char* CAcert);
코드는 다음과 같습니다.
#define FASTLED_INTERNAL
#include <M5Atom.h>
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
const char *url = "https://<IoT Hubの名前>.azure-devices.net/devices/<デバイスID>/messages/events?api-version=2018-06-30";
const char* azure_iot_hub_root_ca =
"-----BEGIN CERTIFICATE-----\n" \
"MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\n" \
"RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\n" \
"VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\n" \
"DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\n" \
"ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\n" \
"VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\n" \
"mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\n" \
"IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\n" \
"mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\n" \
"XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\n" \
"dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\n" \
"jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\n" \
"BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\n" \
"DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n" \
"9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\n" \
"jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\n" \
"Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\n" \
"ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\n" \
"R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n" \
"-----END CERTIFICATE-----\n";
const char *sasToken = "SharedAccessSignature sr=xxxxxxxxxx&sig=xxxxxxxxxxxxxxxx&se=xxxxxxxxxxxxxxx&skn=xxxxxxxxxxxxxxxxxx";
void post() {
HTTPClient http;
http.begin(url, azure_iot_hub_root_ca);
http.addHeader("Content-Type", "application/json");
http.addHeader("Authorization", sasToken);
http.POST("test");
Serial.println(http.getString());
http.end();
}
void setup() {
M5.begin();
Serial.begin(115200);
Serial.print("WiFi connecting.");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(100);
}
post();
}
void loop() { /* 起動時のみ送信するため、ループでは何もしない。*/ }
실제로 사용하는 경우 WiFi 설정과 Azure 매개 변수를 설정하십시오.
Azure 매개 변수에 대한 자세한 내용은 다음과 같습니다.
이름
내용
비고
url
Azure IoT Hub REST API URL
생성한 IoT Hub 인스턴스의 이름과 등록한 디바이스 ID를 지정
sasToken
SAS 토큰
SAS 토큰 발급 에서 발행 가능
동작 확인
공식 샘플 코드 을 사용하여 수신되었는지 확인합니다.
샘플 코드를 다운로드한 후 Node.js에서 Azure IoT Hub에 원격 분석 전송 샘플 코드 이동 메모/전송된 데이터 수신의 단계에 따라 프로그램을 실행합니다.
//TODO 이미지
요약
M5ATOM Lite에서 Azure IoT Hub의 REST API를 사용하여 데이터를 전송했습니다.
HTTP POST로 보내면 비교적 간단한 코드로 보낼 수있었습니다.
이번, SAS 토큰은 PC로 발행하고 나서 M5ATOM Lite에 기입하고 있으므로, 시간이 지나면 기한이 끊겨 버립니다.
마이크로 컴퓨터에서 SAS 토큰을 발행하는 방법도 살펴 보겠습니다.
Reference
이 문제에 관하여(Azure IoT Hub의 REST API를 사용하여 M5ATOM Lite에서 데이터를 보내는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mitsuoka0423/items/67f66ced5aa4b79ff169텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)