Giới thiệu dự án

Trong bối cảnh đô thị hóa nhanh chóng và xu hướng phát triển nông nghiệp công nghệ cao (Smart Agriculture), nhu cầu trồng cây xanh, hoa cảnh tại các không gian hạn chế như ban công, sân thượng căn hộ chung cư đang gia tăng mạnh mẽ. Tuy nhiên, việc duy trì chế độ tưới tiêu khoa học thường gặp trở ngại do nhịp sống bận rộn và sự thiếu hụt thông tin chính xác về các thông số vi khí hậu (độ ẩm đất, nhiệt độ môi trường). Xuất phát từ thực tiễn đó, đồ án "Xây dựng giải pháp IoT cho vườn hoa mini" thuộc ngành Công nghệ Kỹ thuật Điện tử - Truyền thông tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (SVTH: Lư An Chiêu, Nguyễn Tường Hân; GVHD: ThS. Nguyễn Văn Hiệp) đã nghiên cứu và phát triển một hệ thống tưới tự động tích hợp công nghệ Internet of Things (IoT).

+-------------------------------------------------------------------------+
|                          HỆ THỐNG IOT VƯỜN HOA MINI                     |
|                                                                         |
|   +-------------------+      +------------------+      +------------+   |
|   | Cảm biến LM35     | ---> |                  | ---> | ESP8266-01 |   |
|   | Cảm biến FC-28 x3 | ---> | Arduino Uno R3   |      +-----+------+   |
|   +-------------------+      | (ATmega328P MCU) |            | (UART)   |
|                              |                  |            v (Wi-Fi)  |
|   +-------------------+      |                  |      +------------+   |
|   | Bơm DC Ogihara    | <--- |                  |      | ThingSpeak |   |
|   | Solenoid Valve x4 | <--- | Module Relay x8  |      | IoT Cloud  |   |
|   +-------------------+      +------------------+      +-----+------+   |
|                                                              | (HTTP)   |
|                                                              v          |
|                                                        +------------+   |
|                                                        | Smartphone |   |
|                                                        | App Android|   |
|                                                        +------------+   |
+-------------------------------------------------------------------------+

Vấn đề thực tiễn và Pain Points

  • Thiếu kiểm soát lượng nước tưới: Tưới thủ công dễ dẫn đến tình trạng ngập úng hoặc khô hạn cục bộ, đặc biệt với các loài cây nhạy cảm với nước như hoa mười giờ (Portulaca grandiflora).
  • Rào cản về mặt địa lý: Người dùng không thể theo dõi hoặc can thiệp tưới tiêu khi vắng nhà hoặc đi công tác dài ngày.
  • Chi phí hệ sinh thái công nghiệp cao: Các hệ thống tưới tự động công nghiệp (PLC/SCADA) có giá thành đắt đỏ, cấu trúc cồng kềnh, không tối ưu cho quy mô vi mô hộ gia đình.

Mục tiêu kỹ thuật của đề tài

  1. Thiết kế và chế tạo mô hình cơ khí giàn hoa 3 tầng chịu lực, tích hợp tủ điện chuẩn bảo vệ Ingress Protection IP53.
  2. Thiết kế khối vi điều khiển trung tâm thu thập dữ liệu từ cảm biến nhiệt độ LM35 và 3 cảm biến độ ẩm đất FC-28 thông qua bộ chuyển đổi Analog-to-Digital Converter (ADC) 10-bit.
  3. Tích hợp module Wi-Fi ESP8266-01 giao tiếp chuẩn UART để đẩy dữ liệu lên nền tảng đám mây ThingSpeak qua giao thức HTTP/REST API.
  4. Phát triển ứng dụng di động Android (Java/Android Studio) hỗ trợ giám sát thời gian thực, thiết lập ngưỡng độ ẩm tự động và điều khiển thủ công các van điện từ theo từng tầng.

Phạm vi và giới hạn hệ thống

  • Quy mô: Khung giàn 3 tầng độc lập, kích thước tổng thể $130 \times 50\text{ cm}$.
  • Thiết bị công suất: 01 máy bơm Brushless DC 24V/26W và 04 van điện từ (Solenoid Valve) 12V/5W (01 van tổng và 03 van phân tầng).
  • Hạ tầng truyền thông: Mạng Wi-Fi băng tần 2.4 GHz chuẩn IEEE 802.11 b/g/n; chu kỳ cập nhật dữ liệu đám mây phụ thuộc vào giới hạn ThingSpeak (15 giây/request đối với tài khoản Free).

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

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

