#include <PubSubClient.h>
#include <WiFi.h>
#include <DHT.h>
DHT dht(18, DHT22);
WiFiClient wifi;
PubSubClient client(wifi);
void setup() {
Serial.begin(115200);
dht.begin();
pinMode(19, OUTPUT);
digitalWrite(19, LOW);
konekwifi();
client.setServer("mqtt-dashboard.com", 1883);
client.setCallback(pesanmasuk);
}
void loop() {
if (!client.connected()){
konekmqtt();
}
client.loop();
float suhu = dht.readTemperature();
float kel = dht.readHumidity();
Serial.println(suhu);
Serial.println(kel);
String t = String(suhu,1);
String h = String(kel,1);
client.publish("ardi/suhu", t.c_str(), true);
client.publish("ardi/kelembapan", t.c_str(), true);
delay(2000);
}
void konekwifi(){
WiFi.begin("Wokwi-GUEST", "");
while (WiFi.status() != WL_CONNECTED){
Serial.println("Tunggu Sebentar..");
delay(500);
}
Serial.println("WiFi Terhubung");
}
void konekmqtt(){
while (!client.connected()) {
client.connect("Bebas-Saja12", "ardi/koneksi", 1, true, "OFFLINE");
}
Serial.println("MQTT Sudah Terhubung");
client.publish("ardi/koneksi", "ONLINE");
client.subscribe("ardi/led");
}
void pesanmasuk(char* topik, byte* pesan, unsigned int panjang){
Serial.print("Pesan Masuk: ");
Serial.println((char) pesan[0]); // {1, 2, 3}
if(pesan[0] == '1'){
digitalWrite(19, HIGH);
}
else{
digitalWrite(19, LOW);
}
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4