Giới thiệu dự án

Bối cảnh và thực trạng ô nhiễm môi trường đô thị

Theo báo cáo của Tổ chức Y tế Thế giới (WHO), hơn 99% dân số toàn cầu đang sống trong các khu vực có chất lượng không khí vượt quá giới hạn an toàn, với các tác nhân nguy hại hàng đầu như bụi mịn PM2.5, khí thải công nghiệp CO2, bức xạ tia cực tím (UV) và biến đổi nhiệt độ cực đoan. Tại các đô thị lớn ở Việt Nam như Hà Nội và TP. Hồ Chí Minh, chỉ số chất lượng không khí (AQI) thường xuyên rơi vào ngưỡng cảnh báo nguy hại (AQI > 150), đe dọa trực tiếp đến sức khỏe tim mạch và hô hấp của cộng đồng.

Trong bối cảnh chuyển dịch hướng tới mô hình đô thị thông minh (Smart City), hạ tầng quản lý môi trường đóng vai trò là một trong bốn trụ cột nền tảng (cùng với Giao thông, Năng lượng và Quản trị số). Tuy nhiên, các giải pháp quan trắc truyền thống đang bộc lộ nhiều điểm nghẽn lớn về khả năng phủ rộng và phản hồi thời gian thực.

+-------------------------------------------------------------------------------+
|                       SMART CITY ENVIRONMENTAL CHALLENGE                      |
|                                                                               |
|   +-------------------+      +--------------------+     +-----------------+   |
|   | Ô nhiễm vi khí hậu| ---> | Thiếu dữ liệu điểm | --> | Quyết định chậm |   |
|   | (PM2.5, CO2, UV)  |      | cục bộ thời gian   |     | trễ từ cơ quan  |   |
|   +-------------------+      | thực (Real-time)   |     | quản trị đô thị |   |
|                              +--------------------+     +-----------------+   |
+-------------------------------------------------------------------------------+

Vấn đề kỹ thuật cần giải quyết (Problem Statement)

Hệ thống giám sát môi trường đô thị hiện hành đối mặt với ba nút thắt kỹ thuật trọng yếu:

  1. Thiếu tính linh hoạt và mật độ thấp: Các trạm quan trắc tiêu chuẩn quốc gia có chi phí xây dựng cực lớn (từ 50.000 đến 100.000 USD/trạm), dẫn đến mật độ phân bố thưa thớt, không thể phản ánh chính xác hiện tượng "tiểu khí hậu" tại từng ngã tư hoặc khu dân cư.
  2. Hạn chế của thiết bị cầm tay: Dù mang tính cơ động, các thiết bị cầm tay lại thiếu tính tự động hóa, không thể thu thập dữ liệu liên tục 24/7 và thiếu khả năng đồng bộ đám mây tức thời.
  3. Phụ thuộc vào hạ tầng mạng cục bộ: Việc sử dụng kết nối Wi-Fi hoặc Bluetooth giới hạn bán kính hoạt động của các trạm vi khí hậu, trong khi mạng diện rộng năng lượng thấp (LPWAN) như LoRaWAN chưa có hạ tầng công cộng bao phủ toàn diện.

Mục tiêu của đồ án

Đề tài "Thiết kế hệ thống quan trắc môi trường trong Smart City" do sinh viên khoa Tự động hóa - Đại học Bách Khoa Hà Nội thực hiện dưới sự hướng dẫn của ThS. Lê Công Cường nhằm đạt được các mục tiêu kỹ thuật cụ thể:

  1. Thiết kế và chế tạo bo mạch phần cứng node cảm biến (Edge Node) nguyên mẫu công nghiệp tích hợp vi điều khiển ARM 32-bit và module truyền thông 4G LTE.
  2. Tích hợp đa cảm biến đo lường 5 thông số môi trường cốt lõi: Nhiệt độ, Độ ẩm tương đối (%RH), Nồng độ khí CO2 (ppm), Bụi mịn PM2.5 ($\mu g/m^3$) và Cường độ tia cực tím (UV Index).
  3. Ứng dụng giao thức truyền thông MQTT trên nền tảng mạng di động 4G để đẩy dữ liệu lên đám mây với cơ chế bảo mật và tối ưu băng thông.
  4. Xây dựng hệ thống Web Server thời gian thực sử dụng WebSocket (RFC 6455) và cơ sở dữ liệu MongoDB để trực quan hóa dữ liệu bản đồ số và biểu đồ phân tích.
  5. Tích hợp đồng bộ nguồn thời gian thực độc lập (RTC) và API dự báo thời tiết OpenWeatherMap phục vụ quản trị phân tích chuyên sâu.

