Bối cảnh và vấn đề nghiên cứu

Trong xu thế phát triển của cuộc Cách mạng công nghiệp lần thứ tư (Cách mạng Công nghiệp 4.0) và Internet vạn vật (IoT), mô hình nhà thông minh (Smart Home) trở thành một ứng dụng tiêu biểu nhằm nâng cao tiện nghi, tối ưu hóa năng lượng và tăng cường mức độ an ninh cho không gian sống. Hệ thống nhà thông minh vận hành dựa trên sự liên kết giữa bộ điều khiển trung tâm với các thiết bị gia dụng, mạng lưới cảm biến và cơ chế giao tiếp giữa người với máy cũng như giữa máy với máy.

Tại thị trường Việt Nam, khái niệm nhà thông minh xuất hiện từ năm 2003 và ghi nhận mức tăng trưởng nhanh. Theo số liệu thống kê từ Statista được trích dẫn trong văn bản, doanh thu thị trường nhà thông minh tại Việt Nam ước tính đạt 83 triệu USD vào năm 2019, với tốc độ tăng trưởng kép dự kiến đạt 51,7% trong giai đoạn 2019 – 2023. Mặc dù các thương hiệu quốc tế (Schneider, TIS Smart Home) và trong nước (BKAV, LUMI, ACIS) đã cung cấp nhiều giải pháp thương mại, phần lớn các hệ thống này đều có chi phí lắp đặt cao và phụ thuộc hoàn toàn vào hệ sinh thái đóng của từng nhà sản xuất. Điều này thúc đẩy nhu cầu thiết kế một hệ thống mở, có khả năng tùy biến linh hoạt, tương thích với các linh kiện phổ thông và có chi phí xây dựng hợp lý.

Mục tiêu và nhiệm vụ nghiên cứu:

  1. Nghiên cứu tổng quan về kiến trúc nhà thông minh, giao thức truyền thông không dây và các nền tảng tự động hóa mã nguồn mở.
  2. Thiết kế và thi công mô hình phần cứng nhà thông minh hoàn chỉnh với các khối chức năng: khối xử lý trung tâm, khối thu thập dữ liệu cảm biến môi trường, khối thiết bị chấp hành và khối điều khiển khóa cửa.
  3. Cấu hình và triển khai nền tảng điều khiển trung tâm Home Assistant, xây dựng giao diện tương tác người dùng và thiết lập các kịch bản tự động hóa vận hành thiết bị.
  4. Xây dựng chương trình xử lý ảnh trên nền tảng máy tính nhúng, ứng dụng thuật toán phát hiện và nhận diện khuôn mặt để tự động kích hoạt hệ thống khóa cửa an ninh.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Nền tảng tự động hóa mã nguồn mở Home Assistant; giao thức truyền thông MQTT; thuật toán thị giác máy tính Haar Cascade và Local Binary Pattern Histogram (LBPH); các dòng vi xử lý và máy tính nhúng (Raspberry Pi 3B+, NodeMCU ESP8266EX).
  • Phạm vi nghiên cứu: Mô hình thử nghiệm thu nhỏ mô phỏng không gian nhà ở gồm phòng khách, phòng bếp, phòng ngủ, khu vực cửa ra vào và trạm xử lý trung tâm; hệ thống mạng nội bộ Wi-Fi; dữ liệu thực nghiệm gồm 500 ảnh khuôn mặt phục vụ huấn luyện mô hình nhận diện; đề tài được hoàn thành tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh vào tháng 07/2019.

Cơ sở lý thuyết và phương pháp

