#define BLYNK_TEMPLATE_ID "TMPL6XlV5YNT0"
#define BLYNK_TEMPLATE_NAME "DHT22"
#define BLYNK_AUTH_TOKEN "eQ05fHspQheJ-mhfO58jAqxaNCcRZ_AF"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
// Thông tin kết nối WiFi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Định nghĩa chân kết nối DHT22
#define DHT_PIN 15
DHTesp dhtSensor;
BlynkTimer timer;
// Hàm đọc dữ liệu từ cảm biến DHT22 và gửi lên Blynk
void sendSensorData()
{
TempAndHumidity data = dhtSensor.getTempAndHumidity();
float temperature = data.temperature;
float humidity = data.humidity;
// Kiểm tra xem đọc dữ liệu có thành công không
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Lỗi đọc dữ liệu từ cảm biến DHT!");
return;
}
// Gửi dữ liệu lên Blynk
Blynk.virtualWrite(V0, temperature);
Blynk.virtualWrite(V1, humidity);
// In ra Serial để kiểm tra
Serial.print("Nhiệt độ: ");
Serial.print(temperature);
Serial.print("°C | Độ ẩm: ");
Serial.print(humidity);
Serial.println("%");
}
void setup()
{
// Khởi tạo Serial
Serial.begin(115200);
// Khởi tạo cảm biến DHT
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
// Kết nối Blynk
Blynk.begin(auth, "Wokwi-GUEST", "");
// Thiết lập timer để gửi dữ liệu mỗi 2 giây
timer.setInterval(2000L, sendSensorData);
}
void loop()
{
Blynk.run();
timer.run();
}