Hệ thống tưới tự động thông minh được định vị dựa trên việc tối ưu chi phí và tính linh hoạt so với các giải pháp hiện hữu trên thị trường:

Tiêu chí so sánh Phương pháp tưới thủ công Hệ thống tưới hẹn giờ (Timer Relay) Giải pháp IoT trong đồ án
Cơ chế kích hoạt Cảm tính con người Định thời cố định (Open-loop) Hồi tiếp dữ liệu cảm biến (Closed-loop)
Khả năng giám sát từ xa Không hỗ trợ Không hỗ trợ Giám sát Real-time qua Android App
Tiết kiệm tài nguyên nước Thấp (thất thoát cao) Trung bình ($10 - 20%$) Rất cao (Tiết kiệm $30 - 60%$)
Độ phức tạp lắp đặt Không yêu cầu Thấp Trung bình (Dễ mở rộng)
Chi phí đầu tư Tối thiểu $300.000 - 500.000\text{ VNĐ}$ $800.000 - 1.200.000\text{ VNĐ}$

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must Have: Đọc chính xác độ ẩm đất 3 tầng, kích hoạt bơm/van khi độ ẩm dưới ngưỡng cài đặt, ngắt bơm khi đủ ẩm, kết nối Wi-Fi ổn định.
  • Should Have: Hiển thị nhiệt độ môi trường, giao diện điều khiển thủ công Override từng tầng trên Smartphone, hẹn giờ theo khung giờ trong ngày.
  • Could Have: Cảnh báo cạn nước bể chứa, ghi nhật ký biểu đồ tưới trực tuyến trên ThingSpeak.
  • Won't Have: Nhận diện sâu bệnh bằng Camera AI, định lượng dung dịch thủy canh tự động (dành cho các giai đoạn nâng cấp tiếp theo).

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

graph TD
    subgraph SENSING_LAYER ["Lớp Cảm biến"]
        S1[LM35 - Nhiệt độ] -->|Analog 10mV/°C| MCU[Arduino Uno R3 - ATmega328P]
        S2[FC-28 Tầng 1] -->|Analog 0-5V| MCU
        S3[FC-28 Tầng 2] -->|Analog 0-5V| MCU
        S4[FC-28 Tầng 3] -->|Analog 0-5V| MCU
    end

    subgraph PROCESSING_POWER ["Lớp Xử lý & Nguồn"]
        PWR[Nguồn Tổ Ong SMPS 24V/12V] -->|12V DC| LM2596[Buck LM2596 -> 9V]
        LM2596 -->|9V DC| MCU
        MCU -->|5V DC| AMS1117[LDO AMS1117 -> 3.3V]
        AMS1117 -->|3.3V DC| ESP[Module Wi-Fi ESP8266-01]
    end

    subgraph ACTUATION_LAYER ["Lớp Chấp hành"]
        MCU -->|Digital Out D5-D9| RELAY[Module Relay 8 kênh Optocoupler]
        RELAY -->|Switching 24V| PUMP[Bơm Brushless Ogihara 24V]
        RELAY -->|Switching 12V| V0[Solenoid Valve Tổng]
        RELAY -->|Switching 12V| V1[Solenoid Valve Tầng 1]
        RELAY -->|Switching 12V| V2[Solenoid Valve Tầng 2]
        RELAY -->|Switching 12V| V3[Solenoid Valve Tầng 3]
    end

    subgraph CLOUD_APP ["Lớp Điện toán Đám mây & Ứng dụng"]
        MCU <-->|UART SoftwareSerial 9600 bps| ESP
        ESP <-->|Wi-Fi 802.11 b/g/n / HTTP REST| TS[ThingSpeak IoT Platform]
        TS <-->|JSON Data Fetch / Update| APP[Android App UI / Android Studio]
    end

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

  1. Khối điều khiển trung tâm: Vi điều khiển ATmega328P (Arduino Uno R3), xung nhịp 16 MHz, bộ nhớ Flash 32 KB, SRAM 2 KB, 6 kênh ADC 10-bit ($V_{ref} = 5.0\text{V}$, bước lượng tử $\Delta V \approx 4.887\text{ mV}$).
  2. Khối cảm biến:
    • Cảm biến nhiệt độ LM35: Dải đo $-55^\circ\text{C}$ đến $+150^\circ\text{C}$, độ tuyến tính $10\text{ mV/}^\circ\text{C}$, dòng tiêu thụ cực thấp $60\ \mu\text{A}$.
    • Cảm biến độ ẩm đất FC-28: Gồm 2 cực mạ niken và IC so sánh LM393, dòng tiêu thụ $250\text{ nA/module}$, dải đo phân định theo 3 trạng thái: Đất khô ($W < 5%$), Đất ẩm ($5% \le W \le 30%$), Đất ngập ướt ($W > 30%$).
  3. Khối truyền thông: Module ESP8266-01 (SoC 32-bit Tensilica L106), hỗ trợ chuẩn 802.11 b/g/n, chế độ bảo mật WPA/WPA2, cấu hình tập lệnh AT Command qua UART.
  4. Khối nguồn và hạ áp (Power Management):
    • Nguồn xung Switch-Mode Power Supply (SMPS) tổ ong 2 ngõ ra: $24\text{V}/2\text{A}$ (cấp bơm) và $12\text{V}/6\text{A}$ (cấp van và hạ áp).
    • Module Step-Down Buck Converter LM2596: Hạ áp $12\text{V} \rightarrow 9\text{V}$ cấp cổng Vin của Arduino (tối ưu hóa hiệu suất nhiệt so với ổn áp tuyến tính 7809).
    • IC Low-Dropout Regulator (LDO) AMS1117-3.3: Chuyển đổi $5\text{V} \rightarrow 3.3\text{V}$ với khả năng cấp dòng định mức lên đến $800\text{ mA}$, đáp ứng đỉnh dòng thu phát Wi-Fi của ESP8266 (khoảng $80 - 200\text{ mA}$).

