#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#define BLYNK_TEMPLATE_ID "TMPL6G6VQwb6s"
#define BLYNK_TEMPLATE_NAME "TempHumid"
#define BLYNK_AUTH_TOKEN "XrdQw9QpIQLLgpKrvT8AdkPAMqErOyz8"
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
int led1 = 4;
int led2 = 18;
int relay = 27;
void setup()
{
lcd.init();
lcd.backlight();
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(relay, OUTPUT);
dht.begin();
timer.setInterval(3000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
sendSensor();
}
void sendSensor()
{
float humid = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(humid) || isnan(temp)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
lcd.setCursor(0,0);
lcd.print(F("Humidity: "));
lcd.setCursor(0,1);
lcd.print(humid);
lcd.print("% ");
lcd.setCursor(0,2);
lcd.print(F("Temperature: "));
lcd.setCursor(0,3);
lcd.print(temp);
lcd.print("C");
Blynk.virtualWrite(V5, humid);
Blynk.virtualWrite(V7, temp);
if(temp >= 25 && humid < 25){
digitalWrite(relay,1);
}
else{
digitalWrite(relay,0);
}
}