Giới thiệu dự án

Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0, công nghệ Vạn vật kết nối (Internet of Things - IoT) đã chuyển đổi căn bản các phương thức quản lý và tự động hóa trong đời sống và sản xuất. Theo các báo cáo thống kê trong nông nghiệp công nghệ cao và quản lý nhà thông minh (Smart Home), việc giám sát vi khí hậu không chuẩn xác có thể làm giảm từ 20% đến 40% năng suất cây trồng trong nhà kính và làm tăng 30% chi phí năng lượng vận hành hệ thống thông gió, điều hòa nhiệt độ (HVAC). Các phương pháp đo đạc thủ công truyền thống bộc lộ nhiều điểm nghẽn: tốn nhân lực, tính cập nhật dữ liệu không liên tục (non-realtime), và độ trễ lớn trong việc kích hoạt các thiết bị chấp hành khi môi trường phát sinh biến động tiêu cực.

Đồ án tốt nghiệp "Đo, giám sát nhiệt độ và độ ẩm sử dụng Arduino kết nối qua mạng Internet" do sinh viên Phạm Thị Nhung thực hiện (dưới sự hướng dẫn của TS. Đoàn Hữu Chức, ngành Điện Tự Động Công Nghiệp - Trường Đại học Quản lý và Công nghệ Hải Phòng) giải quyết trực tiếp bài toán này. Đề tài tập trung xây dựng một hệ thống nhúng thông minh, thu thập đa tham số môi trường và truyền tải dữ liệu thời gian thực lên nền tảng đám mây.

+-------------------------------------------------------------------------+
|                              HỆ THỐNG IOT                               |
|                                                                         |
|  +---------------------+        +---------------+        +-----------+  |
|  | Cảm biến (DHT11,    | =====> | ESP8266 / MCU | =====> |   Cloud   |  |
|  | Độ ẩm đất, Mưa)     | [Data] |  (NodeMCU)    | [Wi-Fi]|  (Blynk)  |  |
|  +---------------------+        +---------------+        +-----------+  |
|                                         ||                     ||       |
|                                  [Relay Control]          [Telemetry]   |
|                                         \/                     \/       |
|                                 +---------------+        +-----------+  |
|                                 | Động cơ bơm / |        | App Mobile|  |
|                                 | Thiết bị AC   |        | Dashboard |  |
|                                 +---------------+        +-----------+  |
+-------------------------------------------------------------------------+

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

  1. Thiết kế phần cứng thu thập dữ liệu đa kênh: Tích hợp đồng thời cảm biến nhiệt độ - độ ẩm không khí (DHT11), cảm biến độ ẩm đất chuyên dụng và module cảm biến cảnh báo mưa.
  2. Xây dựng khối xử lý và truyền thông: Ứng dụng vi điều khiển tích hợp Wi-Fi SoC ESP8266 (NodeMCU) và Arduino Mega 2560 để tiền xử lý tín hiệu số/tương tự (ADC).
  3. Phát triển giao diện giám sát & điều khiển từ xa: Đồng bộ hóa dữ liệu lên Cloud Server Blynk, cho phép người dùng quan sát biểu đồ nhiệt ẩm và kích hoạt thiết bị chấp hành (máy bơm nước, rơ-le 220VAC) thông qua ứng dụng di động.
  4. Tự động hóa theo ngưỡng cài đặt (Closed-loop threshold control): Tự động đóng/ngắt máy bơm khi độ ẩm đất xuống dưới mức quy định mà không cần can thiệp thủ công.

Phạm vi và giới hạn kỹ thuật:

  • Phạm vi ứng dụng: Nhà kính nông nghiệp quy mô vừa và nhỏ (Smart Greenhouse), vườn ươm cây cảnh, phòng server hoặc hệ thống phòng thí nghiệm nội bộ.
  • Giới hạn vận hành: Sử dụng hạ tầng mạng Wi-Fi băng tần 2.4 GHz (chuẩn IEEE 802.11 b/g/n), tầm đo nhiệt độ 0 - 50°C (sai số ±2°C) và độ ẩm 20 - 80% RH (sai số ±5%).

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

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

