#define BLYNK_TEMPLATE_ID "TMPL3Lfo1Ev1l"
#define BLYNK_TEMPLATE_NAME "Smart Traffic Management Project1"
#define BLYNK_AUTH_TOKEN "r1ivzNJJpxmsQ4QWvI6ObjqIO6SFISI6"
#include <BlynkSimpleEsp32.h>
#include <WiFi.h>
#include <NewPing.h>
char auth[] = "r1ivzNJJpxmsQ4QWvI6ObjqIO6SFISI6";
char ssid[] = "Wokwi-GUEST";
char pass[] = "YourNetworkPassword";
#define RED_LED_PIN 12
#define YELLOW_LED_PIN 14
#define GREEN_LED_PIN 27
#define BUZZER_PIN 23
#define TRIGGER_PIN 32
#define ECHO_PIN 33
#define POTENTIOMETER_PIN 34
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(RED_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
pinMode(TRIGGER_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
ledcSetup(0, 1000, 8);
ledcAttachPin(BUZZER_PIN, 0);
}
void loop()
{
Blynk.run();
int distance = sonar.ping_cm();
int potValue = analogRead(POTENTIOMETER_PIN);
if (distance < 20 || potValue > 800)
{
Blynk.virtualWrite(V1, HIGH);
Blynk.virtualWrite(V2, LOW);
Blynk.virtualWrite(V3, LOW);
tone(BUZZER_PIN, 1000);
}
else if (distance < 50 || potValue > 600)
{
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, HIGH);
Blynk.virtualWrite(V3, LOW);
noTone(BUZZER_PIN);
}
else
{
Blynk.virtualWrite(V1, LOW);
Blynk.virtualWrite(V2, LOW);
Blynk.virtualWrite(V3, HIGH);
noTone(BUZZER_PIN);
}
Blynk.virtualWrite(V4, distance);
}