參考這篇,宣告儲存訊息的 Json 字串變數(msgStr),再將 Json 字串變數(msgStr) 以 .toCharArray 轉為字元陣列格式儲存,以此格式發布
String msgStr = "";// 儲存訊息的字串變數
char json[25];// 儲存字元陣列格式的訊息字串
==========loop()==========
loop(){
...
// 建立MQTT訊息(JSON格式的字串)
msgStr = msgStr + "{\"temp\":" + (19 + random(10)) + ",\"humid\":" + 20 + "}";
. // 把String字串轉換成字元陣列格式
msgStr.toCharArray(json, 25);
// 發布MQTT主題與訊息
client.publish(topic, json);
// 清空MQTT訊息內容
msgStr = "";
..
}
Description
Copies the String’s characters to the supplied buffer.
Syntax
myString.toCharArray(buf, len)
Parameters
myString: a variable of type String.
buf: the buffer to copy the characters into. Allowed data types: array of char.
len: the size of the buffer. Allowed data types: unsigned int.
使用的 Public MQTT Server:broker.hivemq.com:1883
發布主題:ymiot/1101A/810000/testAll
將 4 個感測器模擬資料以 Json 字串由 MQTT 發布
Json 字串:{"sensor1":666,"sensor2":0,"sensor3":30,"sensor4":78}
或 離線版 TUNIOT(執行資料夾中 demo/code/index.html)
randomSeed(analogRead(0));
msgString = msgString + "{\"sensor1\":" + simulatedData1 + ",\"sensor2\":" + simulatedData2 + ",\"sensor3\":" + simulatedData3 + ",\"sensor4\":" + simulatedData4 + "}";
msgString.toCharArray(msgJson, 100);
client.publish(pubTopic, msgJson);
msgString = "";
儲存積木檔(.xml),儲存 Arduino 程式碼(.ino)
Flow
dashboard 元件
儀表板 網頁布局
元件設定
let a = msg.payload;
let sensor1value = a.sensor1;
msg.payload = sensor1value;
return msg;
let a = msg.payload;
let sensor2value = a.sensor2;
msg.payload = sensor2value;
return msg;
let a = msg.payload;
let sensor1value = a.sensor3;
msg.payload = sensor3value;
return msg;
let a = msg.payload;
let sensor1value = a.sensor4;
msg.payload = sensor4value;
return msg;
DEMO
Flow
將每個儀表板元件設定完成後,可以觀看整個儀表板網頁的布局(layout)