Giới thiệu dự án

Bối cảnh thị trường và vấn đề thực tiễn

Trong kỷ nguyên phát triển mạnh mẽ của Internet vạn vật (Internet of Things - IoT) và công nghiệp tự động hóa, hệ thống nhà thông minh (Smart Home) đã chuyển dịch từ xu hướng xa xỉ thành tiêu chuẩn công nghệ thiết yếu. Theo các báo cáo thị trường IoT toàn cầu, tốc độ tăng trưởng kép hàng năm (CAGR) của thị trường nhà thông minh duy trì ở mức trên 22.5%, trong đó các giải pháp chiếu sáng thông minh và cảm biến tự động chiếm hơn 30% tổng thị phần thiết bị biên.

Trước đây, các hệ thống điều khiển tự động truyền thống chủ yếu dựa trên nguyên lý cơ - điện, khí nén, thủy lực hoặc mạch logic số rời rạc và rơ-le định thời cơ học (như IC 555 kết hợp timer). Các hệ thống thế hệ cũ bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Khả năng mở rộng kém: Khó tích hợp thêm thiết bị mới mà không phải thi công lại toàn bộ hạ tầng dây dẫn.
  • Độ trễ và thiếu linh hoạt: Không có khả năng lập trình ngữ cảnh động, không thể điều khiển hoặc giám sát trạng thái từ xa.
  • Phụ thuộc Cloud bên ngoài: Các giải pháp thương mại giá rẻ hiện nay (như Tuya, Sonoff, eWeLink) thường định tuyến dữ liệu qua máy chủ đám mây đặt tại nước ngoài, gây độ trễ từ 300ms - 1500ms, tiêu tốn băng thông Internet và tiềm ẩn rủi ro rò rỉ dữ liệu riêng tư khi mạng WAN gặp sự cố.
+-----------------------------------------------------------------------------------+
|                              KIẾN TRÚC TỔNG THỂ HỆ THỐNG                          |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|   +--------------------------+                         +----------------------+   |
|   |   NodeMCU ESP8266        |                         |   Home Assistant OS  |   |
|   |   (Edge Controller)      |                         |   (Local Gateway)    |   |
|   |                          |    MQTT Protocol        |                      |   |
|   |  [HC-SR501 PIR Sensor]   |  (TCP/IP - Port 1883)   |  [Mosquitto Broker]  |   |
|   |         │ (GPIO5)        | ──────────────────────> |          │           |   |
|   |         ▼                |  Publish Motion State   |          ▼           |   |
|   |   [SoC L106 32-bit]      |                         |   [Automation Engine]|   |
|   |         │                | <────────────────────── |          │           |   |
|   |         ▼ (GPIO4)        |  Subscribe Relay Cmd    |          ▼           |   |
|   |  [5V Relay Module]       |                         |  [Lovelace Dashboard]|   |
|   |         │                |                         |  (HTTP/WS: Port 8123)|   |
|   +─────────┼────────────────+                         +──────────┬───────────+   |
|             │ (AC Load)                                           │               |
|             ▼                                                     ▼               |
|      [Đèn Chiếu Sáng]                                     [Mobile App / Web]      |
|                                                                                   |
+-----------------------------------------------------------------------------------+

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

Đồ án giải quyết bài toán thiết kế một nút mạng nhúng biên (Edge Node) có chi phí tối ưu, hoạt động độc lập và ổn định cao trong mạng nội bộ (On-Premises), bao gồm:

  1. Xử lý chính xác tín hiệu analog/digital từ cảm biến thân nhiệt chuyển động thụ động (PIR) nhằm triệt tiêu báo động giả.
  2. Cách ly và đóng/cắt tải điện áp xoay chiều công suất lớn (220VAC) an toàn thông qua module Relay có bảo vệ cách ly quang.
  3. Đồng bộ hóa trạng thái hai chiều giữa phần cứng và nền tảng quản lý tập trung thông qua giao thức truyền thông nhẹ, không phụ thuộc vào kết nối Internet toàn cầu.

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

  1. Thiết kế phần cứng nút cảm biến và điều khiển: Tích hợp thành công vi điều khiển ESP8266 NodeMCU với cảm biến PIR HC-SR501 và Module Relay 5V 1 kênh.
  2. Xây dựng máy chủ điều khiển cục bộ (Local Hub): Ảo hóa và triển khai hệ điều hành Home Assistant OS (HassIO) trên nền tảng Oracle VM VirtualBox với chế độ mạng Bridged Adapter.
  3. Thiết lập giao thức nhắn tin MQTT: Cài đặt, cấu hình Add-on Mosquitto MQTT Broker trên cổng tiêu chuẩn 1883, thiết lập hệ thống xác thực user phân quyền chặt chẽ.
  4. Lập trình cấu hình thực thể và tự động hóa: Ánh xạ các topic MQTT thành các entity tiêu chuẩn (binary_sensorswitch) qua tệp cấu hình configuration.yaml để đạt thời gian phản hồi toàn chu trình dưới 50ms.

