#include <ArduinoJson.h>
#include <PubSubClient.h>
#include "DHTesp.h"
#include <WiFi.h>
#include <ThingsBoard.h>
#define WIFI_AP "Wokwi-GUEST"
#define WIFI_PASSWORD ""
#define TOKEN "nvMC8PXXCHBqlTvSnmCz"// Set Demo ThingsBoard device token
StaticJsonDocument<200> doc;
StaticJsonDocument<200> doc2;
const int DHT_PIN = 32;// DHT22 data pin
DHTesp dhtSensor;
String m_luces = "";
char buffer2[300];
int status = WL_IDLE_STATUS;
String sr2 = "";
char rec[50];
String inputString = "";
float gf = 0.0, vel = 0.0;
int gi = 0;
char thingsboardServer[] = "demo.thingsboard.io";
WiFiClient espClient;
PubSubClient client(espClient);
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("CONECTANDO...");
// Attempt to connect (clientId, username, password)
if ( client.connect("sensor", TOKEN, NULL) ) {
Serial.println( "CONECTADO" );
delay(2000);
// Subscribing to receive RPC requests
client.subscribe("v1/devices/me/rpc/request/+");
} else {
Serial.print( "[FAILED] [ rc = " );
Serial.print( client.state() );
Serial.println( " : retrying in 5 seconds]" );
// Wait 5 seconds before retrying
delay( 1000 );
}
}
}
void setup() {
Serial.begin(115200);
Serial.println();
pinMode(2, OUTPUT);
pinMode(5, OUTPUT);
client.setServer( thingsboardServer, 1883 );
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
if ( !client.connected() ) {
reconnect();
}
client.loop();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
doc["Temp"] = data.temperature;
doc["Hum"] = data.humidity;
char buffer[300];
serializeJson(doc, buffer);
client.publish("v1/devices/me/attributes",buffer);
delay(2000);
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4