Giới thiệu dự án

Nông nghiệp đô thị và mô hình vườn thông minh (Smart Garden) đang phát triển mạnh mẽ nhằm đáp ứng nhu cầu thực phẩm sạch tại chỗ trong bối cảnh tốc độ đô thị hóa nhanh và biến đổi khí hậu phức tạp. Theo thống kê của Tổ chức Lương thực và Nông nghiệp Liên Hợp Quốc (FAO), các phương pháp tưới truyền thống gây thất thoát từ 30% đến 50% lượng nước ngọt do bay hơi và ngấm sâu không hiệu quả. Tại các hộ gia đình hoặc nông trại quy mô vừa và nhỏ, việc chăm sóc thủ công gặp nhiều rào cản: người trồng thiếu thời gian, lượng nước tưới không được định lượng chính xác (dễ gây úng ngập hoặc khô hạn), và nguy cơ suy giảm chất lượng nông sản.

Vấn đề cốt lõi đặt ra là sự thiếu vắng một hệ thống tưới tự động có chi phí hợp lý, hoạt động bền bỉ ngoài trời, không phụ thuộc vào hạ tầng mạng Wi-Fi diện rộng và có khả năng tự chủ năng lượng. Đề tài "Thiết kế hệ thống tưới cây sử dụng cho vườn thông minh" được nghiên cứu và phát triển bởi sinh viên Cao Hoàng Thiện và Nguyễn Hải Nam, dưới sự hướng dẫn của TS. Phạm Quốc Hùng và ThS. Phan Đình Duy tại Khoa Kỹ thuật Máy tính, Trường Đại học Công nghệ Thông tin (ĐHQG-TP.HCM).

Dự án xác định 5 mục tiêu kỹ thuật cụ thể:

  1. Thiết kế và chế tạo phần cứng cho 03 Sensor Node độc lập thu thập dữ liệu nhiệt độ, độ ẩm không khí và độ ẩm đất.
  2. Xây dựng 01 Gateway trung tâm đóng vai trò cầu nối dữ liệu giữa mạng cảm biến không dây (WSN) và máy chủ đám mây.
  3. Ứng dụng giao thức truyền thông không dây LoRa (Long Range) băng tần 433 MHz để kết nối ổn định tầm xa trong môi trường nhiều vật cản.
  4. Triển khai máy chủ lưu trữ dữ liệu thời gian thực và Website giám sát - điều khiển hai chế độ (Manual và Automatic).
  5. Tích hợp nguồn năng lượng tái tạo (pin mặt trời kết hợp mạch sạc thông minh CN3791) đảm bảo hệ thống vận hành liên tục.

Hệ thống giải quyết bài toán tưới tiêu thông qua kiến trúc phân tán: các Node cảm biến đo đạc tham số vi khí hậu và độ ẩm đất, gửi dữ liệu về Gateway qua LoRa, sau đó Gateway chuyển tiếp lên Server qua giao thức MQTT/WebSocket để phân tích và kích hoạt động cơ tưới nhỏ giọt chính xác theo nhu cầu sinh trưởng của cây trồng.

[ Sensor Nodes (STM32 + LoRa) ] 
       │ (LoRa 433 MHz ~500m)
       ▼
[ Gateway (ESP32 + LoRa) ] 
       │ (Wi-Fi / MQTT Protocol)
       ▼
[ IoT Server (NodeJS / Express / MongoDB) ] 
       │ (WebSocket / HTTP REST API)
       ▼
[ Web Dashboard (ReactJS) ]

Phạm vi và giới hạn: Hệ thống triển khai thử nghiệm với 01 Gateway và 03 Node cảm biến trong bán kính kiểm thử thực địa 500 m. Nguồn cấp cho mỗi Node sử dụng cell pin Li-ion 18650 sạc qua tấm pin năng lượng mặt trời 9V - 2W. Thuật toán tưới tập trung vào kiểm soát ngưỡng độ ẩm đất kết hợp giám sát nhiệt - ẩm môi trường.


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

Phân tích hiện trạng

Nghiên cứu tiến hành khảo sát và đánh giá các giải pháp nông nghiệp thông minh thương mại và học thuật hiện hành:

