#define LED_RED 5
#define LED_YELLOW 18
#define LED_GREEN 19
#define BLYNK_TEMPLATE_ID "TMPL6ECP1E1nc"
#define BLYNK_TEMPLATE_NAME "Home automation"
#define BLYNK_AUTH_TOKEN "AO4j4Og9mWl4i6JzsYotUMR5yW_avBtA"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const char ssid[] = "Wokwi-GUEST";
const char pass[] = "";
const char auth[] = BLYNK_AUTH_TOKEN;
int greenTime = 2;
int yellowTime = 2;
int redTime = 2;
BLYNK_WRITE(V0) {
greenTime = param.asInt();
}
BLYNK_WRITE(V1) {
yellowTime = param.asInt();
}
BLYNK_WRITE(V2) {
redTime = param.asInt();
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
Blynk.virtualWrite(V0, 2);
Blynk.virtualWrite(V1, 2);
Blynk.virtualWrite(V2, 2);
lcd.init( );
lcd.backlight();
}
void loop() {
Blynk.run();
update();
}
void update() {
digitalWrite(LED_GREEN, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Green: ");
for (int i = greenTime; i >= 0; i--) {
lcd.setCursor(7, 0);
lcd.print(i);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Green: ");
}
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_YELLOW, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Yellow: ");
for (int i = yellowTime; i >= 0; i--) {
lcd.setCursor(8, 0);
lcd.print(i);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Yellow: ");
}
digitalWrite(LED_YELLOW, LOW);
digitalWrite(LED_RED, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Red: ");
for (int i = redTime; i >= 0; i--) {
lcd.setCursor(7, 0);
lcd.print(i);
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Red: ");
}
digitalWrite(LED_RED, LOW);
}