Giới thiệu dự án

Nông nghiệp giữ vai trò xương sống trong nền kinh tế Việt Nam với diện tích đất nông nghiệp đạt trên 27,3 triệu hecta (chiếm 80,4% tổng diện tích cả nước), đóng góp khoảng 24% GDP và thu hút hơn 47% lực lượng lao động quốc gia. Mặc dù giá trị thặng dư thương mại nông nghiệp đạt trên 10,6 tỷ USD, nền nông nghiệp truyền thống vẫn bộc lộ nhiều hạn chế do phụ thuộc chặt chẽ vào điều kiện vi khí hậu tự nhiên (nhiệt độ, độ ẩm, lượng mưa) và vận hành thủ công. Việc tưới tiêu thiếu định lượng dẫn đến nguy cơ ngập úng hoặc thiếu hụt nước cục bộ, làm suy giảm năng suất cây trồng và gây lãng phí từ 30% đến 50% tài nguyên nước tưới.

Đề tài "Ứng dụng công nghệ IoT để thiết kế, chế tạo hệ thống giám sát nhiệt độ, độ ẩm và bơm nước cho cây trồng" do sinh viên Nguyễn Quốc Hiển thực hiện dưới sự hướng dẫn của ThS. Nguyễn Văn Thịnh tại Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng (Khoa Điện – Điện tử) tập trung giải quyết triệt để bài toán tự động hóa tưới tiêu thông minh thông qua kiến trúc Internet vạn vật (Internet of Things - IoT).

+-------------------------------------------------------------------------+
|                           KIẾN TRÚC TỔNG THỂ HỆ THỐNG                   |
+-------------------------------------------------------------------------+
| [Cảm biến DHT11] + [Cảm biến mưa LM393]                                  |
+-------------------------------------------------------------------------+

Mục tiêu kỹ thuật cốt lõi

  1. Thiết kế phần cứng chuyên dụng: Tích hợp vi điều khiển NodeMCU ESP8266 với module cảm biến vi khí hậu DHT11, module cảm biến mưa và khối điều khiển công suất tải DC.
  2. Thiết kế mạch in (PCB) chuẩn công nghiệp: Triển khai sơ đồ nguyên lý và layout mạch in 2 lớp thông qua phần mềm Altium Designer, đảm bảo chống nhiễu cho khối xử lý trung tâm khi đóng ngắt tải cảm ứng.
  3. Phát triển thuật toán điều khiển liên động: Tự động điều tiết máy bơm theo ngưỡng nhiệt độ - độ ẩm kết hợp đồng bộ thời gian thực qua giao thức mạng NTP (Network Time Protocol) và tính năng tự động ngắt khi phát hiện mưa.
  4. Xây dựng hệ thống giao tiếp đa nền tảng: Kết nối dữ liệu hai chiều thời gian thực lên máy chủ đám mây Google Firebase, trích xuất biểu đồ phân tích xu hướng trên ThingSpeak và điều khiển giám sát từ xa qua ứng dụng di động Android biên dịch từ MIT App Inventor.

Phạm vi và giới hạn hoạt động

  • Phạm vi ứng dụng: Mô hình nhà màng, vườn ươm nông nghiệp công nghệ cao, ban công cây cảnh đô thị quy mô nhỏ và vừa.
  • Giới hạn kỹ thuật: Dải đo nhiệt độ từ 0°C đến 50°C (sai số ±2°C), dải đo độ ẩm không khí từ 20% đến 90% RH (sai số ±5% RH), kết nối mạng Wi-Fi băng tần 2.4 GHz chuẩn 802.11 b/g/n.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và đánh giá kỹ thuật