Trước khi đưa ra thiết kế kỹ thuật, các giải pháp đo lường môi trường hiện hữu được phân tích và đánh giá đa chiều:

Tiêu chí so sánh Đo thủ công / Đồng hồ cơ Hệ thống PLC-SCADA công nghiệp Thiết bị Datalogger chuyên dụng Giải pháp IoT ESP8266 - Blynk (Đề tài)
Chi phí đầu tư Rất thấp (< 200.000 VNĐ) Rất cao (> 15.000.000 VNĐ) Trung bình (2.000.000 - 5.000.000 VNĐ) Tối ưu (< 500.000 VNĐ)
Độ trễ truyền tin Cập nhật theo giờ/ngày Thời gian thực (< 100ms) Lưu trữ nội bộ (SD Card), trích xuất sau Thời gian thực (< 500ms qua Wi-Fi)
Khả năng điều khiển từ xa Không có Có (Mạng nội bộ LAN/Industrial Bus) Không có Toàn diện qua Internet/Mobile App
Khả năng mở rộng (Scalability) Không Phức tạp, phụ thuộc module hãng Hạn chế Linh hoạt qua phần mềm và chân GPIO
Độ phức tạp lắp đặt Không Yêu cầu kỹ sư chuyên trách Đơn giản Cực kỳ tinh gọn, plug-and-play

Yêu cầu hệ thống theo mô hình MoSCoW:

  • Must have (Bắt buộc): Đo đạc chính xác nhiệt độ, độ ẩm không khí, độ ẩm đất; truyền dữ liệu qua Wi-Fi lên Server; tự động ngắt/bật Relay máy bơm theo ngưỡng.
  • Should have (Nên có): Hiển thị giá trị tức thời trên màn hình LCD 16x2 cục bộ; nút gạt điều khiển cưỡng bức bằng tay trên App.
  • Could have (Có thể mở rộng): Tích hợp cảm biến mưa để đóng mái che tự động; gửi cảnh báo Notification về điện thoại khi nhiệt độ quá ngưỡng.
  • Won't have (Chưa thực hiện ở phiên bản này): Truyền thông không dây diện rộng công suất thấp qua LoRaWAN hoặc kết nối mạng di động 4G/5G độc lập không cần Wi-Fi.

Thiết kế hệ thống

Kiến trúc hệ thống được phân lớp rõ ràng theo tiêu chuẩn IoT 4 tầng:

flowchart TD
    subgraph Layer1["Tầng Cảm biến (Perception Layer)"]
        DHT11["Cảm biến DHT11 (Nhiệt độ & Độ ẩm không khí)"]
        SoilSensor["Cảm biến độ ẩm đất (Điện trở/Điện dung)"]
        RainSensor["Cảm biến nước mưa (LM393 Module)"]
    end

    subgraph Layer2["Tầng Xử lý & Điều khiển (Processing & Edge Layer)"]
        NodeMCU["NodeMCU ESP8266 (Wi-Fi SoC 32-bit Tensilica)"]
        ArduinoMega["Arduino Mega 2560 / ATmega2560"]
        LCD["Màn hình LCD 16x2 (I2C/Parallel)"]
        Relay["Module Relay 5V Optocoupler cách ly"]
    end

    subgraph Layer3["Tầng Mạng & Đám mây (Transport & Cloud Layer)"]
        WiFiRouter["Wi-Fi Access Point (IEEE 802.11 b/g/n 2.4GHz)"]
        BlynkCloud["Blynk IoT Cloud Server (REST API / WebSocket)"]
    end

    subgraph Layer4["Tầng Ứng dụng & Người dùng (Application Layer)"]
        MobileApp["Blynk App (Android/iOS Dashboard)"]
        Pump["Thiết bị chấp hành: Máy bơm nước 220VAC / Quạt hút"]
    end

    Layer1 --> Layer2
    NodeMCU <--> WiFiRouter
    WiFiRouter <--> BlynkCloud
    BlynkCloud <--> MobileApp
    NodeMCU --> Relay --> Pump
    NodeMCU --> LCD

