Công nghệ

Hướng dẫn từng bước từ thiết kế mạch nguyên lý, sơ đồ đấu dây, viết chương trình ESP32, đến lắp đặt hệ thống ống nước và hiệu chuẩn cảm biến

null
Written by lbtmicr06

Rất sẵn lòng. Đây là một dự án khá lớn, tương đương một đồ án tốt nghiệp hoặc một sản phẩm IoT hoàn chỉnh. Vì vậy mình đề xuất hướng dẫn theo từng chương, từ cơ bản đến nâng cao. Sau khi hoàn thành, bạn sẽ có một hệ thống tưới cây tự động có thể hoạt động ngoài thực tế.

Mục tiêu của dự án

Xây dựng một hệ thống có các chức năng:

  • Đo độ ẩm đất.
  • Đo mực nước trong bồn.
  • Điều khiển máy bơm tự động.
  • Tưới theo ngưỡng độ ẩm hoặc theo lịch.
  • Điều khiển và giám sát bằng điện thoại qua WiFi.
  • Hiển thị trạng thái trên màn hình LCD.
  • Bảo vệ máy bơm khi hết nước.

Chương 1: Lập kế hoạch hệ thống

Bước 1. Xác định yêu cầu

Ví dụ:

  • 01 bồn chứa nước.
  • 01 máy bơm 12V.
  • 01 khu vườn.
  • 04 luống rau.
  • Tự động tưới khi đất khô dưới 40%.
  • Dừng khi đạt 70%.
  • Có nút bật/tắt bằng điện thoại.

Bước 2. Lựa chọn linh kiện

Thiết bị Số lượng
ESP32 DevKit V1 1
Cảm biến độ ẩm đất điện dung 1–4
Module Relay 5V 1
Máy bơm DC 12V 1
Adapter 12V 1
Module hạ áp LM2596 (12V xuống 5V) 1
LCD I2C 16×2 hoặc OLED 1
Cảm biến mực nước (phao hoặc siêu âm) 1
DHT22 (tùy chọn) 1
Van điện từ 12V (nếu chia vùng tưới) 1–4

Chương 2: Thiết kế sơ đồ nguyên lý

Khối nguồn

220VAC
    │
    ▼
 Adapter 12V
    │
    ├──────────────► Máy bơm
    │
    ▼
 LM2596
12V → 5V
    │
    ▼
 ESP32

Nguồn 12V cấp trực tiếp cho máy bơm. ESP32 được cấp 5V qua chân VIN hoặc cổng USB. Tất cả các thiết bị phải dùng chung chân GND.


Khối điều khiển

          ESP32

GPIO34  <──── Cảm biến độ ẩm

GPIO27  <──── Cảm biến mực nước

GPIO26  ────► Relay

GPIO21  ────► LCD SDA

GPIO22  ────► LCD SCL

GPIO4   ────► DHT22

Chương 3: Thiết kế mạch công suất

Máy bơm không được nối trực tiếp vào ESP32 mà phải qua relay hoặc MOSFET.

GPIO26
    │
    ▼
 Relay Module
    │
    ▼
Máy bơm 12V

+12V ───── Máy bơm ───── Relay ───── GND

Nếu máy bơm công suất lớn (trên khoảng 5A), nên dùng MOSFET hoặc contactor thay relay để tăng độ bền.


Chương 4: Thiết kế hệ thống ống nước

Ví dụ cho vườn khoảng 50 m²:

          Bồn nước
              │
              │
         Máy bơm 12V
              │
      Ống PVC Φ27
              │
     ┌────────┴────────┐
     │                 │
  Ống PE            Ống PE
     │                 │
Đầu nhỏ giọt      Đầu nhỏ giọt

Khuyến nghị:

  • Ống chính: PVC Φ27 hoặc Φ34.
  • Ống nhánh: PE 16 mm.
  • Mỗi đầu nhỏ giọt: 2–4 lít/giờ.

Chương 5: Đấu dây chi tiết

Cảm biến độ ẩm

ESP32

3.3V  -------- VCC

GND   -------- GND

GPIO34 ------- AO

Relay

ESP32

5V ---------- VCC

GND --------- GND

GPIO26 ------ IN

LCD I2C

ESP32

GPIO21 ---- SDA

GPIO22 ---- SCL

