#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL3cXpeHkkL"
#define BLYNK_TEMPLATE_NAME "Traffic system"
#define BLYNK_AUTH_TOKEN "btE2mv9kUvX8U8-v_xCVqZKGNSGrOZzR"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define RED_LED_PIN 12
#define YELLOW_LED_PIN 13
#define GREEN_LED_PIN 14
#define IR_SENSOR_1_PIN 4
char auth[] = "btE2mv9kUvX8U8-v_xCVqZKGNSGrOZzR"; // Your Blynk auth token
char ssid[] = "Sanjay ugff"; // Your WiFi network name
char pass[] = "Sanjay2005"; // Your WiFi password
int vehicleCount = 0;
void setup() {
// Debug console
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(RED_LED_PIN, OUTPUT);
pinMode(YELLOW_LED_PIN, OUTPUT);
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(IR_SENSOR_1_PIN, INPUT_PULLUP);
}
void loop() {
Blynk.run();
// Generate a random number of vehicles between 0 and 20
vehicleCount = random(21);
// Control traffic lights based on vehicle count
if (vehicleCount == 0) {
// No vehicles, turn all lights off
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, LOW);
Blynk.virtualWrite(V0, 0); // All lights off, send 0
} else if (vehicleCount >= 2 && vehicleCount <= 10) {
// Few vehicles (2-10), turn green light on, turn off red and yellow
digitalWrite(RED_LED_PIN, LOW);
digitalWrite(YELLOW_LED_PIN, HIGH);
digitalWrite(GREEN_LED_PIN, HIGH);
Blynk.virtualWrite(V0, 2); // Green light, send 2
} else {
// Many vehicles (>10), turn red light on, turn off yellow and green
digitalWrite(RED_LED_PIN, HIGH);
digitalWrite(YELLOW_LED_PIN, LOW);
digitalWrite(GREEN_LED_PIN, HIGH);
Blynk.virtualWrite(V0, 1); // Red light, send 1
}
// Print vehicle count
Serial.print("Number of Vehicles: ");
Serial.println(vehicleCount);
delay(1000); // Adjust delay as needed
}