Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và làn sóng Internet of Things (IoT) đã định hình lại tiêu chuẩn sống hiện đại, đưa khái niệm nhà thông minh (Smart Home / Home Automation) từ các phòng thí nghiệm cao cấp vào đời sống thường nhật. Theo các báo cáo phân tích thị trường công nghệ nhà thông minh tại châu Âu, số lượng hệ thống lắp đặt đã tăng trưởng vượt bậc từ 1 triệu hệ thống năm 2012 lên 17 triệu hệ thống năm 2017 và chạm mốc 29,7 triệu vào năm 2019. Xu hướng chuyển dịch toàn cầu tập trung vào việc tối ưu hóa mức tiêu thụ năng lượng, cắt giảm chi phí lắp đặt và mang lại khả năng quản lý trực quan cho người sử dụng.

Tại Việt Nam, việc triển khai các hệ thống Smart Home thương mại quy mô lớn (như Bkav SmartHome, HomeOn) gặp phải nhiều rào cản đặc thù:

  • Hạ tầng lưới điện dân dụng cũ: Các công trình nhà ở đa phần xây dựng theo kiến trúc truyền thống, khó đục tường hoặc kéo thêm cáp tín hiệu điều khiển chuyên dụng (wired bus như RS-485, KNX).
  • Chi phí đầu tư đắt đỏ: Các giải pháp nhập ngoại hoặc hệ sinh thái cao cấp đòi hỏi chi phí từ hàng chục đến hàng trăm triệu đồng, vượt quá khả năng tài chính của đại bộ phận hộ gia đình.
  • Tiêu hao năng lượng của chuẩn không dây cũ: Các giao thức không dây phổ thông như Wi-Fi (IEEE 802.11 b/g/n) tiêu thụ công suất lớn ($30\text{ mW} - 1\text{ W}$), gây quá tải nhiệt và hạn chế khả năng dùng pin của các cảm biến; trong khi Bluetooth Classic (IEEE 802.15.1) lại có khoảng cách hạn chế khi gặp vật cản ($3 - 4\text{ m}$) và cấu hình kết nối chậm.

Nhằm giải quyết triệt để các hạn chế trên, đồ án tốt nghiệp ngành Công nghệ Kỹ thuật Máy tính tại Trường Đại học Sư phạm Kỹ thuật TP.HCM (HCMUTE) với đề tài "Mô hình quản lý nhà không dây" (SVTH: Lê Hải Anh, Nguyễn Hoài Hậu; GVHD: ThS. Nguyễn Đình Phú) đã nghiên cứu và phát triển một hệ thống điều khiển tự động hóa gia đình dựa trên công nghệ Bluetooth 4.0 Low Energy (BLE) kết hợp hệ điều hành thời gian thực FreeRTOS trên nền tảng vi điều khiển 32-bit hiệu năng cao.

+-------------------------------------------------------------------------+
|                        KIẾN TRÚC MÔ HÌNH HỆ THỐNG                       |
+-------------------------------------------------------------------------+
                                     |
               +---------------------+---------------------+
               |                                           |
               v                                           v
    +----------------------+                    +----------------------+
    |  SMARTPHONE ANDROID  |                    | STM32F4 DISCOVERY    |
    |  (Giao diện điều     |                    | (FreeRTOS Core +     |
    |   khiển BLE Master)  |                    |  Màn hình TFT LCD)   |
    +----------+-----------+                    +----------+-----------+
               | (Bluetooth 4.0 BLE Star Network)          | (UART)
       +-------+--------------------+                      |
       |                            |                      v
       v                            v           +----------------------+
+--------------+             +--------------+   | HM-10 BLE Master     |
| NODE SLAVE 1 |             | NODE SLAVE 2 |   +----------------------+
| Arduino Mini |             | Arduino Nano |
| Relay AC/DC  |             | MQ-2 Gas/Temp|
+--------------+             +--------------+

