#define BLYNK_TEMPLATE_ID "TMPL6qJym6TlR"
#define BLYNK_TEMPLATE_NAME "Mini project JB 4 IOT"
#define BLYNK_AUTH_TOKEN "RM0u0256T3gev3eJQn9aYU729w1TwuD4"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHTPIN 4 // Pin DHT22 terhubung ke pin 2 pada ESP32
#define DHTTYPE DHT22 // Tipe sensor DHT yang digunakan
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
char auth[] = "RM0u0256T3gev3eJQn9aYU729w1TwuD4"; // Ganti dengan Auth Token dari proyek Blynk Anda
bool acStatus = false; // Status awal AC (Hidup)
int ACRelay = 5; // Pin relay untuk AC
unsigned long previousMillis = 0;
const long interval = 500; // Interval waktu 0.5 detik
void setup() {
Serial.begin(115200);
Blynk.begin(auth, "Wokwi-GUEST", "");
dht.begin();
pinMode(ACRelay, OUTPUT);
digitalWrite(ACRelay, acStatus ? HIGH : LOW); // Nyalakan relay sesuai status AC
}
void updateDHTSensor() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
int humidity = dht.readHumidity();
int temperature = dht.readTemperature();
Blynk.virtualWrite(V6, humidity); // Kirim data ke gauge kelembaban (V2)
Blynk.virtualWrite(V7, temperature); // Kirim data ke gauge suhu (V3)
// Tampilkan suhu ruangan dan kelembaban pada konsol
Serial.println("Suhu Ruangan: " + String(temperature)+" °C" );
Serial.println("Kelembaban Ruangan: " + String(humidity)+" %");
}
}
BLYNK_WRITE(V5) { // Fungsi dipanggil ketika tombol switch di Blynk ditekan
acStatus = param.asInt(); // Update status AC berdasarkan nilai tombol switch
digitalWrite(ACRelay, acStatus ? HIGH : LOW); // Nyalakan atau matikan relay sesuai status AC
Serial.print("AC Status: ");
Serial.println(acStatus ? "Hidup" : "Mati");
}
void loop() {
Blynk.run();
timer.run();
updateDHTSensor();
}