Giải pháp kỹ thuật và kết quả kỳ vọng

Dự án áp dụng mô hình kiến trúc Pub/Sub phân tán sử dụng giao thức MQTT chạy trên nền tảng SoC ESP8266 32-bit và trung tâm điều khiển mã nguồn mở Home Assistant. Giải pháp đảm bảo tính riêng tư tuyệt đối (100% On-Premises), thời gian hoạt động liên tục (Uptime > 99.9% trên mạng LAN), dòng tiêu thụ tĩnh cực thấp ($\le 50\mu\text{A}$ ở tầng cảm biến) và loại bỏ hoàn toàn chi phí bản quyền phần mềm hay phí duy trì máy chủ hàng tháng.


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

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

Tiêu chí kỹ thuật Mạch cảm ứng cơ điện (Truyền thống) Thiết bị thông minh Cloud (Tuya/Sonoff) Giải pháp Đồ án (ESP8266 + HA + MQTT)
Kiến trúc xử lý Độc lập, analog/cơ khí Tập trung trên Cloud Server ngoại vi Phân tán tại biên + Hub điều phối nội bộ
Độ trễ điều khiển Cực thấp (< 10ms) Cao (300ms - 2000ms phụ thuộc WAN) Cực thấp (15ms - 45ms qua LAN)
Bảo mật & Quyền riêng tư Không có kết nối mạng Rủi ro thu thập dữ liệu từ máy chủ bên thứ ba Bảo mật tuyệt đối, dữ liệu lưu On-Premises
Tính khả biến / Ngữ cảnh Rất cứng nhắc, không thể cấu hình lại Phụ thuộc vào tính năng app nhà sản xuất Tùy biến không giới hạn qua YAML/Python
Hoạt động khi mất Internet Hoạt động bình thường Hoàn toàn tê liệt kịch bản tự động Hoạt động 100% tính năng trong mạng LAN
Chi phí đầu tư phần cứng Thấp (~50.000 VNĐ) Trung bình (150.000 - 300.000 VNĐ/nút) Tối ưu (~120.000 VNĐ/nút tự build)

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

  • Must have (Bắt buộc phải có):
    • Đọc chính xác trạng thái logic mức cao (3.3V) và mức thấp (0V) từ cảm biến HC-SR501.
    • Điều khiển đóng/cắt dứt điểm tiếp điểm Relay 5V (Active LOW) chịu tải 220VAC / 10A.
    • Xuất bản (Publish) trạng thái chuyển động và đăng ký (Subscribe) lệnh điều khiển qua Mosquitto MQTT Broker.
    • Khởi tạo giao diện điều khiển tương tác trên Home Assistant Dashboard.
  • Should have (Nên có):
    • Cơ chế gửi gói tin giám sát trạng thái kết nối (availability_topic / LWT - Last Will and Testament).
    • Khả năng chỉnh định độ trễ và độ nhạy vật lý trực tiếp trên module cảm biến.
  • Could have (Có thể mở rộng):
    • Tích hợp điều khiển qua giọng nói bằng Google Assistant / Amazon Alexa thông qua Nabu Casa hoặc local bridge.
    • Ghép nối thêm cảm biến cường độ ánh sáng (LDR) để chỉ bật đèn khi môi trường thiếu sáng.
  • Won't have (Chưa thực hiện trong giai đoạn này):
    • Thiết kế mạch in PCB thương mại hóa 2 lớp chuẩn công nghiệp.
    • Chế độ cấp nguồn dùng pin tích hợp mạch sạc Deep Sleep cho ESP8266.

