Giới thiệu dự án

Trong bối cảnh đô thị hóa nhanh chóng và diện tích đất canh tác nông nghiệp ngày càng thu hẹp, mô hình nông nghiệp đô thị ứng dụng công nghệ cao trở thành xu hướng tất yếu. Thủy canh hồi lưu (Nutrient Film Technique - NFT / Recirculating Hydroponic System) là phương pháp canh tác không dùng đất, giúp tiết kiệm đến 80-90% lượng nước tiêu thụ và tối ưu hóa 70% không gian so với phương thức truyền thống. Tuy nhiên, rào cản lớn nhất hiện nay của các hệ thống thủy canh quy mô vừa và nhỏ là sự phụ thuộc nặng nề vào việc giám sát thủ công. Người vận hành phải thường xuyên đo đạc các chỉ số lý hóa của dung dịch, quan sát trực quan từng luống rau để phát hiện sâu bệnh hoặc dấu hiệu thiếu hụt dinh dưỡng.

Đồ án khóa luận tốt nghiệp kỹ sư ngành Hệ thống Thông tin (Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM) với đề tài "Ứng dụng IoT xây dựng hệ thống thủy canh tự động" do sinh viên Nguyễn Anh Trương Thắng và Lê Tiến Vinh thực hiện (dưới sự hướng dẫn của ThS. Nguyễn Thị Kim Phụng) đã giải quyết triệt để bài toán tự động hóa quy trình giám sát và dự đoán sức khỏe cây trồng thông qua sự kết hợp toàn diện giữa phần cứng IoT, nền tảng điện toán đám mây và chuỗi mô hình Trí tuệ nhân tạo (AI) đa tầng.

+-----------------------------------------------------------------------------+
|                            KIẾN TRÚC TỔNG THỂ HỆ THỐNG                      |
+-----------------------------------------------------------------------------+
|  [Hardware & Sensors]             [Cloud IoT Platform]    [AI/Deep Learning]|
|  - Arduino Nano R3                - ThingsBoard           - SSD MobileNet v2|
|  - ESP8266 NodeMCU Lua CP2102     - MQTT Broker (1883)      (Crop Detection)|
|  - DFRobot Gravity TDS (0-1000ppm)- Telemetry DB          - CNN 3-Block     |
|  - DHT11 (Temp/Humidity)          - Dashboard & Alerts      (Health State)  |
|  - MS-CDS05 (Light Sensor)                                - Random Forest   |
|  - Wyze Cam v3 (RTSP Video Stream)                          (Env Prediction)|
+-----------------------------------------------------------------------------+

Problem Statement và Pain Points

Canh tác thủy canh đòi hỏi sự cân bằng nghiêm ngặt của các thông số môi trường: tổng chất rắn hòa tan (TDS), nhiệt độ, độ ẩm và cường độ ánh sáng. Các hạn chế cốt lõi trong thực tế bao gồm:

  1. Thiếu hụt dữ liệu liên tục: Việc đo đạc bằng bút đo cầm tay gián đoạn khiến người trồng không phát hiện kịp thời biến động dinh dưỡng dẫn đến cháy lá hoặc thối rễ.
  2. Độ trễ trong phát hiện bệnh lý: Mắt thường chỉ nhận ra cây bị héo hoặc còi cọc khi tổn thương mô lá đã lan rộng, làm giảm năng suất thu hoạch từ 20% đến 40%.
  3. Thiếu tính liên kết giữa hình ảnh thực tế và môi trường: Chưa có hệ thống thương mại giá rẻ nào tự động ánh xạ trạng thái phát triển của lá cây với thông số dinh dưỡng để đưa ra khuyến nghị điều chỉnh môi trường theo thời gian thực.

Mục tiêu của đề tài

  1. Mục tiêu 1: Thiết kế và chế tạo phần cứng IoT đa cảm biến (TDS, DHT11, MS-CDS05) tích hợp vi điều khiển Arduino Nano R3 và ESP8266 nhằm thu thập dữ liệu môi trường và truyền tải thời gian thực qua giao thức MQTT lên nền tảng ThingsBoard.
  2. Mục tiêu 2: Triển khai luồng thị giác máy tính nhận diện và định vị từng cá thể cây trồng trên giàn thủy canh bằng mô hình Single Shot MultiBox Detector (SSD) với kiến trúc backbone MobileNet-v2 FPN-Lite 320x320.
  3. Mục tiêu 3: Xây dựng mạng nơ-ron tích chập đa lớp (Convolutional Neural Network - CNN) để phân loại trạng thái sinh trưởng (Tươi vs Héo) từ các ảnh cắt đối tượng thu được.
  4. Mục tiêu 4: Tích hợp thuật toán học máy Random Forest để phân tích mối tương quan giữa thông số môi trường từ ThingsBoard và trạng thái cây trồng, từ đó dự đoán nguy cơ suy thoái sức khỏe cây.

