#define BLYNK_TEMPLATE_ID
#define BLYNK_DEVICE_NAME "HOME AUTOMATION"
#define BLYNK_AUTH_TOKEN
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include<WiFiClient.h>
#include<BlynkSimpleEsp32.h>
char auth[]=BLYNK_AUTH_TOKEN;
char ssid[]="wokwi-Guest";
char pass[]="";
BlynkTimer timer;
#define button1_pin 25
#define button2_pin 33
#define button3_pin 32
#define button4_pin 35
#define relay1_pin 12
#define relay2_pin 14
#define relay3_pin 27
#define relay4_pin 26
int relay1_state =0;
int relay2_state =0;
int relay3_state =0;
int relay4_state =0;
#define button1_vpin v1
#define button2_vpin v2
#define button3_vpin v3
#define button4_vpin v4
BLYNK_CONNECTED() {
Blynk.syncVirtual(button1_vpin);
Blynk.syncVirtual(button2_vpin);
Blynk.syncVirtual(button3_vpin);
Blynk.syncVirtual(button4_vpin);
}
BLYNK_WRITE(button1_vpin){
relay1_state=param.asInt();
digitalWrite(relay1_pin,relay1_state)
}
BLYNK_WRITE(button2_vpin){
relay2_state=param.asInt();
digitalWrite(relay2_pin,relay2_state)
}
BLYNK_WRITE(button3_vpin){
relay3_state=param.asInt();
digitalWrite(relay3_pin,relay3_state)
}
BLYNK_WRITE(button4_vpin){
relay4_state=param.asInt();
digitalWrite(relay4_pin,relay4_state)
}
void setup(){
Serial.begin(115200);
pinMode(button1_pin, INPUT_PULLUP);
pinMode(button2_pin, INPUT_PULLUP);
pinMode(button3_pin, INPUT_PULLUP);
pinMode(button4_pin, INPUT_PULLUP);
pinMode(relay1_pin, output);
pinMode(relay2_pin, output);
pinMode(relay3_pin, output);
pinMode(relay4_pin, output);
digitalWrite(relay1_pin,HIGH);
digitalWrite(relay2_pin,HIGH);
digitalWrite(relay3_pin,HIGH);
digitalWrite(relay4_pin,HIGH);
Blynk.begin(auth,ssid,pass);
}
void loop(){
Blynk.run();
timer.run();
listen_push_button():
}
void listen_push_button()
{
if (digitalRead(button1_pin)==LOW){
delay(200);
control_relay(1);
Blynk.virtualWrite(button1_vpin,relay1_state);
}
else if (digitalRead(button2_pin)==LOW){
delay(200);
control_relay(2);
Blynk.virtualWrite(button2_vpin,relay2_state);
}
else if (digitalRead(button3_pin)==LOW){
delay(200);
control_relay(3);
Blynk.virtualWrite(button3_vpin,relay3_state);
}
else if (digitalRead(button4_pin)==LOW){
delay(200);
control_relay(4);
Blynk.virtualWrite(button4_vpin,relay4_state);
}
}
void control_relay(int relay){
if(relay==1){
relay1_state=!relay1_state;
digitalWrite(relay1_pin,relay1_state);
Serial.print("Relay1 state= ");
Serial.println(relay1_state);
delay(50);
}
else if(relay==2){
relay2_state=!relay2_state;
digitalWrite(relay2_pin,relay2_state);
Serial.print("Relay2 state= ");
Serial.println(relay2_state);
delay(50);
}
else if(relay==3){
relay3_state=!relay3_state;
digitalWrite(relay3_pin,relay3_state);
Serial.print("Relay3 state= ");
Serial.println(relay3_state);
delay(50);
}
else if(relay==4){
relay4_state=!relay4_state;
digitalWrite(relay4_pin,relay4_state);
Serial.print("Relay4 state= ");
Serial.println(relay4_state);
delay(50);
}
}
}