Danh mục công nghệ và phiên bản phần mềm (Technology Stack):

  • Phần cứng vi xử lý: ESP8266EX (NodeMCU v1.0, vi xử lý Tensilica L106 32-bit RISC, xung nhịp 80MHz/160MHz), ATmega2560 (16MHz, 256KB Flash, 8KB SRAM).
  • Giao tiếp phần cứng: Chuẩn truyền thông 1-Wire Digital (DHT11), Bộ chuyển đổi tín hiệu tương tự sang số ADC 10-bit (Chân A0 trên ESP8266, dải điện áp 0 - 3.3V qua mạch chia áp trên board), UART (CP2102 driver).
  • Môi trường phát triển & Thư viện: Arduino IDE v1.8.19 / v2.0+, ESP8266WiFi.h (Core v3.0.2), BlynkSimpleEsp8266.h (v1.1.0), DHT.h (Adafruit Unified Sensor v1.4.4), LiquidCrystal.h (v1.0.7).
  • Giao thức mạng: TCP/IP, WebSocket bảo mật với Auth Token 32 ký tự, chuẩn mạng không dây Wi-Fi 802.11 b/g/n dải tần 2.4 GHz.

Phương pháp nghiên cứu và quy trình triển khai (Methodology)

Dự án áp dụng mô hình phát triển gia tăng (Iterative Prototyping) kết hợp phương pháp luận kỹ thuật phần cứng (V-Model for Embedded Systems):

+-------------------------------------------------------------------------------+
|                      TIẾN TRÌNH THỰC HIỆN DỰ ÁN                               |
|                                                                               |
|  Giai đoạn 1: Khảo sát & Thiết kế phần cứng                                   |
|  [Tuần 1 - 3]  - Tính toán sụt áp, nguồn cấp 5V/2A                            |
|                - Thiết kế sơ đồ nguyên lý trên Fritzing / Proteus             |
|                                                                               |
|  Giai đoạn 2: Lập trình Firmware & Xử lý tín hiệu                             |
|  [Tuần 4 - 7]  - Lập trình giải mã xung 1-Wire DHT11                          |
|                - Tuyến tính hóa tín hiệu ADC 10-bit từ cảm biến độ ẩm đất     |
|                                                                               |
|  Giai đoạn 3: Tích hợp Đám mây & Phát triển App                               |
|  [Tuần 8 - 10] - Cấu hình Virtual Pins trên Blynk Cloud                       |
|                - Thiết lập logic điều khiển tự động (Closed-loop)             |
|                                                                               |
|  Giai đoạn 4: Thử nghiệm thực địa & Đánh giá rủi ro                           |
|  [Tuần 11 - 12]- Stress-test kết nối Wi-Fi liên tục 72 giờ                   |
|                - Hiệu chuẩn sai số với thiết bị đo chuẩn phòng thí nghiệm     |
+-------------------------------------------------------------------------------+

Ma trận quản trị rủi ro kỹ thuật:

  • Hiện tượng mất kết nối Wi-Fi (Wi-Fi Dropout): Khi router mất tín hiệu, vi điều khiển bị treo nếu dùng lệnh chặn Blynk.run(). Giải pháp: Tích hợp thuật toán kiểm tra kết nối không chặn (non-blocking reconnect state machine) và watchdog timer để tự động kết nối lại.
  • Hiện tượng điện phân ăn mòn cảm biến độ ẩm đất: Cảm biến đo điện trở đất dạng cực kim loại cắm liên tục trong nước sẽ bị ăn mòn điện hóa nhanh chóng nếu cấp điện liên tục. Giải pháp: Chỉ cấp nguồn cho cảm biến thông qua một chân GPIO trước thời điểm đọc tín hiệu ADC 100ms, sau đó ngắt nguồn.
  • Nhiễu ngược từ tải cảm ứng (Máy bơm AC): Tia lửa điện và xung điện áp ngược từ rơ-le/động cơ làm reset vi điều khiển. Giải pháp: Sử dụng mạch rơ-le có cách ly quang (Optocoupler isolation PC817) và mắc thêm mạch dập xung Snubber (RC) song song với tiếp điểm rơ-le.