Phạm vi và Giới hạn nghiên cứu

  • Đối tượng thử nghiệm: Rau xà lách (Lactuca sativa) và Rau muống (Ipomoea aquatica) – hai giống cây trồng ngắn ngày phổ biến trong thủy canh hồi lưu.
  • Hệ thống canh tác: Giàn thủy canh hồi lưu ống PVC khép kín, bơm Lifetech AP 3500 (60W, 3000L/h, Hmax 3m).
  • Phạm vi dữ liệu: 40 hình ảnh toàn cảnh giàn cây thu thập thực nghiệm từ ngày 01/06/2023 đến 18/06/2023 thông qua camera Wyze Cam v3 truyền luồng RTSP (Real-Time Streaming Protocol).

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

Phân tích hiện trạng và So sánh giải pháp

Tiêu chí kỹ thuật Phương pháp truyền thống Hệ thống IoT Timer/Cảm biến đơn Hệ thống AI-IoT đề xuất trong đồ án
Giám sát môi trường Thủ công (bút đo TDS, nhiệt kế) Cảm biến hiển thị LCD/App Tự động gửi dữ liệu Telemetry liên tục qua MQTT
Nhận diện cây trồng Quan sát bằng mắt thường Không có SSD MobileNet-v2 phân loại & định vị đa đối tượng
Chẩn đoán sức khỏe Phản ứng thụ động khi cây chết Ngưỡng cảm biến cố định Mạng CNN 3 tầng phân loại tự động Tươi / Héo
Khả năng dự báo Dựa trên kinh nghiệm Cảnh báo vượt ngưỡng đơn giản Random Forest kết hợp dữ liệu hình ảnh & môi trường
Chi phí triển khai Thấp, chi phí nhân công cao Trung bình (10 - 20 triệu VNĐ) Tối ưu (~3 - 4 triệu VNĐ nhờ vi điều khiển mã nguồn mở)

Yêu cầu người dùng (Mô hình MoSCoW)

  • Must Have (Bắt buộc): Đo đạc chính xác TDS (0-1000 PPM), nhiệt độ (0-50°C), độ ẩm (20-80% RH); truyền dữ liệu lên ThingsBoard; phân loại chính xác cây xà lách và rau muống.
  • Should Have (Nên có): Tự động cắt khung bao (Bounding Box) của từng cây để phân loại độ tươi/héo đạt độ chính xác trên 80%; giao diện Dashboard trực quan.
  • Could Have (Có thể có): Nhận diện thời gian thực qua luồng camera RTSP với FPS ổn định; cảnh báo email/telegram khi dung dịch TDS giảm sâu.
  • Won't Have (Chưa thực hiện đợt này): Cánh tay robot tự động châm dung dịch dinh dưỡng A/B và điều chỉnh nồng độ pH tự động.

Thiết kế kiến trúc hệ thống

+---------------------------------------------------------------------------------------+
|                                DATA PIPELINE & ARCHITECTURE                           |
+---------------------------------------------------------------------------------------+
| [Sensors Layer]               [Gateway / Edge Layer]             [Processing & AI]    |
| - DFRobot TDS Sensor  (Analog)---> Arduino Nano R3                                    |
| - DHT11 Sensor        (Digital)--> (Read & Convert)                                   |
| - MS-CDS05 LDR        (Analog)----      |                                             |
|                                       (UART)                                          |
|                                         v                                             |
|                                  ESP8266 NodeMCU Lua ----(MQTT Pub)---> ThingsBoard   |
|                                                                              |        |
| [Vision Layer]                                                               v        |
| - Wyze Cam v3 (1080p) --------(RTSP Stream)---------------------------> AI Engine     |
|                                                                         (Colab/Server)|
|                                                                              |        |
|                                +---------------------------------------------+        |
|                                | 1. SSD MobileNet-v2 (Crop xalach/raumuong)          |
|                                | 2. CNN (Predict "tuoi" vs "heo")                    |
|                                | 3. Random Forest (Map telemetry + labels -> Pred)   |
+---------------------------------------------------------------------------------------+

