#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6fA2CUsBO"
#define BLYNK_TEMPLATE_NAME "ESP32 RELAY4"
#define BLYNK_AUTH_TOKEN "e-Odrh1MYV2AKRX6Fb2ojF6rj2YgliOO"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define led1 23
#define led2 22
#define led3 21
#define led4 19
int a, b, c, d;
BLYNK_WRITE(V0)
{
a = param.asInt();
digitalWrite(led1, a);
if (a == 1) {
Blynk.virtualWrite(V4, 1);
} else {
Blynk.virtualWrite(V4, 0);
}
updateLabel();
}
BLYNK_WRITE(V1)
{
b = param.asInt();
digitalWrite(led2, b);
if (b == 1) {
Blynk.virtualWrite(V5, 1);
} else {
Blynk.virtualWrite(V5, 0);
}
updateLabel();
}
BLYNK_WRITE(V2)
{
c = param.asInt();
digitalWrite(led3, c);
if (c == 1) {
Blynk.virtualWrite(V6, 1);
} else {
Blynk.virtualWrite(V6, 0);
}
updateLabel();
}
BLYNK_WRITE(V3)
{
d = param.asInt();
digitalWrite(led4, d);
if (d == 1) {
Blynk.virtualWrite(V7, 1);
} else {
Blynk.virtualWrite(V7, 0);
}
updateLabel();
}
BLYNK_WRITE(V9)
{
int allRelaysState = param.asInt();
digitalWrite(led1, allRelaysState);
digitalWrite(led2, allRelaysState);
digitalWrite(led3, allRelaysState);
digitalWrite(led4, allRelaysState);
String labelInfo = "All Relays: " + String(allRelaysState == 1 ? "ON" : "OFF");
Blynk.virtualWrite(V8, labelInfo);
}
void updateLabel() {
String labelInfo = "Relay Status:\n";
labelInfo += "Relay 1: " + String(a == 1 ? "ON" : "OFF") + "\n";
labelInfo += "Relay 2: " + String(b == 1 ? "ON" : "OFF") + "\n";
labelInfo += "Relay 3: " + String(c == 1 ? "ON" : "OFF") + "\n";
labelInfo += "Relay 4: " + String(d == 1 ? "ON" : "OFF");
Blynk.virtualWrite(V8, labelInfo);
}
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run();
}