Đồ án tổng hợp cơ sở lý thuyết về các nền tảng tự động hóa nhà thông minh mã nguồn mở, các thư viện xử lý dữ liệu và thuật toán thị giác máy tính:

  • Nền tảng tự động hóa nhà thông minh: Tác giả phân tích và so sánh các hệ thống mã nguồn mở phổ biến bao gồm Home Assistant (viết bằng Python 3, hỗ trợ triển khai linh hoạt trên Linux, Docker, Raspberry Pi), OpenHAB (viết bằng Java, hỗ trợ kiến trúc đám mây myopenHAB), Domoticz (viết bằng C/C++, giao diện HTML5) và OpenMotic. Đề tài lựa chọn Home Assistant làm trung tâm điều khiển chính.
  • Thư viện phần mềm hỗ trợ:
    • OpenCV: Thư viện mã nguồn mở chuyên dụng cho xử lý ảnh, thị giác máy tính và hỗ trợ tính toán tăng tốc trên phần cứng.
    • NumPy: Thư viện toán học xử lý các mảng và ma trận đa chiều, tối ưu hóa các phép toán ma trận trong quá trình trích xuất đặc trưng ảnh.
    • Pillow (PIL) và module os/os.path: Hỗ trợ đọc, chuẩn hóa kích thước, định dạng và thao tác lưu trữ tệp tin hình ảnh.
  • Thuật toán phát hiện khuôn mặt (Haar Cascade): Dựa trên phương pháp của Paul Viola và Michael Jones. Thuật toán trích xuất các đặc trưng Haar (vùng sáng/tối dạng cạnh, đường và điểm) trên cửa sổ kích thước 24×24 pixel (với hơn 160.000 đặc trưng ban đầu). Thuật toán AdaBoost được áp dụng để chọn lọc các đặc trưng phân loại tốt nhất (giảm xuống khoảng 6.000 đặc trưng). Cơ chế phân loại theo tầng (Cascade) cho phép loại bỏ nhanh các vùng ảnh không phải khuôn mặt ở các giai đoạn đầu nhằm tối ưu hóa thời gian tính toán.
  • Thuật toán nhận diện khuôn mặt (Local Binary Pattern Histogram - LBPH): Hoạt động bằng cách lấy ma trận 3×3 pixel từ ảnh xám, so sánh giá trị cường độ sáng của 8 điểm lân cận với giá trị trung tâm (làm ngưỡng) để tạo thành chuỗi số nhị phân 8-bit, sau đó quy đổi thành giá trị thập phân. Hình ảnh xử lý được chia thành lưới 8×8 ô; biểu đồ tần suất (histogram) 256 mức của từng ô được nối lại để tạo thành vector đặc trưng gồm 16.384 chiều (8 × 8 × 256 = 16.384 vị trí) đại diện cho từng khuôn mặt đã gắn mã định danh (ID).

Phương pháp nghiên cứu thực tế:

  • Phương pháp phân tích và thiết kế hệ thống kỹ thuật: Phân rã hệ thống thành các khối chức năng độc lập (nguồn, xử lý trung tâm, cảm biến, khóa cửa, camera, cơ cấu chấp hành).
  • Phương pháp thực nghiệm: Chụp mẫu 500 ảnh xám khuôn mặt người dùng trong các điều kiện khác nhau; huấn luyện mô hình phân loại LBPH; kiểm thử độ trễ và độ chính xác của cơ chế mở khóa cửa và phản hồi cảm biến.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo cấu trúc phân tán, kết hợp giữa máy tính nhúng trung tâm và các nút vi điều khiển ngoại vi thông qua mạng không dây cục bộ.