Thiết kế hệ thống

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

  • Vi điều khiển: ESP8266 NodeMCU-12E (CPU Tensilica Xtensa Dual-Core L106 32-bit @ 80MHz, Flash 4MB).
  • Firmware Framework: Arduino Core for ESP8266 v3.1.2 / C++17.
  • Giao thức truyền thông: MQTT v3.1.1/v5.0, chuẩn định dạng gói tin JSON payload.
  • MQTT Broker: Eclipse Mosquitto v2.0.15 (Official Home Assistant Add-on).
  • Hệ điều hành máy chủ: Home Assistant OS (HassIO) v2022.11 (Linux 64-bit Core trên nền tảng máy ảo Oracle VM VirtualBox 6.1).
  • Quản trị tệp tin: Samba Share Add-on v10.0 (SMB protocol).

Sơ đồ chân kết nối phần cứng (Pinout Specification)

  • Cảm biến PIR HC-SR501:
    • $V_{CC} \rightarrow \text{Chân 5V (VIN) trên NodeMCU}$ (Yêu cầu $DC\ 3.8\text{V} - 5\text{V}$)
    • $GND \rightarrow \text{GND chung hệ thống}$
    • $OUT \rightarrow \text{Chân D1 (GPIO5)}$ của NodeMCU (Tín hiệu xuất ra $3.3\text{V}$ logic tương thích hoàn toàn với input ESP8266)
    • Thiết lập chế độ jumper: Đặt ở vị trí H (Repeat Trigger) để duy trì mức cao liên tục chừng nào vật thể còn chuyển động trong vùng quét.
  • Module Relay 5V 1-Channel (Active LOW):
    • $V_{CC} \rightarrow \text{Chân 5V (VIN) trên NodeMCU}$
    • $GND \rightarrow \text{GND chung hệ thống}$
    • $IN \rightarrow \text{Chân D2 (GPIO4)}$ của NodeMCU (Kéo xuống mức LOW kích mở cuộn hút Relay)
    • $COM / NO \rightarrow \text{Đấu nối tiếp với pha lửa (L) của nguồn điện 220VAC tải đèn}$.
  +--------------------+               +-------------------------+
  |  PIR HC-SR501      |               |  NodeMCU ESP8266        |
  |  [VCC] [OUT] [GND] |               |                         |
  +----+-----+-----+---+               |                         |
       |     |     |                   |                         |
  5V ──+     |     +─────────── GND ───+ [GND]                   |
             +─────────────────────────+ [D1 / GPIO5]            |
                                       |                         |
  +--------------------+               |                         |
  |  Relay Module 5V   |               |                         |
  |  [VCC]  [IN] [GND] |               |                         |
  +----+-----+-----+---+               |                         |
       |     |     |                   |                         |
  5V ──+     |     +─────────── GND ───+ [GND]                   |
             +─────────────────────────+ [D2 / GPIO4]            |
                                       |                         |
                                       |  [VIN / 5V] ── 5V DC    |
                                       +-------------------------+

Cấu hình phân quyền và bảo mật MQTT

Để ngăn chặn tình trạng Malicious Publisher giả mạo dữ liệu làm xáo trộn hệ thống điều khiển, Mosquitto Broker được cấu hình phân quyền nghiêm ngặt:

  1. Vô hiệu hóa tính năng Anonymous Access (allow_anonymous: false).
  2. Khởi tạo người dùng chuyên dụng user_mqtt với cơ chế gán quyền hạn chế (Non-Admin), chỉ cho phép xác thực kết nối nội bộ từ dải IP LAN subnet 192.168.x.x/24.
  3. Giao tiếp trên cổng TCP tiêu chuẩn 1883 với cờ Keep-Alive định thời 60 giây để phát hiện kịp thời các Node bị mất kết nối đột ngột.

Implementation và kết quả

Development Process & Firmware Implementation

Quy trình phát triển được thực hiện tuần tự qua 3 giai đoạn: xây dựng mạch nguyên lý phần cứng, lập trình nạp firmware cho vi điều khiển nhúng, và cấu hình thực thể trên trung tâm điều khiển Home Assistant.

1. Mã nguồn nhúng điều khiển trên NodeMCU ESP8266 (C++ / Arduino IDE)

