#define BLYNK_TEMPLATE_ID "TMPL6lccU4YOD"
#define BLYNK_TEMPLATE_NAME "DHT11"
#define BLYNK_AUTH_TOKEN "zUOfyI_lOMARLpnU3kP_Iv6RQMsx7z7Z"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
//Đây là Auth Token, được sử dụng để xác thực thiết bị với dự án Blynk cụ thể.
char auth[] = BLYNK_AUTH_TOKEN;
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// ghi giá trị h lên v1 và t lên v0
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V0, t);
}
void setup()
{
Serial.begin(115200);
delay(1000);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
dht.begin();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
//Hàm loop() chứa vòng lặp chính, trong đó Blynk.run() và timer.run() được gọi liên tục để duy trì kết nối với Blynk và quản lý thời gian gửi dữ liệu từ cảm biến.
void loop()
{
Blynk.run();
timer.run();
}