#define BLYNK_TEMPLATE_ID "TMPL6dTzxOHNU"
#define BLYNK_TEMPLATE_NAME "wh7"
#define BLYNK_AUTH_TOKEN "HCLZOdab47RAlHAMQMNodg3HTBjuTcrK"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
// WiFi
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// DHT22
#define DHTPIN 25
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
// LED/ปุ่ม
#define LED_PIN_BLYNK 4 // LED จาก Blynk Switch
// ลบการใช้ BUTTON_PIN และ LED_PIN_REAL เพราะไม่ใช้แล้ว
// ตัวแปรรับค่าจาก Blynk
int ledBlynkState = 0;
// รับค่าจาก Blynk Switch (V2)
BLYNK_WRITE(V2) {
ledBlynkState = param.asInt(); // 0 หรือ 1
digitalWrite(LED_PIN_BLYNK, ledBlynkState);
Serial.print("Blynk Switch State: ");
Serial.println(ledBlynkState); // แสดงสถานะที่ได้รับจาก Blynk
}
// ส่งค่า DHT22 ขึ้น Blynk
void sendSensor() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" °C | Humidity: ");
Serial.print(h);
Serial.println(" %");
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
}
void setup() {
Serial.begin(115200);
pinMode(LED_PIN_BLYNK, OUTPUT); // ใช้แค่ LED ของ Blynk
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin();
// Sync ค่า Blynk Switch ตอนเริ่มต้น
Blynk.syncVirtual(V2);
// ส่งค่า Sensor ทุก 2 วินาที
timer.setInterval(2000L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
// ตรวจสอบสถานะการเชื่อมต่อ
if (WiFi.status() != WL_CONNECTED) {
Serial.println("WiFi not connected!");
} else {
Serial.println("WiFi connected.");
}
}