#define BLYNK_TEMPLATE_ID "TMPL6xJ26Psnw" // Template ID และ Template Name ของโปรเจกต์ใน Blynk Console
#define BLYNK_TEMPLATE_NAME "noway"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHTPIN 4 // หมายเลข GPIO ที่เชื่อมต่อกับเซนเซอร์ DHT
#define DHTTYPE DHT22 // กำหนดชนิดของเซนเซอร์ DHT
DHT dht(DHTPIN, DHTTYPE); // สร้างออบเจ็กต์ DHT
char auth[] = "DDQgkSaaD0ZNDo00YGMM6j0dBvn6TlFL"; // ใส่ Auth Token ของ Blynk ที่ได้รับจากแอปพลิเคชัน Blynk
char ssid[] = "Wokwi-GUEST"; // ใส่ชื่อ WiFi ที่ต้องการเชื่อมต่อ
char pass[] = ""; // ใส่รหัสผ่าน WiFi ที่ต้องการเชื่อมต่อ
void setup()
{
Serial.begin(9600); // เริ่มต้นการสื่อสาร Serial สำหรับ Debugging
Blynk.begin(auth, ssid, pass); // เชื่อมต่อกับ Blynk
dht.begin(); // เริ่มต้นเซนเซอร์ DHT
}
void loop()
{
Blynk.run(); // รันฟังก์ชันของ Blynk
float humidity = dht.readHumidity(); // อ่านค่าความชื้น
float temperatureC = dht.readTemperature(); // อ่านค่าอุณหภูมิ (°C)
// ตรวจสอบข้อผิดพลาดของเซนเซอร์
if (isnan(humidity) || isnan(temperatureC)) {
Serial.println(F("Failed to read from DHT sensor!")); // แสดงข้อความเมื่อเซนเซอร์ไม่ตอบสนอง
return;
}
// แสดงค่าที่อ่านได้ใน Serial Monitor
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperatureC);
Serial.println(F(" C"));
// ส่งค่าผ่าน Virtual Pin ไปยัง Blynk
Blynk.virtualWrite(V1, humidity); // ความชื้นส่งไปที่ Virtual Pin V1
Blynk.virtualWrite(V2, temperatureC); // อุณหภูมิส่งไปที่ Virtual Pin V2
delay(1000); // รอ 2 วินาทีก่อนอ่านค่าใหม่
}