#define BLYNK_TEMPLATE_ID "TMPL3wX6L7MxK"
#define BLYNK_TEMPLATE_NAME "Virtual iot"
#define BLYNK_AUTH_TOKEN "FnnqgdEVFGU5VxenP5TH49XMiAn7EM0C"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// Ultrasonic Sensor Pins
const int trigPin = 5;
const int echoPin = 18;
// Buzzer Pin
const int buzzerPin = 19;
// Blynk Auth Token
char auth[] = "FnnqgdEVFGU5VxenP5TH49XMiAn7EM0C";
// WiFi credentials for Wokwi
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
// Blynk Virtual Pin
#define VIRTUAL_PIN V1
void setup() {
// Debug console
Serial.begin(115200);
// Attempt to connect to WiFi
connectToWiFi();
// Blynk initialization
Blynk.config(auth);
Blynk.connect();
// Ultrasonic Sensor Pins
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Buzzer Pin
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Reconnect WiFi if disconnected
if (WiFi.status() != WL_CONNECTED) {
connectToWiFi();
}
// Reconnect Blynk if disconnected
if (!Blynk.connected()) {
Blynk.connect();
}
// Blynk run
Blynk.run();
// Ultrasonic Sensor Reading
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.034 / 2); // Calculating distance in cm
// Sending distance to Blynk app
Blynk.virtualWrite(VIRTUAL_PIN, distance+1);
// Buzzer alert for distance less than 10 cm
if (distance < 10) {
digitalWrite(buzzerPin, HIGH);
} else {
digitalWrite(buzzerPin, LOW);
}
// Small delay before next measurement
delay(500);
}
void connectToWiFi() {
Serial.print("Connecting to WiFi...");
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println(" Connected to WiFi!");
}