#define BLYNK_TEMPLATE_ID "TMPL6ZV3nvcIb"
#define BLYNK_TEMPLATE_NAME "ESP32 Wokwi Blynk Heni"
#define BLYNK_AUTH_TOKEN "Op1u56ZgZgGk9nJF69foQr6g_EyUisdZ"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
#include <DHTesp.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
Servo servo;
const int DHT_PIN = 15; // Pin untuk sensor DHT22
const int LED_PIN = 5; // Pin untuk LED
DHTesp dhtSensor;
float suhu, kelembaban;
void setup() {
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
servo.attach(18, 500, 2400); // Pin servo
pinMode(LED_PIN, OUTPUT);
// Timer untuk pembacaan sensor dan pengiriman data ke Blynk setiap 1 detik
timer.setInterval(1000L, myTimerEvent);
}
void myTimerEvent() {
// Membaca data suhu dan kelembaban dari DHT22
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu = data.temperature;
kelembaban = data.humidity;
// Menampilkan data di Serial Monitor
Serial.println("Suhu: " + String(suhu, 1) + " C");
Serial.println("Kelembaban: " + String(kelembaban, 1) + " %");
// Kontrol LED berdasarkan suhu
if (suhu > 35) {
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
Blynk.virtualWrite(V2, 1); // Nyalakan LED di dashboard Blynk
} else {
digitalWrite(LED_PIN, LOW); // Matikan LED
Blynk.virtualWrite(V2, 0); // Matikan LED di dashboard Blynk
}
// Kontrol servo berdasarkan kelembaban
if (kelembaban > 80) {
servo.write(90); // Putar servo 90 derajat
} else {
servo.write(0); // Kembali ke posisi 0 derajat
}
// Mengirim data suhu dan kelembaban ke Blynk
Blynk.virtualWrite(V0, suhu);
Blynk.virtualWrite(V1, kelembaban);
}
void loop() {
Blynk.run();
timer.run();
}