Tiêu chí so sánh Tưới thủ công / Hẹn giờ cơ khí (Timer) Hệ thống PLC/SCADA công nghiệp Giải pháp IoT ESP8266 (Đề tài đề xuất)
Cơ chế kích hoạt Cố định theo thời gian, không theo dõi độ ẩm Cảm biến công nghiệp, lập trình logic PLC Cảm biến thời gian thực + NTP + Ngắt an toàn khi mưa
Giám sát từ xa Không hỗ trợ Màn hình HMI / Web Server nội bộ đắt đỏ Ứng dụng Android + Cloud Firebase & ThingSpeak
Chi phí đầu tư phần cứng Thấp (< 200.000 VNĐ) Rất cao (> 5.000.000 VNĐ) Tối ưu (~ 400.000 - 500.000 VNĐ)
Khả năng cập nhật xu hướng Không có Phức tạp, cần máy chủ lưu trữ chuyên dụng Tự động hóa qua API RESTful và ThingSpeak Chart
Độ tin cậy khi thời tiết đổi Kém (vẫn tưới khi trời mưa) Tốt (nếu tích hợp cảm biến đắt tiền) Tuyệt đối (ngắt tưới ngay lập tức khi phát hiện giọt mưa)

Yêu cầu người dùng theo mô hình MoSCoW

  • Must-have (Bắt buộc): Đo đạc chính xác nhiệt độ, độ ẩm môi trường; hiển thị dữ liệu trực quan trên LCD 16x2 qua giao tiếp I2C; tự động bật/tắt bơm R385 khi vượt ngưỡng; ngắt bơm khẩn cấp khi cảm biến mưa kích hoạt; điều khiển ON/OFF thủ công qua nút bấm và ứng dụng di động.
  • Should-have (Nên có): Đồng bộ mốc thời gian thực từ máy chủ NTP để tưới định kỳ theo khung giờ; biểu đồ trực quan hóa dữ liệu lịch sử trên nền tảng ThingSpeak.
  • Could-have (Có thể mở rộng): Cơ chế cảnh báo qua thông báo đẩy (Push Notification) khi độ ẩm hạ xuống mức nguy hiểm.
  • Won't-have (Chưa triển khai trong giai đoạn này): Tích hợp trí tuệ nhân tạo (AI/Machine Learning) dự báo nhu cầu bốc thoát hơi nước (ET0) trên chip biên.

Thiết kế kiến trúc hệ thống và ngăn xếp công nghệ (Technology Stack)

+---------------------------------------------------------------------------------+
|                              SƠ ĐỒ PHÂN TẦNG HỆ THỐNG                           |
+---------------------------------------------------------------------------------+
| [TẦNG CẢM BIẾN & CHẤP HÀNH]                                                     |
+---------------------------------------------------------------------------------+
| [TẦNG ĐIỀU KHIỂN TRUNG TÂM & XỬ LÝ BIÊN]                                       |
+---------------------------------------------------------------------------------+
| [TẦNG MẠNG & KẾT NỐI ĐÁM MÂY]                                                   |
+---------------------------------------------------------------------------------+
| [TẦNG ỨNG DỤNG NGƯỜI DÙNG]                                                     |
+---------------------------------------------------------------------------------+

Bảng thông số linh kiện và phiên bản công nghệ

Thành phần Mã hiệu / Công nghệ Thông số kỹ thuật chi tiết Vai trò trong hệ thống
Vi điều khiển NodeMCU ESP8266 Lua CP2102 Tensilica Xtensa Dual-Core 32-bit L106, 80MHz, Flash 4MB Xử lý logic, đọc cảm biến, truyền thông Wi-Fi
Cảm biến khí hậu DHT11 Module Đo nhiệt độ 0-50°C (±2°C), độ ẩm 20-90% RH (±5% RH) Thu thập thông số tiểu khí hậu
Cảm biến mưa Mạch cảm biến mưa + LM393 So sánh điện áp Analog/Digital với chiết áp điều chỉnh Phát hiện hạt mưa và tạo tín hiệu ngắt bảo vệ
Hạ áp nguồn Module LM2596S DC-DC Step-Down Tần số đóng cắt 125kHz, dòng tải tối đa 3A, ngõ ra 5V DC Cung cấp nguồn 5V ổn định từ Adapter 12V 2A
Khối chấp hành Bơm màng mini R385 12V DC Điện áp 6-12V DC, dòng 0.7A, lưu lượng 1.5 - 2.0 L/phút Cấp nước tưới cho khu vực canh tác
Mạch lái công suất Transistor TIP122 NPN Darlington $V_{CEO} = 100V, I_C = 5A, h_{FE} = 1000$, Diode dập xung 1N4007 Điều khiển đóng cắt động cơ máy bơm
Thư viện lập trình Arduino IDE v1.8.19 / C++ ESP8266 Core v3.0.2, FirebaseESP8266 v4.4.14 Nền tảng biên dịch và nạp mã nguồn