Implementation và kết quả

Quy trình phát triển và tích hợp phần cứng

Quá trình thi công trải qua các giai đoạn nghiêm ngặt:

  • Gia công cơ khí: Hàn khung sắt hộp $2 \times 4\text{ cm}$ thành hệ giàn 3 tầng bậc thang; lắp đặt hệ thống giá đỡ chậu kích thước $63 \times 22 \times 19\text{ cm}$. Bố trí đường ống chính PVC $\phi 21\text{ mm}$ đi kèm các đầu chia chữ T, cút nối góc $90^\circ$ và van khóa điện từ độc lập.
  • Gia công mạch điện tử: Bố trí module Arduino Uno R3, board mạch mở rộng chứa AMS1117, module Relay 8 kênh bên trong tủ điện sơn tĩnh điện đạt tiêu chuẩn IP53 (ngăn bụi xâm nhập và chống nước mưa hắt góc $60^\circ$).
                      SƠ ĐỒ PHÂN BỔ NGUỒN VÀ DÒNG TẢI
+-------------------------------------------------------------------------+
| [Nguồn SMPS 24V/2A & 12V/6A]                                            |
|   |--> 24V Rail: Máy bơm Ogihara (I_max = 1.08A, P = 26W)               |
|   |--> 12V Rail: 4x Van điện từ Solenoid (I_max = 4 x 500mA = 2.0A)     |
|   |--> 12V -> Module Buck LM2596 -> 9V Rail -> Chân Vin Arduino Uno R3  |
|                                                     |                   |
|   [Arduino Uno R3 5V Output Rail] (Max 500mA)       |                   |
|     |--> 4x Cảm biến (LM35 + 3x FC-28): I_total ≈ 60.75 µA             |
|     |--> Cuộn hút Module 8 Relay (5 kích hoạt): I = 5 x 40mA = 200mA    |
|     |--> IC LDO AMS1117-3.3V Input                                      |
|            |--> 3.3V Output -> Module ESP8266-01 (I_peak ≈ 80 - 120mA)  |
|                                                                         |
|   => Tổng tải 5V Rail: ~320.1 mA < 500 mA (Biên an toàn: 36%)          |
+-------------------------------------------------------------------------+

Thuật toán xử lý trên vi điều khiển (Arduino Firmware)

Chương trình nhúng thực hiện việc lấy mẫu đa kênh cảm biến, tính toán giá trị trung bình để loại bỏ nhiễu ADC, thực thi logic điều khiển Relay và định dạng chuỗi lệnh AT gửi dữ liệu lên ThingSpeak:

#include <SoftwareSerial.h>

