#define BLUNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL68EXUTPpw"
#define BLYNK_TEMPLATE_NAME "DOAN1"
#define BLYNK_AUTH_TOKEN "8XrcLkdLjX204mpAfiaIfiTVYKbkwqkU"
#include <WiFi.h>
#include<WiFiClient.h>
#include<BlynkSimpleEsp32.h>
#include<string.h>
#include "DHT.h"
#define DHTTYPE DHT22
#define DHTPIN 33
DHT dht(DHTPIN,DHTTYPE);
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] ="";
BlynkTimer timer;
#define LED_RED 17
#define LED_GREEN 16
#define BUTTON_1 2
#define BUTTON_2 4
int button1 = 0, button2 = 0, state = 0;
BLYNK_WRITE(V2) {
button1 = param.asInt();
if(button1 == 1) {
state = 0;
}
else;
}
BLYNK_WRITE(V3) {
button2 = param.asInt();
if(button2 == 1) {
state = 1;
}
else;
}
void setup() {
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(BUTTON_1, INPUT_PULLUP);
pinMode(BUTTON_2, INPUT_PULLUP);
Serial.begin(115200);
dht.begin(); //khởi động cảm biến DHT
Blynk.begin(auth, ssid, pass);
}
void loop()
{
float t= dht.readTemperature();
float h= dht.readHumidity();
if(state==0){
digitalWrite(LED_GREEN, HIGH);
if (t > 50) {
digitalWrite(LED_RED, HIGH); delay(1000);
digitalWrite(LED_RED, LOW); delay(1000);
} else digitalWrite(LED_RED, LOW);
}
else{
digitalWrite(LED_RED, HIGH);
if (t > 50) {
digitalWrite(LED_GREEN, HIGH); delay(1000);
digitalWrite(LED_GREEN, LOW); delay(1000);
} else digitalWrite(LED_GREEN, LOW);
}
// Kiểm tra trạng thái nút nhấn
if (digitalRead(BUTTON_1) == LOW) {
state = 0; delay(100);
} else;
if (digitalRead(BUTTON_2) == LOW) {
state = 1; delay(100);
} else;
Blynk.virtualWrite(V0,t);
Blynk.virtualWrite(V1,h);
Serial.print("\n");
Serial.println("Humidity: " + String(h) + "%");
//Serial.print("\t");
Serial.println("Temperature:" + String(t) + " C");
//Serial.print("\n");
delay(2000);
Blynk.run(); //CHẠY BLYNK
timer.run();
}