Mục tiêu đề tài

  1. Thiết kế mạng không dây BLE: Thiết lập mạng cấu trúc hình sao (Star Topology) truyền nhận dữ liệu hai chiều giữa ứng dụng điện thoại Android và 3 node chức năng thông qua module Bluetooth 4.0 HM-10.
  2. Triển khai hệ điều hành thời gian thực FreeRTOS: Lập trình đa nhiệm (Multitasking) trên vi điều khiển STM32F4 (ARM Cortex-M4F), quản lý đồng thời tác vụ hiển thị giao diện đồ họa trên màn hình TFT LCD và tác vụ định tuyến truyền thông UART.
  3. Phát triển node thực thi và thu thập dữ liệu: Tích hợp các mạch vi điều khiển 8-bit giá rẻ (Arduino Pro Mini, Arduino Nano) để xử lý tín hiệu cảm biến rò rỉ khí gas (MQ-2), cảm biến nhiệt độ, điều khiển đóng/ngắt thiết bị AC (220V), DC (12V) và góc quay động cơ RC Servo.
  4. Xây dựng ứng dụng di động: Thiết kế giao diện điều khiển trên hệ điều hành Android, quản lý danh sách thiết bị và giám sát trạng thái hệ thống theo thời gian thực.

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

  • Phạm vi: Ứng dụng điều khiển trong phạm vi nhà ở gia đình, sử dụng 3 node mạng BLE độc lập giao tiếp với Smartphone và bộ điều khiển trung tâm STM32F4.
  • Giới hạn: Mạng không dây vận hành theo cấu trúc Star Topology (kết nối trực tiếp Master - Peripheral); chưa triển khai định tuyến Mesh đa bước nhảy (Multi-hop Mesh Network); hệ thống tập trung vào điều khiển nội vùng không qua máy chủ đám mây bên ngoài.

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

Phân tích hiện trạng và đánh giá công nghệ

Để lựa chọn hạ tầng truyền thông tối ưu cho hệ thống nhà thông minh không dây, các công nghệ mạng không dây phổ biến được đưa vào so sánh chi tiết:

Tiêu chí Wi-Fi (IEEE 802.11b/g/n) Bluetooth Classic (v2.1) ZigBee (IEEE 802.15.4) Bluetooth 4.0 Low Energy (BLE)
Băng tần 2.4 GHz 2.4 GHz ISM 868/915 MHz, 2.4 GHz 2.4 GHz ISM (40 kênh)
Tốc độ truyền dữ liệu 11 - 150+ Mbps 1 - 3 Mbps 20 - 250 kbps 1 Mbps (Payload: 20 bytes/packet)
Khoảng cách truyền 10 - 100 m 10 m (Indoor: 3 - 4 m) 10 - 100 m 10 - 50 m (Indoor: 10 - 15 m)
Mức tiêu thụ công suất 30 mW - 1 W (Rất cao) 10 - 100 mW (Cao) 1 - 10 mW (Cực thấp) 0.5 - 10 mW (Cực thấp)
Độ trễ khởi tạo kết nối ~3 - 5 giây ~100 ms ~30 ms < 6 ms
Chi phí phần cứng module Trung bình Trung bình Cao (Cần Coordinator) Thấp (Module HM-10/CC2541)
Khả năng tương thích di động Trực tiếp Trực tiếp Cần Gateway chuyển đổi Trực tiếp với hầu hết Smartphone

Đánh giá Gap Analysis: ZigBee có ưu thế về mạng Mesh nhưng đòi hỏi bộ chuyển đổi Gateway phức tạp và chi phí phần cứng cao. Wi-Fi tiêu tốn quá nhiều năng lượng, không phù hợp cho các node cảm biến pin. Bluetooth 4.0 LE được chọn làm giải pháp cốt lõi nhờ khả năng kết nối trực tiếp với Smartphone/Tablet không cần bộ chuyển đổi, dòng tiêu thụ cực thấp (kéo dài tuổi thọ pin nhiều tháng) và thời gian phản hồi siêu nhanh (< 6 ms).

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

  • Must have (Bắt buộc có):
    • Thu nhận và xử lý tín hiệu cảm biến khí gas MQ-2 và nhiệt độ tại node ngoại vi.
    • Đóng/ngắt thiết bị tải AC (220V qua Relay có opto cách ly) và DC (đèn LED, quạt).
    • Điều khiển góc mở cửa thông qua cơ cấu Servo PWM.
    • Giao tiếp ổn định qua giao thức BLE UART (HM-10 AT Command).
    • Giao diện giám sát đồ họa thời gian thực trên màn hình TFT LCD gắn kit STM32F4.
  • Should have (Nên có):
    • Tự động phát chuông/còi cảnh báo tại chỗ khi nồng độ gas vượt ngưỡng cài đặt.
    • Ứng dụng Android có giao diện phân vùng trực quan (Phòng khách, Phòng ngủ, Bếp).
  • Could have (Có thể mở rộng):
    • Thiết lập các kịch bản phối hợp thiết bị (Context-aware Automation: "Đi ngủ", "Tiệc tùng").
  • Won't have (Chưa thực hiện):
    • Định tuyến dữ liệu qua Cloud Server Internet ra bên ngoài mạng gia đình.

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