Tiêu chí MimosaTEK NextFarm NMC / Fertikit Đề tài nghiên cứu WSN (Rajput et al.) Giải pháp đề tài (LoRa Smart Garden)
Công nghệ không dây Cellular (3G/4G) Cellular / Wi-Fi GPRS / Zigbee LoRa (SX1278 - 433 MHz)
Chi phí đầu tư Rất cao (> 10 triệu VNĐ) Cao (Phù hợp trang trại lớn) Trung bình (Dạng mô hình lab) Thấp - Tối ưu cho vườn thông minh
Tích hợp cảm biến/Node Tách rời từng trạm riêng Trạm tập trung Cảm biến rời rạc Tích hợp đa cảm biến + Relay + Bơm/Node
Nguồn năng lượng Pin chuyên dụng / Lưới điện Lưới điện 220V Nguồn pin tiêu chuẩn Pin mặt trời + Mạch sạc MPPT CN3791
Phạm vi phủ sóng Phụ thuộc sóng di động Phụ thuộc Wi-Fi/4G Hạn chế (Zigbee < 100m) Tối ưu ngoài trời (500m - 5km)

Yêu cầu hệ thống được phân loại theo mô hình MoSCoW:

  • Must have: Đo độ ẩm đất, nhiệt độ - độ ẩm không khí (DHT11); truyền thông LoRa không dây giữa Node và Gateway; điều khiển bật/tắt Relay bơm nước 5VDC; giao diện Web Dashboard hiển thị trạng thái.
  • Should have: Chế độ tự động hóa tưới theo ngưỡng độ ẩm cài đặt trên Web; cơ chế sạc pin mặt trời tự động với bảo vệ quá nạp/quá xả; lưu trữ lịch sử dữ liệu trên MongoDB.
  • Could have: Giao diện cấu hình mạng Wi-Fi/MQTT cho Gateway trực tiếp qua SoftAP/Web Config; biểu đồ trực quan hóa dữ liệu thời gian thực qua WebSocket.
  • Won't have: Tính năng châm phân tự động đa kênh NPK; nhận diện sâu bệnh bằng camera AI Edge (định hướng cho phiên bản mở rộng).

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 4 tầng chuẩn IoT:

graph TD
    subgraph Tầng Cảm Biến & Thiết Bị (Perception Layer)
        N1[Node 1: STM32 + DHT11 + Soil Sensor + Pump]
        N2[Node 2: STM32 + DHT11 + Soil Sensor + Pump]
        N3[Node 3: STM32 + DHT11 + Soil Sensor + Pump]
    end

    subgraph Tầng Mạng (Network Layer)
        GW[Gateway: ESP32 + LoRa SX1278]
    end

    subgraph Tầng Xử Lý Dữ Liệu (Middleware & Cloud Layer)
        Broker[MQTT Broker Mosquitto]
        Srv[NodeJS / Express Server]
        DB[(MongoDB Database)]
    end

    subgraph Tầng Ứng Dụng (Application Layer)
        UI[ReactJS Web Dashboard]
    end

    N1 -->|LoRa 433MHz| GW
    N2 -->|LoRa 433MHz| GW
    N3 -->|LoRa 433MHz| GW
    GW -->|MQTT over Wi-Fi| Broker
    Broker <--> Srv
    Srv <--> DB
    Srv -->|WebSocket / REST| UI
    UI -->|Control Command| Srv

Danh mục công nghệ và thông số phần cứng:

  • Vi điều khiển Node: STM32F103C8T6 (ARM Cortex-M3 32-bit, 72 MHz, 64 KB Flash, 20 KB SRAM).
  • Vi điều khiển Gateway: ESP32 NodeMCU-32S (Xtensa Dual-Core 32-bit, 240 MHz, 520 KB SRAM, Wi-Fi 802.11 b/g/n, BLE 4.2).
  • Module RF Transceiver: Semtech SX1278 LoRa (Tần số 433 MHz, Spreading Factor SF7-SF12, Bandwidth 125-500 kHz, Coding Rate 4/5, giao tiếp SPI).
  • Cảm biến: Cảm biến độ ẩm đất điện cực kết hợp IC so sánh LM393; Cảm biến nhiệt độ - độ ẩm môi trường DHT11 (chuẩn 1-Wire, dải đo 0-50°C sai số ±2°C, 20-90%RH sai số ±5%RH).
  • Cơ cấu chấp hành & Nguồn: Relay cách ly 5VDC (Active Low); Động cơ bơm mini 5VDC; Pin Li-ion 18650 3.7V; Tấm pin năng lượng mặt trời 9V - 2.9W (115 x 115 mm); Mạch quản lý sạc CN3791; Mạch tăng áp DC-DC MT3608 (Boost lên 5V cấp nguồn cho bơm và relay).
  • Nền tảng phần mềm: Node.js v18.x, ExpressJS v4.18, ReactJS v18.2, MongoDB v6.0, MQTT Protocol (Eclipse Mosquitto).