Technology Stack chi tiết

  • Phần cứng điều khiển: Arduino Nano R3 (MCU ATmega328P, 16MHz, 32KB Flash), Module WiFi ESP8266 NodeMCU Lua CP2102.
  • Cảm biến & Cơ cấu chấp hành:
    • DFRobot Gravity TDS Sensor (0 - 1000 PPM, độ chính xác ±10% F.S).
    • Cảm biến nhiệt độ - độ ẩm DHT11 (Sai số nhiệt độ ±2°C, độ ẩm ±5% RH).
    • Cảm biến ánh sáng MS-CDS05 (Phạm vi đo ADC 0 - 1023).
    • Camera Wyze Cam v3 (Độ phân giải 1080p Full HD, FOV 130°, hỗ trợ RTSP).
    • Bơm chìm Lifetech AP 3500 (Công suất 60W, lưu lượng 3000L/h, Hmax 3m).
  • Thư viện nhúng: DHT.h (v1.4.4), PubSubClient.h (v2.8.0), ArduinoJson.h (v6.21.2).
  • Nền tảng AI & Framework: Python 3.10, TensorFlow 2.x Object Detection API, Keras, OpenCV 4.x, Scikit-learn, Pandas, NumPy, LabelImg.
  • Nền tảng IoT Cloud: ThingsBoard Community Edition (hỗ trợ giao thức MQTT cổng 1883, HTTP REST API, WebSockets).

Cấu trúc dữ liệu và Database Mapping

Dữ liệu cảm biến từ ThingsBoard được đồng bộ hóa với kết quả phân loại hình ảnh dựa trên thuộc tính mốc thời gian (timestamp):

+-------------------+     +-------------------------+     +--------------------------+
|  ThingsBoard Data |     |   Vision Classification |     |    Merged Training Set   |
|-------------------|     |-------------------------|     |--------------------------|
| - timestamp (PK)  |     | - timestamp (PK)        |     | - temperature (°C)       |
| - temperature     | <-> | - crop_type (0/1)       | ==> | - humidity (%)           |
| - humidity        |     | - health_status ("tuoi"/|     | - light_intensity        |
| - tds_value       |     |                  "heo") |     | - tds_value (PPM)        |
| - light_intensity |     +-------------------------+     | - target: status (1:tuoi)|
+-------------------+                                     +--------------------------+

Implementation và kết quả thực nghiệm

1. Luồng phát hiện và định vị cây trồng (SSD MobileNet-v2)

Sử dụng mô hình phát hiện đối tượng ssd-mobilenet-v2-fpnlite-320 đã huấn luyện trước trên tập dữ liệu COCO, sau đó thực hiện Fine-tuning trên tập dữ liệu 40 ảnh giàn thủy canh thực tế (gồm 32 ảnh train, 4 ảnh validation, 4 ảnh test) được gán nhãn bằng LabelImg.

Toàn bộ quá trình huấn luyện được thực thi qua TensorFlow 2 Object Detection API với num_train_steps = 10000. Cấu trúc hàm kích hoạt sử dụng hàm ReLU và hàm mất mát kết hợp giữa Localization Loss (Smooth L1) và Confidence Loss (Softmax Focal Loss):

$$\mathcal{L}(x, c, l, g) = \frac{1}{N} \left( \mathcal{L}{conf}(x, c) + \alpha \mathcal{L}{loc}(x, l, g) \right)$$

