#define BLYNK_TEMPLATE_ID "TMPL6Ep0Ktbvq"
#define BLYNK_TEMPLATE_NAME "trafficlight"
#define BLYNK_AUTH_TOKEN "U9ugg2-8hgr-wQuOsGZLYfZaC9DwSqAM"
#include <BlynkSimpleEsp32.h>//Đây là một thư viện Blynk dành cho việc kết nối ESP32 với Blynk Server.
char auth[] = "U9ugg2-8hgr-wQuOsGZLYfZaC9DwSqAM";
char ssid[] = "Wokwi-GUEST";//Tên của mạng WiFi mà ESP32 sẽ kết nối đến.
char pass[] = "";//Mật khẩu của mạng WiFi
BlynkTimer timer;
//Định nghĩa các chân GPIO của ESP32 được kết nối với các Relay của đèn màu xanh, đỏ và vàng.
#define lg 2
#define lr 4
#define ly 5
int g;
int r;
int y;
void setup()
{
Serial.begin(115200);// Khởi tạo giao diện Serial để có thể ghi thông điệp ra Serial Monitor trong quá trình chạy chương trình.
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);//Khởi tạo kết nối với Blynk Server, sử dụng Auth Token, tên mạng WiFi và mật khẩu.
//Đặt chế độ của các chân GPIO được định nghĩa trước đó là OUTPUT để điều khiển các Relay.
pinMode(lg, OUTPUT);
pinMode(lr, OUTPUT);
pinMode(ly, OUTPUT);
}
BLYNK_WRITE(V0)
{
g = param.asInt();//Đọc giá trị được gửi từ Blynk App (thời gian bật đèn màu xanh).
}
BLYNK_WRITE(V1)
{
r = param.asInt();//Đọc giá trị được gửi từ Blynk App (thời gian bật đèn màu đỏ).
}
BLYNK_WRITE(V2)
{
y = param.asInt();//Đọc giá trị được gửi từ Blynk App (thời gian bật đèn màu vàng)
}
void loop()
{
Blynk.run();//Hàm này cần được gọi trong hàm loop để Blynk có thể liên tục kiểm tra và xử lý dữ liệu từ Blynk Server
timer.run();
digitalWrite(lg, HIGH);
delay(g*100);
digitalWrite(lg, LOW);
digitalWrite(lr, HIGH);
delay(r*100);
digitalWrite(lr, LOW);
digitalWrite(ly, HIGH);
delay(y*100);
digitalWrite(ly, LOW);
}