#define BLYNK_TEMPLATE_ID "TMPL6ORbgn7Qx"
#define BLYNK_TEMPLATE_NAME "smart home"
#define BLYNK_AUTH_TOKEN "7SoziVi273dSSFcuCMysgFILcK5IGdxP"
#define BLYNK_PRINT Serial
/* include Library ที่เกี่ยวข้องมาใช้งาน */
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"
#define DHTPIN 22 // กำหนดขา I/O ให้เซ็นเซอร์ DHT
#define DHTTYPE DHT22 // กำหนดชนิดของเซ็นเซอร์ DHT คือ DHT22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE); //สร้าง Opject dht และกำหนดพารามิเตอร์ 2 ค่า
char auth[] = BLYNK_AUTH_TOKEN; // สร้าตัวแปรอาเรย์ auth[] เก็บ่คาจากตัวแปร BLYNK_AUTH_TOKEN
char ssid[] = "Wokwi-GUEST"; // สร้าตัวแปรอาเรย์ ssid[] กำหนดชื่อ ssid
char pass[] = ""; // สร้าตัวแปรอาเรย์ pass[] กำหนดรหัสผ่านของ ssid
BlynkTimer timer; // เรียกฟังก์ชั่นเวลา หรือ timer
void setup()
{
Serial.begin(115200); // สร้างการเชื่อต่อการแสดงผลข้อมูลผ่านทาง Serial Monitor
Serial.println(F("DHT22 example!")); // สั่งพิมพ์ข้อความบันทึกใน Flash Memory
Blynk.begin(auth, ssid, pass); // คำสั่งเชื่อมต่อ WiFi และเริ่มต้นการทำงานของ Blynk
}
void loop()
{
Blynk.run(); // สั่งให้ Blynk ทำงาน
timer.run(); // สั่งให้ timer ทำงาน
humtemValue(); // เรียกฟังก์ชั่น humtemValue ให้ทำงาน
delay(1000); // หน่วงเวลาการทำงาน 1 วินาที
}
/* function จัดการข้อมูลจากเซ็นเซอร์*/
void humtemValue() { // สร้างฟังก์ชั่น
float h = dht.readHumidity(); // สร้างตังแปร h ให้อ่านค่า Humidity จากเซ็นเซอร์
float t = dht.readTemperature(); // สร้างตังแปร h ให้อ่านค่า Temperature จากเซ็นเซอร์
if (isnan(h) || isnan(t)) { // ใช้ if เช็คการทำงานของเซ็นเซอร์
Serial.println("Failed to read from DHT sensor!"); // ถ้าไม่ทำงานให้พืมพ์ข้อความ
return; // คืนค่าที่ได้จากเซ็นเซอร์
}
Serial.print(" Humidity :: "); // พิมพ์ข้อความ
Serial.println(h); // ให้พิมพ์ค่า Humidity ที่ได้จากเซ็นเซอร์
Serial.print(" Temperature :: "); // // พิมพ์ข้อความ
Serial.println(t); // ให้พิมพ์ค่า Temperature ที่ได้จากเซ็นเซอร์
Blynk.virtualWrite(V5, t); // กำหนด Virtual Pin 5 ส่งค่า Temperature ไปที่ Blynk app
Blynk.virtualWrite(V6, h); // กำหนด Virtual Pin 6 ส่งค่า Humidity ไปที่ Blynk app
}