Thành phần phần cứng Thông số kỹ thuật chính Vai trò trong hệ thống
Raspberry Pi 3B+ Broadcom BCM2837B0 64-bit Quad-Core ARM Cortex-A53 1.4GHz, RAM 1GB LPDDR2, GPU VideoCore-IV, 40 chân GPIO, Wi-Fi băng tần kép 2.4/5GHz Bộ điều khiển trung tâm, chạy Home Assistant, MQTT Broker và thực thi thuật toán nhận diện khuôn mặt
NodeMCU ESP8266 SoC ESP8266EX, CPU Tensilica L106 32-bit, chuẩn Wi-Fi 802.11 b/g/n, điện áp hoạt động 2.6 – 3.6V (trung bình 80mA) Đọc dữ liệu cảm biến và truyền dữ liệu lên trung tâm qua giao thức MQTT
Raspberry Pi Camera Độ phân giải 5MP, hỗ trợ video 1080p@30fps, 720p@60fps, 640×480p@60/90fps, giao tiếp CSI Thu nhận khung hình phục vụ phát hiện và nhận diện khuôn mặt
Cảm biến DHT11 Đo nhiệt độ 0 – 50°C (sai số ±1-2°C), độ ẩm 20 – 90%RH (sai số ±4-5%RH), chuẩn giao tiếp 1-Wire Giám sát nhiệt độ và độ ẩm các khu vực phòng
Module GY-302 (BH1750) Đo cường độ ánh sáng trực tiếp theo đơn vị Lux, ADC tích hợp, giao tiếp I2C (địa chỉ 0x23 hoặc 0x5C) Thu thập dữ liệu ánh sáng môi trường phục vụ bật/tắt đèn tự động
Cảm biến MQ-4 Nhạy với Methane (CH4) và khí gas thiên nhiên, dải điện trở 10KΩ – 60KΩ (tại 1000ppm CH4), ngõ ra Analog/Digital Giám sát rò rỉ khí gas tại khu vực phòng bếp
Động cơ Servo SG92R Mô-men xoắn 2.5 kg/cm (tại 4.8V), điện áp hoạt động 4.2 – 6VDC, độ trễ phản hồi 10µs, điều khiển góc quay bằng xung PWM Kéo chốt mở và đóng khóa cửa
Module Relay Cách ly quang Opto, tiếp điểm chịu tải tối đa AC 250V/10A hoặc DC 30V/10A, kích mức Cao/Thấp Đóng/ngắt nguồn điện cấp cho quạt và hệ thống chiếu sáng
Module nguồn AMS1117 Ổn áp 3 ngõ ra độc lập: 3.3V, 5V và 12V; dòng tải tối đa 800mA Cấp nguồn ổn định cho NodeMCU, hệ thống cảm biến và quạt tản nhiệt

Kiến trúc phần mềm và truyền thông:

  • Giao tiếp dữ liệu: Hệ thống sử dụng add-on Mosquitto Broker tích hợp trên Home Assistant để thiết lập cơ chế truyền thông điệp Publish/Subscribe theo giao thức MQTT. Nút vi điều khiển NodeMCU đọc dữ liệu từ các cảm biến định kỳ (sau thời gian khởi động ổn định 2 giây), định dạng thành chuỗi ký tự rồi Publish lên topic tương ứng. Home Assistant Subscribe vào các topic này để cập nhật trạng thái thời gian thực.
  • Giao diện người dùng (Lovelace UI): Được cấu hình thông qua các tệp tin YAML, phân chia theo từng không gian chức năng (Trang chủ, Phòng khách, Phòng bếp, Phòng ngủ) bằng các loại thẻ chuyên dụng (glance, picture-elements, mini-graph, picture-entity).
  • Kịch bản tự động hóa: Thiết lập các quy tắc điều khiển logic:
    • Bật đèn khi cường độ ánh sáng đo được thấp hơn ngưỡng quy định và có người trong nhà.
    • Tắt toàn bộ thiết bị chấp hành khi xác định trạng thái không có người trong nhà.
    • Phát âm thanh/thông báo chào mừng khi chủ nhà về đến nhà.
    • Kích hoạt cảnh báo nguy cơ cháy nổ khi nồng độ khí gas vượt ngưỡng an toàn.
  • Quy trình nhận diện khuôn mặt và mở khóa:
    1. Camera chụp khung hình liên tục và chuyển đổi thành ảnh xám.
    2. Phân loại Haar Cascade quét và xác định vùng chứa khuôn mặt.
    3. Thuật toán LBPH trích xuất vector đặc trưng và so sánh với mô hình đã huấn luyện từ tập 500 ảnh mẫu.
    4. Hệ thống xuất ra nhãn định danh (ID) kèm chỉ số độ tin cậy (confidence).
    5. Nếu confidence nhỏ hơn hoặc bằng ngưỡng thiết lập, Raspberry Pi xuất tín hiệu điều khiển góc quay động cơ Servo SG92R để mở chốt cửa; nếu lớn hơn ngưỡng quy định, hệ thống từ chối mở cửa.

Nội dung chính theo từng chương

CHƯƠNG 1: TỔNG QUAN

