#define BLYNK_TEMPLATE_ID "TMPL6u7D6xNfj"
#define BLYNK_TEMPLATE_NAME "Diploma Project Setup"
#define BLYNK_AUTH_TOKEN "ZoIKjjyNLbBZDO6_GEGXZRyAtJm6dQoN"
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <WiFiClient.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int echoPIN = 2 ;
int trigPIN = 15;
int alarmPIN = 12;
int ledPIN = 18;
unsigned long previousMillis = 0;
const long interval = 200; // Interval in milliseconds for updating the buzzer and LED
void setup() {
pinMode(echoPIN, INPUT); // Set Echo pin as input
pinMode(trigPIN, OUTPUT); // Set Trig pin as output
pinMode(alarmPIN, OUTPUT);
pinMode(ledPIN, OUTPUT);
Serial.begin(9600); // Initialize serial communication for debugging (optional)
Blynk.virtualWrite(V0, echoPIN);
Blynk.virtualWrite(V1, ledPIN);
Blynk.virtualWrite(V2, alarmPIN);
Blynk.begin(auth,ssid,pass);
}
void loop() {
Blynk.run();
// Trigger the ultrasonic sensor
digitalWrite(trigPIN, LOW);
delayMicroseconds(2000);
digitalWrite(trigPIN, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPIN, LOW);
// Read the value from the ultrasonic sensor
int distance = pulseIn(echoPIN, HIGH) / 58.800;
Blynk.virtualWrite(V0, distance);
// Check if it's time to update the buzzer and LED
// Object detected within 200cm or less
if (distance > 0 && distance <= 25) {
tone(alarmPIN, 25000); // Turn on the buzzer
digitalWrite(ledPIN, HIGH); // Turn on the LED
delay(500);
digitalWrite(ledPIN, LOW);
Blynk.virtualWrite(V1, HIGH);
Blynk.virtualWrite(V2, HIGH);
} else {
// No object detected within 200cm
noTone(alarmPIN); // Turn off the buzzer
digitalWrite(ledPIN, LOW); // Turn off the LED
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, LOW);
}
}