+---------------------------------------------------------------------------------+
|                        KIẾN TRÚC PHẦN MỀM VÀ PHẦN CỨNG                          |
+---------------------------------------------------------------------------------+

               +-------------------------------------------+
               |          HỆ THỐNG ĐIỀU KHIỂN TRUNG TÂM    |
               |                                           |
               |   [Smartphone Android Application]        |
               |   - BLE Generic Attribute Profile (GATT)  |
               |   - Service: 0xFFE0 | Char: 0xFFE1        |
               +---------------------+---------------------+
                                     |
                                     | BLE 2.4GHz ISM
                                     v
+---------------------------------------------------------------------------------+
|                                CÁC NODE NGOẠI VI                                |
|                                                                                 |
|  +---------------------------+  +--------------------+  +--------------------+  |
|  | NODE 1: QUẢN LÝ TẬP TRUNG |  | NODE 2: CẢM BIẾN   |  | NODE 3: THỰC THI   |  |
|  | - STM32F4 Discovery       |  | - Arduino Nano     |  | - Arduino Pro Mini |  |
|  | - ARM Cortex-M4F @168MHz  |  | - ATmega328P       |  | - ATmega328P       |  |
|  | - FreeRTOS Kernel v8.x    |  | - Sensor: MQ-2 Gas |  | - Relay 2-Channel  |  |
|  | - Màn hình TFT LCD        |  | - Temp Sensor      |  | - RC Servo Motor   |  |
|  | - Module BLE HM-10 Master |  | - HM-10 BLE Slave  |  | - HM-10 BLE Slave  |  |
|  +---------------------------+  +--------------------+  +--------------------+  |
+---------------------------------------------------------------------------------+

Ngăn xếp giao thức Bluetooth 4.0 BLE (Protocol Stack)

Hệ thống tận dụng kiến trúc phân tầng chuẩn của BLE:

  1. Lớp vật lý (PHY): Hoạt động trên dải tần 2.4 GHz ISM, chia thành 40 kênh vật lý (bước sóng cách nhau 2 MHz, từ kênh 0 đến kênh 39). Trong đó:
    • Kênh 37, 38, 39: Dùng làm kênh quảng bá (Advertising Channels) phục vụ tìm kiếm thiết bị và truyền broadcast.
    • Kênh 0 - 36: Dùng cho truyền nhận dữ liệu kết nối (Data Channels) với thuật toán nhảy tần thích ứng (Frequency Hopping Spread Spectrum - FHSS): $$\text{Channel} = (\text{hop} + \text{current_channel}) \pmod{37}$$
  2. Lớp Link Layer: Quản lý 4 vai trò chính: Advertiser, Scanner, Master (Central) và Slave (Peripheral).
  3. Generic Attribute Profile (GATT): Dữ liệu trao đổi được chuẩn hóa dưới dạng các Attribute trong bảng phân cấp:
    • Service Declaration: Khai báo dịch vụ tùy biến với UUID 16-bit chuẩn 0xFFE0.
    • Characteristic Definition: Thuộc tính dữ liệu UUID 0xFFE1 mang quyền Read, Write Without ResponseNotify.
    • Payload: Giới hạn 20 bytes dữ liệu người dùng trên mỗi gói tin BLE Link Layer 27 bytes.
+-------------------------------------------------------------+
|               CẤU TRÚC PHÂN CẤP GATT PROFILE                |
+-------------------------------------------------------------+
|  GATT Server (Module HM-10 Node ngoại vi)                   |
|  └── Service: UUID 0xFFE0 (Custom Home Automation Service)  |
|      └── Characteristic: UUID 0xFFE1 (Data Transceiver)     |
|          ├── Properties: READ | WRITE | NOTIFY              |
|          ├── Value: [Node_ID, Command_Code, Parameter, CRC] |
|          └── Descriptor: Client Characteristic Config (0x2902)
+-------------------------------------------------------------+

Implementation và kết quả

Quy trình phát triển và tích hợp hệ thống

