Пример Arduino / ESP32 для протокола HTTP с ThingsBoard - PullRequest
0 голосов
/ 10 апреля 2019

Я только начал с Arduino / ESP32 IoT и ищу подходящую платформу (локальный и удаленный хостинг).Blynk работает отлично, но ограничивается сотовыми телефонами.Таким образом, я попробовал Thinger.io и ThingsBoard.io для отправки, хранения и визуализации данных с удаленных датчиков в системах Arduino / ESP8266 / ESP32.К сожалению, протокол MQTT заблокирован моей сетью (у меня нет доступа к маршрутизатору).Таким образом, я ищу примеры кода с использованием протокола HTTP.

Я попробовал пример, задокументированный на https://thingsboard.io/docs/samples/esp8266/temperature/ Загрузка температуры по MQTT с использованием ESP8266 и датчика DHT22

// WiFi and connection to Thingsboard Server
#define WIFI_AP "WLAN-XX"
#define WIFI_PASSWORD "78s1A"
#define TOKEN "eWdqwftFL"
char thingsboardServer[] = "http://192.168.11.103";
WiFiClient wifiClient;
PubSubClient client(wifiClient);
int status = WL_IDLE_STATUS;
unsigned long lastSend;

void setup() {
  Serial.begin(57600);
  // Wifi and Thingsboard
  InitWiFi();
  client.setServer( thingsboardServer, 8883 );
  lastSend = 0;

}


void InitWiFi()
{
  Serial.println("Connecting to WiFi network ...");
  // attempt to connect to WiFi network

  WiFi.begin(WIFI_AP, WIFI_PASSWORD);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Connected to WiFi network");
}


void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    status = WiFi.status();
    if ( status != WL_CONNECTED) {
      WiFi.begin(WIFI_AP, WIFI_PASSWORD);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("Connected to AP");
    }
    Serial.print("Connecting to ThingsBoard node ...");
    // Attempt to connect (clientId, username, password)
    if ( client.connect("ESP8266 Device", TOKEN, NULL) ) {
      Serial.println( "[DONE]" );
    } else {
      Serial.print( "[FAILED] [ rc = " );
      Serial.print( client.state() );
      Serial.println( " : retrying in 5 seconds]" );
      // Wait 5 seconds before retrying
      delay( 5000 );
    }
  }
}

Ожидается: Подключение к серверу Thingsboard.Я пробовал разные порты (9090, 1883, 5683) Последовательная консоль

Found BME280 sensor! Success.
Connecting to WiFi network ...
.....................Connected to WiFi network
Temp: 20.25°C       Humidity: 35.13% RH     Pressure: 99276.86Pa
Connecting to ThingsBoard node ...[FAILED] [ rc = -2 : retrying in 5 seconds]
Connecting to ThingsBoard node ...[FAILED] [ rc = -2 : retrying in 5 seconds]
Connecting to ThingsBoard node ...[FAILED] [ rc = -2 : retrying in 5 seconds]
...