#define BLYNK_TEMPLATE_ID "TMPL6rXFkGk3i"
#define BLYNK_TEMPLATE_NAME "blink2"
#define BLYNK_AUTH_TOKEN "Ym36Z32cBOa8VOq4GscnW9k3cW0gXsys"
#define BLYNK_PRINT Serial
#define BlynkTemp V1
#define BlynkHumi V2
#define BlynkTerminal V0
#define Red_LED 5
#define Blue_LED 4
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
#include <LiquidCrystal_I2C.h>
WidgetTerminal terminal(BlynkTerminal);
int dhtPin = 21;
bool led_blink = false;
bool led_state = false;
int lcd_SDA = 2;
int lcd_SCL = 15;
String cmdStr = "";
BlynkTimer timer;
BlynkTimer BlinkLedTimer;
DHTesp dht;
LiquidCrystal_I2C lcd(0x27, 20, 4);
char auth[] = "Ym36Z32cBOa8VOq4GscnW9k3cW0gXsys";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup() {
pinMode(4, OUTPUT);
pinMode(5,OUTPUT);
Serial.begin(115200);
Wire.begin(lcd_SDA, lcd_SCL);
lcd.init();
lcd.backlight();
lcd.print("Hello World");
dht.setup(dhtPin,DHTesp::DHT22);
timer.setInterval(500L,readDHT);
BlinkLedTimer.setInterval(500L, BlinkLed);
Blynk.begin(auth,ssid,pass,"blynk.cloud",80);
}
void loop() {
timer.run();
BlinkLedTimer.run();
Blynk.run();
}
void readDHT() {
TempAndHumidity values = dht.getTempAndHumidity();
Blynk.virtualWrite(BlynkTemp, values.temperature);
Blynk.virtualWrite(BlynkHumi, values.humidity);
lcd.clear();
lcd.print(cmdStr);
}
void BlinkLed() {
if(led_blink) {
digitalWrite(Red_LED, led_state);
led_state = !led_state;
}
}
BLYNK_WRITE(BlynkTerminal) {
String cmd = param.asStr();
cmdStr = cmd;
//readDHT();
if(cmd == "red on") digitalWrite(Red_LED, HIGH);
else if(cmd == "red off") {
led_blink = false;
digitalWrite(Red_LED, LOW);
}
else if(cmd == "blink red") led_blink = true;
else if(cmd == "blink red off") led_blink = false;
else if(cmd == "blue on") digitalWrite(Blue_LED, HIGH);
else if(cmd == "blue off") digitalWrite(Blue_LED, LOW);
else if(cmd == "both on") {
digitalWrite(Blue_LED, HIGH);
digitalWrite(Red_LED, HIGH);
}
else if(cmd == "both off") {
digitalWrite(Red_LED, LOW);
digitalWrite(Blue_LED, LOW);
}
else terminal.println("Invalid command");
}