# Trích xuất đối tượng cây trồng từ tọa độ dự đoán của SSD
def extract_plant_bounding_boxes(image_path, interpreter, input_details, output_details, labels, min_conf=0.5):
    image = cv2.imread(image_path)
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    imH, imW, _ = image.shape
    image_resized = cv2.resize(image_rgb, (320, 320))
    input_data = np.expand_dims(image_resized, axis=0)

    # Chạy suy luận qua TensorFlow Lite Interpreter
    interpreter.set_tensor(input_details[0]['index'], input_data)
    interpreter.invoke()

    boxes = interpreter.get_tensor(output_details[1]['index'])[0]
    classes = interpreter.get_tensor(output_details[3]['index'])[0]
    scores = interpreter.get_tensor(output_details[0]['index'])[0]

    xalach_crops, raumuong_crops = [], []
    for i in range(len(scores)):
        if scores[i] > min_conf:
            ymin = int(max(1, (boxes[i][0] * imH)))
            xmin = int(max(1, (boxes[i][1] * imW)))
            ymax = int(min(imH, (boxes[i][2] * imH)))
            xmax = int(min(imW, (boxes[i][3] * imW)))
            
            crop = image[ymin:ymax, xmin:xmax]
            if labels[int(classes[i])] == 'xalach':
                xalach_crops.append(crop)
            elif labels[int(classes[i])] == 'raumuong':
                raumuong_crops.append(crop)
                
    return xalach_crops, raumuong_crops
  • Kết quả huấn luyện SSD:
    • Loss/classification_loss: 0.0442
    • Loss/localization_loss: 0.0138
    • Loss/total_loss: ~0.068
    • Chỉ số mAP tổng quan: 24.84% (Rau muống đạt 25.27%, Xà lách đạt 24.40%).
    • Tốc độ suy luận trên luồng RTSP thời gian thực: 11 - 15 FPS.

2. Luồng phân loại trạng thái sức khỏe cây (CNN Architecture)

Từ mô hình SSD, hệ thống tự động cắt và thu được 400 hình ảnh đối tượng cá thể:

  • Rau muống (76 ảnh): 52 ảnh tươi, 24 ảnh héo.
  • Rau xà lách (324 ảnh): 227 ảnh tươi, 97 ảnh héo.
  • Tổng tập dữ liệu: 279 ảnh tươi (70%) và 121 ảnh héo (30%).

Dữ liệu được tiền xử lý đưa về kích thước chuẩn $320 \times 320 \times 3$, chuẩn hóa giá trị pixel $[0, 1]$ và chia theo tỷ lệ 80% Train (320 ảnh) và 20% Test (80 ảnh).

+-----------------------------------------------------------------------------+
|                     KIẾN TRÚC MẠNG NƠ-RON TÍCH CHẬP (CNN)                  |
+-----------------------------------------------------------------------------+
| Layer (type)                  Output Shape             Param #              |
|=============================================================================|
| Input Layer                   (None, 320, 320, 3)      0                    |
| Conv2D (32 filters 3x3, ReLU) (None, 318, 318, 32)     896                  |
| MaxPooling2D (2x2)            (None, 159, 159, 32)     0                    |
| Conv2D (64 filters 3x3, ReLU) (None, 157, 157, 64)     18,496               |
| MaxPooling2D (2x2)            (None, 78, 78, 64)       0                    |
| Conv2D (128 filters 3x3, ReLU)(None, 76, 76, 128)     73,856               |
| MaxPooling2D (2x2)            (None, 38, 38, 128)      0                    |
| Flatten                       (None, 184832)           0                    |
| Dense (128 units, ReLU)       (None, 128)              23,658,624           |
| Dense (2 units, Softmax)      (None, 2)                258                  |
|=============================================================================|
| Total params: 23,752,130 (Trainable: 23,752,130)                            |
+-----------------------------------------------------------------------------+
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Xây dựng mô hình CNN 3 lớp tích chập
model_cnn = Sequential([
    Conv2D(32, (3, 3), activation='relu', input_shape=(320, 320, 3)),
    MaxPooling2D(pool_size=(2, 2)),
    
    Conv2D(64, (3, 3), activation='relu'),
    MaxPooling2D(pool_size=(2, 2)),
    
    Conv2D(128, (3, 3), activation='relu'),
    MaxPooling2D(pool_size=(2, 2)),
    
    Flatten(),
    Dense(128, activation='relu'),
    Dense(2, activation='softmax')
])

model_cnn.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Huấn luyện mô hình đạt Accuracy: 0.850, Loss: 0.573 trên tập kiểm tra
  • Đánh giá hiệu năng:
    • Độ chính xác (Accuracy): 85.0% trên tập test độc lập.
    • Hàm mất mát (Cross-Entropy Loss): 0.573.
    • Tốc độ suy luận End-to-End kèm SSD theo thời gian thực: 1 - 2 FPS.

3. Thuật toán dự đoán tương quan môi trường (Random Forest)

