#include <DHTesp.h>
#include <WiFi.h>
#include <ThingsBoard.h>
#include <Arduino_MQTT_Client.h>
#define pinDht 15
DHTesp dhtSensor;
#define WIFI_AP "Wokwi-GUEST"
#define WIFI_PASS ""
#define TB_SERVER "thingsboard.cloud"
#define TOKEN "504banlh865p83ytqlqj"
constexpr uint16_t MAX_MESSAGE_SIZE = 128U;
WiFiClient espClient;
Arduino_MQTT_Client mqttClient(espClient);
ThingsBoard tb(mqttClient, MAX_MESSAGE_SIZE);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
dhtSensor.setup(pinDht, DHTesp::DHT22);
initWifi();
}
void loop() {
if(WiFi.status()!=WL_CONNECTED){
initWifi();
}
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float temp = data.temperature;
int hum = data.humidity;
Serial.println(temp);
Serial.println(hum);
if(!tb.connected()){
Serial.println("Conectando al servidor");
if(!tb.connect(TB_SERVER,TOKEN)){
Serial.println("No se pudo conectar");
return;
}
}else{
Serial.println("conectado al servidor");
}
bool sendTelemetryJson(const char *json);
String jsonData = "{\"temperature\":" + String(temp) + ", \"humidity\":" + String(hum) + "}";
tb.sendTelemetryJson(jsonData.c_str());
Serial.println("Data sended");
delay(3000);
tb.loop();
}
void initWifi(){
Serial.println("cargando...");
while(WiFi.status()!=WL_CONNECTED){
WiFi.begin(WIFI_AP,WIFI_PASS,6);
Serial.println(".");
delay(500);
}
Serial.println("Conectado");
}