Quá trình hiện thực hóa mô hình được chia thành 4 giai đoạn kỹ thuật rõ ràng:

  • Giai đoạn 1: Cấu hình và thiết lập mạng BLE bằng tập lệnh AT Command trên module CC2540/CC2541 HM-10 qua phần mềm RealTerm (UART 9600 bps, 8 data bits, no parity, 1 stop bit).
  • Giai đoạn 2: Lập trình firmware cho các node Arduino (C/C++ nhúng) nhằm đọc tín hiệu Analog từ MQ-2, điều khiển xuất xung PWM cho Servo và điều khiển mức Logic Relay.
  • Giai đoạn 3: Porting và cấu hình FreeRTOS lên dòng vi điều khiển ARM Cortex-M4F trên board STM32F4 Discovery, thiết kế driver giao tiếp TFT LCD qua chuẩn giao tiếp song song 16-bit / SPI.
  • Giai đoạn 4: Lập trình ứng dụng Android Client sử dụng Android BLE API (BluetoothGattCallback), kiểm thử đồng bộ truyền nhận.

Thuật toán và tổ chức mã nguồn

1. Đa nhiệm thời gian thực FreeRTOS trên STM32F4

Bộ vi xử lý STM32F407VG sử dụng lõi ARM Cortex-M4F tốc độ 168 MHz tích hợp bộ tính toán số thực phần cứng (FPU) và bộ điều khiển ngắt lồng nhau NVIC. Kernel FreeRTOS áp dụng thuật toán lập lịch ưu tiên ưu tiên xoay vòng (Preemptive Round-Robin Scheduling) với bộ đếm nhịp hệ thống RTOS Tick (1000 Hz, chu kỳ 1 ms). Quá trình chuyển đổi ngữ cảnh (Context Switching) diễn ra tự động thông qua việc lưu thanh ghi vào stack của từng tác vụ khi ngắt SysTick kích hoạt.

#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "stm32f4xx.h"
#include "tft_lcd.h"

// Định nghĩa Queue truyền dữ liệu cảm biến giữa các Task
QueueHandle_t xBleDataQueue;

typedef struct {
    uint8_t nodeID;
    uint8_t command;
    uint16_t sensorValue;
} DeviceMessage_t;

// Task 1: Xử lý giao diện đồ họa LCD (Độ ưu tiên: Low)
void vTaskGUI(void *pvParameters) {
    DeviceMessage_t rxMsg;
    TFT_LCD_Init();
    TFT_DrawHomeScreen();
    
    for (;;) {
        // Nhận dữ liệu từ Queue với thời gian chờ tối đa 100ms
        if (xQueueReceive(xBleDataQueue, &rxMsg, pdMS_TO_TICKS(100)) == pdPASS) {
            if (rxMsg.nodeID == 0x02) { // Node cảm biến Gas
                TFT_UpdateGasStatus(rxMsg.sensorValue);
            } else if (rxMsg.nodeID == 0x03) { // Node Relay
                TFT_UpdateRelayStatus(rxMsg.command);
            }
        }
        vTaskDelay(pdMS_TO_TICKS(50)); // Nhường CPU
    }
}

// Task 2: Nhận và phân tích gói tin BLE UART (Độ ưu tiên: High)
void vTaskBLEHandler(void *pvParameters) {
    DeviceMessage_t msg;
    uint8_t buffer[8];
    
    for (;;) {
        if (UART_ReceiveBytes(USART2, buffer, 4) == SUCCESS) {
            // Cấu trúc gói tin: [Header 0xAA][NodeID][Cmd/Data][Checksum]
            if (buffer[0] == 0xAA) {
                msg.nodeID = buffer[1];
                msg.command = buffer[2];
                msg.sensorValue = (uint16_t)buffer[2];
                
                // Đẩy thông điệp vào Queue an toàn trong RTOS
                xQueueSend(xBleDataQueue, &msg, 0);
            }
        }
        vTaskDelay(pdMS_TO_TICKS(10));
    }
}

int main(void) {
    // Khởi tạo phần cứng xung nhịp 168MHz và UART
    SystemInit();
    USART2_Configuration(9600);
    
    // Khởi tạo hàng đợi chứa tối đa 10 thông điệp
    xBleDataQueue = xQueueCreate(10, sizeof(DeviceMessage_t));
    
    if (xBleDataQueue != NULL) {
        // Tạo các tác vụ độc lập
        xTaskCreate(vTaskGUI, "GUI_Task", configMINIMAL_STACK_SIZE + 256, NULL, 1, NULL);
        xTaskCreate(vTaskBLEHandler, "BLE_Task", configMINIMAL_STACK_SIZE + 128, NULL, 2, NULL);
        
        // Bắt đầu bộ lập lịch FreeRTOS
        vTaskStartScheduler();
    }
    
    while (1); // Không bao giờ chạm đến đây
}

