#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6Rm6SwQU1"
#define BLYNK_TEMPLATE_NAME "Jemuran Hidup"
#define BLYNK_AUTH_TOKEN "qHLOFq-ZBgNUzG2rFfr3GMvl4hRbcQzF"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define VIRTUAL_PIN V0
bool deviceOn = false;
int ldr = 35;
int potensio = 34;
Servo jemuran;
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
jemuran.attach(17);
}
void loop() {
Blynk.run();
//LDR
int ldrValue = analogRead(ldr);
// Menampilkan nilai LDR di Serial Monitor
Serial.print("Nilai LDR: ");
Serial.println(ldrValue);
//Potensio
int potensioValue = analogRead(potensio);
// Menampilkan nilai Potensio di Serial Monitor
Serial.print("Nilai Potensio: ");
Serial.println(potensioValue);
// Jika hujan atau Gelap
if (ldrValue > 2012 || potensioValue > 2047) {
deviceOn = false;
jemuran.write(0);
Blynk.virtualWrite(VIRTUAL_PIN, LOW); // Mematikan tombol di aplikasi Blynk
Serial.println("Weather, device turned off.");
}
delay(500);
}
// Fungsi ini dipanggil ketika tombol Blynk ditekan
BLYNK_WRITE(VIRTUAL_PIN) {
int pinValue = param.asInt();
if (pinValue == 1) {
deviceOn = true;
jemuran.write(180);
delay(1000);
Serial.println("Device turned on via Blynk.");
delay(1000);
} else {
deviceOn = false;
jemuran.write(0);
Serial.println("Device turned off via Blynk.");
delay(1000);
}
}