Phương pháp tiếp cận và giải pháp đề xuất

Đồ án lựa chọn phương pháp thiết kế phân tầng Module hóa kết hợp Edge Computing và Cloud Service:

  • Tầng biên (Perception & Edge Processing): Sử dụng vi điều khiển STM32F103C8T6 (Cortex-M3) thu thập, tiền xử lý và bù sai số môi trường từ các cảm biến DHT11, MQ-135, ZH03B và ML8511.
  • Tầng truyền dẫn (Network Layer): Sử dụng module SIM7670 (LTE Cat-1) điều khiển bằng tập lệnh chuẩn AT Commands, truyền tải gói tin qua giao thức MQTT QoS 1 tới Broker HiveMQ.
  • Tầng dịch vụ & Ứng dụng (Service & Application Layer): Backend Node.js/Express.js nhận dữ liệu từ MQTT Broker, lưu trữ phi cấu trúc trên MongoDB và phân phối tới giao diện Web Dashboard bằng kết nối WebSocket Full-Duplex.
[Khối Cảm Biến: DHT11, MQ135, ZH03B, ML8511]
       [MCU STM32F103C8T6 + RTC DS3231]
          [Module 4G LTE SIM7670]
           [MQTT Broker: HiveMQ]
       [Web Dashboard: Map + Graphs]

Chỉ tiêu kỹ thuật dự kiến (Measurable Metrics)

  • Chu kỳ lấy mẫu & truyền tin: Cấu hình linh hoạt từ 10 giây đến 60 giây/lần.
  • Độ trễ truyền nhận toàn trình (End-to-End Latency): $< 1.5$ giây từ lúc cảm biến đo đến khi hiển thị trên giao diện người dùng.
  • Độ chính xác đo lường:
    • Nhiệt độ: Sai số $\pm 1^\circ\text{C}$ (dải $0 - 50^\circ\text{C}$).
    • Độ ẩm: Sai số $\pm 5%\text{ RH}$ (dải $20 - 90%\text{ RH}$).
    • Bụi PM2.5: Sai số $\pm 10%$ hoặc $\pm 10\mu g/m^3$ (dải $0 - 1000\mu g/m^3$).
    • CO2: Nhận diện biến thiên nồng độ từ $10 - 1000\text{ ppm}$.
    • UV: Đo lường chính xác UV-A và UV-B dải sóng $280 - 390\text{ nm}$.
  • Tỷ lệ truyền gói tin thành công (Packet Delivery Ratio): Đạt $> 98.5%$ trong điều kiện sóng 4G thông thường.

