const int buttonPin = 35; // Khai báo chân nút nhấn
const int ledPin = 2; // Khai báo chân đèn LED
int ledState; // Trạng thái của đèn LED
int buttonState; // Trạng thái của nút nhấn
#include "DHT.h" // Thư viện DHT để đọc cảm biến nhiệt độ và độ ẩm
#define DHTPIN 4 // Chân kết nối cảm biến DHT
#define DHTTYPE DHT22 // Loại cảm biến DHT22
DHT dht(DHTPIN, DHTTYPE); // Khởi tạo đối tượng DHT
float h, t; // Biến lưu trữ độ ẩm và nhiệt độ
void setup() {
Serial.begin(115200); // Khởi động giao tiếp Serial với tốc độ 115200
pinMode(ledPin, OUTPUT); // Thiết lập chân đèn LED là OUTPUT
pinMode(buttonPin, INPUT); // Thiết lập chân nút nhấn là INPUT
digitalWrite(ledPin, LOW); // Tắt đèn LED ban đầu
dht.begin(); // Khởi động cảm biến DHT
Serial.print("Bat dau"); // In ra thông báo bắt đầu
}
void ReadingDHT22() {
h = dht.readHumidity(); // Đọc độ ẩm từ cảm biến
t = dht.readTemperature(); // Đọc nhiệt độ từ cảm biến
if (isnan(h) || isnan(t)) { // Kiểm tra nếu đọc dữ liệu thất bại
Serial.println(F("Failed to read from DHT sensor")); // In ra thông báo lỗi
return; // Thoát khỏi hàm nếu đọc dữ liệu thất bại
}
}
void loop() {
ReadingDHT22(); // Gọi hàm đọc dữ liệu từ cảm biến DHT22
buttonState = digitalRead(buttonPin); // Đọc trạng thái của nút nhấn
if (buttonState == HIGH) { // Nếu nút nhấn được nhấn
Serial.println("KIEM TRA"); // In ra thông báo kiểm tra
if (h >= 70) { // Nếu độ ẩm lớn hơn hoặc bằng 70%
ledState = HIGH; // Bật đèn LED
} else {
ledState = LOW; // Tắt đèn LED
}
digitalWrite(ledPin, ledState); // Cập nhật trạng thái đèn LED
Serial.println("Data log"); // In ra thông báo ghi dữ liệu
Serial.print("Do am: "); // In ra độ ẩm
Serial.print(h);
Serial.println("%");
Serial.print("Nhiet Doi"); // In ra nhiệt độ
Serial.print(t);
Serial.println(" C");
}
if (ledState == HIGH) { // Nếu đèn LED đang bật
Serial.println("Do am tren 70%"); // In ra thông báo độ ẩm trên 70%
Serial.println("Sang LED"); // In ra thông báo đèn LED sáng
} else {
Serial.println("Do duoi 70%"); // In ra thông báo độ ẩm dưới 70%
Serial.println("Tat LED"); // In ra thông báo đèn LED tắt
}
Serial.println("-----------------------------"); // In ra dòng phân cách
}