#define BLYNK_TEMPLATE_ID "TMPL3-B6Qx-Qf"
#define BLYNK_TEMPLATE_NAME "TLIGHTS"
#define BLYNK_AUTH_TOKEN "aFXtugni8NIPE3OwUJG1btrgb5wTQq6_"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// Replace with your network credentials
const char* ssid = "Wokwi-GUEST";
const char* password = ""; // Add your WiFi password here
// Define relay pins
#define RELAY1_PIN 25 // Relay1 connected to ESP32 pin 25
#define RELAY2_PIN 26 // Relay2 connected to ESP32 pin 26
#define RELAY3_PIN 27 // Relay3 connected to ESP32 pin 27
// Blynk virtual pins
#define SWITCH1_VPIN V0
#define SWITCH2_VPIN V1
#define SWITCH3_VPIN V2
// Blynk button widgets control relays
BLYNK_WRITE(SWITCH1_VPIN) {
int buttonState = param.asInt(); // Read the button state from the app (1 = ON, 0 = OFF)
digitalWrite(RELAY1_PIN, buttonState ? HIGH : LOW);
}
BLYNK_WRITE(SWITCH2_VPIN) {
int buttonState = param.asInt(); // Read the button state from the app (1 = ON, 0 = OFF)
digitalWrite(RELAY2_PIN, buttonState ? HIGH : LOW);
}
BLYNK_WRITE(SWITCH3_VPIN) {
int buttonState = param.asInt(); // Read the button state from the app (1 = ON, 0 = OFF)
digitalWrite(RELAY3_PIN, buttonState ? HIGH : LOW);
}
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
// Initialize relay pins as outputs
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
pinMode(RELAY3_PIN, OUTPUT);
// Turn off relays initially
digitalWrite(RELAY1_PIN, LOW);
digitalWrite(RELAY2_PIN, LOW);
digitalWrite(RELAY3_PIN, LOW);
// Connect to WiFi
Serial.print("Connecting to WiFi");
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
// Connect to Blynk
Serial.println("Connecting to Blynk...");
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, password);
Serial.println("Connected to Blynk");
}
void loop() {
// Handle Blynk communication
Blynk.run();
}