#define BLYNK_TEMPLATE_ID "TMPLFXf-Uzlm"
#define BLYNK_TEMPLATE_NAME "test"
#define BLYNK_AUTH_TOKEN "Ryd4VRcgSRlesqo0SWLbvnXRPDQ77z1U"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BLYNK_CONNECTED() {
Blynk.syncVirtual(V0);
Blynk.syncVirtual(V1);
Blynk.syncVirtual(V2);
Blynk.syncVirtual(V3);
Blynk.syncVirtual(V4);
Blynk.syncVirtual(V5);
Blynk.syncVirtual(V6);
Blynk.syncVirtual(V7);
Blynk.syncVirtual(V8);
Blynk.syncVirtual(V9);
}
BlynkTimer timer1,timer2,timer3;
int sw0,sw1,sw2,oldsw0,oldsw1,oldsw2;
BLYNK_WRITE(V0) {
sw0 = param.asInt();
}
BLYNK_WRITE(V1) {
sw1 = param.asInt();
}
BLYNK_WRITE(V2) {
sw2 = param.asInt();
}
float t,h;
#include "DHTesp.h"
const int DHT_PIN = 32;
DHTesp dhtSensor;
int soil,ldr;
int mode_led=0,mode_fan=0,mode_pump=0;
int led=0,fan=0,pump=0;
void setup() {
Serial.begin(115200);
pinMode(34,INPUT);
pinMode(35,INPUT);
pinMode(14,OUTPUT);
pinMode(26,OUTPUT);
pinMode(27,OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
Blynk.begin(auth, ssid, pass);
timer1.setInterval(50L, read_data);
timer2.setInterval(50L, set_mode);
timer3.setInterval(100L, send_data);
}
void loop() {
Blynk.run();
timer1.run();
timer2.run();
timer3.run();
}
void read_data(){
TempAndHumidity data = dhtSensor.getTempAndHumidity();
t=data.temperature;
h=data.humidity;
ldr=analogRead(35);
soil=analogRead(34);
soil=map(soil,0,4095,0,100);
}
void set_mode(){
if((sw0==0)&&(oldsw0==1)){
mode_led++;
if(mode_led>2){
mode_led=0;
}
}
if((sw1==0)&&(oldsw1==1)){
mode_pump++;
if(mode_pump>2){
mode_pump=0;
}
}
if((sw2==0)&&(oldsw2==1)){
mode_fan++;
if(mode_fan>2){
mode_fan=0;
}
}
oldsw0=sw0;
oldsw1=sw1;
oldsw2=sw2;
if(mode_led==0){
led=0;
}
else if(mode_led==1){
led=1;
}
else{
if(ldr<300){
led=1;
}
else{
led=0;
}
}
if(mode_pump==0){
pump=0;
}
else if(mode_pump==1){
pump=1;
}
else{
if(soil<50){
pump=1;
}
else{
pump=0;
}
}
if(mode_fan==0){
fan=0;
}
else if(mode_fan==1){
fan=1;
}
else{
if((t>35)||(h>50)){
fan=1;
}
else{
fan=0;
}
}
digitalWrite(14,fan);
digitalWrite(27,pump);
digitalWrite(26,led);
}
void send_data(){
Blynk.virtualWrite(V3, led);
Blynk.virtualWrite(V4, pump);
Blynk.virtualWrite(V5, fan);
Blynk.virtualWrite(V6, t);
Blynk.virtualWrite(V7, h);
Blynk.virtualWrite(V8, ldr);
Blynk.virtualWrite(V9, soil);
}
Fan
Pump
LED
Soil
LDR
DHT22