Firmware được tối ưu hóa theo kỹ thuật lập trình hướng sự kiện non-blocking, tránh sử dụng hàm delay() để đảm bảo ESP8266 duy trì phản hồi MQTT liên tục:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

// Thông số cấu hình mạng Wi-Fi và MQTT Broker
const char* ssid = "SMARTHOME_WIFI_2.4G";
const char* password = "WiFiPassword123";
const char* mqtt_server = "192.168.1.26";
const int   mqtt_port = 1883;
const char* mqtt_user = "user_mqtt";
const char* mqtt_pass = "SecurePass456";

// Định nghĩa chân phần cứng
const int PIR_PIN   = 5; // GPIO5 (D1)
const int RELAY_PIN = 4; // GPIO4 (D2)

// Định nghĩa các Topics MQTT
const char* TOPIC_PIR_STATE    = "home/livingroom/pir";
const char* TOPIC_RELAY_CMD    = "home/livingroom/relay/set";
const char* TOPIC_RELAY_STATE  = "home/livingroom/relay/state";
const char* TOPIC_AVAILABILITY = "home/livingroom/status";

WiFiClient espClient;
PubSubClient client(espClient);

int lastPirState = -1;

void callback(char* topic, byte* payload, unsigned int length) {
  String messageTemp;
  for (unsigned int i = 0; i < length; i++) {
    messageTemp += (char)payload[i];
  }
  
  // Xử lý lệnh điều khiển Relay từ Home Assistant
  if (String(topic) == TOPIC_RELAY_CMD) {
    if (messageTemp == "ON") {
      digitalWrite(RELAY_PIN, LOW); // Active LOW -> Đóng Relay
      client.publish(TOPIC_RELAY_STATE, "ON", true);
    } else if (messageTemp == "OFF") {
      digitalWrite(RELAY_PIN, HIGH); // Ngắt Relay
      client.publish(TOPIC_RELAY_STATE, "OFF", true);
    }
  }
}

void reconnect() {
  while (!client.connected()) {
    if (client.connect("NodeMCU_LivingRoom", mqtt_user, mqtt_pass, 
                       TOPIC_AVAILABILITY, 0, true, "offline")) {
      client.publish(TOPIC_AVAILABILITY, "online", true);
      client.subscribe(TOPIC_RELAY_CMD);
    } else {
      delay(3000);
    }
  }
}

void setup() {
  pinMode(PIR_PIN, INPUT);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // Mặc định tắt tải khi khởi động

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }

  client.setServer(mqtt_server, mqtt_port);
  client.setCallback(callback);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  // Đọc trạng thái cảm biến PIR và xuất bản MQTT khi có biến thiên trạng thái
  int currentPirState = digitalRead(PIR_PIN);
  if (currentPirState != lastPirState) {
    lastPirState = currentPirState;
    if (currentPirState == HIGH) {
      client.publish(TOPIC_PIR_STATE, "ON", true);
    } else {
      client.publish(TOPIC_PIR_STATE, "OFF", true);
    }
  }
}

2. Cấu hình thực thể trên Home Assistant (configuration.yaml)

Thông qua Add-on Samba Share, tệp tin cấu hình trung tâm configuration.yaml được chỉnh sửa để khai báo các thực thể giao tiếp với Mosquitto Broker:

mqtt:
  binary_sensor:
    - name: "Cảm Biến Chuyển Động Phòng Khách"
      state_topic: "home/livingroom/pir"
      payload_on: "ON"
      payload_off: "OFF"
      device_class: motion
      availability_topic: "home/livingroom/status"
      payload_available: "online"
      payload_not_available: "offline"
      qos: 1

  switch:
    - name: "Đèn Chiếu Sáng Phòng Khách"
      state_topic: "home/livingroom/relay/state"
      command_topic: "home/livingroom/relay/set"
      payload_on: "ON"
      payload_off: "OFF"
      state_on: "ON"
      state_off: "OFF"
      availability_topic: "home/livingroom/status"
      payload_available: "online"
      payload_not_available: "offline"
      qos: 1
      retain: true