Dữ liệu cảm biến được ESP8266 gửi định kỳ lên ThingsBoard gồm 4 thuộc tính đầu vào: $x_0$ (Nhiệt độ), $x_1$ (Độ ẩm), $x_2$ (Cường độ ánh sáng), $x_3$ (Nồng độ TDS). Nhãn quyết định $y \in {0: \text{Héo}, 1: \text{Tươi}}$ được ánh xạ tự động từ kết quả phân loại của mô hình CNN.

Thuật toán Random Forest áp dụng phương pháp Bootstrap Aggregation (Bagging) kết hợp Feature Randomness để tạo tập hợp $N$ cây quyết định độc lập. Dự đoán cuối cùng $\hat{y}$ được xác định thông qua cơ chế bỏ phiếu đa số (Majority Voting):

$$\hat{y} = \operatorname{mode} \left( { T_1(x), T_2(x), \dots, T_B(x) } \right)$$

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# Ánh xạ dữ liệu Telemetry ThingsBoard với nhãn hình ảnh
# X = [temperature, humidity, light, tds_value], y = [0 (heo), 1 (tuoi)]
X_train, X_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=42)

rf_model = RandomForestClassifier(n_estimators=100, max_features='sqrt', oob_score=True, random_state=42)
rf_model.fit(X_train, y_train)

y_pred = rf_model.predict(X_test)
print(f"Random Forest Accuracy: {accuracy_score(y_test, y_pred) * 100:.2f}%")

Đổi mới và đóng góp khoa học

Cải tiến kỹ thuật nổi bật

  1. Kiến trúc thị giác 2 giai đoạn (Cascaded Vision Pipeline): Thay vì sử dụng một mạng nơ-ron phân loại toàn cảnh dễ bị nhiễu nền giàn ống thủy canh, đồ án tách bạch rõ ràng khâu phát hiện vị trí (SSD MobileNet-v2) và khâu đánh giá chất lượng sinh học mô lá (CNN 3-Block), nâng độ chính xác nhận diện trạng thái lên 85%.
  2. Cơ chế gắn nhãn bán tự động cho dữ liệu môi trường: Dữ liệu cảm biến IoT vốn không có nhãn trạng thái sinh học. Bằng việc lấy nhãn dự đoán từ CNN làm Ground Truth cho bảng dữ liệu Telemetry, đồ án đã tự động hóa 100% quy trình gán nhãn cho mô hình Random Forest mà không cần chuyên gia nông học can thiệp thủ công từng mốc giờ.
  3. Tối ưu hóa chi phí phần cứng (Edge-Cloud Low Cost): Sử dụng kết hợp Arduino Nano R3 xử lý tín hiệu tương tự (ADC) và ESP8266 truyền thông WiFi giúp giảm chi phí phần cứng điều khiển xuống dưới 500.000 VNĐ, sẵn sàng cho sản xuất hàng loạt.

So sánh với các nghiên cứu trước đây

+----------------------------------------------------------------------------------------------------+
|                                    BẢNG SO SÁNH CÁC CÔNG TRÌNH                                     |
+------------------------------+-------------------------+--------------------+----------------------+
| Tác giả / Nghiên cứu         | Công nghệ áp dụng       | Đối tượng giám sát | Điểm hạn chế         |
+------------------------------+-------------------------+--------------------+----------------------+
| Chu Đức Hoàng (2017) [2]     | 3G/WiFi, Cảm biến EC/pH | Giám sát chỉ số hồ | Không có Computer    |
|                              |                         | dinh dưỡng         | Vision nhận diện cây |
+------------------------------+-------------------------+--------------------+----------------------+
| Lương Vinh Quốc Danh (2019)[1]| IoT tự động hóa nhà kính| Khí hậu vi mô      | Chỉ dừng ở mức điều  |
|                              |                         |                    | khiển ngưỡng On/Off  |
+------------------------------+-------------------------+--------------------+----------------------+
| Mohamed Farag Taha (2022) [3]| CNN đơn lẻ              | Thiếu hụt N-P-K    | Ảnh chụp phòng lab,  |
|                              |                         | trên lá            | không tích hợp IoT   |
+------------------------------+-------------------------+--------------------+----------------------+
| **Hệ thống đề xuất (2023)**  | **IoT + SSD + CNN + RF**| **Đa đối tượng &   | **Tích hợp toàn diện |
|                              | **+ ThingsBoard Cloud** | **Dự báo vi khí hậu| **từ Hardware -> AI**|
+------------------------------+-------------------------+--------------------+----------------------+

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

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

  1. Mô hình nông nghiệp ban công đô thị: Tự động hóa hoàn toàn việc giám sát cho các hộ gia đình bận rộn; tự động gửi thông báo qua điện thoại khi nồng độ dinh dưỡng TDS hạ dưới 500 PPM hoặc khi phát hiện luống rau có dấu hiệu héo rũ.
  2. Nông trại thẳng đứng (Vertical Urban Farm): Quản lý hàng trăm ống thủy canh nhiều tầng bằng camera quét tự động kết hợp xử lý AI tập trung, cắt giảm 65% chi phí nhân công kiểm tra luống.