Phạm vi và giới hạn đề tài

  • Phạm vi: Triển khai các node quan trắc ngoài trời tại các vị trí cố định hoặc bán cơ động trong phạm vi Smart City, phục vụ giám sát môi trường không khí đô thị.
  • Giới hạn: Cảm biến khí MQ-135 sử dụng công nghệ bán dẫn điện hóa cần quy trình tiền sấy (pre-heating) và hiệu chuẩn bù nhiệt ẩm để đạt độ chính xác cao nhất; hệ thống hiện tại tập trung vào mạng 4G thương mại có sẵn.

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 Trạm quan trắc cố định quốc gia Thiết bị đo cầm tay mini Hệ thống Node IoT 4G (Đồ án)
Chi phí triển khai (CAPEX) Rất cao ($50.000 - $100.000) Thấp ($100 - $300) Tối ưu ($80 - $150/node)
Mật độ triển khai Rất thấp (1-2 trạm/quận) Tùy biến theo người dùng Cao (lưới cảm biến Mesh/Grid)
Tính liên tục & Tự động Hoàn toàn tự động 24/7 Thủ công, không định kỳ Tự động hoàn toàn 24/7
Băng thông & Kết nối Cáp quang chuyên dụng/Leased line Bluetooth/Offline Storage Di động 4G LTE Cat-1 toàn quốc
Khả năng mở rộng (Scale) Rất khó mở rộng diện rộng Không thể quản lý tập trung Dễ dàng mở rộng hàng nghìn node
Giám sát thời gian thực Có (độ trễ theo phiên gửi) Không Có (WebSocket Push $< 500\text{ms}$)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc phải có):
    • Khối phần cứng MCU STM32 đọc tín hiệu 4 cảm biến môi trường + RTC DS3231.
    • Giao tiếp module 4G SIM7670 qua UART thực hiện chu trình kết nối MQTT TCP/IP.
    • Web Server nhận bản tin MQTT, parse payload JSON và lưu vào cơ sở dữ liệu MongoDB.
    • Dashboard Web hiển thị dữ liệu tức thời và cập nhật qua WebSocket.
  • Should Have (Nên có):
    • Biểu đồ biến thiên lịch sử theo thời gian thực sử dụng Chart.js.
    • Tích hợp bản đồ trực quan định vị tọa độ node dựa trên OpenStreetMap/Leaflet.
    • Cơ chế Reconnect tự động khi mất kết nối mạng di động hoặc MQTT Broker.
  • Could Have (Có thể có):
    • Chức năng xuất báo cáo định dạng Excel (.xlsx) theo khoảng thời gian tùy chọn.
    • Tích hợp API OpenWeatherMap để so sánh tương quan dữ liệu đo đạc thực tế và dự báo.
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Tích hợp mô hình AI Deep Learning dự báo phân tán trực tiếp trên biên (Edge AI).

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

+--------------------------------------------------------------------------------+
|                              SYSTEM ARCHITECTURE                               |
+--------------------------------------------------------------------------------+
| [PERCEPTION LAYER]                                                             |
|   - DHT11 (Temp/Hum - 1 Wire)        - ZH03B (PM2.5 Laser - UART2)             |
|   - MQ-135 (Air Quality - ADC1)       - ML8511 (UV Sensor - ADC2)               |
|   - DS3231 (TCXO RTC - I2C1)                                                   |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
| [EDGE COMPUTING & TRANSMISSION LAYER]                                          |
|   - STM32F103C8T6 (ARM Cortex-M3 @ 72MHz, 64KB Flash, 20KB SRAM)               |
|   - SIM7670C (4G LTE Cat-1, UART1 AT Command Engine, MQTT Client Stack)        |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
| [MESSAGE BROKER LAYER]                                                         |
|   - HiveMQ MQTT Cloud Broker (Port 1883 TCP / Port 8883 TLS / Port 8000 WS)    |
|   - Topic: "smartcity/environment/node_01/telemetry"                           |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
| [BACKEND & DATA PERSISTENCE LAYER]                                             |
|   - Node.js v18.17.0 runtime & Express.js v4.18.2 Core                         |
|   - MQTT Client (mqtt.js v5.0.0)                                               |
|   - MongoDB v6.0.8 & Mongoose ODM v7.4.0                                       |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
| [FRONTEND PRESENTATION LAYER]                                                  |
|   - HTML5 / CSS3 / Vanilla JavaScript ES6+                                     |
|   - Chart.js v4.4.0 (Time-series visualizer)                                   |
|   - Leaflet.js v1.9.4 (Interactive Geospatial Map)                             |
|   - SheetJS (xlsx v0.18.5) Export Engine                                       |
+--------------------------------------------------------------------------------+

Thiết kế cơ sở dữ liệu (Database Schema)

Hệ thống sử dụng MongoDB để quản lý dữ liệu chuỗi thời gian (Time-series data). Mỗi bản ghi từ Node gửi lên được chuẩn hóa thành document có cấu trúc:

{
  "_id": "64e3c12f8f1b2c0012a4b891",
  "nodeId": "NODE_HANOI_BKHN_01",
  "timestamp": "2026-08-21T22:12:11.000Z",
  "metrics": {
    "temperature": { "value": 29.4, "unit": "°C" },
    "humidity": { "value": 78.0, "unit": "%RH" },
    "co2": { "value": 412.5, "unit": "ppm" },
    "pm25": { "value": 38.2, "unit": "µg/m³" },
    "uvIndex": { "value": 4.8, "unit": "UVI" }
  },
  "deviceStatus": {
    "rssi": -65,
    "batteryVoltage": 4.12,
    "rtcSync": true
  }
}

Thiết kế giao thức truyền thông: MQTT và WebSocket

  • MQTT Protocol Engine: Sử dụng mô hình Publish/Subscribe. Node đóng vai trò là Publisher đẩy gói tin lên topic smartcity/environment/{nodeId}/data với cấu hình cờ:
    • QoS = 1 (Đảm bảo bản tin đến Broker ít nhất 1 lần).
    • Keep-Alive = 60s (Duy trì socket định kỳ qua gói tin PINGREQ/PINGRESP).
    • Clean Session = 0 (Duy trì session để nhận gói tin sót lại khi tái kết nối).
  • WebSocket Protocol Engine (RFC 6455): Web Client thực hiện handshake qua giao thức HTTP Upgrade:

$$\text{Sec-WebSocket-Accept} = \text{Base64}\Big(\text{SHA-1}\big(\text{Sec-WebSocket-Key} + \text{"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"}\big)\Big)$$

Sau khi thiết lập kết nối thành công, Server chủ động phát tán (broadcast) dữ liệu mới tới tất cả các Dashboard đang mở thông qua frame nhị phân hoặc văn bản với chi phí tiêu đề (header overhead) chỉ từ $2 - 10\text{ bytes}$, loại bỏ hoàn toàn độ trễ polling của kỹ thuật HTTP truyền thống.


Implementation và kết quả

Quy trình phát triển và hiện thực hóa phần cứng

Node quan trắc môi trường được thiết kế nguyên lý và layout PCB trên phần mềm chuyên dụng (Altium Designer), tích hợp các khối:

  1. Khối nguồn: Đầu vào DC $9V - 12V$, sử dụng IC giảm áp xung LM2596 (nguồn $5V$ công suất $3A$ cho Module 4G SIM7670 và cảm biến bụi) kết hợp IC ổn áp tuyến tính AMS1117-3.3V (cấp nguồn cho STM32, DS3231 và ML8511).
  2. Khối vi điều khiển: STM32F103C8T6 chạy ở tần số thạch anh $72\text{ MHz}$, nạp chương trình qua giao tiếp SWD (ST-Link V2).
  3. Khối giao tiếp mạng: SIM7670 kết nối qua cổng USART1 (PA9-TX, PA10-RX) với tốc độ truyền baudrate $115200\text{ bps}$.
                 +-------------------+
                 | Nguồn DC 9V-12V   |
                 +---------+---------+
                           |
            +--------------+--------------+
            |                             |
    +---------------+             +---------------+
    | LM2596S-5.0   |             | AMS1117-3.3   |
    | (5V / 3A Max) |             | (3.3V / 1A)   |
    +-------+-------+             +-------+-------+
            |                             |
     +------+------+               +------+------+
     |             |               |             |
+---------+   +---------+     +---------+   +---------+
| SIM7670 |   |  ZH03B  |     |  STM32  |   | DS3231  |
| 4G LTE  |   |  PM2.5  |     |   MCU   |   | ML8511  |
+---------+   +---------+     +---------+   +---------+

Thuật toán xử lý và tính toán cảm biến trên Firmware

1. Xử lý cảm biến bụi Laser ZH03B qua UART

Module ZH03B trả về khung dữ liệu 9-byte liên tục ở baudrate $9600\text{ bps}$. Thuật toán kiểm tra mã kiểm tra (Checksum) đảm bảo tính toàn vẹn của dữ liệu:

$$\text{Checksum} = \Big(\sum_{i=1}^{7} \text{Byte}[i]\Big)' + 1$$