Cấu trúc gói tin truyền thông LoRa nhị phân (Binary Packet Struct) giữa Gateway và Node:

// Cấu trúc gói tin gửi từ Node về Gateway (Telemetry Packet)
typedef struct __attribute__((packed)) {
    uint8_t  node_id;       // ID của Node (0x01, 0x02, 0x03)
    uint8_t  msg_type;      // 0x01: Dữ liệu cảm biến định kỳ, 0x02: Phản hồi lệnh
    int8_t   temperature;   // Giá trị nhiệt độ (°C)
    uint8_t  humidity;      // Giá trị độ ẩm không khí (%RH)
    uint8_t  soil_moisture; // Giá trị độ ẩm đất (%)
    uint8_t  relay_state;   // Trạng thái Relay (0: Tắt, 1: Bật)
    uint16_t battery_mv;    // Điện áp pin (mV)
    uint8_t  checksum;      // XOR Checksum kiểm tra toàn vẹn gói tin
} LoRa_Telemetry_Packet;

// Cấu trúc gói tin điều khiển từ Gateway gửi xuống Node (Command Packet)
typedef struct __attribute__((packed)) {
    uint8_t target_node_id; // ID Node đích
    uint8_t command;        // 0x10: Yêu cầu dữ liệu, 0x20: Bật Relay, 0x21: Tắt Relay
    uint16_t duration_sec;  // Thời gian tưới (áp dụng cho chế độ hẹn giờ)
    uint8_t checksum;       // XOR Checksum
} LoRa_Command_Packet;

Cấu trúc lược đồ dữ liệu cơ sở dữ liệu MongoDB:

const SensorDataSchema = new mongoose.Schema({
  nodeId: { type: Number, required: true, index: true },
  temperature: { type: Number, required: true },
  humidity: { type: Number, required: true },
  soilMoisture: { type: Number, required: true },
  relayState: { type: Boolean, required: true },
  batteryVoltage: { type: Number },
  mode: { type: String, enum: ['MANUAL', 'AUTO'], default: 'AUTO' },
  timestamp: { type: Date, default: Date.now, index: true }
});

Phương pháp nghiên cứu và phát triển

Dự án áp dụng mô hình phát triển gia tăng (Iterative/Agile Engineering):

  1. Giai đoạn 1 (Tuần 1 - 4): Nghiên cứu lý thuyết giao thức LoRa, SPI, 1-Wire, MQTT; thiết kế sơ đồ nguyên lý phần cứng Node và Gateway.
  2. Giai đoạn 2 (Tuần 5 - 8): Gia công mạch in (PCB), tích hợp driver ngoại vi trên STM32 và ESP32, xây dựng thuật toán truyền nhận dữ liệu chống xung đột.
  3. Giai đoạn 3 (Tuần 9 - 10): Phát triển Backend API, MQTT Broker handler, xây dựng Web Dashboard ReactJS và hệ thống biểu đồ thời gian thực.
  4. Giai đoạn 4 (Tuần 11 - 12): Kiểm thử toàn diện tại hiện trường, đánh giá suy hao gói tin theo khoảng cách và phân tích dòng tiêu thụ năng lượng.

Bảng đánh giá rủi ro và giải pháp khắc phục:

Rủi ro kỹ thuật Mức độ Biện pháp giảm thiểu
Suy hao tín hiệu LoRa do tán xạ cây cối Trung bình Tối ưu hóa Spreading Factor (SF9/SF10), tăng công suất phát lên +20dBm
Xung đột gói tin khi nhiều Node gửi đồng thời Cao Gateway áp dụng cơ chế Polling (Master-Slave Polling) điều phối gửi dữ liệu
Cạn kiệt nguồn pin khi trời mưa kéo dài Cao Tích hợp chế độ ngủ sâu (Deep Sleep/Stop Mode) trên STM32, tự ngắt mạch bơm khi pin < 3.3V
Oxy hóa điện cực cảm biến độ ẩm đất Trung bình Cấp nguồn cho cảm biến ngắt quãng thông qua chân GPIO thay vì cấp liên tục

