#include <PIR.h>
#define BLYNK_TEMPLATE_ID "TMPL6Mn8UI5br"
#define BLYNK_TEMPLATE_NAME "Alarm Anti Maling"
#define BLYNK_AUTH_TOKEN "01OJ5EpyLryv-3hudfsfbAUGQAUEEPZr"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define BLYNK_PRINT Serial
const int sensorPIR = 25;
const int slideswitch = 26;
const int buzzerPin = 27;
const int ledPin = 5;
BlynkTimer timer;
void setup() {
Serial.begin(115200);
pinMode(sensorPIR, INPUT);
pinMode(slideswitch, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
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
tone(buzzerPin, 362, 500);
delay(200);
tone(buzzerPin, 462, 500);
delay(200);
noTone(buzzerPin);
delay(1000);
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin, HIGH);
} else {
Blynk.virtualWrite(V2, "Tidak ada Maling"); // Kirim pesan "Tidak ada Maling" ke widget Label di Blynk
digitalWrite(buzzerPin, LOW);
digitalWrite(ledPin, 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);
digitalWrite(ledPin, LOW);
Blynk.virtualWrite(V3, 0); // Kirim status sensor PIR = 0 ke widget Value Display di Blynk
}
}