itemsboard.io 대시 보드에 esp_mqtt 라이브러리를 사용하여 센서 데이터를 게시하려고합니다. 그러나 도서관과 스물 보드 사이의 연결은 확립되지 않습니다. esp8266 nodeMCU v2 및 platformIO를 사용 중입니다.esp_mqtt 라이브러리를 thingsboard.io에 연결하는 방법은 무엇입니까?
다음은 esp_mqtt 라이브러리 설명서에 대한 링크입니다. 당신은 당신이 결코 효과가 있을까되지 않는 ESP8266에 브로커를 실행하지 않는 localhost
에 연결하려고
#include <ESP8266WiFi.h>
#include <MQTT.h>
#define CLIENT_ID "client1"
#define TOPIC "v1/devices/me/telemetry"
#define TOKEN "access token"
MQTT myMqtt(CLIENT_ID,"localhost",1883);
const char* ssid = "ssid";
const char* password = "password";
void setup() {
Serial.begin(115200);
delay(1000);
setup_wifi();
Serial.println("Connecting to MQTT server");
// setup callbacks
myMqtt.onConnected(myConnectedCb);
myMqtt.onDisconnected(myDisconnectedCb);
myMqtt.onPublished(myPublishedCb);
myMqtt.onData(myDataCb);
Serial.println("connect mqtt...");
myMqtt.setClientId(CLIENT_ID);
myMqtt.setUserPwd(TOKEN,"");
myMqtt.connect();
Serial.println("subscribe to topic...");
myMqtt.subscribe(TOPIC);
delay(10);
}
void loop() {
float value = analogRead(A0);
String temp=String(value);
// publish value to topic
String payload = "{";
//payload += "\"temperature\":"; payload += temperature; payload += ",";
payload += "\"temperature\":"; payload += temp;
payload += "}";
// Send payload
char attributes[100];
payload.toCharArray(attributes, 100);
//String(attributes);
boolean result = myMqtt.publish("v1/devices
/me/telemetry",attributes,100,1,0);
delay(1000);
}
클라이언트 ID보다 좀 더 독특한 뭔가해야 할 수도 있습니다. 사용자 이름은 액세스 토큰을 포함해야합니다. – Andrew