Triển khai và kết quả thực nghiệm

Quá trình phát triển và thuật toán cốt lõi

Thuật toán xử lý trên Node (STM32F103C8T6) hoạt động theo cơ chế ngắt nhận lệnh từ Gateway qua module LoRa SX1278 (giao tiếp SPI) hoặc định kỳ thức dậy lấy mẫu cảm biến:

#include "stm32f1xx_hal.h"
#include "lora_sx1278.h"
#include "dht11.h"

#define SOIL_MOISTURE_PIN   GPIO_PIN_0
#define SOIL_ADC_CHANNEL    ADC_CHANNEL_0
#define RELAY_PIN           GPIO_PIN_12
#define NODE_ADDRESS        0x01

LoRa_Telemetry_Packet txPacket;
LoRa_Command_Packet   rxPacket;

void Process_Gateway_Command(void) {
    if (LoRa_ReceivePacket((uint8_t*)&rxPacket, sizeof(LoRa_Command_Packet))) {
        // Kiểm tra đúng địa chỉ Node đích và kiểm tra Checksum
        if (rxPacket.target_node_id == NODE_ADDRESS) {
            uint8_t calc_checksum = rxPacket.target_node_id ^ rxPacket.command ^ (rxPacket.duration_sec & 0xFF);
            if (calc_checksum == rxPacket.checksum) {
                switch (rxPacket.command) {
                    case 0x20: // Lệnh BẬT Relay
                        HAL_GPIO_WritePin(GPIOB, RELAY_PIN, GPIO_PIN_RESET); // Active Low
                        txPacket.relay_state = 1;
                        break;
                    case 0x21: // Lệnh TẮT Relay
                        HAL_GPIO_WritePin(GPIOB, RELAY_PIN, GPIO_PIN_SET);
                        txPacket.relay_state = 0;
                        break;
                    case 0x10: // Lệnh đọc dữ liệu cảm biến
                        Read_Sensors_And_Respond();
                        break;
                }
            }
        }
    }
}

void Read_Sensors_And_Respond(void) {
    uint8_t temp = 0, hum = 0;
    DHT11_ReadData(&temp, &hum);
    uint32_t adc_val = ADC_ReadChannel(SOIL_ADC_CHANNEL);
    
    // Ánh xạ giá trị ADC 12-bit (0-4095) sang phần trăm độ ẩm đất (0-100%)
    uint8_t soil_pct = (uint8_t)((4095 - adc_val) * 100 / 4095);
    
    txPacket.node_id = NODE_ADDRESS;
    txPacket.msg_type = 0x01;
    txPacket.temperature = (int8_t)temp;
    txPacket.humidity = hum;
    txPacket.soil_moisture = soil_pct;
    txPacket.checksum = txPacket.node_id ^ txPacket.temperature ^ txPacket.humidity ^ txPacket.soil_moisture;
    
    // Gửi gói tin qua sóng LoRa về Gateway
    LoRa_TransmitPacket((uint8_t*)&txPacket, sizeof(LoRa_Telemetry_Packet));
}

Phía Gateway (ESP32), chương trình thực hiện chuyển tiếp hai chiều giữa LoRa và MQTT Broker:

#include <WiFi.h>
#include <PubSubClient.h>
#include <SPI.h>
#include <LoRa.h>

const char* mqtt_topic_telemetry = "smartgarden/telemetry";
const char* mqtt_topic_control   = "smartgarden/control";

void onMqttMessage(char* topic, byte* payload, unsigned int length) {
    // Nhận lệnh điều khiển từ Server qua MQTT
    StaticJsonDocument<200> doc;
    deserializeJson(doc, payload, length);
    
    uint8_t target_id = doc["nodeId"];
    const char* action = doc["action"];
    
    LoRa_Command_Packet cmd;
    cmd.target_node_id = target_id;
    cmd.command = (strcmp(action, "PUMP_ON") == 0) ? 0x20 : 0x21;
    cmd.duration_sec = doc["duration"] | 0;
    cmd.checksum = cmd.target_node_id ^ cmd.command ^ (cmd.duration_sec & 0xFF);
    
    // Đẩy lệnh xuống mạng LoRa
    LoRa.beginPacket();
    LoRa.write((uint8_t*)&cmd, sizeof(LoRa_Command_Packet));
    LoRa.endPacket();
}

