void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <NewPing.h>
// Blynk auth token
char auth[] = "YourAuthToken";
// WiFi credentials
char ssid[] = "YourSSID";
char pass[] = "YourPassword";
// Ultrasonic Sensor Pins
#define TRIG_PIN1 18
#define ECHO_PIN1 19
#define TRIG_PIN2 21
#define ECHO_PIN2 22
// Traffic Light Pins
#define RED_LIGHT 15
#define GREEN_LIGHT 4
#define YELLOW_LIGHT 2
NewPing sonar1(TRIG_PIN1, ECHO_PIN1, 200);
NewPing sonar2(TRIG_PIN2, ECHO_PIN2, 200);
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(RED_LIGHT, OUTPUT);
pinMode(GREEN_LIGHT, OUTPUT);
pinMode(YELLOW_LIGHT, OUTPUT);
}
void loop() {
Blynk.run();
// Measure distance from sensors
int distance1 = sonar1.ping_cm();
int distance2 = sonar2.ping_cm();
// Logic to control traffic lights based on traffic density
if (distance1 < 50 || distance2 < 50) {
// High traffic density
digitalWrite(RED_LIGHT, HIGH);
digitalWrite(GREEN_LIGHT, LOW);
digitalWrite(YELLOW_LIGHT, LOW);
} else if ((distance1 >= 50 && distance1 < 100) || (distance2 >= 50 && distance2 < 100)) {
// Medium traffic density
digitalWrite(RED_LIGHT, LOW);
digitalWrite(GREEN_LIGHT, LOW);
digitalWrite(YELLOW_LIGHT, HIGH);
} else {
// Low traffic density
digitalWrite(RED_LIGHT, LOW);
digitalWrite(GREEN_LIGHT, HIGH);
digitalWrite(YELLOW_LIGHT, LOW);
}
// Send traffic data to Blynk app
Blynk.virtualWrite(V1, distance1);
Blynk.virtualWrite(V2, distance2);
delay(1000); // Delay between readings
}