#define BLYNK_TEMPLATE_ID "TMPL3A-RZZhgs"
#define BLYNK_TEMPLATE_NAME "LED Control"
#define BLYNK_AUTH_TOKEN "yGak-k8K8OTl8H6d3g57udZEoX-iH4yp"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
// Blynk login
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// LED pins
#define GREEN_LED_PIN 18 // LED for V0
#define RED_LED_PIN 19 // LED for V1
bool greenLedState = false;
bool redLedState = false;
// Blynk virtual pins
#define VPIN_GREEN V0
#define VPIN_RED V1
// Handle Green LED (V0)
BLYNK_WRITE(VPIN_GREEN) {
int state = param.asInt();
greenLedState = state;
digitalWrite(GREEN_LED_PIN, state ? HIGH : LOW);
Serial.printf("[LOG] Green LED turned %s\n", state ? "ON" : "OFF");
}
BLYNK_WRITE(VPIN_RED) {
int state = param.asInt();
redLedState = state;
digitalWrite(RED_LED_PIN, state ? HIGH : LOW);
Serial.printf("[LOG] Red LED turned %s\n", state ? "ON" : "OFF");
}
void setup() {
Serial.begin(115200);
delay(100);
// Configure LED pins
pinMode(GREEN_LED_PIN, OUTPUT);
pinMode(RED_LED_PIN, OUTPUT);
digitalWrite(GREEN_LED_PIN, LOW);
digitalWrite(RED_LED_PIN, LOW);
// Wi-Fi connection
Serial.println("Connecting to Wi-Fi...");
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(400);
Serial.print(".");
}
Serial.println("\nWi-Fi Connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Connect to Blynk
Blynk.begin(auth, ssid, pass);
Serial.println("Connected to Blynk Cloud");
}
void loop() {
Blynk.run();
// Periodic status logging
static unsigned long lastPrint = 0;
if (millis() - lastPrint > 8000) {
lastPrint = millis();
Serial.printf("[STATUS] Green LED: %s | Red LED: %s\n",
greenLedState ? "ON" : "OFF",
redLedState ? "ON" : "OFF");
}
}