#include <WiFi.h>
#include <MQTT.h>
#include "DHT.h"
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
// Inisialisasi pin LED
const int led1 = 25;
WiFiClient net;
MQTTClient client;
#define DHT22Pin 5
DHT dht(DHT22Pin, DHT22);
unsigned long lastMillis = 0;
void connect(){
// Menghubungkan ke WiFi
Serial.print("Cek WiFi");
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Sukses Terhubung ke WiFi");
// Menghubungkan ke Broker
// subcribe dengan QoS 1
}
void loop(){
float suhu = dht.readTemperature();
if (suhu > 26) {
digitalWrite(led1, HIGH);
} else {
digitalWrite(led1, LOW);
}
client.loop();
broconnect();//connect ulang ke broker
// publish a message roughly every second.
if (millis() - lastMillis > 10000) {
lastMillis = millis();
publish();
}
delay(10000);
}
void publish(){
float hum = dht.readHumidity();
float temp = dht.readTemperature();
Serial.print("Temperature : ");
Serial.print(temp);
Serial.print(" C ");
Serial.print("Humidity : ");
Serial.print(hum);
Serial.println(" % ");
client.publish("syifakipas/iot/dht/temp", String(temp), true, 1); //
client.publish("syifakipas/iot/dht/humi", String(hum), true, 1); // publish variabel humidity ke topic rumah/iot/humi dengan QoS 1
}
void setup() {
// Set pin LED sebagai output
pinMode(led1, OUTPUT);
dht.begin();
Serial.begin(9600);
WiFi.begin(ssid, pass);
connect();
broconnect();
}
void broconnect(){
client.begin("test.mosquitto.org",net);
Serial.print("Cek Broker");
while(!client.connect("")){ // Client ID boleh dikosongkan
Serial.print(".");
delay(1000);
}
Serial.println("");
Serial.println("Sukses Terhubung ke Server");
client.subscribe("syifakipas/iot/#", 1);
}