#include "DHT.h"
// กำหนดพินที่ใช้เชื่อมต่อกับเซ็นเซอร์ DHT22 และ Relay
#define DHTPIN 2 // พินสำหรับ DHT22
#define DHTTYPE DHT22 // กำหนดชนิดของเซ็นเซอร์เป็น DHT22
#define RELAYPIN 7 // พินสำหรับควบคุม Relay Module
// สร้าง object DHT
DHT dht(DHTPIN, DHTTYPE);
// กำหนดค่าความชื้นต่ำสุดที่ต้องการให้รดน้ำ
float threshold = 60.0; // ปรับค่านี้ตามความต้องการ (หน่วยเป็น %)
void setup() {
// ตั้งค่าพินสำหรับ Relay Module เป็น OUTPUT
pinMode(RELAYPIN, OUTPUT);
// เริ่มต้นการทำงานของเซ็นเซอร์ DHT22
dht.begin();
// เปิด Serial Monitor เพื่อแสดงผล
Serial.begin(9600);
}
void loop() {
// อ่านค่าอุณหภูมิและความชื้นจาก DHT22
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// ตรวจสอบการอ่านค่าจากเซ็นเซอร์
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// แสดงค่าอุณหภูมิและความชื้นบน Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
// ตรวจสอบค่าความชื้น
if (humidity < threshold) {
// ถ้าค่าความชื้นต่ำกว่าค่าที่กำหนด ให้เปิดปั๊มน้ำ (เปิด Relay)
digitalWrite(RELAYPIN, HIGH);
Serial.println("Humidity is low. Watering the plants...");
} else {
// ถ้าค่าความชื้นมากกว่าค่าที่กำหนด ให้ปิดปั๊มน้ำ (ปิด Relay)
digitalWrite(RELAYPIN, LOW);
Serial.println("Humidity is sufficient. No need to water.");
}
// หน่วงเวลา 2 วินาที ก่อนวนลูปใหม่
delay(2000);
}