#define BLYNK_TEMPLATE_ID "TMPL39LbZPa6i"
#define BLYNK_TEMPLATE_NAME "LCD with Ultrasonic senssorss"
#define BLYNK_AUTH_TOKEN "7hif_FJ58acq5MWuGW_a6gKlYpHHODIq"
#define BLYNK_PRINT Serial
char auth[]=BLYNK_AUTH_TOKEN;
char ssid[]="Wokwi-GUEST";
char pass[]="";
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x27,16,2);
#include <ESP32Servo.h>
Servo myservo;
#define RLED 0
#define GLED 5
const int trig_Pin=2;
const int echo_Pin=4;
long duration;
int distance;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth,ssid,pass);
pinMode(trig_Pin,OUTPUT);
pinMode(echo_Pin,INPUT);
myservo.attach(15);
pinMode(RLED,OUTPUT);
pinMode(GLED,OUTPUT);
LCD.init();
LCD.backlight();
LCD.setCursor(0,0);
LCD.print("ACCIDENT DETECTION");
LCD.clear();
}
void loop()
{
digitalWrite(trig_Pin,LOW);
delayMicroseconds(2);
digitalWrite(trig_Pin,HIGH);
delayMicroseconds(10);
digitalWrite(trig_Pin,LOW);
duration=pulseIn(echo_Pin,HIGH);
distance=duration*0.034/2;
Serial.println(distance);
Blynk.virtualWrite(V0,distance);
if(distance<40)
{
myservo.write(90);
digitalWrite(RLED,HIGH);
digitalWrite(GLED,LOW);
Serial.println("breaks applied");
LCD.setCursor(0,1);
LCD.print("S:");
LCD.setCursor(2,1);
LCD.print("alert break");
Blynk.virtualWrite(V1,"break applied");
Blynk.virtualWrite(V2,"RED LIGHT ON");
}
else
{
myservo.write(0);
digitalWrite(GLED,HIGH);
Blynk.virtualWrite(GLED,HIGH);
digitalWrite(RLED,LOW);
Blynk.virtualWrite(RLED,LOW);
Serial.println("safe");
LCD.setCursor(0,1);
LCD.print("S:");
LCD.setCursor(2,1);
LCD.print("safe condition");
Blynk.virtualWrite(V1,"safe condition");
Blynk.virtualWrite(V2,"GREEN LIGHT ON");
}
LCD.setCursor(0,0);
LCD.print(" ");
LCD.setCursor(0,0);
LCD.print("ULTRA:");
LCD.setCursor(7,0);
LCD.print(distance);
}