#include "ThingsBoard.h" #include #define WIFI_AP "YOUR_WIFI_AP" #define WIFI_PASSWORD "YOUR_WIFI_PASSWORD" // See https://thingsboard.io/docs/getting-started-guides/helloworld/ // to understand how to obtain an access token #define TOKEN "YOUR_ACCESS_TOKEN" #define THINGSBOARD_SERVER "demo.thingsboard.io" // Baud rate for debug serial #define SERIAL_DEBUG_BAUD 115200 // Initialize ThingsBoard client WiFiClient espClient; // Initialize ThingsBoard instance ThingsBoard tb(espClient); // the Wifi radio's status int status = WL_IDLE_STATUS; void setup() { // initialize serial for debugging Serial.begin(SERIAL_DEBUG_BAUD); WiFi.begin(WIFI_AP, WIFI_PASSWORD); InitWiFi(); } void loop() { delay(1000); if (WiFi.status() != WL_CONNECTED) { reconnect(); } if (!tb.connected()) { // Connect to the ThingsBoard Serial.print("Connecting to: "); Serial.print(THINGSBOARD_SERVER); Serial.print(" with token "); Serial.println(TOKEN); if (!tb.connect(THINGSBOARD_SERVER, TOKEN)) { Serial.println("Failed to connect"); return; } } Serial.println("Sending data..."); // Uploads new telemetry to ThingsBoard using MQTT. // See https://thingsboard.io/docs/reference/mqtt-api/#telemetry-upload-api // for more details tb.sendTelemetryInt("temperature", 22); tb.sendTelemetryFloat("humidity", 42.5); tb.loop(); } void InitWiFi() { Serial.println("Connecting to AP ..."); // 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 AP"); } void reconnect() { // Loop until we're reconnected 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"); } }