Kiểm thử và đo kiểm thực nghiệm

Hệ thống đã trải qua các bài kiểm thử chức năng và hiệu năng ngoài hiện trường:

  1. Kiểm thử cự ly truyền nhận LoRa SX1278 (Công suất phát 17 dBm, SF = 9, BW = 125 kHz):

    • Khoảng cách 100 m (Không vật cản): Tỷ lệ mất gói 0%, RSSI = -78 dBm, SNR = +8.5 dB.
    • Khoảng cách 300 m (Vườn cây rậm rạp): Tỷ lệ mất gói 1.2%, RSSI = -95 dBm, SNR = +4.2 dB.
    • Khoảng cách 500 m (Có nhà màng và cây ăn trái che chắn): Tỷ lệ mất gói 3.8%, RSSI = -112 dBm, SNR = -2.1 dB (vẫn duy trì giải mã dữ liệu ổn định).
  2. Đo đạc dòng tiêu thụ và quản lý năng lượng:

Chế độ hoạt động của Node Dòng điện tiêu thụ ($I_{avg}$) Điện áp ($V_{cc}$) Công suất tiêu thụ
Đọc cảm biến (Active) 18.5 mA 3.3 V 61.05 mW
Phát sóng LoRa TX (+17dBm) 88.0 mA 3.3 V 290.40 mW
Nhận sóng LoRa RX 12.5 mA 3.3 V 41.25 mW
Kích hoạt Bơm 5VDC + Relay 650.0 mA 5.0 V 3250.00 mW
Chế độ ngủ (Stop Mode) 0.85 mA 3.3 V 2.80 mW

Với chu kỳ gửi dữ liệu 5 phút/lần (thời gian phát 150 ms) và kích hoạt bơm tưới trung bình 2 lần/ngày (mỗi lần 3 phút), tổng dung lượng tiêu thụ mỗi ngày là khoảng 95 mAh. Tấm pin mặt trời 9V - 2.9W kết hợp mạch sạc CN3791 cung cấp dòng nạp trung bình 120 - 180 mA dưới nắng tiêu chuẩn, đảm bảo bù đắp hoàn toàn lượng điện tiêu hao chỉ sau 45 - 60 phút nắng/ngày.

Năng lượng nạp (Pin mặt trời 9V + CN3791):  ══════════════════════> ~600 - 900 mAh/ngày
Năng lượng tiêu thụ (Node + Sensors + Bơm): ════> ~95 mAh/ngày
==> Tỷ lệ tự chủ năng lượng: Dư thừa > 600%, đảm bảo hoạt động liên tục ngay cả khi mưa 5-7 ngày.
  1. Kiểm thử thuật toán tưới tự động (Automatic Mode):
    • Ngưỡng thiết lập: Độ ẩm đất dưới 40% tự động kích hoạt tưới nhỏ giọt; ngắt khi đạt ngưỡng 75%.
    • Kết quả: Hệ thống kích hoạt bơm chính xác trong 100% các lần thử nghiệm (30/30 chu kỳ), độ trễ phản hồi từ khi cảm biến chạm ngưỡng đến khi relay đóng là dưới 1.5 giây.

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

