#define BLYNK_TEMPLATE_ID "TMPL3FgILm1Sb"
#define BLYNK_TEMPLATE_NAME "Home Automation"
#define BLYNK_AUTH_TOKEN "H6W7JHSxM0yC9GL7RSvw48XVMuqHsU-G"
#define BLYNK_PRINT Serial
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
#define button1_pin 26
#define relay1_pin 13
int relay1_state = 0;
#define button1_vpin V1
//#define PIR 25 //D5 PIR Motion Sensor
BLYNK_CONNECTED()
{
Blynk.syncVirtual(button1_vpin);
}
BLYNK_WRITE(button1_vpin)
{
relay1_state = param.asInt();
digitalWrite(relay1_pin, relay1_state);
}
void setup()
{
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0);
LCD.print("Connecting to ");
LCD.setCursor(0, 1);
LCD.print("WiFi ");
Serial.begin(115200);
pinMode(25, INPUT_PULLUP);
pinMode(button1_pin, INPUT_PULLUP);
pinMode(relay1_pin, OUTPUT);
digitalWrite(relay1_pin, HIGH);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
timer.run();
listen_push_buttons();
}
void listen_push_buttons()
{
if(digitalRead(button1_pin) == LOW){
delay(200);
control_relay(1);
Blynk.virtualWrite(button1_vpin, relay1_state); //update button state
}
}
void control_relay(int relay)
{
if(relay == 1){
relay1_state = !relay1_state;
digitalWrite(relay1_pin, relay1_state);
Serial.print("Light = ");
Serial.println(relay1_state);
LCD.setCursor(0, 1);
LCD.println("LIGHT :");
LCD.println(relay1_state);
delay(50);
}
}