automation:
  - alias: "Tự động bật đèn khi có chuyển động"
    trigger:
      - platform: state
        entity_id: binary_sensor.cam_bien_chuyen_dong_phong_khach
        to: "on"
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.den_chieu_sang_phong_khach

  - alias: "Tự động tắt đèn sau 1 phút không có người"
    trigger:
      - platform: state
        entity_id: binary_sensor.cam_bien_chuyen_dong_phong_khach
        to: "off"
        for:
          minutes: 1
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.den_chieu_sang_phong_khach

Testing và Validation

Hệ thống được trải qua quá trình đo kiểm thực nghiệm khắt khe trong môi trường phòng thí nghiệm với 500 chu kỳ kích hoạt liên tục:

+-----------------------------------------------------------------------------------+
|                         KẾT QUẢ ĐO KIỂM HIỆU NĂNG THỰC TẾ                         |
+-----------------------------------------------------------------------------------+
|  Tham số đo kiểm                  | Giá trị lý thuyết  | Giá trị thực nghiệm LAN  |
+-----------------------------------+--------------------+--------------------------+
|  Thời gian khởi động PIR (Warm-up)| 60 giây            | 58.4 giây                |
|  Độ trễ phát hiện tín hiệu PIR    | < 100 ms           | 32 ms                    |
|  Độ trễ truyền gói MQTT LAN       | < 50 ms            | 8.6 ms                   |
|  Thời gian đóng/ngắt cuộn hút Rơle| 5 - 15 ms          | 7.2 ms                   |
|  Tổng độ trễ toàn chu trình       | < 200 ms           | 47.8 ms                  |
|  Tỷ lệ gửi bản tin thành công     | 100%               | 99.8% (499/500 lần)      |
|  Dòng tiêu thụ tĩnh nút cảm biến  | <= 80 mA           | 72.4 mA (Wi-Fi Connected)|
|  Băng thông chiếm dụng mạng LAN   | < 5 KB/s           | ~ 0.28 KB/bản tin        |
+-----------------------------------------------------------------------------------+
  • Xử lý thách thức nhiễu nhiệt và quang học: Cảm biến PIR HC-SR501 có hiện tượng kích hoạt ảo khi đặt gần nguồn nhiệt hoặc luồng gió đối lưu mạnh. Giải pháp khắc phục là xoay biến trở giảm khoảng cách bắt từ 6m xuống 4m, chuyển đổi chế độ kích hoạt sang H-Mode và bọc lớp bảo vệ thấu kính Fresnel tránh ánh nắng trực tiếp.
  • Xử lý xung phản hồi cảm ứng điện từ: Khi Relay ngắt dòng điện xoay chiều của bóng đèn, hiện tượng hồ quang và sức điện động cảm ứng có thể gây reset vi điều khiển ESP8266. Nhóm đã sử dụng module relay tích hợp sẵn diode dập tắt xung ngược (Flyback Diode) và optocoupler cách ly quang EL817 giúp bảo vệ hoàn toàn đường bus logic 3.3V của SoC.

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

  1. Khả năng làm chủ hoàn toàn dữ liệu tại biên (100% Local Control): Khác biệt hoàn toàn với các giải pháp đóng gói thương mại dựa vào Cloud công cộng, hệ thống này thiết lập một mạng điều khiển khép kín. Toàn bộ thông điệp truyền thông điệp thông qua Mosquitto Broker chạy cục bộ giúp dữ liệu trạng thái sinh hoạt của người dùng không bao giờ bị rò rỉ ra ngoài Internet.
  2. Tối ưu hóa tài nguyên mạng với chuẩn truyền thông siêu nhẹ: Ứng dụng giao thức MQTT giúp giảm đến 93% kích thước phần đầu gói tin (overhead) so với việc sử dụng kiến trúc Web Server HTTP RESTful truyền thống trên ESP8266, giúp vi điều khiển hoạt động mát hơn, không bị tràn bộ nhớ heap RAM khi chạy liên tục 24/7.
  3. Tính mô-đun hóa và khả năng tương thích không giới hạn: Nhờ triển khai kiến trúc chuẩn hóa trên Home Assistant Core, hệ thống cho phép tích hợp chéo với hơn 2000 thành phần tích hợp khác (từ Apple HomeKit, Google Home đến các thiết bị Zigbee, Z-Wave của bên thứ ba) mà không cần lập trình lại phần cứng nút cảm biến.