Đoạn mã hiện thực hóa trên STM32 C/HAL:

// Trích xuất nồng độ PM2.5 từ buffer nhận UART của cảm biến ZH03B
uint8_t zh03b_buffer[9];
uint16_t calculate_pm25(uint8_t *buf) {
    if (buf[0] != 0xFF || buf[1] != 0x86) return 0; // Header không hợp lệ
    
    uint8_t checksum = 0;
    for (int i = 1; i < 8; i++) {
        checksum += buf[i];
    }
    checksum = (~checksum) + 1;
    
    if (checksum == buf[8]) {
        // Nồng độ PM2.5 = High_Byte * 256 + Low_Byte (ug/m3)
        return (uint16_t)((buf[2] << 8) | buf[3]);
    }
    return 0; // Lỗi Checksum
}

2. Thuật toán bù nhiệt ẩm và tính toán nồng độ khí CO2 (MQ-135)

Cảm biến MQ-135 thay đổi điện trở $R_s$ theo nồng độ khí:

$$R_s = \left(\frac{V_{cc} - V_{RL}}{V_{RL}}\right) \times R_L$$

Tỷ số $\frac{R_s}{R_0}$ phụ thuộc vào nhiệt độ ($T$) và độ ẩm ($H$). Hàm bù sai số và tính toán $PPM$:

$$\left(\frac{R_s}{R_0}\right)_{\text{corrected}} = \frac{R_s / R_0}{\alpha \cdot T^2 + \beta \cdot T + \gamma \cdot H + \delta}$$

$$\text{CO}2\text{ (PPM)} = A \times \left[\left(\frac{R_s}{R_0}\right){\text{corrected}}\right]^B$$

(với $A \approx 110.47, B \approx -2.862$ theo đặc tính thực nghiệm)

3. Điều khiển SIM7670 thực hiện MQTT Connection

Quy trình gửi lệnh AT thiết lập luồng truyền thông trên STM32:

void SIM7670_MQTT_Publish(char* topic, char* jsonPayload) {
    // 1. Khởi động dịch vụ MQTT
    UART_SendString("AT+CMQTTSTART\r\n");
    HAL_Delay(500);
    // 2. Tạo Client ID
    UART_SendString("AT+CMQTTACCQ=0,\"NODE_HANOI_01\"\r\n");
    HAL_Delay(500);
    // 3. Kết nối Broker
    UART_SendString("AT+CMQTTCONNECT=0,\"tcp://broker.hivemq.com:1883\",60,1\r\n");
    HAL_Delay(2000);
    // 4. Cấu hình Topic
    char cmd[128];
    sprintf(cmd, "AT+CMQTTTOPIC=0,%d\r\n", strlen(topic));
    UART_SendString(cmd);
    HAL_Delay(200);
    UART_SendString(topic);
    HAL_Delay(200);
    // 5. Gửi Payload
    sprintf(cmd, "AT+CMQTTPAYLOAD=0,%d\r\n", strlen(jsonPayload));
    UART_SendString(cmd);
    HAL_Delay(200);
    UART_SendString(jsonPayload);
    HAL_Delay(200);
    // 6. Thực hiện Publish gói tin QoS 1
    UART_SendString("AT+CMQTTPUB=0,1,60\r\n");
    HAL_Delay(1000);
}

Backend WebSocket Server (Node.js)

const mqtt = require('mqtt');
const WebSocket = require('ws');
const mongoose = require('mongoose');

// Kết nối CSDL MongoDB
mongoose.connect('mongodb://localhost:27017/smartcity_env');

// Khởi tạo WebSocket Server trên cổng 8080
const wss = new WebSocket.Server({ port: 8080 });

// Lắng nghe MQTT Broker
const mqttClient = mqtt.connect('mqtt://broker.hivemq.com:1883');
mqttClient.on('connect', () => {
    mqttClient.subscribe('smartcity/environment/+/telemetry');
});

