ESP8266 Cảm biến độ ẩm đất
Hướng dẫn này sẽ hướng dẫn bạn cách sử dụng cảm biến độ ẩm với ESP8266. Cụ thể, chúng ta sẽ xem xét:
- Sự khác biệt giữa cảm biến độ ẩm điện trở và cảm biến độ ẩm điện dung
- Cách lập trình ESP8266 để đọc giá trị của cảm biến độ ẩm bằng ESP8266
- Cách sử dụng ESP8266 để hiệu chuẩn cảm biến độ ẩm
- Cách ESP8266 xác định đất ẩm hay khô
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | Capacitive Soil Moisture Sensor | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Giới thiệu về Cảm biến Độ ẩm Đất

Có hai loại cảm biến độ ẩm: cảm biến độ ẩm điện trở và cảm biến độ ẩm tụ điện.
Cả hai cảm biến đều cung cấp thông tin về độ ẩm đất. Tuy nhiên, cách hoạt động của chúng khác nhau. Chúng tôi đề xuất sử dụng cảm biến độ ẩm điện dung do các lý do sau:
- Cảm biến độ ẩm đất điện trở dễ bị ăn mòn theo thời gian khi dòng điện chạy giữa các điện cực của nó, dẫn đến ăn mòn điện hóa.
- Ngược lại, cảm biến độ ẩm đất điện dung ăn mòn chậm hơn nhiều so với cảm biến độ ẩm đất điện trở. Đó là vì các điện cực của nó không bị phơi ra ngoài và do đó tương đối chống ăn mòn.
Đây là một hình minh họa cho cảm biến độ ẩm đất điện trở đã bị ăn mòn.

Phần còn lại của bài hướng dẫn này sẽ sử dụng cảm biến độ ẩm đất điện dung.
Sơ đồ chân của cảm biến độ ẩm đất điện dung
Cảm biến độ ẩm đất cảm ứng điện dung có ba chân:
- Chân GND: Chân này phải được kết nối với GND (0V).
- Chân VCC: Chân này phải được kết nối với VCC (5V hoặc 3.3V).
- Chân AOUT: Đây là chân đầu ra tín hiệu analog, tạo ra một điện áp tỉ lệ thuận với độ ẩm của đất. Chân này nên được kết nối với một chân đầu vào analog trên ESP8266.

Cách hoạt động
Lượng nước có trong đất tỷ lệ nghịch với mức điện áp của chân AOUT.
Sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
Mã ESP8266 để đọc giá trị từ cảm biến độ ẩm đất
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Nếu đây là lần đầu bạn sử dụng ESP8266, hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm.
- Kết nối các thành phần như được hiển thị trong sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, ví dụ như (ví dụ: NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng của nó.
- Sao chép mã và mở nó bằng Arduino IDE.
- Nhấp nút Upload trên Arduino IDE để biên dịch và tải mã lên ESP8266.
- Chôn cảm biến vào đất, sau đó tưới nước lên đất. Hoặc từ từ nhúng nó vào một ly nước muối.
- Kiểm tra kết quả trên Serial Monitor. Nó hiển thị như sau:
※ Lưu ý:
- Đừng dùng nước tinh khiết để thử nghiệm vì nước đó không dẫn điện, nên sẽ không làm thay đổi các giá trị cảm biến.
- Giá trị đo được từ cảm biến sẽ không bao giờ bằng 0. Thông thường giá trị nằm trong khoảng từ 500 đến 600, mặc dù có thể thay đổi tùy thuộc vào các yếu tố như độ sâu lắp đặt cảm biến, loại đất hoặc nước và điện áp của nguồn cấp.
- Tránh chôn phần mạch (nằm ở trên cùng của cảm biến) vào đất hoặc nước, vì nó có thể làm hỏng cảm biến.
Hiệu chuẩn cho cảm biến độ ẩm đất điện dung
Giá trị thu được từ cảm biến độ ẩm không phải là tuyệt đối. Nó dựa trên thành phần của đất và hàm lượng nước. Để xác định chính xác ranh giới giữa ướt và khô, chúng ta phải hiệu chuẩn.
Hướng dẫn hiệu chuẩn:
- Thực thi mã trên ESP8266
- Đặt cảm biến độ ẩm vào trong đất
- Từ từ thêm nước vào đất
- Theo dõi Serial Monitor
- Ghi nhận giá trị khi đất chuyển từ khô sang ướt. Điều này được gọi là ngưỡng.
Mã ESP8266 xác định xem đất có độ ẩm hay khô
Sau khi hiệu chuẩn xong, hãy cập nhật giá trị THRESHOLD mà bạn đã ghi lại trong đoạn mã dưới đây. Đoạn mã này sẽ được dùng để xác định đất ẩm hay khô.
Kết quả hiển thị trên Serial Monitor.
※ Lưu ý:
Hướng dẫn này sử dụng hàm analogRead() để lấy dữ liệu từ một ADC (Bộ chuyển đổi tín hiệu tương tự sang số) được kết nối với một cảm biến hoặc một thành phần khác. ADC của ESP8266 hoạt động tốt cho các dự án mà bạn không cần các phép đo quá chính xác. Tuy nhiên, hãy nhớ, ADC của ESP8266 không quá chính xác cho các phép đo chi tiết. Nếu dự án của bạn cần độ chính xác cao, bạn có thể muốn sử dụng một ADC riêng như ADS1115 với ESP8266, hoặc sử dụng Arduino như Arduino Uno R4 WiFi, loại có ADC đáng tin cậy hơn.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.