Bảng dự toán chi phí phần cứng (BoM - Bill of Materials)

Linh kiện / Thiết bị Thông số kỹ thuật Số lượng Đơn giá (VNĐ) Thành tiền (VNĐ)
Arduino Nano R3 ATmega328P, 16MHz 01 75.000 75.000
ESP8266 NodeMCU Lua CP2102, 2.4GHz WiFi 01 85.000 85.000
DFRobot Gravity TDS Đo chất rắn hòa tan 0-1000 PPM 01 220.000 220.000
Cảm biến DHT11 Đo nhiệt độ và độ ẩm không khí 01 35.000 35.000
Cảm biến MS-CDS05 Quang trở đo cường độ sáng 01 15.000 15.000
Bơm Lifetech AP 3500 60W, 3000L/h, Hmax 3m 01 180.000 180.000
Camera Wyze Cam v3 1080p, RTSP, Góc rộng 130° 01 750.000 750.000
Giàn ống PVC & Phụ kiện Khung sắt, ống PVC $\varnothing 90$, rọ nhựa 01 bộ 1.200.000 1.200.000
TỔNG CỘNG 2.560.000 VNĐ

Hiệu quả kinh tế (ROI): Với chi phí đầu tư ban đầu chỉ ~2.5 triệu VNĐ, hệ thống giúp tiết kiệm khoảng 400.000 VNĐ chi phí nhân công và phân bón thất thoát mỗi tháng, đạt điểm hòa vốn sau 6.4 tháng vận hành.


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

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

  • Kích thước Dataset ban đầu: Bộ dữ liệu gồm 40 ảnh giàn và 400 ảnh chi tiết lá cây chụp trong điều kiện ánh sáng tự nhiên từ ngày 01/06/2023 đến 18/06/2023. Khi thời tiết thay đổi đột ngột hoặc ánh sáng chói gắt, độ chính xác nhận diện có thể bị ảnh hưởng.
  • Tốc độ xử lý luồng Vision Real-time: Khi kết hợp chuỗi SSD và CNN, tốc độ xử lý đạt 1 - 2 FPS trên máy trạm thông thường, chưa tối ưu hóa cho các vi xử lý biên tiết kiệm điện.
  • Chưa khép kín vòng điều khiển (Closed-Loop Actuation): Hệ thống mới dừng lại ở mức phát cảnh báo và đưa ra khuyến nghị điều chỉnh môi trường, chưa tích hợp van điện từ và bơm định lượng tự động châm dung dịch dinh dưỡng.

Hướng phát triển tiếp theo

  • Chuyển đổi Edge AI: Nén mô hình CNN và SSD qua định dạng TensorRT / OpenVINO để triển khai trực tiếp trên phần cứng nhúng như NVIDIA Jetson Nano hoặc Raspberry Pi 4 Model B, nâng tốc độ xử lý lên >15 FPS.
  • Mở rộng chủng loại cây trồng: Thu thập thêm dữ liệu của các loại rau ăn quả (cà chua bi, dưa chuột thủy canh, ớt chuông).
  • Tích hợp van xả tự động: Phát triển cụm van tự động điều tiết nồng độ pH (bơm dung dịch pH Up / pH Down) và tự động bù nước khi nồng độ TDS tăng quá ngưỡng do nước bay hơi.

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