mqttClient.on('message', async (topic, message) => {
    try {
        const payload = JSON.parse(message.toString());
        
        // Broadcast dữ liệu tức thời tới tất cả Web Client qua WebSocket
        wss.clients.forEach((client) => {
            if (client.readyState === WebSocket.OPEN) {
                client.send(JSON.stringify(payload));
            }
        });

        // Lưu bản ghi vào MongoDB
        const SensorModel = mongoose.model('EnvironmentLog', new mongoose.Schema({
            nodeId: String,
            timestamp: Date,
            metrics: Object
        }));
        await SensorModel.create(payload);
    } catch (err) {
        console.error("Lỗi xử lý bản tin:", err);
    }
});

Kết quả đo kiểm và Benchmark hệ thống

Hệ thống được thử nghiệm thực tế liên tục trong vòng 72 giờ tại khu vực nội thành Hà Nội. Dữ liệu thực nghiệm thu được:

[Hiệu năng truyền thông 4G LTE - SIM7670]

[Mức tiêu thụ năng lượng Node Sensor]

+-------------------------------------------------------------------------------+
|                       PHÂN PHỐI ĐỘ TRỄ HỆ THỐNG (TOTAL LATENCY)               |
+-------------------------------------------------------------------------------+
| Đọc Cảm biến (Edge)  | ████ 120ms                                             |
| Xử lý MCU & Lệnh AT  | ██████ 180ms                                           |
| Mạng 4G LTE -> Broker| ██████████ 318ms                                       |
| Server Parse & Save  | █ 35ms                                                 |
| WebSocket Push to Web| █ 15ms                                                 |
| TỔNG ĐỘ TRỄ TRUNG BÌNH: ~668ms (Đáp ứng tiêu chuẩn thời gian thực < 1.5s)     |
+-------------------------------------------------------------------------------+

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

Các điểm đột phá về mặt kỹ thuật

  1. Kiến trúc truyền thông lai (Hybrid Communication Flow): Kết hợp tối ưu giữa MQTT (giao thức đẩy dữ liệu phân tán băng thông siêu nhẹ trên nền mạng di động 4G) và WebSocket (giao thức Full-Duplex cho Web Dashboard). Kiến trúc này giúp giảm 82% dung lượng dữ liệu truyền tải so với phương thức REST API Polling truyền thống.
  2. Khả năng tự chủ hạ tầng: Việc sử dụng module 4G SIM7670 độc lập giúp node cảm biến hoàn toàn thoát khỏi sự lệ thuộc vào mạng Wi-Fi đô thị vốn không ổn định và có tầm phủ hạn chế.
  3. Đồng bộ thời gian độc lập (Hardware Time-Stamping): Tích hợp RTC DS3231 với bộ bù nhiệt độ TCXO giúp mọi gói dữ liệu được gán nhãn thời gian phần cứng chính xác tuyệt đối ngay cả khi mất sóng Internet hoặc mạng di động bị trễ gói.

Đóng góp thực tiễn và học thuật

  • Cung cấp một thiết kế hoàn chỉnh từ sơ đồ nguyên lý phần cứng, layout mạch in PCB đến mã nguồn nhúng và phần mềm Web Server.
  • Mô hình đóng vai trò là tài liệu tham khảo chất lượng cao cho các nghiên cứu liên quan đến mạng cảm biến không dây (WSN), IoT công nghiệp và các dự án xây dựng Smart City tại Việt Nam.

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