// Định nghĩa chân kết nối
SoftwareSerial espSerial(3, 4); // RX, TX
const int PIN_SOIL_1 = A0;
const int PIN_SOIL_2 = A1;
const int PIN_SOIL_3 = A2;
const int PIN_LM35   = A3;

const int RELAY_PUMP = 5;
const int RELAY_VALVE_MAIN = 6;
const int RELAY_VALVE_1    = 7;
const int RELAY_VALVE_2    = 8;
const int RELAY_VALVE_3    = 9;

String apiKey = "YOUR_THINGSPEAK_WRITE_API_KEY";

void setup() {
  Serial.begin(9600);
  espSerial.begin(9600);
  
  for(int pin = 5; pin <= 9; pin++) {
    pinMode(pin, OUTPUT);
    digitalWrite(pin, HIGH); // Relay kích mức LOW (Active Low)
  }
}

float readTemperature() {
  int rawADC = analogRead(PIN_LM35);
  // Điện áp V_out = rawADC * (5000 mV / 1023)
  // Nhiệt độ = V_out / 10 mV/°C
  float tempC = (rawADC * 5000.0 / 1023.0) / 10.0;
  return tempC;
}

int readSoilPercentage(int pin) {
  int rawADC = analogRead(pin);
  // FC-28: 1023 là đất khô hoàn toàn, 0 là ngâm trong nước
  int percent = map(rawADC, 1023, 0, 0, 100);
  return constrain(percent, 0, 100);
}

void sendThingSpeakData(float temp, int s1, int s2, int s3) {
  String cmd = "AT+CIPSTART=\"TCP\",\"api.thingspeak.com\",80";
  espSerial.println(cmd);
  delay(1500);
  
  String url = "GET /update?api_key=" + apiKey + 
               "&field1=" + String(temp) + 
               "&field2=" + String(s1) + 
               "&field3=" + String(s2) + 
               "&field4=" + String(s3) + "\r\n";
               
  String sendCmd = "AT+CIPSEND=" + String(url.length());
  espSerial.println(sendCmd);
  delay(500);
  
  if (espSerial.find(">")) {
    espSerial.print(url);
    Serial.println("Data sent to ThingSpeak successfully.");
  }
}

Xử lý dữ liệu và giao tiếp trên ứng dụng Android

Ứng dụng được viết trên Android Studio bằng ngôn ngữ Java, sử dụng luồng AsyncTask/HttpURLConnection để gửi và nhận bản tin JSON từ API ThingSpeak:

// Đoạn mã trích xuất dữ liệu JSON từ ThingSpeak Channel Feed
private void parseThingSpeakJSON(String jsonString) {
    try {
        JSONObject root = new JSONObject(jsonString);
        JSONObject channel = root.getJSONObject("channel");
        JSONArray feeds = root.getJSONArray("feeds");
        
        if (feeds.length() > 0) {
            JSONObject lastEntry = feeds.getJSONObject(feeds.length() - 1);
            String tempVal  = lastEntry.getString("field1");
            String soilVal1 = lastEntry.getString("field2");
            String soilVal2 = lastEntry.getString("field3");
            String soilVal3 = lastEntry.getString("field4");
            
            runOnUiThread(() -> {
                txtTemperature.setText(tempVal + " °C");
                txtSoil1.setText(soilVal1 + " %");
                txtSoil2.setText(soilVal2 + " %");
                txtSoil3.setText(soilVal3 + " %");
            });
        }
    } catch (JSONException e) {
        Log.e("IoT_Error", "Lỗi phân tích cú pháp JSON: " + e.getMessage());
    }
}

Kiểm thử và kết quả thực nghiệm

Hệ thống đã trải qua quá trình kiểm thử thực tế tại ban công chung cư với thời gian thử nghiệm liên tục trong 14 ngày:

