[英]MQTT receiving sensor data from different topics but coming across in one payload
目前我有 2 個傳感器讀數作為來自 2 個主題的一個有效載荷到達(或者看起來那樣),將這個有效載荷分成 2 個變量(溫度、濕度)的推薦方法是什么?
傳感器讀數來自不同的主題。
我已經嘗試過各種方法,一個沒有經驗的人會嘗試從 for 循環嘗試將一半數據寫入串行監視器,但無濟於事。
我試圖在這個 function 中輸入主題,但它不會編譯。
void messageReceived(MQTTClient*client, char topic[], char payload[], int payload_length) {
for (byte i=0;i<6;i++){
Serial.print(payload[i]);
}
}
串行監視器上的 output 將是
23.4555.33
如果我在 for 循環之后放一個 println 我得到
23.45
55.33
我應該收到 2 條無效消息嗎? 一個用於溫度,另一個用於濕度?
說
messageReceivedtemp()
messageReceivedHum()
您沒有收到一條消息,而是收到單獨的 2 條消息。
您的代碼有 2 個問題。
payload_length
值。代碼應該是這樣的:
void messageReceived(MQTTClient*client, char topic[], char payload[], int payload_length) {
if (strcmp(topic, "temp") == 0) {
//message arrived on the 'temp' topic
Serial.print("temp: ");
} else if (strcmp(topic, "hum") == 0 {
//message arrived on the 'hum' topic
Serial.print("hum: ");
}
for (int i=0;i<payload_length;i++){
Serial.print(payload[i]);
}
Serial.println();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.