Hệ thống mang lại các giá trị đổi mới kỹ thuật so với các giải pháp hiện hành trên thị trường:

  1. Kiến trúc Node All-in-One tích hợp cơ cấu chấp hành tại chỗ: Khác với các hệ thống thương mại tách riêng trạm đo cảm biến và tủ điều khiển tưới trung tâm (như MimosaTEK), giải pháp tích hợp trực tiếp STM32, LoRa, cảm biến và động cơ bơm phân tán trên từng Node, cho phép điều khiển tưới độc lập từng luống cây theo vi khí hậu cục bộ.
  2. Cắt giảm 65% chi phí đầu tư ban đầu: Sử dụng linh kiện COTS (Commercial Off-The-Shelf) hiệu năng cao kết hợp mã nguồn mở (NodeJS, React, FreeRTOS/Bare-metal C), tổng chi phí phần cứng cho cụm 1 Gateway + 3 Node chỉ xấp xỉ 1.800.000 VNĐ, dễ tiếp cận cho hộ gia đình và vườn ươm nhỏ.
  3. Tiết kiệm 32.5% lượng nước tưới: Ứng dụng đầu tưới nhỏ giọt áp lực thấp dẫn nước trực tiếp vào rễ kết hợp kiểm soát ngưỡng ẩm chính xác, loại bỏ hiện tượng tưới thừa gây thối rễ và bay hơi bề mặt.
  4. Độc lập hạ tầng viễn thông tại vùng canh tác: LoRa tầm xa giải quyết triệt để rào cản sóng Wi-Fi yếu ngoài trời hoặc chi phí duy trì SIM 4G đắt đỏ trên từng điểm đo của các giải pháp truyền thống.

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

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

  • Vườn sân thượng đô thị (Rooftop Garden): Tự động hóa chăm sóc rau sạch cho các hộ gia đình bận rộn, theo dõi độ ẩm và điều khiển bật/tắt bơm từ xa khi đi công tác qua giao diện Web.
  • Vườn ươm cây giống & Nhà màng công nghệ cao: Quản lý độ ẩm cục bộ theo từng lô ươm, tự động cân đối lượng nước tưới nhỏ giọt tránh làm trôi giá thể.
  • Cụm cảnh quan sân vườn biệt thự: Vận hành tưới thông minh không cần kéo dây điện chằng chịt nhờ kết nối không dây LoRa và nguồn năng lượng mặt trời.

Phân tích chi phí và hiệu quả kinh tế (ROI)

Bảng hạch toán chi phí phần cứng hoàn thiện hệ thống:

Hạng mục thiết bị Đơn giá (VNĐ) Số lượng Thành tiền (VNĐ)
Kit Blue Pill STM32F103C8T6 65.000 3 195.000
Kit ESP32 NodeMCU-32S 110.000 1 110.000
Module LoRa SX1278 (433MHz) 85.000 4 340.000
Cảm biến DHT11 + Cảm biến độ ẩm đất 45.000 3 bộ 135.000
Module Relay 5V + Bơm mini 5VDC 60.000 3 bộ 180.000
Tấm pin mặt trời 9V 2W + Mạch CN3791 + Pin 18650 140.000 3 bộ 420.000
Hệ thống dây ống tưới nhỏ giọt & phụ kiện 250.000 1 gói 250.000
Mạch tăng áp MT3608 + Vỏ hộp bảo vệ IP65 45.000 4 bộ 180.000
Tổng chi phí chế tạo 1.810.000 VNĐ

Hiệu quả hoàn vốn: So với việc thuê người chăm sóc hoặc lãng phí nước/cây chết (ước tính tổn thất 300.000 - 500.000 VNĐ/tháng cho vườn cảnh quan gia đình), hệ thống đạt điểm hòa vốn (Payback Period) trong vòng 4 đến 6 tháng.


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

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

  • Cảm biến DHT11: Độ nhạy và độ chính xác chưa cao trong môi trường sương mù kéo dài (sai số độ ẩm ±5%RH); tuổi thọ cảm biến độ ẩm đất dạng điện trở dễ bị ăn mòn điện hóa sau 6-9 tháng sử dụng liên tục.
  • Giao thức mạng LoRa P2P tùy biến: Hệ thống hiện sử dụng giao thức Master-Slave Polling đơn giản, chưa áp dụng chuẩn LoRaWAN hoàn chỉnh với cơ chế mã hóa AES-128 và khả năng nhảy tần (Frequency Hopping).
  • Quy mô bơm: Động cơ 5VDC chỉ phù hợp cho quy mô chậu cây nhỏ, chưa kéo được hệ thống van điện từ lớn (Solenoid 12V/24V) dùng cho trang trại diện tích rộng.

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

  1. Nâng cấp cảm biến công nghiệp chuẩn Modbus RS485 (SHT30 cho nhiệt/ẩm không khí và cảm biến đo độ ẩm đất dạng điện dung - Capacitive Soil Sensor).
  2. Chuẩn hóa Gateway lên chuẩn LoRaWAN Gateway đa kênh (hỗ trợ SX1302/SX1303), kết nối The Things Network (TTN).
  3. Ứng dụng mô hình máy học (Machine Learning / TinyML) dự đoán lượng bốc thoát hơi nước của cây trồng ($ET_0$) dựa trên dữ liệu khí tượng tích hợp, tối ưu thuật toán tưới dự báo trước khi đất bị khô.

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

  • Sinh viên ngành Kỹ thuật Máy tính, IoT và Điện tử: Tài liệu tham khảo toàn diện về thiết kế hệ thống nhúng từ tầng phần cứng (STM32, ESP32), giao tiếp ngoại vi (SPI, 1-Wire, ADC), giao thức vô tuyến (LoRa) đến hệ thống Web full-stack.
  • Kỹ sư phát triển IoT: Nắm bắt mô hình triển khai thực tế của kiến trúc lai (Hybrid Gateway LoRa-to-MQTT), phương pháp tối ưu hóa năng lượng cho thiết bị chạy pin.
  • Nông hộ và Hộ gia đình đô thị: Tiếp cận giải pháp tưới thông minh chi phí thấp, giảm 80% thời gian chăm sóc, nâng cao năng suất cây trồng và tiết kiệm tài nguyên nước.
  • Nhà nghiên cứu nông nghiệp chính xác: Cung cấp dữ liệu đo đạc thực nghiệm về mối liên hệ giữa vi khí hậu và độ ẩm đất phục vụ các bài toán tối ưu hóa cây trồng.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu nguồn điện lưới 220V cấp cho Gateway (hoặc sạc dự phòng 5V qua cổng MicroUSB), mạng Wi-Fi 2.4 GHz tại vị trí đặt Gateway để đẩy dữ liệu lên Internet. Các Sensor Node hoạt động hoàn toàn độc lập ngoài vườn nhờ pin năng lượng mặt trời đi kèm.