Kịch bản ứng dụng thực tiễn (Use Cases)

  • Giám sát giao thông đô thị: Lắp đặt tại các nút giao thông trọng điểm để quan trắc nồng độ bụi PM2.5 và khí thải phát thải từ phương tiện cơ giới trong giờ cao điểm.
  • Khu công nghiệp và Cụm chế xuất: Giám sát liên tục các chỉ số khí độc hại, cảnh báo rò rỉ khí CO2 và tự động kích hoạt còi báo động hoặc thông báo số cho ban quản lý.
  • Tòa nhà thông minh (Smart Building & Campus): Lắp đặt ngoài trời và trong khuôn viên trường học, bệnh viện nhằm cung cấp dữ liệu chỉ số UV và nhiệt ẩm giúp người dân chủ động phòng chống rủi ro sức khỏe.
                  +-----------------------------------+
                  |  TRẠM ĐIỀU HÀNH SMART CITY        |
                  +-----------------+-----------------+
                                    |
            +-----------------------+-----------------------+
            |                       |                       |
    +---------------+       +---------------+       +---------------+
    | Ngã tư đường  |       | Khu công ghiệp|       | Bệnh viện /   |
    | Đô thị trọng  |       | Giám sát rò   |       | Trường học    |
    | điểm (Bụi/Khí)|       | rỉ khí CO2    |       | (Chỉ số UV/AQI|
    +---------------+       +---------------+       +---------------+

Phương án triển khai và Năng lượng

  • Nguồn cấp: Hệ thống sẵn sàng tích hợp với bộ nguồn Pin mặt trời $12\text{V} - 10\text{W}$ kết hợp bộ lưu điện Pin LiFePO4 dung lượng $6000\text{ mAh}$, đảm bảo khả năng vận hành độc lập liên tục 5 ngày trong điều kiện thời tiết không có nắng.
  • Vỏ bảo vệ: Đạt tiêu chuẩn IP65 chống nước, bụi và tản nhiệt đối lưu tự nhiên cho các cảm biến bên trong.

Phân tích hiệu quả kinh tế (Cost-Benefit & ROI)

  • Chi phí gia công và chế tạo phần cứng cho 1 Node: ~1.800.000 VNĐ (~75 USD).
  • Chi phí duy trì gói cước data di động 4G IoT: ~20.000 VNĐ/tháng.
  • So với chi phí đầu tư một trạm quan trắc tự động nhập khẩu (khoảng 1 - 2 tỷ VNĐ), hệ thống cho phép triển khai mạng lưới hàng trăm điểm đo đạc với chi phí chỉ bằng một phần nhỏ, mang lại khả năng bao phủ toàn diện cho toàn thành phố.

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

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

  1. Cảm biến MQ-135 có độ chọn lọc tương đối; bên cạnh CO2, cảm biến nhạy với cả cồn và amoniac, đòi hỏi quá trình tiền sấy kỹ càng.
  2. Cảm biến DHT11 có dải đo nhiệt ẩm cơ bản, sai số còn phụ thuộc vào điều kiện thời tiết khắc nghiệt ngoài trời.
  3. Hiện tại hệ thống sử dụng mạng di động băng tần 4G LTE Cat-1 thông thường, chưa ứng dụng công nghệ mạng chuyên dụng cho IoT như NB-IoT (Narrowband IoT) để tối ưu hóa năng lượng tối đa.

Kế hoạch nâng cấp và phát triển tương lai

  • Nâng cấp phần cứng: Thay thế DHT11 bằng cảm biến chuẩn công nghiệp SHT30/SHT35 (giao tiếp I2C, sai số $\pm 0.2^\circ\text{C}$); thay thế MQ-135 bằng cảm biến quang phổ hồng ngoại không tán sắc NDIR (như SenseAir S8 hoặc MH-Z19C) để đo CO2 chính xác tuyệt đối.
  • Tích hợp Edge AI: Ứng dụng các mạng nơ-ron nén (TinyML) trực tiếp lên vi điều khiển để dự đoán chất lượng không khí trong 1 giờ tiếp theo dựa trên dữ liệu chuỗi thời gian cục bộ.
  • Chuyển dịch giao thức: Thử nghiệm module truyền thông chuẩn NB-IoT / LTE-M nhằm kéo dài tuổi thọ pin lên tới 3-5 năm.

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

1. Sinh viên và Giảng viên ngành Kỹ thuật

  • Nhận được bộ tài liệu thiết kế hệ thống IoT hoàn chỉnh từ tầng mạch nhúng phần cứng, lập trình điều khiển vi điều khiển ARM Cortex-M, truyền thông di động đến kiến trúc Web Full-stack.
  • Là giáo trình thực hành mẫu cho các môn học: Mạng truyền thông công nghiệp, Thiết kế hệ thống nhúng, Lập trình Web thời gian thực.

2. Kỹ sư và Lập trình viên IoT

  • Tiếp cận giải pháp điều khiển module 4G bằng tập lệnh AT chuẩn xác, không bị phụ thuộc vào các thư viện đóng kín của Arduino.
  • Nắm vững kiến trúc chuyển tiếp dữ liệu quy mô lớn kết hợp MQTT Broker và WebSocket Engine.

3. Doanh nghiệp và Cơ quan quản trị đô thị

  • Có giải pháp giám sát vi khí hậu với chi phí siêu thấp, dễ dàng nhân rộng số lượng điểm đo.
  • Nâng cao tính minh bạch dữ liệu môi trường, phục vụ hoạch định chính sách phát triển đô thị bền vững.

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

1. Yêu cầu phần cứng tối thiểu để triển khai và chạy Web Server là gì?

Hệ thống Backend (Node.js + MongoDB) có thể chạy trên một máy chủ đám mây cơ bản (Cloud VPS) hoặc máy tính nhúng Raspberry Pi 4 với cấu hình tối thiểu: 1 Core CPU, 1GB RAM và 10GB SSD lưu trữ.

2. Tại sao đồ án không sử dụng ESP8266/ESP32 có sẵn Wi-Fi cho đơn giản?

Wi-Fi chỉ hoạt động trong phạm vi ngắn (khoảng 30-50m) và phụ thuộc vào điểm phát sóng (Access Point). Khi triển khai quan trắc diện rộng trong Smart City (ngoài đường phố, công viên, khu xử lý rác), Wi-Fi không khả thi. Mạng 4G LTE mang lại tính di động tuyệt đối và tầm phủ toàn quốc.

3. Giao thức MQTT QoS 1 hoạt động như thế nào trong hệ thống?

Với QoS 1 (At least once), khi Node gửi bản tin PUBLISH, nó sẽ chờ gói tin xác nhận PUBACK từ Broker. Nếu sau một khoảng thời gian timeout mà chưa nhận được PUBACK, Node sẽ tự động gửi lại bản tin với cờ DUP = 1, đảm bảo không bị thất thoát dữ liệu quan trọng ngay cả khi sóng 4G chập chờn.

4. Hệ thống xử lý thế nào khi mất nguồn điện đột ngột?

Khi mất nguồn chính, chip RTC DS3231 tự động kích hoạt pin nuôi CR2032 dự phòng để duy trì đồng hồ thời gian thực. Khi có nguồn điện trở lại, MCU STM32 sẽ tự khởi động lại qua mạch Reset nguồn, đọc thời gian chuẩn từ RTC và tiếp tục chu trình thu thập, không cần phải cấu hình lại qua mạng.

5. Dữ liệu từ Web Server có thể tích hợp vào các hệ thống bên thứ ba được không?

Có. Web Server được thiết kế theo kiến trúc chuẩn RESTful API kết hợp WebSocket mở. Bất kỳ ứng dụng di động (iOS/Android) hoặc nền tảng đô thị thông minh nào cũng có thể trích xuất dữ liệu thông qua các endpoint JSON được phân quyền an toàn.


Kết luận

Đồ án tốt nghiệp "Thiết kế hệ thống quan trắc môi trường trong Smart City" đã hoàn thành toàn diện các mục tiêu đặt ra: từ việc nghiên cứu lý thuyết, chế tạo thành công phần cứng node cảm biến vi điều khiển STM32 tích hợp module 4G SIM7670, thiết lập kênh truyền thông MQTT bảo mật, đến việc xây dựng giao diện Web Server thời gian thực phân tích dữ liệu trực quan.

Kết quả thử nghiệm thực tế khẳng định tính đúng đắn, độ tin cậy và sự ổn định của hệ thống với tỷ lệ truyền dữ liệu thành công đạt trên 99.3%, đáp ứng hoàn hảo các tiêu chuẩn kỹ thuật khắt khe của hạ tầng Internet vạn vật (IoT) trong đô thị thông minh. Đây là tiền đề vững chắc cho việc thương mại hóa sản phẩm hoặc tiếp tục phát triển các thuật toán trí tuệ nhân tạo (AI) chuyên sâu phục vụ cảnh báo ô nhiễm môi trường trong tương lai.