#define BLYNK_TEMPLATE_ID "TMPL6zMe-CoQD"
#define BLYNK_TEMPLATE_NAME "dht22"
#define BLYNK_AUTH_TOKEN "B3yziHHUlIAi9etZvdV_hygWVlybJmMv"
/* Comment this out to disable prints and save space */
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <string.h>
#include "DHT.h"
// DHT define
#define DHTTYPE DHT22 // DHT 22
#define DHTPIN 15
DHT dht(DHTPIN, DHTTYPE);
// Define LED
#define LED 13
WidgetLED LED_ON_APP(V2);
#define BUZZER 14
char auth[] ="B3yziHHUlIAi9etZvdV_hygWVlybJmMv";// BLYNK_AUTH_TOKEN
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int led;
int buzzer;
BLYNK_WRITE(V2)
{
int pinValue = param.asInt(); // doc gia tri cua bien ao va tra ve kieu Integer
if(pinValue==1){digitalWrite(4,HIGH);}else{digitalWrite(4,LOW);}
}
void setup()
{
// Debug console
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
Serial.begin(115200);
pinMode(BUZZER, OUTPUT);
digitalWrite(BUZZER, LOW);
dht.begin();
pinMode(4, OUTPUT);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
Blynk.run();
// Read Temp
float t = dht.readTemperature();
// Read Humi
float h = dht.readHumidity();
// Check isRead ?
if (isnan(h) || isnan(t)) { // if not a number
delay(500);
Serial.println("Failed to read from DHT sensor!\n");
return;
}
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Serial.print("\n");
Serial.print("Humidity: " + String(h) + "%");
Serial.print("\t");
Serial.print("Temperature:" + String(t) + " C");
delay(2000);
if((t>40)&&(h>60)){
led = 1;
}
else led = 0;
if (led) {
digitalWrite(LED, HIGH);
LED_ON_APP.on();
delay(1000);
digitalWrite(LED, LOW);
LED_ON_APP.off();
delay(100);
digitalWrite(BUZZER, HIGH);
delay(500); // Tắt và bật lại buzzer sau 0.5 giây
digitalWrite(BUZZER, LOW);
delay(500); // Chờ 0.5 giây trước khi lặp lại quá trình
}
else {
digitalWrite(LED, LOW);
digitalWrite(BUZZER, LOW);
LED_ON_APP.off();
}
}