+--------------------------------------------------------------------------+
|                  KẾT QUẢ KIỂM THỬ TỪNG PHÂN HỆ PHẦN CỨNG                 |
+----------------------+--------------------+-----------------+------------+
| Hạng mục kiểm tra    | Tiêu chuẩn thiết kế| Kết quả đo đạc  | Trạng thái |
+----------------------+--------------------+-----------------+------------+
| Cảm biến LM35        | Sai số < ±0.5°C    | Sai số ±0.25°C  | ĐẠT        |
| Cảm biến FC-28       | Phân định 3 mức ẩm | Độ nhạy 100%    | ĐẠT        |
| Module ESP8266-01    | Giữ kết nối Wi-Fi  | Uptime 99.2%    | ĐẠT        |
| Bơm Ogihara 24V      | Lưu lượng 10 L/phút| Đạt 9.4 L/phút  | ĐẠT        |
| Áp lực Van Solenoid  | Chịu áp 0.02-0.8MPa| Không rò rỉ     | ĐẠT        |
| Trễ phản hồi Android | < 3000 ms          | ~ 1500 - 2200 ms| ĐẠT        |
+----------------------+--------------------+-----------------+------------+
  • Hiệu chuẩn cảm biến: Đo đạc thực tế cho thấy cảm biến nhiệt độ LM35 hoạt động cực kỳ ổn định trong dải nhiệt độ $24^\circ\text{C} - 38^\circ\text{C}$, dòng tiêu thụ đo được $58\ \mu\text{A}$ (khớp với công bố Datasheet $60\ \mu\text{A}$).
  • Hiệu suất tưới: Máy bơm Brushless DC Ogihara $24\text{V}$ kết hợp van điện từ mở từng nhánh cho phép cấp nước đều ở cả 3 tầng mà không gặp hiện tượng sụt áp lực cục bộ.

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

  1. Kiến trúc phân vùng tưới độc lập theo tầng (Multi-tier Zone Control): Thay vì tưới đồng loạt làm lãng phí nước và gây úng cho những tầng đã đủ ẩm, hệ thống điều khiển kết hợp 1 van tổng và 3 van nhánh. Nước chỉ được bơm đến chính xác tầng có chỉ số $W < W_{\text{threshold}}$, giúp tiết kiệm $45.6%$ lượng nước tiêu thụ so với tưới tràn.

  2. Thiết kế mạch nguồn phân cấp cách ly chống sốc dòng: Sử dụng giải pháp hạ áp kép (SMPS $12\text{V} \rightarrow$ Buck LM2596 $9\text{V} \rightarrow$ Arduino $\rightarrow$ LDO AMS1117 $3.3\text{V}$). Cách thiết kế này loại bỏ hiện tượng Reset vi điều khiển do sụt áp đột ngột khi các cuộn cảm của Solenoid Valve và động cơ bơm đóng cắt.

  3. Tối ưu chi phí phần cứng (Low-cost Edge Node): Tổng chi phí linh kiện điện tử chỉ xấp xỉ $600.000\text{ VNĐ}$, thấp hơn từ $70 - 80%$ so với các bộ điều khiển tưới thông minh nhập khẩu từ Israel hoặc Đài Loan, mở ra cơ hội thương mại hóa cho các mô hình nông nghiệp đô thị quy mô nhỏ.


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

Kịch bản triển khai thực tế (Use-case Scenarios)

  • Căn hộ chung cư cao tầng: Lắp đặt tại ban công diện tích hẹp ($1 - 3\text{ m}^2$), trồng các loại hoa kiểng, rau thơm, hoa mười giờ. Người dùng đi làm cả ngày vẫn có thể kiểm soát và hẹn giờ tưới vào sáng sớm hoặc chiều mát.
  • Văn phòng làm việc: Ứng dụng cho mảng tường xanh (Green Wall) trong nhà, duy trì cảnh quan mà không cần nhân sự tưới tiêu thủ công hàng ngày.
+--------------------------------------------------------------------------+
|                      DỰ TOÁN CHI PHÍ PHẦN CỨNG (BOM)                     |
+------------------------------------+----------+------------+-------------+
| Linh kiện / Thiết bị               | Số lượng | Đơn giá    | Thành tiền  |
+------------------------------------+----------+------------+-------------+
| Board Arduino Uno R3 (Dip/SMD)     | 01       | 170.000 đ  | 170.000 đ   |
| Module Wi-Fi ESP8266-01            | 01       | 65.000 đ   | 65.000 đ    |
| Cảm biến độ ẩm đất FC-28           | 03       | 35.000 đ   | 105.000 đ   |
| Cảm biến nhiệt độ LM35             | 01       | 17.000 đ   | 17.000 đ    |
| Module Relay 8 kênh Optocoupler    | 01       | 150.000 đ  | 150.000 đ   |
| Bơm Brushless Ogihara 24V (Nhật)   | 01       | 280.000 đ  | 280.000 đ   |
| Van điện từ Solenoid Valve 12V     | 04       | 85.000 đ   | 340.000 đ   |
| Nguồn tổ ong SMPS 24V/2A & 12V/6A  | 01       | 180.000 đ  | 180.000 đ   |
| Module LM2596 + AMS1117 + Linh kiện| Combo    | 45.000 đ   | 45.000 đ    |
| Khung sắt + Tủ IP53 + Ống PVC phi21| Trọn gói | 450.000 đ  | 450.000 đ   |
+------------------------------------+----------+------------+-------------+
| TỔNG CỘNG                          |          |            |1.802.000 đ  |
+------------------------------------+----------+------------+-------------+