Chương này phân tích sự hình thành và phát triển của khái niệm nhà thông minh trong bối cảnh IoT, khảo sát tình hình nghiên cứu trong và ngoài nước. Tác giả chỉ ra các công trình tiêu biểu như hệ thống dùng vi điều khiển AT89S52, Arduino Mega 2560 kết hợp cảm biến PIR, hoặc hệ thống dùng Raspberry Pi 2 kết hợp nền tảng OpenHAB. Từ việc phân tích các hạn chế về chi phí và tính tùy biến của giải pháp thương mại, chương 1 xác định tính cấp thiết, mục tiêu và bố cục 5 chương của đồ án.

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

Chương 2 trình bày chi tiết nền tảng lý thuyết phục vụ thiết kế hệ thống. Nội dung bao gồm:

  • Khảo sát các nền tảng tự động hóa mã nguồn mở (Home Assistant, OpenHAB, Domoticz, OpenMotic).
  • Giới thiệu các thư viện phần mềm Python (OpenCV, NumPy, Pillow, os).
  • Nguyên lý phát hiện đối tượng bằng đặc trưng Haar kết hợp phân loại tầng Cascade và thuật toán AdaBoost của Viola-Jones.
  • Cấu trúc và cơ chế trích xuất biểu đồ cục bộ của thuật toán nhận diện LBPH.
  • Thông số kỹ thuật chi tiết của phần cứng: máy tính nhúng Raspberry Pi 3B+, vi điều khiển NodeMCU ESP8266EX, cảm biến nhiệt độ - độ ẩm DHT11, cảm biến ánh sáng BH1750, cảm biến khí gas MQ-4, module Relay cách ly quang và động cơ Servo SG92R.

CHƯƠNG 3: THIẾT KẾ HỆ THỐNG

Chương 3 xây dựng các yêu cầu, đặc tả và sơ đồ khối chức năng tổng thể. Tác giả trình bày sơ đồ nguyên lý và căn cứ lựa chọn linh kiện cho 6 khối phần cứng (nguồn, xử lý trung tâm, camera, dữ liệu cảm biến, thiết bị chấp hành, cửa khóa). Về phần mềm, chương này mô tả chi tiết lưu đồ hoạt động của giao diện Lovelace UI, tệp cấu hình YAML, luồng trao đổi dữ liệu MQTT qua Mosquitto Broker, giải thuật đọc cảm biến (Sensor Task), lưu đồ thu thập 500 ảnh dữ liệu, lưu đồ huấn luyện mô hình LBPH và giải thuật nhận diện khuôn mặt kết hợp điều khiển chốt khóa.

CHƯƠNG 4: KẾT QUẢ THỰC HIỆN

Chương 4 công bố kết quả thi công mô hình thực tế. Về phần cứng, tác giả hoàn thiện mô hình nhà thông minh vật lý bao gồm các khu vực riêng biệt: phòng khách, phòng bếp, phòng ngủ, khu vực gắn camera, cụm động cơ cửa khóa và tủ điều khiển trung tâm chứa nguồn và Raspberry Pi 3B+. Về phần mềm, hệ thống vận hành ổn định giao diện điều khiển Home Assistant trên trình duyệt và điện thoại, hiển thị biểu đồ nhiệt độ - độ ẩm, cập nhật trạng thái đèn/quạt, thực thi tự động hóa theo cảm biến và xác thực khuôn mặt mở khóa cửa bằng hình ảnh trực tiếp từ camera.

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Chương cuối cùng tổng kết các kết quả đạt được về mặt tích hợp hệ thống, chỉ ra các ưu điểm về tính linh hoạt, khả năng mở rộng và chi phí thấp của mô hình. Đồng thời, tác giả nêu rõ các điểm hạn chế về xử lý ảnh trong môi trường biến đổi ánh sáng và đề xuất các hướng nâng cấp phần cứng, phần mềm trong giai đoạn tiếp theo.


Kết quả và đóng góp

