#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";
WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE);
void setup_wifi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("\nWiFi connected");
}
void reconnect() {
while (!client.connected()) {
if (client.connect("ESP32Publisher")) {
Serial.println("MQTT connected");
} else {
delay(2000);
}
}
}
void setup() {
Serial.begin(115200);
dht.begin();
setup_wifi();
client.setServer(mqtt_server, 1883);
}
void loop() {
if (!client.connected()) reconnect();
client.loop();
float suhu = dht.readTemperature();
float hum = dht.readHumidity();
if (!isnan(suhu) && !isnan(hum)) {
String suhuStr = String(suhu);
String humStr = String(hum);
client.publish("esp32/temperature", suhuStr.c_str());
Serial.println("Kirim suhu: " + suhuStr);
client.publish("esp32/humidity", humStr.c_str());
Serial.println("Kirim humidity: " + humStr);
}
delay(1000);
}