NodeMCUを使用してイベントハブにイベントを送信できます。私は、次のコードRESTを使用してAzureイベントハブにバッチイベントを送信する
https://www.hackster.io/stepanb/proof-of-concept-nodemcu-arduino-and-azure-event-hub-a33043
を使用しかし、私は、バッチイベントを送信します。私はここでは
に「コンテンツタイプ」を変更する必要がリンクを1として、単一のイベントを送るNodeMCUのシリアルモニターのスナップショットだと
https://docs.microsoft.com/en-us/rest/api/eventhub/send-batch-events
ために、このページを参照し
Content-Type: application/vnd.microsoft.servicebus.json
の形式のペイロード
data= "[{'Temperature':25.25 , 'Deviceid':esp3} , {'Temperature':30.30 , 'Deviceid':esp3}]";
ここでは、私が何かをバッチイベント
のシリアルモニターのスナップショットが足りないのか?バッチイベントを受信するには、ストリームアナリティクスの変更を行う必要があります。私はAzureとStackOverflowの新機能です。ここ
は動作し、私はテーブルのストレージに値を格納することが可能だと私はAzureテーブルストレージを使用して見ることができ、単一のイベントを送信するためのコードを単一のイベント
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <String.h>
#include "sha256.h"
#include "Base64.h"
// START: Azure Evet Hub settings
const char* KEY = "dhGE6MbbRLe6IPZs6dOHd3byQlEJ8YzqnW+uBAT7T/Q="; // main event hub key
const char* KEY_NAME = "RootManageSharedAccessKey"; // key name
const char* HOST = "rishieventhub2.servicebus.windows.net"; // event hub name
const char* END_POINT = "/rishidata/messages"; // name of eventhub created inside event hub
// END: Azure Evet Hub settings
// START: WiFi settings
const char* SSID = "Nokia";
const char* PASSWORD = "rishikesh";
// END: WiFi settings
String request;
String data;
String fullSas;
WiFiClientSecure client;
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println();
// START: Naive URL Encode
String url = "https://" + (String)HOST + (String)END_POINT;
url.replace(":", "%3A");
url.replace("/", "%2F");
Serial.println(url);
// END: Naive URL Encode
// START: Create SAS
// https://azure.microsoft.com/en-us/documentation/articles/service-bus-sas-overview/
// Where to get secods since the epoch: local service, SNTP, RTC
int expire = 1711104241;
String stringToSign = url + "\n" + expire;
// START: Create signature
Sha256.initHmac((const uint8_t*)KEY, 44);
Sha256.print(stringToSign);
char* sign = (char*) Sha256.resultHmac();
int signLen = 32;
// END: Create signature
// START: Get base64 of signature
int encodedSignLen = base64_enc_len(signLen);
char encodedSign[encodedSignLen];
base64_encode(encodedSign, sign, signLen);
String encodedSas = (String) encodedSign;
// Naive URL encode
encodedSas.replace("=", "%3D");
Serial.println(encodedSas);
// END: Get base64 of signature
// SharedAccessSignature
fullSas = "sr=" + url + "&sig="+ encodedSas + "&se=" + expire +"&skn=" + KEY_NAME;
// END: create SAS
// START: Wifi connection
Serial.print("connecting to ");
Serial.println(SSID);
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// END: Wifi connection
}
int temp=15;
void loop() {
WiFiClientSecure client;
if (!client.connect(HOST, 443)) {
Serial.println("connection failed");
return;
}
//data= "[{'Temperature':25.25 , 'Deviceid':'esp3'} , {'Temperature':30.30 , 'Deviceid':'esp3'}]"; // for batch events
data = "{'Temperature':25.25 , 'Deviceid':'esp3'}"; // for single events
request = String("POST ")+"https://rishieventhub2.servicebus.windows.net" + END_POINT + "?timeout=60&api-version=2014-01" + " HTTP/1.1\r\n" +
"Host: " + HOST + "\r\n" +
"Authorization: SharedAccessSignature " + fullSas + "\r\n" +
"Content-Type: application/atom+xml;type=entry;charset=utf-8\r\n" +
"Content-Length: " + data.length() + "\r\n\r\n" +
data;
Serial.println(request);
client.print(request);
delay(100);
を送信するためのコードです。 は、ここで私は上記のコードは、バッチイベントを送信するために働くバッチイベント
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <String.h>
#include "sha256.h"
#include "Base64.h"
// START: Azure Evet Hub settings
const char* KEY = "dhGE6MbbRLe6IPZs6dOHd3byQlEJ8YzqnW+uBAT7T/Q="; // main event hub key
const char* KEY_NAME = "RootManageSharedAccessKey"; // key name
const char* HOST = "rishieventhub2.servicebus.windows.net"; // event hub name
const char* END_POINT = "/rishidata/messages"; // name of eventhub created inside event hub
// END: Azure Evet Hub settings
// START: WiFi settings
const char* SSID = "Nokia";
const char* PASSWORD = "rishikesh";
// END: WiFi settings
String request;
String data;
String fullSas;
WiFiClientSecure client;
void setup() {
Serial.begin(115200);
Serial.println();
Serial.println();
// START: Naive URL Encode
String url = "https://" + (String)HOST + (String)END_POINT;
url.replace(":", "%3A");
url.replace("/", "%2F");
Serial.println(url);
// END: Naive URL Encode
// START: Create SAS
// https://azure.microsoft.com/en-us/documentation/articles/service-bus-sas-overview/
// Where to get secods since the epoch: local service, SNTP, RTC
int expire = 1711104241;
String stringToSign = url + "\n" + expire;
// START: Create signature
Sha256.initHmac((const uint8_t*)KEY, 44);
Sha256.print(stringToSign);
char* sign = (char*) Sha256.resultHmac();
int signLen = 32;
// END: Create signature
// START: Get base64 of signature
int encodedSignLen = base64_enc_len(signLen);
char encodedSign[encodedSignLen];
base64_encode(encodedSign, sign, signLen);
String encodedSas = (String) encodedSign;
// Naive URL encode
encodedSas.replace("=", "%3D");
Serial.println(encodedSas);
// END: Get base64 of signature
// SharedAccessSignature
fullSas = "sr=" + url + "&sig="+ encodedSas + "&se=" + expire +"&skn=" + KEY_NAME;
// END: create SAS
// START: Wifi connection
Serial.print("connecting to ");
Serial.println(SSID);
WiFi.begin(SSID, PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
// END: Wifi connection
}
int temp=15;
void loop() {
WiFiClientSecure client;
if (!client.connect(HOST, 443)) {
Serial.println("connection failed");
return;
}
data= "[{'Temperature':25.25 , 'Deviceid':'esp3'} , {'Temperature':30.30 , 'Deviceid':'esp3'}]"; // for batch events
// data = "{'Temperature':25.25 , 'Deviceid':'esp3'}"; // for single events
request = String("POST ")+"https://rishieventhub2.servicebus.windows.net" + END_POINT + "?timeout=60&api-version=2014-01" + " HTTP/1.1\r\n" +
"Host: " + HOST + "\r\n" +
"Authorization: SharedAccessSignature " + fullSas + "\r\n" +
"Content-Type: application/vnd.microsoft.servicebus.json" +"\r\n" +
"Content-Length: " + data.length() + "\r\n\r\n" +
data;
Serial.println(request);
client.print(request);
delay(100);
}
テキストのスクリーンショットをコピーして貼り付けできるのはなぜですか?関連するコードはすべて、記事自体の中になければならず、最終的には死んでしまうリンクの背後にある必要はありません。 –