5V -------- VCC

GND ------- GND

Cảm biến mực nước

Nếu dùng phao:

Một đầu → GPIO27

Một đầu → GND

Kích hoạt điện trở kéo lên (pull-up) trong phần mềm.


Chương 6: Viết chương trình

Chia thành các phần độc lập.

Phần 1

Đọc cảm biến độ ẩm:

int moisture = analogRead(34);

Phần 2

Chuyển sang phần trăm:

int percent = map(moisture, 3000, 1200, 0, 100);

Lưu ý: Hai giá trị 30001200 chỉ là ví dụ, cần hiệu chuẩn theo cảm biến thực tế.


Phần 3

Điều khiển relay:

if(percent < 40)
{
    digitalWrite(RELAY, LOW);
}
else
{
    digitalWrite(RELAY, HIGH);
}

Nhiều module relay kích hoạt mức LOW, vì vậy hãy kiểm tra loại relay bạn sử dụng.


Phần 4

Hiển thị LCD

Moisture : 38%

Pump : ON

Phần 5

Kết nối WiFi

ESP32 sẽ:

  • kết nối WiFi,
  • gửi dữ liệu lên ứng dụng IoT hoặc web,
  • nhận lệnh bật/tắt máy bơm.

Chương 7: Thuật toán hoàn chỉnh

Khởi động

↓

Khởi tạo WiFi

↓

Đọc cảm biến đất

↓

Đọc mực nước

↓

Đất khô?

↓

Không

↓

Quay lại

↓

Có

↓

Bồn còn nước?

↓

Không

↓

Báo lỗi

↓

Có

↓

Bật relay

↓

Máy bơm chạy

↓

Đợi 20 giây

↓

Đọc lại độ ẩm

↓

Đủ ẩm?

↓

Chưa

↓

Lặp lại

↓

Đã đủ

↓

Tắt máy bơm

↓

Gửi thông báo

Chương 8: Hiệu chuẩn cảm biến độ ẩm

Đây là bước rất quan trọng vì mỗi cảm biến có sai số khác nhau.

  1. Cắm cảm biến vào không khí, đọc giá trị ADC và ghi lại (ví dụ 3000).
  2. Cắm cảm biến vào đất bão hòa nước, đọc giá trị ADC (ví dụ 1200).
  3. Dùng hai giá trị đó trong hàm map() để quy đổi sang phần trăm.
  4. Kiểm tra trên nhiều mẫu đất và điều chỉnh ngưỡng bật/tắt (ví dụ bật dưới 40%, tắt trên 70%) sao cho phù hợp với loại rau bạn trồng.

Chương 9: Nâng cấp thành hệ thống chuyên nghiệp

Khi hệ thống cơ bản hoạt động ổn định, bạn có thể bổ sung:

  • Điều khiển nhiều vùng tưới bằng nhiều van điện từ.
  • Ghi nhật ký tưới vào thẻ nhớ hoặc máy chủ.
  • Gửi thông báo khi bồn hết nước hoặc bơm hoạt động bất thường.
  • Tích hợp cảm biến mưa để không tưới khi trời mưa.
  • Theo dõi nhiệt độ, độ ẩm không khí và ánh sáng để tối ưu lịch tưới.
  • Sử dụng nguồn điện mặt trời kết hợp pin dự phòng nếu khu vườn ở nơi không có điện lưới.

Đề xuất lộ trình học

Mình khuyên nên triển khai theo từng bài thay vì làm ngay toàn bộ hệ thống:

  1. Đọc cảm biến độ ẩm đất bằng ESP32.
  2. Điều khiển relay bật/tắt máy bơm.
  3. Hiệu chuẩn cảm biến và thiết lập ngưỡng tưới.
  4. Đọc cảm biến mực nước.
  5. Kết nối WiFi và điều khiển qua điện thoại.
  6. Thêm màn hình LCD/OLED.
  7. Hẹn giờ tưới.
  8. Chia nhiều vùng tưới bằng van điện từ.
  9. Thiết kế mạch PCB và hộp điều khiển chống nước.

Theo cách này, bạn sẽ hiểu rõ nguyên lý của từng phần và dễ dàng sửa lỗi khi mở rộng hệ thống.

About the author

lbtmicr06

Leave a Comment