Kết quả thực nghiệm chính:

  • Chế tạo thành công mô hình vật lý hoàn chỉnh với các cụm chức năng riêng biệt cho từng phòng, tích hợp đầy đủ hệ thống dây dẫn, mạch ổn áp AMS1117 (3.3V/5V/12V), vi điều khiển NodeMCU ESP8266, máy tính nhúng Raspberry Pi 3B+ và camera 5MP.
  • Triển khai thành công nền tảng Home Assistant kết nối giao thức MQTT qua Mosquitto Broker, đảm bảo thời gian cập nhật dữ liệu cảm biến ổn định và tức thời.
  • Xây dựng thành công tập dữ liệu 500 ảnh khuôn mặt chuẩn hóa và huấn luyện mô hình LBPH, cho phép hệ thống phân loại đúng người dùng đã đăng ký và điều khiển động cơ Servo SG92R đóng/mở chốt cửa dựa trên ngưỡng confidence.
  • Vận hành chính xác các kịch bản tự động hóa: tự động điều khiển hệ thống chiếu sáng theo cường độ ánh sáng môi trường đo từ BH1750, cảnh báo nồng độ khí gas nguy hiểm qua MQ-4 và ngắt thiết bị khi không có người.

Giải pháp và đề xuất của tác giả:

  • Đề xuất mô hình kết hợp giữa nền tảng quản lý thiết bị mã nguồn mở (Home Assistant) và module xử lý ảnh độc lập viết bằng Python/OpenCV trên cùng một máy tính nhúng Raspberry Pi để giảm chi phí đầu tư phần cứng.
  • Sử dụng vi điều khiển ESP8266 làm cầu nối thu thập dữ liệu cảm biến phân tán qua Wi-Fi, giúp giảm thiểu độ phức tạp của hệ thống dây nối trong nhà.
  • Áp dụng cấu hình giao diện Lovelace UI thông qua YAML giúp người vận hành dễ dàng tùy biến, thêm bớt thiết bị mà không đòi hỏi kỹ năng lập trình web chuyên sâu.

Đóng góp của đề tài:

  • Cung cấp một thiết kế tham chiếu hoàn chỉnh từ phần cứng đến phần mềm cho hệ thống nhà thông minh chi phí thấp, không bị phụ thuộc vào các máy chủ đám mây thương mại của bên thứ ba.
  • Kết hợp thành công giữa hệ thống IoT giám sát môi trường và bài toán an ninh sinh trắc học (nhận diện khuôn mặt) trên nền tảng phần cứng nhúng tiêu thụ ít điện năng.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế được đề cập trong văn bản:

  • Thuật toán nhận diện khuôn mặt 2D (Haar Cascade và LBPH) vẫn chịu ảnh hưởng lớn bởi các yếu tố ngoại cảnh như góc chụp (nghiêng, chụp từ trên xuống/dưới lên), biểu cảm khuôn mặt, sự thay đổi phụ kiện (kính mắt, kiểu tóc, râu) và cường độ ánh sáng môi trường thay đổi.
  • Năng lực tính toán của phần cứng Raspberry Pi 3B+ còn hạn chế khi phải đồng thời vận hành hệ thống máy chủ Home Assistant, broker truyền thông và xử lý luồng video thời gian thực từ camera.
  • Hệ thống mới dừng lại ở quy mô mô hình thử nghiệm, cơ cấu chấp hành điều khiển tải công suất nhỏ qua relay mà chưa tích hợp trực tiếp vào hạ tầng điện lưới thực tế của tòa nhà.

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

  • Nâng cấp thuật toán nhận diện khuôn mặt sang các phương pháp nhận diện 3D hoặc áp dụng các mô hình học sâu (Deep Learning) nhằm nâng cao độ chính xác dưới các điều kiện góc chụp và ánh sáng phức tạp.
  • Tích hợp thêm các phương thức điều khiển thông minh khác như nhận dạng giọng nói, điều khiển bằng cử chỉ.
  • Sử dụng các cảm biến công nghiệp có độ chính xác và độ bền cao hơn; mở rộng thêm các tính năng an ninh nâng cao và quản lý tiêu thụ điện năng chi tiết cho từng thiết bị gia dụng.

Giá trị tham khảo

