#define BLYNK_TEMPLATE_ID "TMPL6xd1HRjQc"
#define BLYNK_TEMPLATE_NAME "Smart Light"
#define BLYNK_AUTH_TOKEN "CtxkrLtwEmZ1mdy7ZvT8aGG8EqB3IzEA"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Danh sách chân LED
int ledPins[10] = {15, 2, 4, 16, 17, 5, 18, 19, 21, 22};
int ledState[10] = {0};
// ===== Hàm đếm LED =====
void updateLedCount() {
int count = 0;
for (int i = 0; i < 10; i++) {
count += ledState[i];
}
Blynk.virtualWrite(V10, count);
}
// ===== Điều khiển từng LED =====
BLYNK_WRITE(V0) { ledState[0] = param.asInt(); digitalWrite(ledPins[0], ledState[0]); updateLedCount(); }
BLYNK_WRITE(V1) { ledState[1] = param.asInt(); digitalWrite(ledPins[1], ledState[1]); updateLedCount(); }
BLYNK_WRITE(V2) { ledState[2] = param.asInt(); digitalWrite(ledPins[2], ledState[2]); updateLedCount(); }
BLYNK_WRITE(V3) { ledState[3] = param.asInt(); digitalWrite(ledPins[3], ledState[3]); updateLedCount(); }
BLYNK_WRITE(V4) { ledState[4] = param.asInt(); digitalWrite(ledPins[4], ledState[4]); updateLedCount(); }
BLYNK_WRITE(V5) { ledState[5] = param.asInt(); digitalWrite(ledPins[5], ledState[5]); updateLedCount(); }
BLYNK_WRITE(V6) { ledState[6] = param.asInt(); digitalWrite(ledPins[6], ledState[6]); updateLedCount(); }
BLYNK_WRITE(V7) { ledState[7] = param.asInt(); digitalWrite(ledPins[7], ledState[7]); updateLedCount(); }
BLYNK_WRITE(V8) { ledState[8] = param.asInt(); digitalWrite(ledPins[8], ledState[8]); updateLedCount(); }
BLYNK_WRITE(V9) { ledState[9] = param.asInt(); digitalWrite(ledPins[9], ledState[9]); updateLedCount(); }
void setup() {
Serial.begin(115200);
for (int i = 0; i < 10; i++) {
pinMode(ledPins[i], OUTPUT);
}
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// 👉 Thêm dòng này
updateLedCount();
}
void loop() {
Blynk.run();
}