2. Giới hạn mở rộng số lượng Node trên một Gateway là bao nhiêu?

Với thuật toán Polling và độ trễ phản hồi ~1.2 giây/Node, một Gateway ESP32 có thể quản lý ổn định từ 20 đến 30 Sensor Node trong chu kỳ cập nhật dữ liệu 5 phút/lần mà không xảy ra hiện tượng nghẽn mạng LoRa.

3. Hệ thống có thể tích hợp với các nền tảng nhà thông minh khác không?

Có. Nhờ Backend xây dựng trên nền tảng chuẩn mở với giao thức MQTT và RESTful API, hệ thống dễ dàng tích hợp vào các hệ sinh thái Smart Home như Home Assistant, Apple HomeKit hoặc Google Home.

4. Chi phí bảo trì định kỳ của hệ thống ra sao?

Do sử dụng pin mặt trời và mạch sạc thông minh, chi phí vận hành gần như bằng 0. Người dùng chỉ cần vệ sinh bề mặt tấm pin mặt trời và kiểm tra đầu lọc tưới nhỏ giọt định kỳ 3-6 tháng/lần để tránh cặn bẩn làm tắc vòi tưới.

5. Cần xử lý thế nào nếu gặp lỗi mất kết nối LoRa giữa Node và Gateway?

Thực hiện kiểm tra theo quy trình chuẩn: (1) Kiểm tra đèn LED chỉ thị nguồn trên Node STM32; (2) Đo điện áp pin 18650 (phải > 3.4V); (3) Kiểm tra anten LoRa 433MHz có bị lỏng hoặc đứt ngầm; (4) Khởi động lại Gateway qua nút Reset trên bo mạch ESP32.


Kết luận

Đồ án "Thiết kế hệ thống tưới cây sử dụng cho vườn thông minh" đã giải quyết thành công bài toán tự động hóa chăm sóc cây trồng thông qua việc làm chủ toàn bộ chuỗi công nghệ: từ phần cứng thu thập dữ liệu nhúng (STM32, LoRa SX1278), thiết bị điều phối trung tâm (ESP32 Gateway) đến máy chủ xử lý dữ liệu và giao diện giám sát trực quan (NodeJS, MongoDB, ReactJS). Kết quả thực nghiệm khẳng định hệ thống hoạt động ổn định ở khoảng cách 500 m, tự chủ 100% năng lượng mặt trời và giảm thiểu hơn 30% lượng nước tiêu thụ so với tưới thủ công. Đây là nền tảng vững chắc để tiếp tục mở rộng quy mô ứng dụng vào các mô hình nông nghiệp đô thị và trang trại thông minh bền vững.