#define BLYNK_TEMPLATE_ID "TMPL6AR4B2Jcq"
#define BLYNK_TEMPLATE_NAME "DHT22"
#define BLYNK_AUTH_TOKEN "nBPsvr1taEP_lJa9IadLgdmpSxitt1Za"
#include <DHT.h>
#include <BlynkSimpleEsp32.h>
#define DHTPIN 13 // Pin data untuk DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT
#define RELAY_PIN 5 // Pin kontrol relay
#define BUZZER_PIN 14
DHT dht(DHTPIN, DHTTYPE); // Inisialisasi sensor DHT22
char auth[] = "YourBlynkAuthToken"; // Ganti dengan Blynk Auth Token kamu
char ssid[] = "Wokwi-GUEST"; // Ganti dengan SSID Wi-Fi kamu
char pass[] = ""; // Ganti dengan password Wi-Fi kamu
BlynkTimer timer; // Timer untuk mengupdate data ke Blynk setiap interval
void setup() {
Blynk.run();
// Inisialisasi serial monitor dan sensor DHT22
Serial.begin(115200);
dht.begin();
// Menghubungkan ESP32 ke Wi-Fi dan Blynk
Blynk.begin(auth, ssid, pass);
// Mengatur pin relay sebagai output
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
// Menjalankan Blynk dan timer setiap kali loop berjalan
Blynk.run();
timer.run();
// Membaca suhu dari sensor DHT22
float suhu = dht.readTemperature();
// Cek apakah pembacaan suhu valid
if (isnan(suhu)) {
Serial.println("Gagal membaca sensor DHT22!");
return;
}
// Kirim suhu ke aplikasi Blynk
Blynk.virtualWrite(V1, suhu); // V0 adalah pin virtual untuk menampilkan suhu di Blynk
// Menampilkan suhu di serial monitor
Serial.print("Suhu: ");
Serial.print(suhu);
Serial.println(" *C");
// Kontrol relay dan buzzer berdasarkan suhu
if (suhu > 45) {
digitalWrite(RELAY_PIN, HIGH); // Nyalakan relay
digitalWrite(BUZZER_PIN, HIGH); // Nyalakan buzzer
tone(BUZZER_PIN, 500);
} else {
digitalWrite(RELAY_PIN, LOW); // Matikan relay
digitalWrite(BUZZER_PIN, LOW); // Matikan buzzer
tone(BUZZER_PIN, 0);
}
delay(2000); // Tunggu 2 detik sebelum pembacaan berikutnya
}