+-----------------------------------------------------------------------------+
|                            ĐỐI TƯỢNG HƯỞNG LỢI                              |
+-----------------------------------------------------------------------------+
| [Sinh viên & Học viên]      --> Khung tham chiếu thực tế về kết hợp IoT,    |
|                                 MQTT, ThingsBoard và Deep Learning          |
| [Kỹ sư & Lập trình viên]    --> Kiến trúc mã nguồn mẫu kết nối ESP8266      |
|                                 với TensorFlow Object Detection API         |
| [Nông hộ & Doanh nghiệp]    --> Giải pháp nông nghiệp chính xác giá rẻ,     |
|                                 giúp tăng 25% năng suất, giảm 40% công sức  |
| [Nhà nghiên cứu khoa học]   --> Phương pháp luận kết hợp dữ liệu bảng       |
|                                 (Telemetry) và thị giác máy tính (Vision)   |
+-----------------------------------------------------------------------------+

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

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

Hệ thống yêu cầu tối thiểu một vi điều khiển 8-bit (như Arduino Nano R3), một module WiFi (ESP8266/ESP32), cụm cảm biến TDS/DHT11/Quang trở, camera hỗ trợ giao thức RTSP (1080p) và một máy chủ/máy tính cá nhân cấu hình tối thiểu Intel Core i5 (hoặc máy ảo cloud GPU) có cài đặt Python 3.8+, TensorFlow 2.x để chạy dịch vụ AI.

2. Vì sao đồ án sử dụng SSD MobileNet-v2 thay vì YOLOv5/YOLOv8?

Mô hình ssd-mobilenet-v2-fpnlite-320 có số lượng tham số thấp, tốc độ trích xuất đặc trưng nhanh và kích thước file mô hình nhỏ gọn sau khi lượng tử hóa sang TensorFlow Lite (.tflite). Điều này giúp hệ thống dễ dàng xử lý đồng thời nhiều khung hình trực tiếp từ luồng camera RTSP mà không đòi hỏi GPU đắt tiền.

3. Làm thế nào để mở rộng hệ thống cho quy mô nhà kính 1000m²?

Với quy mô lớn, người dùng chỉ cần bố trí các cụm cảm biến IoT phân tán theo mô hình Mesh (sử dụng ESP-NOW hoặc LoRaWAN) gửi dữ liệu về một Gateway ESP32 tập trung, đồng thời gắn camera IP góc rộng trên hệ ray trượt tự động (Gantry Camera) để quét hình ảnh toàn bộ giàn cây định kỳ theo lịch trình.

4. Hệ thống xử lý thế nào khi mất kết nối Internet?

Khi mất mạng WiFi, vi điều khiển Arduino Nano vẫn duy trì hoạt động cục bộ để đọc cảm biến và điều khiển bơm nước theo chu kỳ rơ-le định giờ cứng. Module ESP8266 sẽ lưu tạm dữ liệu vào bộ nhớ đệm SPIFFS và tự động đẩy dữ liệu bù lên ThingsBoard ngay khi kết nối Internet được khôi phục.

5. Chi phí bảo trì cảm biến và độ bền của đầu đo TDS như thế nào?

Đầu đo cảm biến DFRobot Gravity TDS cần được hiệu chuẩn định kỳ 3 tháng/lần bằng dung dịch đệm chuẩn (1413 $\mu$S/cm). Tuổi thọ trung bình của đầu đo điện cực trong môi trường dinh dưỡng thủy canh là từ 12 đến 18 tháng với chi phí thay thế rất thấp (~150.000 VNĐ).


Kết luận

Đồ án "Ứng dụng IoT xây dựng hệ thống thủy canh tự động" của nhóm sinh viên Trường Đại học Công nghệ Thông tin - ĐHQG TP.HCM đã giải quyết thành công bài toán tự động hóa nông nghiệp chính xác bằng cách kết hợp nhịp nhàng giữa công nghệ IoT và Trí tuệ nhân tạo. Bằng việc xây dựng thành công chuỗi mô hình liên hoàn từ phát hiện cá thể cây (SSD MobileNet-v2 đạt mAP 24.84%), phân loại trạng thái mô lá (CNN đạt độ chính xác 85%) cho đến dự đoán tương quan môi trường (Random Forest), đồ án không chỉ chứng minh tính khả thi về mặt kỹ thuật mà còn mở ra hướng đi mới đầy tiềm năng cho các giải pháp nông nghiệp thông minh chi phí thấp tại Việt Nam.