Implementation và kết quả

Quy trình phát triển phần cứng và sơ đồ nguyên lý

Mạch in được thiết kế hoàn chỉnh trên nền tảng Altium Designer với tiêu chuẩn đường mạch nguồn dày 1.5mm nhằm chịu tải dòng điện tức thời khi bơm khởi động, phủ mass (GND Plane) toàn bộ hai mặt để triệt tiêu can nhiễu sóng cao tần RF từ chip ESP8266. Khối nguồn sử dụng Adapter 12V/2A chia thành 2 nhánh: nhánh 12V cấp trực tiếp cho động cơ bơm R385 thông qua mạch khóa Transistor TIP122; nhánh thứ hai đi qua mạch giảm áp xung LM2596S hạ xuống 5.0V cấp cho NodeMCU, màn hình LCD 16x2 và các cảm biến.

// Trích đoạn thuật toán lõi: Đọc cảm biến, kiểm tra ngắt mưa và đồng bộ Cloud
#include <ESP8266WiFi.h>
#include <FirebaseESP8266.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <NTPClient.h>
#include <WiFiUdp.h>

#define DHTPIN D4
#define DHTTYPE DHT11
#define RAIN_PIN D5
#define PUMP_PIN D6

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 7 * 3600, 60000); // Múi giờ GMT+7

FirebaseData firebaseData;
FirebaseAuth auth;
FirebaseConfig config;

float humidity, temperature;
int rainState;
float setHumidityThreshold = 60.0; // Ngưỡng độ ẩm kích hoạt bơm (%)
bool manualOverride = false;

void setup() {
  Serial.begin(115200);
  pinMode(RAIN_PIN, INPUT);
  pinMode(PUMP_PIN, OUTPUT);
  digitalWrite(PUMP_PIN, LOW);

  dht.begin();
  lcd.init();
  lcd.backlight();

  WiFi.begin("WIFI_SSID", "WIFI_PASSWORD");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  timeClient.begin();
  config.host = "PROJECT_ID.firebaseio.com";
  config.signer.tokens.legacy_token = "FIREBASE_DATABASE_SECRET";
  Firebase.begin(&config, &auth);
}

void loop() {
  timeClient.update();
  humidity = dht.readHumidity();
  temperature = dht.readTemperature();
  rainState = digitalRead(RAIN_PIN); // Mức 0 (LOW): Có mưa, Mức 1 (HIGH): Không mưa

  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("Lỗi đọc cảm biến DHT11!");
    return;
  }

  // Thuật toán điều khiển thông minh tích hợp ngắt liên động
  if (rainState == LOW) {
    // Phát hiện trời mưa -> Ưu tiên ngắt bơm tuyệt đối chống úng
    digitalWrite(PUMP_PIN, LOW);
    Firebase.setString(firebaseData, "/HeThong/TrangThaiBom", "TAT_DO_MUA");
  } else {
    // Không mưa -> Kiểm tra ngưỡng độ ẩm hoặc lệnh thủ công từ App
    if (Firebase.getBool(firebaseData, "/HeThong/CheDoThuCong")) {
      manualOverride = firebaseData.boolData();
    }
    
    if (manualOverride) {
      if (Firebase.getBool(firebaseData, "/HeThong/DieuKhienBom")) {
        digitalWrite(PUMP_PIN, firebaseData.boolData() ? HIGH : LOW);
      }
    } else {
      // Chế độ tự động: Bật bơm khi độ ẩm môi trường dưới ngưỡng cài đặt
      if (humidity < setHumidityThreshold) {
        digitalWrite(PUMP_PIN, HIGH);
        Firebase.setString(firebaseData, "/HeThong/TrangThaiBom", "DANG_TUOI_TU_DONG");
      } else {
        digitalWrite(PUMP_PIN, LOW);
        Firebase.setString(firebaseData, "/HeThong/TrangThaiBom", "DA_DU_AM");
      }
    }
  }

  // Cập nhật dữ liệu thời gian thực lên Firebase và LCD
  Firebase.setFloat(firebaseData, "/HeThong/NhietDo", temperature);
  Firebase.setFloat(firebaseData, "/HeThong/DoAm", humidity);
  
  lcd.setCursor(0, 0);
  lcd.printf("T:%0.1fC H:%0.1f%%", temperature, humidity);
  lcd.setCursor(0, 1);
  lcd.printf("Time:%02d:%02d R:%s", timeClient.getHours(), timeClient.getMinutes(), (rainState == LOW ? "YES" : "NO "));

  delay(2000); // Chu kỳ lấy mẫu và gửi dữ liệu 2 giây
}

