#define BLYNK_TEMPLATE_ID "TMPL3F1m8rKA_"
#define BLYNK_TEMPLATE_NAME "smart build"
#define BLYNK_AUTH_TOKEN "samAoRcZg6HnsIdN_PSxeDp4Bcd776Rs"
#define BLYNK_PRINT Serial
//defining virtual pin
#define vpin1 V1
#define vpin2 V2
#define vpin3 V3
#define vpin4 V4
#define vpin5 V0
// header files
#include<WiFi.h>
#include<WiFiClient.h>
#include<BlynkSimpleEsp32.h>
#include"DHTesp.h"
// all pins
const int pb_r=2;//bushbutton red
const int pb_y=4;//bushbutton yellow
const int pb_g=27;//bushbutton green
const int pb_black=35;//bushbutton buzzer
const int led_r=18;
const int led_y=21;
const int led_g=23;
const int buzzer1=22;
const int buzzer2=19;
const int dht=15; // temperature sensor
int rel_s1=0;
int rel_s2=0;
int rel_s3=0;
int rel_s4=0;
int rel_s5=0;
char auth[]=BLYNK_AUTH_TOKEN;
// wifi crediencials
char ssid[]="Wokwi-GUEST";
char pass[]="";
BlynkTimer timer;
DHTesp dhtSensor;
// function blynk connected
BLYNK_CONNECTED()
{
Blynk.syncVirtual(vpin1);
Blynk.syncVirtual(vpin2);
Blynk.syncVirtual(vpin3);
Blynk.syncVirtual(vpin4);
Blynk.syncVirtual(vpin5);
}
BLYNK_WRITE(vpin1)
{
rel_s1=param.asInt();
digitalWrite(led_r,rel_s1);
}
BLYNK_WRITE(vpin2)
{
rel_s2=param.asInt();
digitalWrite(buzzer1,rel_s2);
}
BLYNK_WRITE(vpin3)
{
rel_s3=param.asInt();
digitalWrite(led_y,rel_s3);
}
BLYNK_WRITE(vpin4)
{
rel_s4=param.asInt();
digitalWrite(buzzer2,rel_s4);
}
BLYNK_WRITE(vpin5)
{
rel_s5=param.asInt();
digitalWrite(led_g,rel_s5);
}
// function for Dht22 sensor
void temp_humidity()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float temp=data.temperature;
float humidity=data.humidity;
Blynk.virtualWrite(V6,temp);
Blynk.virtualWrite(V7,humidity);
}
void setup()
{
Serial.begin(115200);
dhtSensor.setup(dht,DHTesp::DHT22);
Blynk.begin(auth,ssid,pass);
// pushbtn
pinMode(pb_r, INPUT_PULLUP);
pinMode(pb_y, INPUT_PULLUP);
pinMode(pb_g, INPUT_PULLUP);
pinMode(pb_black, INPUT_PULLUP);
// leds and buzzer
pinMode(led_r, OUTPUT);
pinMode(buzzer1, OUTPUT);
pinMode(led_y, OUTPUT);
pinMode(buzzer2, OUTPUT);
pinMode(led_g, OUTPUT);
// starting once
digitalWrite(led_r, HIGH);
digitalWrite(buzzer1, HIGH);
digitalWrite(led_y, HIGH);
digitalWrite(buzzer2, HIGH);
digitalWrite(led_g, HIGH);
delay(100);
digitalWrite(led_r,LOW);
digitalWrite(buzzer1,LOW);
digitalWrite(led_y,LOW);
digitalWrite(buzzer2,LOW);
digitalWrite(led_g,LOW);
delay(100);
}
// function for knowing button status and blynk virtual btn status
void pushbtn_st()
{ Serial.println(digitalRead(pb_r));
if(digitalRead(pb_r)==LOW)
{
delay(500);
control_btn(1);
Blynk.virtualWrite(vpin1,rel_s1);
}
else if(digitalRead(pb_y)==LOW)
{
delay(500);
control_btn(2);
Blynk.virtualWrite(vpin3,rel_s3);
}
else if(digitalRead(pb_g)==LOW)
{
delay(500);
control_btn(3);
Blynk.virtualWrite(vpin5,rel_s5);
}
}
//function for btn controll
void control_btn(int rel_in)
{
if(rel_in == 1)
{
// led relay control
rel_s1 =!rel_s1;
digitalWrite(led_r,rel_s1);
}
if(rel_in == 2)
{
// led relay control
rel_s3 =!rel_s3;
digitalWrite(led_y,rel_s3);
}
if(rel_in == 3)
{
// led relay control
rel_s5 =!rel_s5;
digitalWrite(led_g,rel_s5);
}
}
void loop() {
Blynk.run();
timer.run();
pushbtn_st();
timer.setInterval(2000,temp_humidity);
}