#define BLYNK_TEMPLATE_ID "TMPL3LfQEa7Wh"
#define BLYNK_TEMPLATE_NAME "home automation"
#define BLYNK_AUTH_TOKEN "Aotyiq82Ix0jxVt_lgAB7Yr4rb6a_k1K"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include<WiFiClient.h>
#include<BlynkSimpleEsp32.h>
#include"DHTesp.h"
#include <DHT.h>
#define DHTPIN 15 // Mention the digital pin where you connected
#define DHTTYPE DHT22 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
const int dev1 = 23;
const int dev2 = 22;
const int dev3 = 21;
const int dev4 = 19;
const int dev5 = 18;
const int button1 = 2;
int relay1 = 0;
int relay2 = 0;
int relay3 = 0;
int relay4 = 0;
int relay5 = 0;
#define vpin0 V0
#define vpin1 V1
#define vpin2 V2
#define vpin3 V3
#define vpin4 V4
BLYNK_CONNECTED(){
Blynk.syncVirtual(vpin0);
Blynk.syncVirtual(vpin1);
Blynk.syncVirtual(vpin2);
Blynk.syncVirtual(vpin3);
Blynk.syncVirtual(vpin4);
}
BLYNK_WRITE(vpin0){
relay1 = param.asInt();
digitalWrite(dev1,relay1);
}
BLYNK_WRITE(vpin1){
relay2 = param.asInt();
digitalWrite(dev2,relay2);
}
BLYNK_WRITE(vpin2){
relay3 = param.asInt();
digitalWrite(dev3,relay3);
}
BLYNK_WRITE(vpin3){
relay4 = param.asInt();
digitalWrite(dev4,relay4);
}
BLYNK_WRITE(vpin4){
relay5 = param.asInt();
digitalWrite(dev5,relay5);
}
void setup()
{
pinMode(dev1,OUTPUT);
pinMode(dev2,OUTPUT);
pinMode(dev3,OUTPUT);
pinMode(dev4,OUTPUT);
pinMode(dev5,OUTPUT);
pinMode(button1, INPUT_PULLUP);
Serial.begin(115200);
digitalWrite(dev1,HIGH);
digitalWrite(dev2,HIGH);
digitalWrite(dev3,HIGH);
digitalWrite(dev4,HIGH);
digitalWrite(dev5,HIGH);
delay(1000);
digitalWrite(dev1,LOW);
digitalWrite(dev2,LOW);
digitalWrite(dev3,LOW);
digitalWrite(dev4,LOW);
digitalWrite(dev5,LOW);
delay(1000);
dht.begin();
timer.setInterval(2000L, sendSensor);
Blynk.begin(auth,ssid,pass);
}
void button_status(){
//Serial.println(digitalRead(button1));
if(digitalRead(button1) == LOW){
delay(500);
controlButton(1);
Blynk.virtualWrite(vpin1,relay1);
}
}
void controlButton(int relayIn){
if(relayIn == 1){
relay1 =! relay1;
digitalWrite(dev1,relay1);
delay(100);
}
}
void loop(){
Blynk.run();
timer.run();
button_status();
}
void sendSensor(){
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V4, t);
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" Humidity : ");
Serial.println(h);
}