#define BLYNK_TEMPLATE_ID "TMPL6JUddA7ln"
#define BLYNK_TEMPLATE_NAME "dandi"
#define BLYNK_AUTH_TOKEN "1p8BIg9s9NsUNGkt5zHWfWV5Uau4L3SL"
#define BLYNK_PRINT Serial
#include <Wifi.h>
#include <BylnkSimpleEsp32.h>
#include <DHTesp.h> // Library untuk sensor DHT
char auth[] = BLYNK_AUTH_TOKEN; // Token autentikasi Blynk
char ssid[] = "Wokwi-GUEST"; // Nama WiFi
char pass[] = ""; // Password WiFi
const int DHT_PIN = 15;
// Definisi pin untuk LED
const byte LED_R = 25; // LED Merah
const byte LED_Y = 26; // LED Kuning (tidak digunakan dalam logika saat ini)
const byte LED_G = 27; // LED Hijau (tidak digunakan dalam logika saat ini)
const byte LED_B = 14; // LED Biru (tidak digunakan dalam logika saat ini)
DHTesp dht;
BlynkTimer timer;
// Fungsi untuk membaca sensor dan mengirim ke Blynk
void sendSensor() {
TempAndHumidity data = dht.getTempAndHumidity();
// Menampilkan data di Serial Monitor
Serial.print("Suhu: ");
Serial.print(data.temperature);
Serial.println(" °C");
Serial.print("Kelembaban: ");
Serial.print(data.humidity);
Serial.println(" %");
// Mengirim data ke Blynk
Blynk.virtualWrite(V6, data.temperature); // Virtual pin V6 untuk suhu
Blynk.virtualWrite(V7, data.humidity); // Virtual pin V7 untuk kelembaban
// Logika LED merah menyala jika suhu > 20 °C
if (data.temperature > 20) {
digitalWrite(LED_R, HIGH);
} else {
digitalWrite(LED_R, LOW);
}
}
void setup() {
Serial.begin(115200); // Inisialisasi Serial Monitor
dht.setup(DHT_PIN, DHTesp::DHT22); // Inisialisasi sensor DHT22
// Inisialisasi pin LED sebagai OUTPUT
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
Blynk.begin(auth, ssid, pass); // Mulai koneksi ke Blynk
timer.setInterval(1000, sendSensor); // Jalankan fungsi sendSensor setiap 1 detik
}
void loop() {
Blynk.run(); // Jalankan proses Blynk
timer.run(); // Jalankan timer
}