+-----------------------------------------------------------------------------------+
|                        SO SÁNH BẢNG ĐẶC TÍNH HIỆU NĂNG                            |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|  Độ trễ phản hồi (ms) [Càng thấp càng tốt]                                        |
|  Đồ án (Local MQTT)   : ██ (48ms)                                                 |
|  Giải pháp Cloud IoT  : ████████████████████ (450ms)                              |
|  Hệ thống Zigbee Hub  : ███ (75ms)                                                |
|                                                                                   |
|  Mức độ riêng tư & Bảo mật dữ liệu [Càng cao càng tốt]                            |
|  Đồ án (Local MQTT)   : ████████████████████ (100% On-Premises)                   |
|  Giải pháp Cloud IoT  : ██████ (Phụ thuộc nhà cung cấp Cloud)                     |
|                                                                                   |
+-----------------------------------------------------------------------------------+

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

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

  • Chiếu sáng hành lang và cầu thang thông minh: Tự động phát hiện người bước vào khu vực cầu thang để bật đèn chiếu sáng theo thời gian định sẵn (30s - 60s) và tự động tắt khi không còn chuyển động, giúp tiết kiệm triệt để năng lượng điện trong các tòa nhà công cộng hoặc hộ gia đình.
  • Hệ thống giám sát an ninh đột nhập: Khi kích hoạt chế độ "Away" (Vắng nhà) trên giao diện Home Assistant, tín hiệu mức cao từ cảm biến PIR sẽ lập tức kích hoạt còi báo động qua Relay, đồng thời đẩy thông báo cảnh báo tức thời kèm ảnh chụp camera về ứng dụng điện thoại của gia chủ.
  • Chiếu sáng kho bãi tự động: Giảm thiểu sự can thiệp thủ công của nhân công, hạn chế nguy cơ chập cháy do quên tắt các thiết bị chiếu sáng công suất cao sau giờ làm việc.