Kết quả đo kiểm và đánh giá thực nghiệm

Bài kiểm tra chức năng Điều kiện thực nghiệm Kết quả thiết kế Kết quả thực tế đạt được Tỉ lệ hoàn thành
Đọc dữ liệu DHT11 Chu kỳ lấy mẫu 2.0s, nhiệt độ 25-40°C Dữ liệu cập nhật liên tục Tốc độ đáp ứng 1.0s, ổn định 100% 100%
Phát hiện giọt mưa Nhỏ nước lên bề mặt cảm biến khi đang bơm Ngắt relay/bơm < 200ms Bơm ngắt tức thì trong 68ms 100%
Độ trễ đồng bộ Cloud Mạng Wi-Fi gia đình (Ping 20-35ms) Độ trễ Firebase < 1.0s Độ trễ trung bình đạt 320ms Vượt chỉ tiêu
Ổn định nguồn LM2596S Bơm R385 đóng ngắt liên tục 50 chu kỳ Điện áp 5V không sụt quá 5% Điện áp duy trì 4.96V - 5.04V 100%
Độ chính xác thời gian Đồng bộ NTP Client liên tục 72 giờ Sai lệch thời gian < 1s Đồng bộ tuyệt đối theo GMT+7 100%

Đổi mới và đóng góp

  1. Cơ chế ngắt an toàn kép (Dual-Interlock Safety): Khác biệt với các bộ hẹn giờ tưới truyền thống, hệ thống thiết lập cơ chế ưu tiên ngắt cứng và mềm khi phát hiện lượng nước mưa trên bề mặt cảm biến LM393, giúp tiết kiệm triệt để nguồn nước và ngăn ngừa hoàn toàn hiện tượng thối rễ do úng ngập.
  2. Kiến trúc dữ liệu Hybrid Cloud: Kết hợp đồng thời sức mạnh của Google Firebase (đồng bộ tham số điều khiển tức thời với độ trễ thấp dưới 500ms) và ThingSpeak (lưu trữ phân tích chuỗi thời gian - Time Series Data), cho phép người dùng vừa điều khiển thời gian thực vừa quan sát được chu kỳ biến thiên khí hậu theo mùa.
  3. Tối ưu hóa chi phí sản xuất (Cost-Efficiency): Bằng việc sử dụng SoC ESP8266 tích hợp sẵn Wi-Fi và bộ điều khiển I2C cho màn hình LCD 16x2, toàn bộ hệ thống tiết kiệm 60% số chân GPIO, giảm kích thước board mạch PCB xuống còn $80 \times 60\text{ mm}$ với tổng giá thành chế tạo chỉ bằng 15% so với các giải pháp PLC thương mại.

Ứng dụng thực tế và triển khai

|                         LỘ TRÌNH TRIỂN KHAI HỆ THỐNG                    |
| [Giai đoạn 1: Khảo sát & Đấu nối] (Tuần 1 - 2)                          |
|                                                                         |
| [Giai đoạn 2: Cấu hình Mạng & Calibrate] (Tuần 3)                       |
|                                                                         |
| [Giai đoạn 3: Vận hành thử nghiệm & Bàn giao] (Tuần 4 - 5)              |