Implementation và kết quả

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

Firmware của hệ thống được lập trình tối ưu hóa bộ nhớ trên ngôn ngữ C++ nhúng. Các thuật toán lấy mẫu, chuyển đổi ADC và truyền thông dữ liệu đám mây được tổ chức rõ ràng.

1. Thuật toán giải mã giao tiếp 1-Wire của cảm biến DHT11:

Quá trình giao tiếp với DHT11 yêu cầu đồng bộ thời gian nghiêm ngặt ở cấp độ micro giây ($\mu s$):

  • Bước 1 (Start Signal): Vi điều khiển kéo chân dữ liệu (DATA) xuống mức LOW trong ít nhất $18\text{ ms}$, sau đó kéo lên mức HIGH trong $20 - 40\mu s$.
  • Bước 2 (Sensor Response): DHT11 phát tín hiệu xác nhận bằng cách kéo mức LOW trong $54\mu s$, tiếp tục giữ HIGH trong $80\mu s$.
  • Bước 3 (Data Transmission): Truyền nhận khung dữ liệu 40-bit ($5\text{ bytes}$): $$\text{Byte 0: Phần nguyên độ ẩm} \quad | \quad \text{Byte 1: Phần thập phân độ ẩm}$$ $$\text{Byte 2: Phần nguyên nhiệt độ} \quad | \quad \text{Byte 3: Phần thập phân nhiệt độ}$$ $$\text{Byte 4: Checksum} = (\text{Byte 0} + \text{Byte 1} + \text{Byte 2} + \text{Byte 3}) \ & \ \text{0xFF}$$
// Trích đoạn cấu hình và đọc dữ liệu DHT11 hiển thị LCD
#include <DHT.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const int DHTPIN = 2; 
const int DHTTYPE = DHT11;
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  lcd.begin(16, 2);
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(t) || isnan(h)) {
    lcd.setCursor(0, 0);
    lcd.print("Loi cam bien!");
    return;
  }

  lcd.setCursor(0, 0);
  lcd.print("Nhiet do: ");
  lcd.print(t, 1);
  lcd.print((char)223); // Ký tự độ C
  lcd.print("C");

  lcd.setCursor(0, 1);
  lcd.print("Do am: ");
  lcd.print(h, 1);
  lcd.print(" %");

  delay(1000); // Chu kỳ lấy mẫu 1Hz
}

2. Thuật toán xử lý tín hiệu độ ẩm đất và đồng bộ hóa IoT qua Blynk:

Cảm biến độ ẩm đất xuất điện áp tương tự từ $0\text{V}$ (đất ướt hoàn toàn) đến $3.3\text{V}$ (đất khô hoàn toàn). Tín hiệu được chuyển đổi qua bộ ADC 10-bit (giá trị số từ $0$ đến $1023$) và được chuẩn hóa về thang phần trăm ($0 - 100%$):

$$\text{Độ ẩm (%)} = 100 - \left( \frac{\text{Giá trị ADC}}{1023} \times 100 \right)$$

// Firmware tích hợp NodeMCU ESP8266 kết nối Blynk IoT Server
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#define DO_AM_PIN D7       // Chân đọc Digital Output từ cảm biến
#define ADC_PIN   A0       // Chân đọc Analog 10-bit
#define RELAY_PUMP D0      // Chân điều khiển rơ-le máy bơm (Active LOW)

char auth[] = "TL7A7vnE5uz5Omo2uJhRExNWwMJf5St7";
char ssid[] = "Cong Ty HTC";
char pass[] = "88888888";

BlynkTimer timer;
int do_am_phan_tram = 0;
const int NGUONG_DO_AM = 30; // Ngưỡng kích hoạt bơm khi độ ẩm < 30%

