#define BLYNK_TEMPLATE_ID "TMPL3kElYWvk7"
#define BLYNK_TEMPLATE_NAME "home automation"
#define BLYNK_AUTH_TOKEN "pfyVwi0gmQ_Xp9G8F2WOkopdfN2-UAhf"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "pfyVwi0gmQ_Xp9G8F2WOkopdfN2-UAhf";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define SWITCH1 18
#define SWITCH2 5
#define SWITCH3 17
#define SWITCH4 16
#define RELAY1 23
#define RELAY2 22
#define RELAY3 21
#define RELAY4 19
bool relayState1 = false;
bool relayState2 = false;
bool relayState3 = false;
bool relayState4 = false;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected to Wi-Fi");
Blynk.begin(auth, ssid, pass);
pinMode(SWITCH1, INPUT_PULLUP);
pinMode(SWITCH2, INPUT_PULLUP);
pinMode(SWITCH3, INPUT_PULLUP);
pinMode(SWITCH4, INPUT_PULLUP);
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
digitalWrite(RELAY1, LOW);
digitalWrite(RELAY2, LOW);
digitalWrite(RELAY3, LOW);
digitalWrite(RELAY4, LOW);
}
void loop() {
Blynk.run();
if (digitalRead(SWITCH1) == LOW) {
delay(200);
relayState1 = !relayState1;
digitalWrite(RELAY1, relayState1);
Blynk.virtualWrite(V1, relayState1);
Serial.println("Switch 1 toggled");
}
if (digitalRead(SWITCH2) == LOW) {
delay(200);
relayState2 = !relayState2;
digitalWrite(RELAY2, relayState2);
Blynk.virtualWrite(V2, relayState2);
}
if (digitalRead(SWITCH3) == LOW) {
delay(200);
relayState3 = !relayState3;
digitalWrite(RELAY3, relayState3);
Blynk.virtualWrite(V3, relayState3);
Serial.println("Switch 3 toggled");
}
if (digitalRead(SWITCH4) == LOW) {
delay(200);
relayState4 = !relayState4;
digitalWrite(RELAY4, relayState4);
Blynk.virtualWrite(V4, relayState4);
Serial.println("Switch 4 toggled");
}
}
BLYNK_WRITE(V1) {
relayState1 = param.asInt();
digitalWrite(RELAY1, relayState1);
}
BLYNK_WRITE(V2) {
relayState2 = param.asInt();
digitalWrite(RELAY2, relayState2);
}
BLYNK_WRITE(V3) {
relayState3 = param.asInt();
digitalWrite(RELAY3, relayState3);
}
BLYNK_WRITE(V4) {
relayState4 = param.asInt();
digitalWrite(RELAY4, relayState4);
}