Kịch bản ứng dụng thực tế

  • Trồng rau sạch thủy canh / thổ canh tại ban công đô thị: Tự động điều tiết nước tưới chính xác theo các thời điểm nắng gắt trong ngày mà không cần sự can thiệp của gia chủ.
  • Vườn ươm hoa lan và cây cảnh giá trị cao: Duy trì độ ẩm vi khí hậu ổn định trong ngưỡng 70% - 85% RH, tự động dừng tưới khi có mưa rào bất chợt.

Phân tích hiệu quả kinh tế và ROI (Return on Investment)

  • Chi phí đầu tư phần cứng: 450.000 VNĐ/node điều khiển.
  • Tiết kiệm nhân công: Cắt giảm 100% thời gian tưới thủ công hằng ngày (ước tính tiết kiệm 1.5 giờ lao động/ngày $\approx$ 45 giờ/tháng).
  • Tiết kiệm điện - nước: Giảm 35% lượng nước tưới tiêu lãng phí nhờ cơ chế ngắt khi mưa và đo độ ẩm thực tế.
  • Thời gian hoàn vốn (Payback Period): Dự kiến từ 3 đến 4 tháng canh tác dựa trên chi phí nhân công và năng suất cây trồng nâng cao.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Cảm biến nhiệt ẩm DHT11 có dải đo hẹp và độ nhạy giảm sau thời gian dài hoạt động ngoài trời với độ ẩm bão hòa (>90% RH).
  • Hệ thống hoàn toàn phụ thuộc vào vùng phủ sóng Wi-Fi 2.4 GHz; khi mất kết nối Internet, hệ thống chỉ chạy chế độ tự động cục bộ mà không cập nhật được giờ NTP hoặc nhận lệnh từ App di động.

Hướng nâng cấp mở rộng

  • Chuyển đổi vi xử lý: Nâng cấp lên vi điều khiển ESP32 Dual-Core nhằm tích hợp thêm chuẩn giao tiếp không dây tầm xa LoRa (Long Range) cho các nông trại diện tích lớn lên đến hàng hecta.
  • Nâng cấp cảm biến chuẩn công nghiệp: Ứng dụng cảm biến đất chuyên dụng ngõ ra RS485 Modbus RTU (đo pH, độ ẩm tầng sâu, hàm lượng NPK) và cảm biến SHT30/SHT35 vỏ kim loại chống nước.
  • Tích hợp nguồn năng lượng tái tạo: Bổ sung tấm pin năng lượng mặt trời 20W kết hợp mạch sạc pin Lithium 18650/LiFePO4 có mạch quản lý pin (BMS) để vận hành độc lập không cần lưới điện.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Điện - Điện tử / Viễn thông / IoT: Bản thiết kế là tài liệu tham khảo hoàn chỉnh từ sơ đồ mạch nguyên lý Altium, layout PCB đến thuật toán lập trình nhúng C++ trên Arduino IDE và kiến trúc IoT Cloud.
  • Kỹ sư phát triển phần mềm nhúng: Tham khảo mã nguồn xử lý thời gian thực kết hợp giao thức NTP, Firebase REST Client và phương pháp tối ưu hóa bộ nhớ RAM trên nền tảng hạn chế tài nguyên của ESP8266.
  • Hộ nông dân và chủ trang trại công nghệ cao: Sở hữu giải pháp tưới tiêu tự động với chi phí bình dân, dễ dàng vận hành thông qua giao diện tiếng Việt trên điện thoại thông minh Android.
  • Nhà nghiên cứu nông nghiệp thông minh: Nền tảng mở cho phép thu thập và xây dựng bộ dữ liệu chuỗi thời gian (Dataset) về mối tương quan giữa nhiệt độ, độ ẩm và sự sinh trưởng của từng giống cây trồng.

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật phần cứng và môi trường mạng để triển khai hệ thống là gì?