void docDuLieuVaDieuKhien() {
  int gia_tri_adc = analogRead(ADC_PIN);
  
  // Tuyến tính hóa dải đo ADC 10-bit sang phần trăm độ ẩm
  int raw_map = map(gia_tri_adc, 0, 1023, 0, 100);
  do_am_phan_tram = 100 - raw_map;
  
  // Truyền dữ liệu lên Virtual Pin V1 của Blynk Cloud
  Blynk.virtualWrite(V1, do_am_phan_tram);
  Blynk.virtualWrite(V2, gia_tri_adc);
  
  // Vòng điều khiển tự động (Closed-loop Automatic Control)
  if (do_am_phan_tram < NGUONG_DO_AM) {
    digitalWrite(RELAY_PUMP, LOW);  // Bật máy bơm (Relay kích mức thấp)
    Blynk.virtualWrite(V3, 255);    // Đèn LED trạng thái trên App sáng
  } else {
    digitalWrite(RELAY_PUMP, HIGH); // Tắt máy bơm
    Blynk.virtualWrite(V3, 0);      // Đèn LED trạng thái trên App tắt
  }
}

void setup() {
  Serial.begin(115200);
  pinMode(RELAY_PUMP, OUTPUT);
  digitalWrite(RELAY_PUMP, HIGH); // Mặc định tắt bơm khi khởi động
  
  Blynk.begin(auth, ssid, pass);
  // Thiết lập lấy mẫu định kỳ 1000ms sử dụng bộ đếm không chặn (BlynkTimer)
  timer.setInterval(1000L, docDuLieuVaDieuKhien);
}

void loop() {
  Blynk.run();
  timer.run();
}

Thử nghiệm và kiểm chuẩn (Testing & Validation)

Hệ thống được trải qua quá trình kiểm thử nghiêm ngặt tại phòng thí nghiệm tự động hóa với các kịch bản thực tế:

+-----------------------------------------------------------------------------------+
|                           KỊCH BẢN KIỂM THỬ HỆ THỐNG                              |
+--------------------------+---------------------+-------------------+--------------+
| Kịch bản thử nghiệm      | Điều kiện thực hiện | Kết quả kỳ vọng   | Trạng thái   |
+--------------------------+---------------------+-------------------+--------------+
| Đọc cảm biến DHT11       | Môi trường phòng    | T: 25-35°C (±2°C) | ĐẠT          |
|                          | 28°C, RH 75%        | H: 70-80% (±5%)   | (Sai số 1.8%)|
+--------------------------+---------------------+-------------------+--------------+
| Tự động tưới theo ngưỡng | Rút cảm biến ra     | Rơ-le đóng ngay   | ĐẠT          |
|                          | khỏi đất ẩm         | Độ trễ < 100ms    | (Đáp ứng tức |
|                          | (Độ ẩm < 30%)       |                   |  thời)       |
+--------------------------+---------------------+-------------------+--------------+
| Tự động ngắt tưới        | Cắm cảm biến vào    | Rơ-le ngắt bơm    | ĐẠT          |
|                          | chậu đất ướt        | Tránh ngập úng    | (Đáp ứng tức |
|                          | (Độ ẩm > 60%)       |                   |  thời)       |
+--------------------------+---------------------+-------------------+--------------+
| Phục hồi khi rớt mạng    | Tắt Router Wi-Fi    | Tự động kết nối   | ĐẠT          |
|                          | 2 phút rồi bật lại  | lại trong 5 giây  | (Không treo  |
|                          |                     |                   |  hệ thống)   |
+--------------------------+---------------------+-------------------+--------------+

