#include <DHT.h>
// Định nghĩa chân kết nối cảm biến và relay
#define DHTPIN 15 // Chân kết nối DHT22 với ESP32 (GPIO 15)
#define DHTTYPE DHT22 // Định nghĩa loại cảm biến DHT22
#define PUMP_PIN 16 // Chân điều khiển relay (GPIO 16)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Khởi tạo cổng nối tiếp để theo dõi kết quả
Serial.begin(115200);
// Khởi tạo cảm biến DHT
dht.begin();
// Đặt chân PUMP_PIN làm output để điều khiển máy bơm
pinMode(PUMP_PIN, OUTPUT);
}
void loop() {
// Đọc dữ liệu từ cảm biến DHT22
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Kiểm tra nếu có lỗi khi đọc dữ liệu từ cảm biến
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Lỗi khi đọc từ cảm biến DHT22!");
return;
}
// Hiển thị dữ liệu lên cổng nối tiếp
Serial.print("Độ ẩm: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Nhiệt độ: ");
Serial.print(temperature);
Serial.println(" *C");
// Điều kiện để bật hoặc tắt máy bơm (ví dụ: bật khi độ ẩm < 50%)
if (humidity < 50.0) {
digitalWrite(PUMP_PIN, HIGH); // Bật máy bơm (HIGH để kích hoạt relay)
Serial.println("Máy bơm đang bật");
} else {
digitalWrite(PUMP_PIN, LOW); // Tắt máy bơm (LOW để tắt relay)
Serial.println("Máy bơm đang tắt");
}
// Chờ 2 giây trước khi đọc lại
delay(2000);
}