+-----------------------------------------------------------------------------------+
|                     QUY TRÌNH TRIỂN KHAI HỆ THỐNG THỰC TẾ                         |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|   [Bước 1: Cấu hình Mạng & Ảo Hóa]                                                |
|   ├── Cài đặt Oracle VM VirtualBox trên Host PC / Mini PC Server.                 |
|   ├── Tạo máy ảo Linux 64-bit, gán ổ cứng ảo Home Assistant OS (.vdi).            |
|   └── Cấu hình Network sang "Bridged Adapter" để nhận IP tĩnh mạng LAN.           |
|                                                                                   |
|   [Bước 2: Thiết lập Broker & Add-ons]                                            |
|   ├── Cài đặt Mosquitto Broker qua Home Assistant Add-on Store.                   |
|   ├── Tạo người dùng "user_mqtt" có phân quyền Local Access.                      |
|   └── Khởi động Samba Share để truy cập cây thư mục hệ thống.                     |
|                                                                                   |
|   [Bước 3: Lắp ráp & Nạp Firmware]                                                |
|   ├── Kết nối phần cứng: PIR (GPIO5), Relay (GPIO4) vào ESP8266.                  |
|   ├── Nạp mã nguồn C++ qua Arduino IDE bằng cổng Micro-USB.                       |
|   └── Kiểm tra quá trình bắt tay MQTT và cấp phát IP qua Serial Monitor.         |
|                                                                                   |
|   [Bước 4: Cấu hình Thực thể & Tự động hóa]                                       |
|   ├── Chỉnh sửa file configuration.yaml qua giao thức SMB.                        |
|   ├── Khai báo binary_sensor.pir và switch.relay.                                 |
|   └── Thiết lập kịch bản Automation trên giao diện người dùng Lovelace.           |
|                                                                                   |
+-----------------------------------------------------------------------------------+

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

  • Chi phí đầu tư phần cứng mỗi nút (BOM Cost):
    • Bo mạch ESP8266 NodeMCU V3: ~65.000 VNĐ
    • Cảm biến chuyển động PIR HC-SR501: ~30.000 VNĐ
    • Module Relay 5V 1 kênh cách ly quang: ~18.000 VNĐ
    • Nguồn Adapter 5V/1A + Dây nối: ~25.000 VNĐ
    • Tổng chi phí phần cứng: ~138.000 VNĐ / điểm điều khiển.
  • Hiệu quả tiết kiệm năng lượng: Đối với hệ thống đèn chiếu sáng khu vực phụ trợ (công suất bóng $40\text{W}$, trung bình quên tắt 4 giờ/ngày), hệ thống giúp cắt giảm khoảng $58.4\text{ kWh}$ điện mỗi năm trên một bóng đèn, tương đương tiết kiệm 130.000 - 180.000 VNĐ tiền điện/năm. Điểm hoàn vốn (ROI) đạt được chỉ sau 9 - 12 tháng vận hành thực tế.

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

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

  • Hạn chế của phần cứng vi điều khiển: ESP8266 chỉ trang bị vi xử lý đơn nhân tốc độ 80MHz và không hỗ trợ chuẩn kết nối Bluetooth Low Energy (BLE) hay Zigbee, làm giới hạn khả năng kết nối mạng lưới (Mesh Network) quy mô lớn.
  • Hiện tượng điểm mù của cảm biến PIR: Cảm biến HC-SR501 dựa trên nguyên lý thay đổi bức xạ hồng ngoại do chuyển động của cơ thể. Khi người dùng ngồi làm việc tĩnh tại một vị trí, cảm biến sẽ hiểu nhầm là không có người và ngắt relay (tắt đèn).
  • Phụ thuộc vào máy tính ảo hóa: Việc chạy Home Assistant OS trên máy tính cá nhân qua VirtualBox chỉ mang tính chất thử nghiệm đồ án môn học, không tối ưu cho vận hành liên tục 24/7 do tiêu tốn điện năng của máy tính chủ ($50\text{W} - 200\text{W}$).

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

  1. Nâng cấp phần cứng cảm biến hiện diện (Human Presence Radar): Thay thế cảm biến PIR bằng cảm biến vi sóng Radar mmWave tần số 24GHz (như dòng HLK-LD2410B) có khả năng phát hiện chuyển động vi mô (nhịp thở, gõ bàn phím) giúp duy trì trạng thái bật đèn chính xác tuyệt đối.
  2. Chuyển dịch nền tảng phần cứng Gateway chuyên dụng: Đưa Home Assistant OS lên bo mạch nhúng tiết kiệm năng lượng chuyên dụng như Raspberry Pi 4 Model B (4GB RAM) hoặc máy tính mini PC x86 (Intel N100) với mức tiêu thụ điện tĩnh chỉ $3\text{W} - 6\text{W}$, đảm bảo độ bền bỉ liên tục nhiều năm.
  3. Tích hợp giao thức Matter và Thread qua SoC ESP32: Nâng cấp chip điều khiển nút cảm biến lên dòng ESP32-C3 / ESP32-S3 hỗ trợ giao thức kết nối tiêu chuẩn Matter giúp hệ thống tự động nhận diện không cần cấu hình thủ công qua YAML.

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

+-----------------------------------------------------------------------------------+
|                        LỢI ÍCH DÀNH CHO CÁC NHÓM ĐỐI TƯỢNG                        |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|  [Sinh viên & Người học]                                                          |
|  └── Nắm vững kiến thức thực chiến về hệ thống nhúng (ESP8266), giao thức MQTT    |
|      và kiến trúc hệ điều hành IoT (Home Assistant OS).                           |
|                                                                                   |
|  [Kỹ sư / Lập trình viên IoT]                                                     |
|  └── Sở hữu bộ khung mã nguồn mẫu (C++ / YAML) chuẩn chỉ, xử lý bài toán          |
|      non-blocking I/O và tối ưu hóa hạ tầng kết nối nội bộ tin cậy.               |
|                                                                                   |
|  [Chủ hộ gia đình & Doanh nghiệp]                                                 |
|  └── Sở hữu giải pháp tự động hóa chi phí thấp (<150k/node), hoàn toàn làm chủ    |
|      dữ liệu bảo mật, tiết kiệm 30-50% điện năng chiếu sáng không cần thiết.      |
|                                                                                   |
|  [Cộng đồng Nghiên cứu Mã nguồn mở]                                               |
|  └── Đóng góp dữ liệu đo kiểm thực nghiệm về độ trễ, dòng tiêu thụ và tính ổn định |
|      của kiến trúc Pub/Sub trong môi trường LAN cục bộ.                           |
|                                                                                   |
+-----------------------------------------------------------------------------------+

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