2. Xử lý dữ liệu và cấu hình AT Command trên Node Arduino

Các node Arduino Pro Mini và Arduino Nano được nạp mã nguồn C++ tối ưu để phân tích các ký tự điều khiển từ UART chuyển tiếp qua module HM-10:

#include <SoftwareSerial.h>
#include <Servo.h>

#define RELAY_PIN 8
#define MQ2_ANALOG_PIN A0
#define SERVO_PIN 9

SoftwareSerial bleSerial(10, 11); // RX, TX
Servo doorServo;

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW); // Mặc định tắt tải
  doorServo.attach(SERVO_PIN);
  doorServo.write(0); // Cửa đóng
  
  Serial.begin(9600);
  bleSerial.begin(9600);
  
  // Cấu hình module HM-10 chế độ SLAVE
  bleSerial.print("AT+ROLE0");
  delay(100);
  bleSerial.print("AT+NAME_NODE3");
  delay(100);
}

void loop() {
  // Xử lý lệnh điều khiển từ Master gửi về
  if (bleSerial.available() > 0) {
    char cmd = bleSerial.read();
    switch (cmd) {
      case '1': // Bật Relay tải AC
        digitalWrite(RELAY_PIN, HIGH);
        bleSerial.println("ACK:RELAY_ON");
        break;
      case '0': // Tắt Relay
        digitalWrite(RELAY_PIN, LOW);
        bleSerial.println("ACK:RELAY_OFF");
        break;
      case 'O': // Mở cửa (Servo 90 độ)
        doorServo.write(90);
        bleSerial.println("ACK:DOOR_OPEN");
        break;
      case 'C': // Đóng cửa
        doorServo.write(0);
        bleSerial.println("ACK:DOOR_CLOSE");
        break;
    }
  }
}

Kết quả đo lường và kiểm thử thực nghiệm

Hệ thống đã trải qua quá trình đánh giá thực nghiệm toàn diện trong môi trường nhà ở 2 tầng với tường ngăn bê tông 10 cm:

Thông số đo lường Mục tiêu thiết kế ban đầu Kết quả thực nghiệm đạt được Trạng thái
Phạm vi truyền BLE ổn định (Indoor) $\ge 10\text{ m}$ (Có tường chắn) $12 - 15\text{ m}$ không suy hao Đạt
Độ trễ truyền tín hiệu điều khiển $< 100\text{ ms}$ $35 - 48\text{ ms}$ Vượt chỉ tiêu
Thời gian đáp ứng cảnh báo rò gas $< 2\text{ giây}$ $0.65\text{ giây}$ (Tín hiệu đẩy về App) Vượt chỉ tiêu
Tỷ lệ mất gói tin (Packet Loss Rate) $< 2%$ $0.45%$ (Trong phạm vi $10\text{ m}$) Đạt
Chu kỳ CPU FreeRTOS cho Task GUI Tối ưu hóa mượt mà Chiếm $\approx 18%$ tổng thời gian CPU Đạt
Số lượng node đồng thời hoạt động 3 node 3 node hoạt động ổn định Đạt

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

  1. Ứng dụng cấu trúc phân tầng BLE GATT vào vi điều khiển giá rẻ: Thay vì sử dụng các module RF không có cơ chế bắt tay bảo mật, đồ án đã triển khai chuẩn hóa truyền thông theo các dịch vụ GATT, cho phép mọi thiết bị hỗ trợ BLE giao tiếp dễ dàng mà không đòi hỏi phần cứng trung gian cồng kềnh.
  2. Ứng dụng hệ điều hành thời gian thực FreeRTOS trên vi điều khiển 32-bit: Việc tách biệt tác vụ hiển thị đồ họa phức tạp (TFT LCD) và tác vụ thu nhận dữ liệu ngắt ngoại vi (UART BLE) thành các thread riêng biệt với hàng đợi Queue tránh hoàn toàn hiện tượng nghẽn luồng (blocking) thường gặp trên kiến trúc tuần tự cổ điển (Bare-metal Super Loop).
  3. Cắt giảm năng lượng vượt bậc so với các giải pháp Wi-Fi/Bluetooth Classic: Nhờ cơ chế Sleep ngắt quãng của BLE và chế độ tiết kiệm điện trên vi điều khiển, năng lượng tiêu thụ tại các node cảm biến giảm hơn 70% so với việc sử dụng module Wi-Fi ESP8266 hoặc Bluetooth HC-05 truyền thống.

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