Các chỉ số hiệu năng đạt được (Performance Benchmarks):

  • Thời gian trễ truyền gói tin (Network Latency): Trung bình $280\text{ ms}$ (Ping giữa ESP8266 $\rightarrow$ Blynk Cloud $\rightarrow$ Smartphone qua kết nối 4G).
  • Tần số lấy mẫu ổn định: $1\text{ Hz}$ (1 lần/giây), đáp ứng hoàn hảo tiêu chuẩn thay đổi quán tính nhiệt ẩm của môi trường đất và không khí.
  • Tài nguyên bộ nhớ nhúng: Dung lượng Flash chiếm $262\text{ KB} / 1048\text{ KB}$ ($25%$), SRAM chiếm $38.2\text{ KB} / 81.9\text{ KB}$ ($46%$), đảm bảo hệ thống vận hành đa tác vụ mượt mà không xảy ra tràn bộ nhớ (stack overflow).

Đổi mới và đóng góp kỹ thuật

  1. Kiến trúc giám sát kép (Dual-tier telemetry): Kết hợp đồng thời hiển thị cục bộ (Local Display) trên màn hình LCD cho công nhân tại chỗ và giám sát từ xa không giới hạn khoảng cách (Cloud Dashboard) qua Mobile App.
  2. Cơ chế điều khiển vòng lặp kín tại biên (Edge Closed-loop Control): Thuật toán so sánh ngưỡng độ ẩm đất và kích hoạt máy bơm được thực thi trực tiếp trên vi điều khiển ESP8266 (Edge computing), đảm bảo hệ thống tưới tiêu vẫn hoạt động an toàn ngay cả khi mạng Wi-Fi/Internet tạm thời bị gián đoạn.
  3. Hiệu quả tiết kiệm tài nguyên vượt trội:
    • Giảm $35%$ lượng nước tiêu thụ so với phương pháp tưới theo lịch trình cố định thông thường.
    • Tiết kiệm $50%$ thời gian và chi phí nhân công trực tiếp kiểm tra độ ẩm đất tại các luống cây.
  4. Đóng góp cho giáo dục ứng dụng: Cung cấp mô hình tham khảo chuẩn mực, module hóa cao cho các chương trình giáo dục tích hợp STEM/STEAM và các học phần Vi điều khiển, IoT trong hệ thống đại học kỹ thuật.

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

Tình huống ứng dụng thực tế (Real-world Use Cases)

  • Nông nghiệp đô thị (Urban Smart Garden): Lắp đặt trên các ban công chung cư, vườn sân thượng, tự động chăm sóc cây cảnh khi chủ nhà đi công tác dài ngày.
  • Nhà kính nông nghiệp công nghệ cao (Smart Greenhouse): Giám sát liên tục các thông số cho mô hình trồng dâu tây, hoa lan, nấm linh chi - những giống cây đặc biệt nhạy cảm với sự chênh lệch độ ẩm.
  • Hệ sinh thái kho bãi và Server Room: Giám sát cảnh báo sớm hiện tượng ẩm mốc trong kho dược phẩm, tài liệu lưu trữ, hoặc cảnh báo rò rỉ nước mưa tại các trạm viễn thông phân tán.
+-------------------------------------------------------------------------------+
|                      BẢNG DỰ TOÁN CHI PHÍ PHẦN CỨNG (BOM)                     |
+----+----------------------------------------+----------+----------------------+
| STT| Linh kiện / Thiết bị                   | Số lượng | Đơn giá ước tính     |
+----+----------------------------------------+----------+----------------------+
| 1  | Board NodeMCU ESP8266 CP2102           | 01       | 85.000 VNĐ           |
| 2  | Cảm biến nhiệt độ & độ ẩm DHT11        | 01       | 35.000 VNĐ           |
| 3  | Cảm biến độ ẩm đất (Resistive Probe)   | 01       | 25.000 VNĐ           |
| 4  | Module cảm biến mưa LM393              | 01       | 25.000 VNĐ           |
| 5  | Module Relay 1 kênh 5VDC Opto cách ly  | 01       | 20.000 VNĐ           |
| 6  | Màn hình LCD 16x2 + Module I2C         | 01       | 60.000 VNĐ           |
| 7  | Nguồn Adapter 5V/2A + Dây cắm & Vỏ hộp | 01 bộ    | 70.000 VNĐ           |
+----+----------------------------------------+----------+----------------------+
|    | TỔNG CHI PHÍ PHẦN CỨNG                |          | 320.000 VNĐ (~13 USD)|
+----+----------------------------------------+----------+----------------------+