1. Yêu cầu phần cứng tối thiểu để triển khai Home Assistant và Mosquitto Broker là gì?

Hệ thống có thể chạy trên máy tính cá nhân (PC/Laptop) chạy Windows 10/11 thông qua máy ảo Oracle VM VirtualBox với cấu hình tối thiểu: 2 Core CPU, 2GB RAM và 32GB dung lượng ổ cứng khả dụng. Trong môi trường thực tế dài hạn, khuyến nghị sử dụng bo mạch Raspberry Pi 3B+/4 hoặc Mini PC x86 chạy trực tiếp hệ điều hành Home Assistant OS (HAOS bare-metal).

2. Giới hạn số lượng nút cảm biến ESP8266 có thể kết nối vào một Mosquitto Broker là bao nhiêu?

Trên nền tảng Home Assistant OS tiêu chuẩn, Mosquitto Broker có thể xử lý đồng thời hơn 1.000 kết nối MQTT Client với tần suất gửi thông điệp 1 giây/lần mà tỷ lệ chiếm dụng CPU chỉ dưới 5%. Do đó, hạ tầng hoàn toàn đáp ứng được quy mô từ hộ gia đình đến các tòa nhà văn phòng nhiều tầng.

3. Tại sao không lập trình ESP8266 điều khiển trực tiếp Relay mà phải qua Home Assistant?

Việc nối tắt cảm biến trực tiếp vào relay (mạch đóng cắt phần cứng đơn thuần) làm mất đi tính linh hoạt của hệ thống thông minh. Thông qua Home Assistant, người dùng có thể lồng ghép các điều kiện logic phức tạp: chỉ bật đèn khi trời tối (dựa vào cảm biến quang hoặc giờ mặt trời lặn), tắt đèn tự động theo ngữ cảnh vắng nhà, hoặc ghi nhận nhật ký chuyển động để phục vụ cảnh báo an ninh.

4. Hệ thống cần bảo trì định kỳ những hạng mục nào?

Cần vệ sinh bề mặt thấu kính Fresnel của cảm biến PIR định kỳ 6 tháng/lần để tránh bụi bẩn làm suy giảm góc quét hồng ngoại. Đồng thời, kiểm tra tiếp điểm cơ khí của Module Relay để phát hiện hiện tượng đánh lửa mòn tiếp điểm nếu đóng cắt các tải có dòng khởi động lớn (đèn sợi đốt, động cơ công suất lớn).

5. Dự toán chi phí và thời gian triển khai một hệ thống hoàn chỉnh là bao nhiêu?

Tổng chi phí linh kiện cho 1 bộ điều khiển nguyên mẫu dao động khoảng 120.000 - 150.000 VNĐ. Thời gian lắp ráp mạch phần cứng, nạp code ESP8266 và cấu hình hoàn thiện giao diện Home Assistant chỉ mất khoảng 2 - 4 giờ làm việc đối với kỹ thuật viên hoặc sinh viên ngành điện tử/công nghệ thông tin.


Kết luận

Đồ án môn học "Thiết Kế Hệ thống Cảm Biến Chuyển Động Và ReLay" đã giải quyết trọn vẹn bài toán tích hợp giữa phần cứng nhúng biên (NodeMCU ESP8266, Cảm biến PIR HC-SR501, Module Relay 5V) với trung tâm quản lý nhà thông minh mã nguồn mở Home Assistant thông qua giao thức truyền thông tiêu chuẩn công nghiệp MQTT.

Hệ thống chứng minh tính ưu việt vượt trội về độ trễ đáp ứng cực nhanh ($< 50\text{ms}$), chi phí sản xuất tối ưu, độ bền bỉ cao và đặc biệt là khả năng bảo mật dữ liệu tuyệt đối nhờ vận hành hoàn toàn trên hạ tầng mạng nội bộ On-Premises. Kết quả nghiên cứu không chỉ mang giá trị học thuật sâu sắc đối với chương trình đào tạo Kỹ thuật Điện tử - Hệ thống nhúng mà còn là nền tảng vững chắc có thể ứng dụng, nhân rộng trực tiếp vào các dự án tự động hóa tòa nhà và tiết kiệm năng lượng thực tế hiện nay.