#define BLYNK_TEMPLATE_ID "TMPL3so9Y7CXP"
#define BLYNK_TEMPLATE_NAME "LCD BLYNK"
#define BLYNK_AUTH_TOKEN "xBo9Q12JAN0PDtHvqa8jcLIX_qByEf3W"
#define BLYNK_PRINT Serial
#define BlynkTemp V0
#define BlynkHumi V1
#define BlynkTerminal V2
int dhtPin = 21;
#define RED_LED 4
#define BLUE_LED 5
#define LCD_ADDRESS 0x3F
#define LCD_ROWS 4
#define LCD_COLUMNS 20
#define SCROLL_DELAY 150
#define BACKLIGHT 255
#include <Wire.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
#include <LiquidCrystal_I2C.h>
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
WidgetTerminal Terminal(V2);
DHTesp mydht;
BlynkTimer mytimer;
char auth[]="_g2H3-EGHDdLk-hKURXwZHetftkHT2Iw";
char ssid[]="Wokwi-GUEST";
char pass[]="";
void setup() {
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
mydht.setup(dhtPin,DHTesp::DHT22);
mytimer.setInterval(1000L,readDHT);
Blynk.begin(auth,ssid,pass,"blynk.cloud",80);
}
void readDHT()
{
TempAndHumidity values = mydht.getTempAndHumidity();
Blynk.virtualWrite(BlynkTemp,values.temperature);
Blynk.virtualWrite(BlynkHumi,values.humidity);
}
BLYNK_WRITE(BlynkTerminal)
{
String TerminalCommand=param.asStr();
if(TerminalCommand=="Red On")
{
digitalWrite(RED_LED,HIGH);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Red Off")
{
digitalWrite(RED_LED,LOW);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Blue On")
{
digitalWrite(BLUE_LED,HIGH);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Blue Off")
{
digitalWrite(BLUE_LED,LOW);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Red Blink")
{
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
while(TerminalCommand!="Red Stop Blink")
{
digitalWrite(RED_LED,LOW);
delay(1000);
digitalWrite(RED_LED,HIGH);
delay(1000);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
}
else if(TerminalCommand=="Red Stop Blink")
{
digitalWrite(RED_LED,LOW);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Blue Blink")
{
lcd.print(TerminalCommand);
delay(5000);
while(TerminalCommand!="Blue Stop Blink")
{
digitalWrite(BLUE_LED,LOW);
delay(1000);
digitalWrite(BLUE_LED,HIGH);
delay(1000);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
}
else if(TerminalCommand=="Blue Stop Blink")
{
digitalWrite(BLUE_LED,LOW);
lcd.print(TerminalCommand);
delay(5000);
}
else if(TerminalCommand=="Temp")
{
TempAndHumidity values = mydht.getTempAndHumidity();
Terminal.println(values.temperature);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Humi")
{
TempAndHumidity values = mydht.getTempAndHumidity();
Terminal.println(values.humidity);
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
else if(TerminalCommand=="Clear")
{
Terminal.clear();
lcd.print(TerminalCommand);
delay(1000);
lcd.clear();
}
else{
Terminal.println("Invalid Command");
lcd.print(TerminalCommand);
delay(5000);
lcd.clear();
}
}
void loop() {
mytimer.run();
Blynk.run();
}