Hướng dẫn lắp đặt và vận hành

  1. Bước 1 (Lắp ráp cơ khí): Cố định khung giàn sắt, đặt các chậu nhựa $63 \times 22 \times 19\text{ cm}$ vào vị trí. Đi đường ống PVC $\phi 21\text{ mm}$, gắn các van điện từ tại đầu cấp mỗi tầng.
  2. Bước 2 (Kết nối điện & Cảm biến): Đặt tủ điện IP53 tại vị trí khô ráo bên hông giàn. Cắm đầu đo FC-28 vào vị trí giữa chậu hoa ở độ sâu $5 - 7\text{ cm}$. Đặt cảm biến LM35 tại vị trí thoáng gió, tránh ánh nắng chiếu trực xạ.
  3. Bước 3 (Cấu hình mạng Wi-Fi): Cấp nguồn cho hệ thống, mở ứng dụng Android, cấu hình SSID/Password để module ESP8266 kết nối với Router gia đình.
  4. Bước 4 (Vận hành): Thiết lập ngưỡng độ ẩm tự động (ví dụ: $W_{\text{trigger}} = 20%$) hoặc chuyển sang chế độ Manual để bật/tắt van từng tầng trực tiếp trên điện thoại.

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

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

  • Hiện tượng điện phân ăn mòn cảm biến FC-28: Các bản cực mạ đồng/niken của cảm biến FC-28 bị oxy hóa nhanh chóng sau khoảng 2 - 3 tháng cắm liên tục trong đất ẩm có dòng điện DC chạy qua.
  • Lãng phí tài nguyên kênh Relay: Hệ thống sử dụng 5 kênh nhưng module trang bị sẵn 8 kênh, gây dư thừa kích thước PCB trong tủ điện.
  • Phụ thuộc vào Cloud ThingSpeak: Tốc độ phản hồi và chu kỳ cập nhật dữ liệu bị giới hạn (15 giây/lần ở gói Free), chưa đáp ứng hoàn toàn tính tức thời (Real-time) trong các tình huống khẩn cấp.

Đề xuất hướng phát triển và nâng cấp

  1. Nâng cấp cảm biến độ ẩm điện dung (Capacitive Soil Moisture Sensor v1.2): Thay thế cảm biến điện trở FC-28 bằng cảm biến đo điện dung chống ăn mòn hóa học, nâng cao tuổi thọ vận hành trên 2 năm.
  2. Chuyển dịch sang SoC ESP32: Thay thế cụm Arduino Uno R3 + ESP8266-01 bằng vi điều khiển tích hợp ESP32 (Dual-core 240 MHz, tích hợp Wi-Fi/Bluetooth LE, 18 kênh ADC 12-bit), giúp giảm $50%$ không gian bo mạch và tiết kiệm năng lượng.
  3. Tích hợp giao thức MQTT & Home Assistant: Thay thế HTTP REST bằng giao thức nhẹ MQTT (Message Queuing Telemetry Transport) thông qua Broker riêng, giảm độ trễ điều khiển xuống dưới $100\text{ ms}$.

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

  • Sinh viên & Kỹ sư nhúng: Làm tài liệu tham khảo thực chiến về kỹ thuật ghép nối phần cứng vi điều khiển, kỹ thuật ổn áp đa tầng, lập trình tập lệnh AT Command cho ESP8266 và xử lý tín hiệu tương tự (ADC).
  • Lập trình viên Mobile (Android): Cung cấp mô hình mẫu về cách kết nối ứng dụng Java với các nền tảng IoT Cloud thông qua REST API và xử lý dữ liệu JSON trong thời gian thực.
  • Hộ gia đình đô thị & Chủ trang trại mini: Tiếp cận một giải pháp tưới tiêu tự động hóa chi phí thấp, bền bỉ, dễ lắp đặt và giúp tiết kiệm đáng kể thời gian chăm sóc cây trồng.

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

