#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";
const int mqtt_port = 1883;
const char* topic = "stayhub/dht22";
WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando WiFi...");
}
Serial.println("WiFi conectado");
client.setServer(mqtt_server, mqtt_port);
while (!client.connected()) {
Serial.println("Conectando a MQTT...");
if (client.connect("esp32-wokwi")) {
Serial.println("MQTT conectado.");
} else {
delay(1000);
}
}
}
void loop() {
if (!client.connected()) {
client.connect("esp32-wokwi");
}
float temp = dht.readTemperature();
if (!isnan(temp)) {
String tempStr = String(temp, 2);
client.publish(topic, tempStr.c_str());
Serial.println("Temperatura enviada: " + tempStr + " °C");
} else {
Serial.println("Error al leer el sensor DHT22");
}
delay(5000);
}