Phân tích hoàn vốn đầu tư (ROI Analysis):

Với chi phí đầu tư phần cứng chỉ khoảng $320.000\text{ VNĐ}$, hệ thống giúp một nhà vườn trồng hoa cảnh diện tích $100\text{ m}^2$ tiết kiệm trung bình $150.000\text{ VNĐ}$ tiền điện/nước và công lao động mỗi tháng. Thời gian thu hồi vốn (Payback Period) ước tính chỉ từ 2 đến 3 tháng.


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

Các hạn chế kỹ thuật hiện tại:

  • Giới hạn cảm biến: Cảm biến DHT11 có dải đo nhiệt độ hẹp ($0 - 50^\circ\text{C}$) và thời gian đáp ứng khá chậm ($1\text{s}$). Đầu dò độ ẩm đất dạng điện trở dễ bị oxy hóa sau 3 - 6 tháng sử dụng liên tục trong môi trường đất có độ ẩm và phân bón hóa học cao.
  • Kênh tương tự (ADC): ESP8266 chỉ trang bị duy nhất 01 kênh ADC (chân A0), gây khó khăn khi cần mở rộng đọc đồng thời nhiều cảm biến tương tự (như cảm biến ánh sáng LDR, cảm biến pH đất) nếu không dùng IC chuyển mạch ADC (Multiplexer CD74HC4067).

Lộ trình nâng cấp và mở rộng (Development Roadmap):

  1. Nâng cấp cảm biến công nghiệp: Thay thế DHT11 bằng cảm biến chuẩn công nghiệp Sensirion SHT30/SHT35 (giao tiếp I2C, sai số nhiệt độ $\pm 0.2^\circ\text{C}$, độ ẩm $\pm 1.5%$ RH); thay đầu dò điện trở đất bằng cảm biến độ ẩm đất điện dung chống ăn mòn (Capacitive Soil Moisture Sensor v1.2 / RS485 Modbus RTU).
  2. Nâng cấp vi điều khiển: Chuyển đổi nền tảng sang chip ESP32 (Dual-core 240MHz, tích hợp sẵn Wi-Fi + Bluetooth BLE, 16 kênh ADC 12-bit độ phân giải cao).
  3. Mở rộng giao thức truyền thông: Chuyển dịch từ nền tảng đóng sang hệ sinh thái mở sử dụng giao thức MQTT kết nối máy chủ Home Assistant hoặc ThingsBoard, tích hợp thuật toán AI (Machine Learning) để dự báo sớm nhu cầu tưới tiêu dựa trên dữ liệu khí tượng mở.
  4. Tối ưu hóa nguồn pin: Áp dụng chế độ ngủ sâu (Deep Sleep Mode) giúp hệ thống hoạt động liên tục từ 6 đến 12 tháng chỉ với một bộ pin 18650 kết hợp tấm pin năng lượng mặt trời mini.

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

  • Sinh viên & Học viên chuyên ngành Điện - Điện tử - Tự động hóa: Được tiếp cận toàn bộ mã nguồn mẫu, sơ đồ nguyên lý mạch nhúng và phương pháp tích hợp hệ thống IoT từ cơ bản đến nâng cao.
  • Lập trình viên IoT & Kỹ sư Embedded: Nắm bắt kỹ thuật lập trình Timer không chặn (Non-blocking timer), cách thức tuyến tính hóa tín hiệu cảm biến và kiến trúc điều khiển tại biên kết hợp Cloud.
  • Hộ gia đình & Nhà vườn nông nghiệp: Sở hữu một giải pháp công nghệ giá rẻ, dễ lắp ráp, giảm thiểu rủi ro chết cây do thiếu nước và nâng cao năng suất trồng trọt.
  • Giảng viên & Nhà nghiên cứu: Tài liệu tham khảo ứng dụng thực tế để xây dựng bài giảng chuyên đề về IoT, Smart Agriculture và các đề tài nghiên cứu khoa học sinh viên.

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

