Trong hướng dẫn này, chúng ta sẽ học cách sử dụng SunFounder ESP32 cùng với cảm biến độ ẩm đất để đo độ ẩm trong đất, giúp tự động hóa hệ thống tưới tiêu. Bằng cách theo dõi độ ẩm, chúng ta có thể kích hoạt còi khi độ ẩm giảm xuống dưới một ngưỡng nhất định, cho biết cây cần được tưới nước. Dự án này có giá trị trong việc duy trì sức khỏe cây trồng và có thể mở rộng cho nhiều ứng dụng cảm biến môi trường khác nhau. (trong video tại 00:00)
mô-đun độ ẩm đất
Chúng ta sẽ sử dụng cảm biến độ ẩm đất điện dung, hoạt động bằng cách đo sự thay đổi điện dung giữa hai bản cực, thay đổi dựa trên độ ẩm của môi trường xung quanh. Cảm biến này sẽ cung cấp đầu ra analog phản ánh mức độ ẩm, cho phép chúng ta đưa ra quyết định dựa trên các số đọc. ESP32 sẽ đọc đầu ra analog và kích hoạt còi nếu đất quá khô.
Phần cứng được giải thích
Đối với dự án này, các thành phần chính là vi điều khiển SunFounder ESP32, cảm biến độ ẩm đất điện dung và một còi. ESP32 có Wi-Fi và Bluetooth tích hợp, cho phép giám sát và điều khiển từ xa. Cảm biến độ ẩm đất bao gồm hai bản cực đo điện dung, thay đổi tùy theo mức độ ẩm trong đất. Sự thay đổi điện dung này làm thay đổi điện áp đầu ra, mà ESP32 đọc qua đầu vào analog của nó. Còi sẽ cảnh báo chúng ta khi mức độ ẩm giảm xuống dưới một ngưỡng đã đặt.
sơ đồ mô-đun độ ẩm đất
Chi tiết bảng dữ liệu
Nhà sản xuất
SunFounder
Số bộ phận
Cảm biến độ ẩm đất
Điện áp hoạt động
3,3 đến 5 V
Loại đầu ra
Analog
Dải tín hiệu
0 đến 3,3 V
Thời gian phản hồi
Nhanh
Kích thước
Xấp xỉ 60 x 20 mm
Ghi chú / biến thể
Cảm biến loại điện dung
Đảm bảo cảm biến không bị ngập hoàn toàn trong nước để tránh hư hỏng.
Sử dụng điện trở kéo lên phù hợp nếu cần để có số đọc ổn định.
Hiệu chỉnh cảm biến cho loại đất cụ thể của bạn để có số đọc độ ẩm chính xác.
Duy trì kết nối dây đúng cách để tránh mất tín hiệu.
Cẩn thận với nguồn điện để tránh tình huống quá áp.
Hướng dẫn nối dây
ESP32-24-soild-moisture-wiring
Để nối cảm biến độ ẩm đất với ESP32, kết nối chân VCC của cảm biến với chân 3.3V trên ESP32. Tiếp theo, kết nối chân GND của cảm biến với một chân GND trên ESP32. Chân đầu ra analog từ cảm biến độ ẩm đất nên được kết nối với chân analog 35 trên ESP32. Đối với còi, kết nối chân dương với chân kỹ thuật số 13 trên ESP32 và chân âm với GND. Đảm bảo tất cả các kết nối được chắc chắn để tránh các sự cố gián đoạn trong quá trình hoạt động.
Ví dụ mã & hướng dẫn chi tiết
Dưới đây là một đoạn trích ngắn từ mã khởi tạo giao tiếp nối tiếp và đọc giá trị cảm biến độ ẩm:
void setup() {
// Khởi tạo giao tiếp nối tiếp ở tốc độ 115200 bit mỗi giây:
Serial.begin(115200);
}
Đoạn mã này thiết lập giao tiếp nối tiếp, cho phép chúng ta xem các số đọc từ cảm biến độ ẩm trong màn hình nối tiếp.
Tiếp theo, chúng ta có vòng lặp chính nơi giá trị analog được đọc từ cảm biến:
void loop() {
// Đọc giá trị analog
int analogValue = analogRead(35);
// In ra các giá trị
Serial.printf("Giá trị analog = %d\n",analogValue);
delay(300); // trễ giữa các lần đọc để đọc rõ ràng từ màn hình nối tiếp
}
Trong vòng lặp này, mã liên tục đọc giá trị analog từ chân 35 và in ra màn hình nối tiếp mỗi 300 mili giây. Điều này cho phép chúng ta theo dõi mức độ ẩm theo thời gian thực.
Trình diễn / Điều gì sẽ xảy ra
Khi cảm biến độ ẩm được đặt trong đất khô, giá trị analog sẽ cao hơn, cho biết độ ẩm thấp. Ngược lại, khi cảm biến được cắm vào đất ẩm, giá trị sẽ giảm đáng kể. Nếu số đọc giảm xuống dưới ngưỡng đã xác định (ví dụ: 2000), còi kết nối với chân 13 sẽ kích hoạt, báo hiệu rằng cây cần được tưới nước. Hãy cẩn thận với các đầu vào nổi và đảm bảo cảm biến không tiếp xúc với nước vượt quá giới hạn khuyến nghị (trong video tại 02:30).
Mốc thời gian video
00:00 Bắt đầu
1:51 Giới thiệu về dự án
5:53 Giải thích về nối dây
7:23 Giải thích mã Arduino
9:09 Chọn bo mạch ESP32 và cổng COM trong Arduino IDE
823-ESP32 Tutorial 24/55- Arduino code for soil moisture measurement
Ngôn ngữ: C++
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
}
void loop() {
// Read the analog value
int analogValue = analogRead(35);
// Print out the values
Serial.printf("Analog value = %d\n",analogValue);
delay(300); // delay between reads for clear read from serial monitor
}
Tiết lộ: Là một đối tác của Amazon, chúng tôi kiếm tiền từ các giao dịch đủ điều kiện. Điều này có nghĩa là chúng tôi có thể nhận được một khoản hoa hồng nhỏ nếu bạn nhấp vào liên kết và thực hiện một giao dịch mà không tốn thêm chi phí nào cho bạn.