//จงเขียนโปรแกรมควบคุม DHT ที่เชื่อมต่อกับ NodeMCU โดยมีลักษณะการทำงานดังนี้
//LED จะกระพริบเมื่ออุณหภูมิมากกว่า 25 องศาเซสเซียส
//LED จะดับเมื่ออุณหภูมิต่ำกว่า 25 องศาเซสเซียส
//อุณหภูมิทุกค่าจะแสดงผลบน LCD
/**
ESP32 + DHT22 Example for Wokwi
https://wokwi.com/arduino/projects/322410731508073042
*/
//Workshop 04
#include "DHTesp.h"//ประกาศใช้ Library ของ DHT22
#include <LiquidCrystal_I2C.h>//ประกาศใช้ Library ของจอ LCD
const int DHT_PIN = 15;//กำหนดตัวแปร(จำนวนเต็ม) DHT_PIN และให้เท่ากับค่าที่ขา 15 อ่านได้
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);//กำหนดขนาดของจอ LCD
DHTesp dhtSensor;//กำหนด DHT Sensor
#define LED 19 //ตั้งชื่อตัวแปรให้กับขา 19
void setup() {
LCD.init();//ตั้งค่าจอ LCD
Serial.begin(115200);//กำหนดอัตราการส่งข้อมูลเป็น 115200
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);//ตั้งค่ารุ่นของ DHT
LCD.clear();//เคลียร์จอ LCD
pinMode(LED,OUTPUT);//ตั้งค่าให้ขา LED เป็น Output
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
//ให้ TempAndHumidity data เท่ากับ dhtSensor.getTempAndHumidity()
LCD.setCursor(1, 0);//ตั้งค่าตำแหน่งของตัวอักษร
LCD.print("Temp: " + String(data.temperature, 2) + " C");
//แสดงผล Temp: (ค่าที่เซนเซอร์อ่านได้) C
LCD.setCursor(1, 1);//ตั้งค่าตำแหน่งของตัวอักษร
LCD.print("Humidity: " + String(data.humidity, 1) + "%");
//แสดงผล Humidity: (ค่าที่เซนเซอร์อ่านได้) %
if((data.temperature) > 25)
//ถ้าค่า data.temperature มากกว่า 25 ให้ทำใน {}
{
digitalWrite(LED,1);//การส่งสัญญาณ Digital High ไปที่ขา LED
delay(500);//หน่วงเวลาการทำงาน 0.5 วินาที
digitalWrite(LED,0);//การส่งสัญญาณ Digital High ไปที่ขา LED
delay(500);//หน่วงเวลาการทำงาน 0.5 วินาที
}
}