Kịch bản sử dụng thực tế (Use Cases)

[Phát hiện rò rỉ khí Gas]
       │
       ▼
[Node 2: Cảm biến MQ-2] ──(BLE Advertising: DATA)──► [Smartphone / STM32F4 Master]
                                                              │
                                            ┌─────────────────┴─────────────────┐
                                            ▼                                   ▼
                                  [Bật còi cảnh báo]                  [Gửi lệnh đóng cửa van/
                                  [Hiển thị cảnh báo]                  Bật quạt thông gió]
  • Hệ thống an toàn phòng cháy chữa cháy: Khi cảm biến MQ-2 tại nhà bếp phát hiện nồng độ gas/khói vượt mức cho phép, node phát tín hiệu khẩn cấp đến màn hình trung tâm STM32F4 và điện thoại, đồng thời kích hoạt Relay bật quạt hút gió và kéo Servo mở cửa sổ thông khí.
  • Hỗ trợ người cao tuổi và người khuyết tật: Điều khiển bật/tắt toàn bộ đèn chiếu sáng, quạt, khóa cửa từ xa qua giao diện cảm ứng màn hình lớn đặt cạnh giường hoặc ứng dụng smartphone chỉ với một lần chạm.

Phân tích chi phí và hiệu quả đầu tư (BOM & Cost Breakdown)

Linh kiện / Phần mềm Số lượng Đơn giá ước tính (VNĐ) Thành tiền (VNĐ)
Board STM32F407 Discovery (ARM Cortex-M4F) 01 450.000 450.000
Màn hình màu TFT LCD 2.4/2.8 inch 01 150.000 150.000
Arduino Nano / Pro Mini (ATmega328P) 02 65.000 130.000
Module Bluetooth 4.0 BLE HM-10 (CC2541) 03 90.000 270.000
Cảm biến MQ-2 + Module Relay + Servo SG90 01 bộ 120.000 120.000
Nguồn Adapter 5V/2A + Vỏ hộp mô hình + Phụ kiện 01 bộ 150.000 150.000
Tổng chi phí phần cứng hoàn thiện ~1.270.000 VNĐ

Đánh giá ROI: So với các bộ điều khiển trung tâm thương mại có giá từ 5.000.000 đến 25.000.000 VNĐ trên thị trường, mô hình tự phát triển giúp tiết kiệm hơn 80% chi phí đầu tư, mang tính khả thi cao khi ứng dụng rộng rãi tại các khu nhà trọ sinh viên hoặc hộ gia đình có ngân sách hạn chế.


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

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

  • Giới hạn topo hình sao (Star Topology): Chuẩn BLE 4.0 tại thời điểm nghiên cứu giới hạn số lượng kết nối trực tiếp đồng thời giữa Master và Slave, chưa hỗ trợ chuyển tiếp đa chặng tự định tuyến (Mesh Routing).
  • Phạm vi cục bộ: Chưa tích hợp bộ gateway kết nối ra hạ tầng Internet (Cloud Gateway qua giao thức MQTT/HTTP) để giám sát khi người dùng rời khỏi nhà.

Hướng nâng cấp trong tương lai

  • Nâng cấp Bluetooth Mesh (BLE 5.0+): Chuyển đổi mô hình truyền thông sang Bluetooth Mesh để mở rộng quy mô lên hàng trăm node mạng không bị giới hạn bởi khoảng cách của bộ trung tâm.
  • Tích hợp IoT Cloud Gateway: Bổ sung vi điều khiển ESP32 hoặc module Wi-Fi/GSM tại node trung tâm STM32F4 để đồng bộ dữ liệu lên máy chủ đám mây (AWS IoT, Firebase), hỗ trợ nhận tin nhắn cảnh báo qua SMS/Telegram.
  • Tăng cường lớp mã hóa bảo mật: Triển khai giải thuật mã hóa đầu cuối AES-128 CCM trực tiếp trên tầng ứng dụng để ngăn chặn tấn công giả mạo gói tin (Man-in-the-Middle) trên đường truyền không dây.

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

  • Sinh viên ngành Kỹ thuật Máy tính / Điện tử - Viễn thông: Nắm vững tài liệu mẫu về quy trình porting FreeRTOS lên kiến trúc ARM Cortex-M4 và kỹ thuật lập trình nhúng truyền thông BLE.
  • Kỹ sư phát triển hệ thống nhúng (Embedded Developers): Tiếp cận mô hình thiết kế phân tách rõ ràng giữa Core xử lý thời gian thực và các node ngoại vi tiết kiệm năng lượng.
  • Doanh nghiệp và Nhà đầu tư Smart Home: Tham khảo thiết kế tối ưu hóa danh mục vật liệu (BOM Cost Optimization) cho các dòng sản phẩm nhà thông minh phân khúc bình dân.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai và chạy mã nguồn dự án là gì?

