#define BLYNK_TEMPLATE_ID "TMPL6WYwryJUp"
#define BLYNK_TEMPLATE_NAME "anti burglary system"
#define BLYNK_AUTH_TOKEN "SPSObfFekQyaFtmvtaydA5dbZgTD0KKj"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
const int trigPin = 23;
const int echoPin = 19;
const int buzzerPin = 18;
const int ledPin = 5;
const int buttonPin = V1; // Virtual pin for Blynk button
LiquidCrystal_I2C lcd(0x27, 16, 2);
bool alarmActive = false;
unsigned long lastDebounceTime = 0;
const unsigned long debounceDelay = 50;
char auth[] = "SPSObfFekQyaFtmvtaydA5dbZgTD0KKj";
char ssid[] = "SiberZon@PNM";
char pass[] = "";
BLYNK_WRITE(buttonPin) {
int buttonState = param.asInt();
if (buttonState == 1 && alarmActive) {
alarmActive = false;
noTone(buzzerPin);
digitalWrite(ledPin, LOW);
lcd.clear();
lcd.print("ALARM OFF,");
lcd.setCursor(0, 1);
lcd.print("ENGAGING...");
delay(4000);
lcd.clear();
lcd.print("ALARM ON, KEEP");
lcd.setCursor(0, 1);
lcd.print("YOUR DISTANCE!");
}
}
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
lcd.init();
lcd.backlight();
lcd.print("ALARM ON, KEEP");
lcd.setCursor(0, 1);
lcd.print("YOUR DISTANCE!");
WiFi.begin(ssid, pass);
Blynk.begin(auth, ssid, pass);
}
long calculateDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
long distance = (duration * 0.034) / 2;
return distance;
}
void loop() {
Blynk.run();
long distance = calculateDistance();
if (distance < 100 && !alarmActive) {
alarmActive = true;
lcd.clear();
lcd.print("INTRUDER ALERT!");
lcd.setCursor(0, 1);
lcd.print("ALERT ALERT!");
}
if (alarmActive) {
tone(buzzerPin, 2000);
digitalWrite(ledPin, HIGH);
delay(250);
noTone(buzzerPin);
digitalWrite(ledPin, LOW);
delay(250);
}
}