#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("user/suhu",t.c_str(), true);
client.publish("user/kelembapan",h.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("User-SmartFarming", "user/koneksi", 1, true, "OFFLINE");
}
Serial.println("MQTT Sudah Terhubung");
client.publish("user/koneksi", "ONLINE");
client.subscribe("user/led");
}
void pesanmasuk(char* topik, byte* pesan, unsigned int panjang){
Serial.print("pesan masuk: ");
Serial.println((char)pesan[0]);
if(pesan[0] != '0'){
digitalWrite(19, HIGH);
}
else{
digitalWrite(19, LOW);
}
}