Đồ án là tài liệu kỹ thuật có giá trị tham khảo đối với:

  • Sinh viên và nghiên cứu sinh ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Thông tin, Hệ thống Nhúng và IoT: Cung cấp phương pháp tích hợp hệ thống phần cứng vi điều khiển (ESP8266) với máy tính nhúng (Raspberry Pi), cách thiết lập mạng truyền thông MQTT và phương pháp lập trình thị giác máy tính với OpenCV trên môi trường Linux.
  • Người phát triển ứng dụng nhà thông minh (Smart Home): Cung cấp tài liệu thực hành chi tiết về việc cài đặt, cấu hình hệ thống Home Assistant, tạo giao diện người dùng Lovelace UI qua tệp YAML và thiết lập các kịch bản tự động hóa thiết bị dựa trên dữ liệu cảm biến thực tế.

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

1. Bộ điều khiển trung tâm và nút thu thập dữ liệu cảm biến trong đồ án sử dụng phần cứng nào? Bộ điều khiển trung tâm sử dụng máy tính nhúng Raspberry Pi 3B+ (SoC Broadcom BCM2837B0, CPU Quad-Core 1.4GHz, RAM 1GB). Nút thu thập dữ liệu cảm biến sử dụng bo mạch phát triển NodeMCU tích hợp vi xử lý 32-bit Tensilica L106 thuộc SoC ESP8266EX hỗ trợ kết nối Wi-Fi.

2. Đồ án sử dụng thuật toán nào để phát hiện và nhận diện khuôn mặt cho hệ thống khóa cửa? Đồ án sử dụng phương pháp Haar-like features kết hợp phân loại tầng Cascade và thuật toán AdaBoost (Viola-Jones) để phát hiện khuôn mặt; sử dụng thuật toán Local Binary Pattern Histogram (LBPH) để trích xuất biểu đồ đặc trưng và nhận diện khuôn mặt từ tập 500 ảnh huấn luyện.

3. Giao thức truyền thông nào được dùng để kết nối giữa khối cảm biến và bộ xử lý trung tâm? Hệ thống sử dụng giao thức MQTT theo mô hình Publish/Subscribe. Bộ xử lý Raspberry Pi đóng vai trò là MQTT Broker thông qua tiện ích add-on Mosquitto, còn vi điều khiển NodeMCU đóng vai trò là Client gửi (Publish) chuỗi dữ liệu cảm biến lên các topic.

4. Các cảm biến môi trường nào được tích hợp và đảm nhiệm vai trò gì trong mô hình? Mô hình tích hợp 3 loại cảm biến chính: cảm biến DHT11 (đo nhiệt độ và độ ẩm phòng qua chuẩn 1-Wire), module GY-302 chứa cảm biến BH1750 (đo cường độ ánh sáng theo đơn vị Lux qua I2C) và module MQ-4 (phát hiện nồng độ khí gas Methane/CH4 phòng chống cháy nổ).

5. Tham số confidence trong giải thuật nhận diện khuôn mặt quyết định việc mở cửa như thế nào? Chỉ số confidence thể hiện khoảng cách sai lệch giữa vector đặc trưng của khung hình chụp thực tế so với dữ liệu huấn luyện. Khi confidence bé hơn hoặc bằng ngưỡng quy định, hệ thống xác nhận đúng đối tượng và cấp xung điều khiển động cơ Servo SG92R mở khóa; nếu lớn hơn ngưỡng quy định, hệ thống sẽ từ chối mở cửa.


Kết luận

Đồ án tốt nghiệp của tác giả Hồ Quang Thi đã thiết kế và triển khai thành công mô hình ngôi nhà thông minh ứng dụng nền tảng mã nguồn mở Home Assistant kết hợp công nghệ xử lý ảnh. Hệ thống tích hợp hoàn chỉnh phần cứng máy tính nhúng Raspberry Pi 3B+, vi điều khiển NodeMCU ESP8266 và mạng lưới cảm biến môi trường thông qua giao thức truyền thông MQTT. Bên cạnh khả năng giám sát và điều khiển thiết bị tự động theo kịch bản, đề tài đã hiện thực hóa giải pháp khóa cửa an ninh nhận diện khuôn mặt bằng thuật toán Haar Cascade và LBPH trên tập dữ liệu 500 ảnh mẫu. Kết quả nghiên cứu chứng minh tính khả thi của việc xây dựng một giải pháp nhà thông minh mở, chi phí thấp, có khả năng tùy biến cao và ứng dụng hiệu quả sinh trắc học trên các thiết bị nhúng.