1. Hệ thống yêu cầu nguồn điện và mạng Wi-Fi như thế nào để hoạt động ổn định?

Hệ thống sử dụng nguồn điện lưới xoay chiều $220\text{V AC}$, đi qua bộ nguồn xung SMPS để hạ áp xuống $24\text{V DC}$ (dòng tải $2\text{A}$) và $12\text{V DC}$ (dòng tải $6\text{A}$). Mạng Wi-Fi yêu cầu băng tần $2.4\text{GHz}$ (chuẩn IEEE 802.11 b/g/n) với tín hiệu RSSI tốt hơn $-75\text{ dBm}$ tại vị trí lắp đặt tủ điều khiển.

2. Nếu mất kết nối Internet hoặc Wi-Fi thì hệ thống có tự tưới được không?

Có. Firmware trên vi điều khiển ATmega328P được lập trình theo cơ chế kiểm soát cục bộ độc lập (Local Closed-Loop Control). Khi mất Wi-Fi, vi điều khiển vẫn liên tục đọc giá trị ADC từ cảm biến FC-28 và tự động kích hoạt Relay đóng ngắt bơm/van theo ngưỡng độ ẩm mặc định đã lưu trong chương trình. Việc mất mạng chỉ làm gián đoạn tính năng giám sát và điều khiển từ xa trên Smartphone.

3. Làm thế nào để khắc phục hiện tượng cảm biến FC-28 nhanh bị rỉ sét?

Có 2 giải pháp kỹ thuật:

  1. Không cấp nguồn 5V liên tục cho cảm biến; chỉ kích hoạt chân cấp nguồn cảm biến thông qua một Transistor/chân Digital của Arduino ngay trước thời điểm đọc ADC ($50\text{ ms}$), sau đó ngắt nguồn ngay để triệt tiêu dòng điện phân giải phóng ion kim loại.
  2. Thay thế đầu đo FC-28 bằng cảm biến độ ẩm điện dung (Capacitive Soil Moisture Sensor) không để lộ tiếp điểm kim loại ra ngoài môi trường đất.

4. Hệ thống có thể mở rộng lên 5 - 10 tầng hoặc áp dụng cho giàn thủy canh không?

Hoàn toàn khả thi. Do module Relay hiện tại còn trống 3 kênh và vi điều khiển ATmega328P vẫn còn các chân Digital/Analog dự phòng, hệ thống có thể mở rộng thêm 3 van phân tầng nữa. Để mở rộng lên quy mô lớn hơn (10 - 20 tầng), có thể sử dụng thêm IC mở rộng ngõ ra 74HC595 (Shift Register) hoặc chuyển sang kit ESP32/Arduino Mega 2560.

5. Chi phí vận hành điện nước hàng tháng của hệ thống là bao nhiêu?

Với công suất máy bơm $26\text{W}$ và mỗi van điện từ $5\text{W}$, thời gian tưới trung bình mỗi ngày khoảng 10 - 15 phút, tổng điện năng tiêu thụ chỉ vào khoảng $0.5 - 1\text{ kWh/tháng}$ (tương đương dưới $3.000\text{ VNĐ/tháng}$). Lượng nước tiết kiệm được nhờ cơ chế tưới đúng điểm ẩm ước tính từ $200 - 400\text{ lít/tháng}$ so với tưới thủ công bằng vòi xịt.


Kết luận

Đồ án tốt nghiệp "Xây dựng giải pháp IoT cho vườn hoa mini" đã giải quyết trọn vẹn bài toán tự động hóa chăm sóc cây cảnh trong không gian đô thị bằng cách kết hợp hài hòa giữa kỹ thuật điện tử nhúng, công nghệ truyền thông không dây và lập trình ứng dụng di động. Hệ thống không chỉ khẳng định tính khả thi cao về mặt kỹ thuật thông qua việc điều khiển chính xác các thiết bị công suất (bơm, van điện từ) dựa trên thông số vi khí hậu thực tế, mà còn chứng minh giá trị kinh tế vượt trội nhờ chi phí gia công hợp lý và độ bền bỉ trong môi trường ngoài trời. Đây là nền tảng vững chắc để tiếp tục phát triển các hệ thống nông nghiệp thông minh toàn diện, hướng tới tích hợp trí tuệ nhân tạo (AIoT) và tối ưu hóa năng lượng tái tạo trong tương lai.