#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6SD6Qv04m"
#define BLYNK_TEMPLATE_NAME "traffic light"
#define BLYNK_AUTH_TOKEN "N4HblZkf5htUfXEzkDIRlbAOz-IxPrCP"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define LED1 13
#define LED2 12
#define LED3 14
int SW_State_M = 0;
int SW_State_K = 0;
int SW_State_H = 0;
int secondsR = 3*1000;
int secondsG = 3*1000;
int secondsY = 3*1000;
BLYNK_WRITE (V0)
{
SW_State_M = param.asInt();
secondsR = SW_State_M*1000;
}
BLYNK_WRITE (V1)
{
SW_State_K = param.asInt();
secondsG = SW_State_K*1000;
}
BLYNK_WRITE (V2)
{
SW_State_H = param.asInt();
secondsY = SW_State_H*1000;
}
void red(int seconds){
digitalWrite(LED1, HIGH);
Blynk.virtualWrite(V3, "RED ON: "+ String(seconds/1000)+"s");
Serial.print("R ON :");
Serial.println(seconds);
delay(seconds);
digitalWrite(LED1, LOW);
}
void green(int seconds){
digitalWrite(LED2, HIGH);
Blynk.virtualWrite(V3, "GREEN ON : "+ String(seconds/1000)+"s");
Serial.print("G ON:");
Serial.println(seconds);
delay(seconds);
digitalWrite(LED2, LOW);
}
void yellow(int seconds){
digitalWrite(LED3, HIGH);
Blynk.virtualWrite(V3, "YELLOW ON : "+ String(seconds/1000)+"s");
Serial.print("Y ON:");
Serial.println(seconds);
delay(seconds);
digitalWrite(LED3, LOW);
}
void setup()
{
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
timer.run();
red(secondsR);
green(secondsG);
yellow(secondsY);
}