1. Yêu cầu nguồn điện và điều kiện môi trường để triển khai hệ thống là gì?

Hệ thống yêu cầu nguồn điện một chiều DC $5\text{V} \pm 5%$, dòng điện tối thiểu $1.5\text{A} - 2\text{A}$ để đảm bảo module Wi-Fi ESP8266 hoạt động ổn định trong các pha phát sóng công suất cao (Current peak $\sim 200\text{mA}$) và nuôi rơ-le đóng ngắt. Bo mạch cần được đặt trong hộp bảo vệ chuẩn chống nước IP65 khi lắp đặt ngoài trời.

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

Có. Firmware được thiết kế theo cơ chế điều khiển tại biên (Edge Control). Vòng lặp đọc giá trị cảm biến đất và so sánh với ngưỡng cài đặt (NGUONG_DO_AM) diễn ra độc lập trong bộ nhớ của vi điều khiển, nên hệ thống vẫn tự động bơm nước bình thường dù mất kết nối mạng.

3. Làm thế nào để khắc phục hiện tượng cảm biến độ ẩm đất bị oxy hóa nhanh?

Có hai giải pháp: (1) Nâng cấp lên cảm biến đo độ ẩm đất dạng điện dung (Capacitive sensor) không có tiếp xúc kim loại trực tiếp với đất ẩm; (2) Cấp nguồn cho cảm biến qua chân Digital GPIO của vi điều khiển và chỉ bật nguồn trước khi đọc ADC $50 - 100\text{ ms}$, giúp triệt tiêu hiện tượng điện phân cực kim loại.

4. Hệ thống có thể mở rộng để điều khiển nhiều máy bơm và van điện từ cùng lúc không?

Hoàn toàn được. Bạn có thể sử dụng thêm module Relay 4 kênh hoặc 8 kênh kết nối với các chân GPIO còn trống của vi điều khiển (D1, D2, D5, D6, D8), đồng thời gán thêm các Virtual Pins tương ứng trên giao diện ứng dụng Blynk để điều khiển độc lập từng khu vực tưới.

5. Chi phí duy trì hệ thống đám mây (Cloud) hàng tháng là bao nhiêu?

Nền tảng Blynk cung cấp gói Free Developer cho phép tạo dashboard với đầy đủ các widget cơ bản (Gauge, Value Display, Button, Notification) hoàn toàn miễn phí. Nếu triển khai quy mô lớn thương mại, bạn có thể triển khai một Private Blynk Server hoặc MQTT Broker (Mosquitto) trên máy chủ ảo cá nhân (VPS) với chi phí rất thấp.


Kết luận

Đồ án tốt nghiệp "Đo, giám sát nhiệt độ và độ ẩm sử dụng Arduino kết nối qua mạng Internet" của sinh viên Phạm Thị Nhung đã hoàn thành xuất sắc các mục tiêu nghiên cứu và thực nghiệm đề ra. Dự án không chỉ dừng lại ở mặt lý thuyết mà đã hiện thực hóa thành một sản phẩm công nghệ nhúng hoàn chỉnh, đáp ứng chính xác các chỉ số kỹ thuật về thu thập dữ liệu vi khí hậu và điều khiển tự động hóa qua mạng Internet.

Sự kết hợp giữa phần cứng giá thành thấp (ESP8266, DHT11, module rơ-le) với nền tảng điện toán đám mây hiện đại (Blynk IoT) đã chứng minh tính khả thi, độ tin cậy và tiềm năng nhân rộng mạnh mẽ của mô hình trong nông nghiệp thông minh và các giải pháp Smart Home thực tế. Đây là nền tảng kỹ thuật vững chắc để các nhà phát triển tiếp tục mở rộng, nâng cấp lên các kiến trúc IoT diện rộng trong tương lai.