Hệ thống yêu cầu nguồn cấp ngõ vào 220V AC (thông qua Adapter 12V/2A DC) hoặc nguồn ắc quy 12V. Môi trường mạng cần có sóng Wi-Fi băng tần 2.4 GHz với chuẩn bảo mật WPA/WPA2 và kết nối Internet ổn định. Điện thoại di động sử dụng hệ điều hành Android từ phiên bản 7.0 trở lên để cài đặt tệp tin ứng dụng .apk.

2. Giới hạn mở rộng (Scalability) của hệ thống khi triển khai trang trại lớn?

SoC ESP8266 kết nối trực tiếp Wi-Fi chỉ tối ưu cho bán kính 30-50m tính từ Access Point. Khi mở rộng diện tích lớn, giải pháp tối ưu là chuyển đổi kiến trúc mạng sang topo hình sao hoặc lưới (Mesh) sử dụng công nghệ LoRa/ZigBee với một trạm Gateway trung tâm chịu trách nhiệm truyền dữ liệu lên Firebase/ThingSpeak.

3. Làm thế nào để điều khiển các máy bơm công suất lớn (1HP - 3HP) hoặc van điện từ nhiều khu vực?

Mạch công suất TIP122 hiện tại chỉ đáp ứng tải DC dưới 3A (36W). Để điều khiển máy bơm 220V AC công suất lớn, cần thay thế cổng ngõ ra bằng module Relay trung gian 10A/250VAC có cách ly quang (Optocoupler PC817) hoặc kích hoạt qua khởi động từ (Contactor). Đối với tưới nhiều khu vực, kết hợp mạch mở rộng I/O 74HC595 hoặc MCP23017 để điều khiển hàng loạt van điện từ (Solenoid Valve).

4. Quy trình bảo dưỡng cảm biến và khắc phục sự cố định kỳ như thế nào?

  • Cảm biến mưa: Vệ sinh bề mặt mạch in cảm biến định kỳ mỗi tháng một lần bằng cồn y tế để tránh bám bụi bẩn hoặc rêu mốc làm sai lệch điện trở bề mặt.
  • Cảm biến DHT11: Lắp đặt trong hộp bảo vệ thoáng khí chuyên dụng (Stevenson Screen), tránh ánh nắng mặt trời chiếu rọi trực tiếp hoặc đọng giọt sương bão hòa.

5. Chi phí dự toán chi tiết và thời gian hoàn vốn đầu tư?

Tổng chi phí linh kiện phần cứng (BOM) bao gồm: NodeMCU ESP8266 (75.000 VNĐ), Màn hình LCD 16x2 + I2C (55.000 VNĐ), Cảm biến DHT11 (35.000 VNĐ), Cảm biến mưa (25.000 VNĐ), Nguồn LM2596S + Adapter 12V (85.000 VNĐ), Động cơ bơm R385 + Ống nước (90.000 VNĐ), Mạch in PCB và linh kiện phụ trợ (80.000 VNĐ). Tổng cộng khoảng 445.000 VNĐ, thời gian hoàn vốn ước tính từ 3 đến 4 tháng.


Kết luận

Đề tài tốt nghiệp "Ứng dụng công nghệ IoT để thiết kế, chế tạo hệ thống giám sát nhiệt độ, độ ẩm và bơm nước cho cây trồng" đã hiện thực hóa thành công một sản phẩm kỹ thuật hoàn chỉnh, giải quyết trọn vẹn chuỗi liên kết: Thu thập dữ liệu vi khí hậu $\rightarrow$ Xử lý thuật toán biên $\rightarrow$ Điều khiển chấp hành an toàn $\rightarrow$ Đồng bộ hóa đám mây $\rightarrow$ Giám sát trực quan trên thiết bị di động.

Sản phẩm không chỉ khẳng định tính đúng đắn về mặt lý thuyết điều khiển tự động và kỹ thuật điện tử viễn thông mà còn mang tính ứng dụng thực tiễn cao, hỗ trợ đắc lực cho tiến trình chuyển đổi số trong nông nghiệp công nghệ cao tại Việt Nam.