#define BLYNK_TEMPLATE_ID "TMPL63aJ2yYs2"
#define BLYNK_TEMPLATE_NAME "Alarm Anti Maling"
#define BLYNK_AUTH_TOKEN "NEQKMJg8rvtnm81bcnE28oizizELA0J2"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* blynkToken = "NEQKMJg8rvtnm81bcnE28oizizELA0J2"; // Ganti dengan token Blynk Anda
const int sensorPIR = 25;
const int slideswitch = 26;
const int buzzerPin = 27;
BlynkTimer timer;
void setup() {
Serial.begin(115200);
Blynk.begin(blynkToken, ssid, password);
pinMode(sensorPIR, INPUT);
pinMode(slideswitch, INPUT);
pinMode(buzzerPin, OUTPUT);
timer.setInterval(100L, kirimDataSensor); // Kirim data sensor ke Blynk setiap 100 milidetik
}
void loop() {
Blynk.run();
timer.run();
}
BLYNK_WRITE(V1) { // Handle changes on the V1 switch widget
int slideswitchState = param.asInt();
if (slideswitchState == 1) {
Serial.println("Slideswitch ON");
// Lakukan tindakan yang diperlukan ketika slideswitch ON
} else {
Serial.println("Slideswitch OFF");
// Lakukan tindakan yang diperlukan ketika slideswitch OFF
}
}
void kirimDataSensor() {
int slideswitchState = digitalRead(slideswitch);
// Cek apakah slideswitch dalam keadaan ON
if (slideswitchState == HIGH) {
int pirState = digitalRead(sensorPIR);
if (pirState == HIGH) {
Serial.println("ADA MALING!");
Blynk.virtualWrite(V2, "Ada Maling!"); // Kirim pesan "Ada Maling!" ke widget Label di Blynk
digitalWrite(buzzerPin, HIGH);
delay(1000);
digitalWrite(buzzerPin, LOW);
} else {
Blynk.virtualWrite(V2, "Tidak ada Maling"); // Kirim pesan "Tidak ada Maling" ke widget Label di Blynk
digitalWrite(buzzerPin, LOW);
}
// Kirim status sensor PIR ke Blynk
Blynk.virtualWrite(V3, pirState); // Kirim status sensor PIR ke widget Value Display di Blynk
} else {
// Lakukan tindakan yang diperlukan ketika slideswitch OFF
Blynk.virtualWrite(V2, "Tidak ada Maling"); // Kirim pesan "Tidak ada Maling" ke widget Label di Blynk
digitalWrite(buzzerPin, LOW);
Blynk.virtualWrite(V3, 0); // Kirim status sensor PIR = 0 ke widget Value Display di Blynk
}
}