Как подключить библиотеку esp_mqtt к thingsboard.io?

Я пытаюсь опубликовать данные датчика, используя библиотеку esp_mqtt, на панель инструментов thingsboard.io. Но связь между библиотекой и вещевой доской не устанавливается. Я использую esp8266 nodeMCU v2 и platformIO

Вот ссылка на документацию библиотеки esp_mqtt. https://github.com/tuanpmt/esp_mqtt/blob/master/README.md

Вот фрагмент кода:

    #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);
       }

1 ответ

Вы пытаетесь подключиться к localhost если вы не используете брокера на ESP8266, это никогда не сработает.

Вам нужно знать, какое имя у брокера thingsboard.io и заменить localhost с этим значением. Номер порта также может потребоваться изменить.

Я также предполагаю, что клиент может быть чем-то более уникальным, чем client1

Другие вопросы по тегам