Cần cài đặt phần mềm Keil MDK-ARM (phiên bản v5.x trở lên) hoặc STM32CubeIDE để biên dịch firmware cho STM32F4; Arduino IDE (v1.8+) nạp code cho Arduino Pro Mini/Nano; và Android Studio (v3.0+) để build file APK cài đặt lên smartphone hỗ trợ từ Android 4.3 (API Level 18) có phần cứng Bluetooth 4.0 LE trở lên.

2. Hệ thống xử lý thế nào khi xảy ra mất kết nối Bluetooth giữa Node và Master?

Trên firmware của các node Arduino và STM32F4 đều tích hợp bộ đếm thời gian Watchdog Timer và cơ chế Timeout truyền thông. Nếu trong vòng 5 giây không nhận được gói tin duy trì (Keep-alive/Heartbeat), node tự động đưa thiết bị ngoại vi về trạng thái an toàn (ngắt Relay) và liên tục gửi gói tin quảng bá Advertising để thiết lập lại kết nối khi Master trở lại phạm vi.

3. Có thể thay thế vi điều khiển STM32F4 bằng các dòng chip khác không?

Có thể chuyển đổi sang các dòng chip vi điều khiển ARM Cortex-M khác (như STM32F103 BluePill hoặc ESP32). Tuy nhiên, STM32F407 sở hữu xung nhịp 168 MHz cùng bộ tăng tốc đồ họa Chrom-ART và bộ nhớ RAM lớn (192KB), giúp việc xử lý render giao diện đồ họa trên màn hình LCD màu cùng với việc quản lý các task của FreeRTOS diễn ra mượt mà không bị giật lag.

4. Tần số 2.4 GHz của BLE có bị can nhiễu bởi sóng Wi-Fi trong gia đình không?

Nhờ cơ chế nhảy tần Frequency Hopping Spread Spectrum (FHSS) với 37 kênh truyền dữ liệu và 3 kênh quảng bá độc lập (37, 38, 39 nằm ngoài các dải kênh Wi-Fi phổ biến 1, 6, 11), BLE tự động né tránh các kênh tần số có độ nhiễu cao, duy trì tỷ lệ mất gói dưới $0.5%$.

5. Chi phí bảo trì và thay thế linh kiện định kỳ ra sao?

Toàn bộ linh kiện (HM-10, Arduino Nano, cảm biến MQ-2, Relay) là các linh kiện chuẩn công nghiệp phổ biến trên thị trường với giá thành rất thấp. Các module được thiết kế dạng cắm socket rời rạc, giúp việc sửa chữa và thay thế diễn ra trong vài phút mà không cần can thiệp vào bo mạch chính.


Kết luận

Đồ án tốt nghiệp "Mô hình quản lý nhà không dây" đã giải quyết thành công bài toán tự động hóa nhà ở chi phí thấp, tối ưu hóa năng lượng và không phụ thuộc vào hệ thống dây cáp phức tạp. Bằng việc kết hợp sức mạnh xử lý đa nhiệm của FreeRTOS trên STM32F4 ARM Cortex-M4F cùng mạng không dây Bluetooth 4.0 Low Energy, hệ thống đã chứng minh tính khả thi vượt trội với độ trễ thấp (< 50 ms), khả năng vận hành bền bỉ và giao diện giám sát trực quan trên cả LCD và thiết bị di động. Đây là nền tảng kỹ thuật vững chắc, sẵn sàng mở rộng tích hợp Bluetooth Mesh và IoT Gateway đám mây phục vụ các ứng dụng đô thị thông minh trong tương lai.