#include <WiFi.h>
#include <PubSubClient.h>
#include <DHT.h>
#define DHTPIN 15
#define DHTTYPE DHT22
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* mqtt_server = "broker.hivemq.com";
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("WiFi OK");
client.setServer(mqtt_server, 1883);
while (!client.connected()) {
if (client.connect("ESP32_DHT22")) {
Serial.println("MQTT OK");
} else {
delay(1000);
}
}
}
void loop() {
if (!client.connected()) {
client.connect("ESP32_DHT22");
}
client.loop();
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (temp > -40.0 && temp < 80.0 && hum > 0.0 && hum <= 100.0) {
String tStr = String(temp, 2);
String hStr = String(hum, 2);
client.publish("dht22/temperatura", tStr.c_str());
client.publish("dht22/humedad", hStr.c_str());
Serial.print("T: "); Serial.print(temp);
Serial.print(" H: "); Serial.println(hum);
}
delay(2000);
}