Giới thiệu dự án
Trong kỷ nguyên bùng nổ của Internet vạn vật (Internet of Things - IoT) và công nghệ tự động hóa nhà ở (Home Automation), việc tối ưu hóa trải nghiệm sống thông qua các giao diện người - máy (HMI - Human-Machine Interface) trực quan là xu thế tất yếu. Theo các báo cáo thị trường công nghệ nhà thông minh toàn cầu, nhu cầu tích hợp các thiết bị điều khiển thông minh không chạm (touchless interface) vào sinh hoạt thường nhật tăng trưởng hơn 25% mỗi năm. Tuy nhiên, phần lớn các thiết bị trung tâm (Smart Hub) hiện nay tồn tại dưới dạng màn hình rời rạc hoặc loa thông minh độc lập, chiếm diện tích và chưa tận dụng được các bề mặt phản chiếu sẵn có trong không gian gia đình.
Đồ án tốt nghiệp "Thiết kế và thi công mô hình gương thông minh (Smart Mirror)" của nhóm sinh viên ngành Công nghệ Kỹ thuật Điện tử - Truyền thông (Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết bài toán biến bề mặt gương soi thông thường thành một trung tâm tương tác đa phương tiện thông minh phục vụ chu trình sinh hoạt buổi sáng.
+-----------------------------------+
| GƯƠNG HAI CHIỀU |
| (Two-Way Dielectric Mirror) |
+-----------------+-----------------+
| Hiển thị lớp phủ
+---------------------+ +---------v---------+ +----------------------+
| PlayStation Eye |-->| Raspberry Pi 3 |-->| Màn hình LCD 60Hz |
| (4-Mic Array 48kHz) | | (BCM2837 Cortex) | | (Cổng giao tiếp HDMI)|
+---------------------+ +----+------------+-+ +----------------------+
| |
HTTP/REST API| |GPIO (0V Trigger)
v v
+--------------+ +-------------------+
| Google Cloud | | Module 4-Ch Relay |
| Speech / IoT | | AC 250V/10A Load |
+--------------+ +-------------------+
Vấn đề thực tiễn (Problem Statement)
- Phân mảnh thông tin: Người dùng mất từ 10-15 phút mỗi sáng để chuyển đổi qua lại giữa nhiều ứng dụng trên smartphone nhằm kiểm tra thời tiết, lịch trình công việc, tin tức và tình trạng giao thông.
- Bất tiện khi thao tác tay: Trong các hoạt động vệ sinh cá nhân, chuẩn bị trang phục, tay người dùng thường ướt hoặc bận rộn, khiến việc cầm nắm thiết bị cảm ứng truyền thống trở nên bất tiện và mất vệ sinh.
- Thiếu khả năng điều khiển thiết bị tập trung: Việc bật tắt hệ thống chiếu sáng hoặc thiết bị điện gia dụng đòi hỏi công tắc cơ học hoặc truy cập ứng dụng di động riêng lẻ.
Mục tiêu dự án
- Thiết kế phần cứng: Tích hợp máy tính nhúng Raspberry Pi 3 Model B, màn hình hiển thị qua cổng HDMI, cảm biến camera/microphone PlayStation Eye và khối công suất relay vào khung gương hai chiều.
- Xây dựng hệ thống thu nhận và xử lý giọng nói: Áp dụng thuật toán trích xuất đặc trưng âm thanh MFCC (Mel-Frequency Cepstral Coefficients) kết hợp nền tảng Google Cloud Speech API để nhận diện lệnh giọng nói thời gian thực.
- Phát triển giao diện người dùng (UI): Xây dựng ứng dụng đơn trang (SPA - Single Page Application) với kiến trúc MVC sử dụng framework AngularJS và runtime Node.js trên nền tảng Linux (Raspbian).
- Tự động hóa điều khiển thiết bị: Giao tiếp điều khiển bóng đèn thông minh Xiaomi Yeelight LED Bulb qua giao thức mạng không dây WiFi IEEE 802.11 b/g/n và đóng/ngắt thiết bị tải AC qua module 4 relay cách ly quang.
Phạm vi và giới hạn
- Phạm vi: Hoạt động trong môi trường mạng nội bộ (LAN) có kết nối Internet qua WiFi 2.4GHz hoặc Ethernet 10/100 Mbps.
- Giới hạn kỹ thuật: Hệ thống yêu cầu đường truyền băng thông ổn định để gửi dữ liệu âm thanh dạng stream lên máy chủ đám mây; mô hình nhận diện giọng nói hiện tối ưu hóa cho các tập lệnh tiếng Anh chuẩn.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Smart Display thương mại (Google Nest / Echo Show) |
Dự án mã nguồn mở thụ động (MagicMirror2 Basic) |
Giải pháp Smart Mirror của đề tài |
| Bản chất hiển thị |
Màn hình đặt bàn, không có bề mặt gương phản chiếu |
Gương hai chiều, chỉ hiển thị thông tin tĩnh |
Gương hai chiều tích hợp tương tác giọng nói hai chiều |
| Khả năng tương tác |
Cảm ứng chạm màn hình, nhận diện giọng nói |
Thụ động (không tương tác hoặc chỉ dùng nút bấm) |
Điều khiển giọng nói nhận dạng qua mảng 4 microphone |
| Điều khiển phần cứng ngoại vi |
Phụ thuộc hệ sinh thái đóng của hãng (Zigbee/Matter) |
Không tích hợp chân điều khiển I/O trực tiếp |
Tích hợp GPIO đóng ngắt relay AC 250V/10A & điều khiển WiFi Yeelight |
| Tính linh hoạt & Tùy biến |
Thấp (phần mềm đóng gói cố định) |
Trung bình (cấu hình qua tệp JSON) |
Cao (kiến trúc MVC Node.js/AngularJS dễ mở rộng API) |
| Chi phí triển khai |
$150 - $250 (thiết bị độc lập) |
$80 - $120 (chỉ bo mạch & màn hình) |
Tối ưu hóa chi phí phần cứng nhúng DIY |
Ma trận yêu cầu người dùng (MoSCoW Prioritization)
- Must-Have: Hiển thị thời gian thực, dự báo thời tiết, danh sách việc cần làm (Todoist), bản đồ giao thông (Google Maps), tìm kiếm video, nhận dạng giọng nói, điều khiển relay GPIO.
- Should-Have: Tích hợp điều khiển bóng đèn thông minh Xiaomi Yeelight qua giao thức mạng WiFi, chức năng phóng to/thu nhỏ (Zoom In/Out) bản đồ bằng giọng nói.
- Could-Have: Bộ đếm thời gian (Timer) hỗ trợ các hoạt động thể dục/đánh răng buổi sáng, tạm dừng/tiếp tục video.
- Won't-Have (giai đoạn này): Nhận diện khuôn mặt cục bộ bằng mạng nơ-ron tích chập (CNN) do hạn chế bộ nhớ RAM 1GB của vi xử lý nhúng.
Thiết kế hệ thống
Hệ thống được thiết kế theo mô hình phân tầng mô-đun hóa, phân tách rõ ràng giữa lớp phần cứng (Hardware Layer), lớp điều khiển logic (Controller Layer) và lớp trình diễn (Presentation Layer).
graph TD
User([Người dùng]) -->|Ra lệnh giọng nói| PSEye[PlayStation Eye Mic Array]
PSEye -->|Tín hiệu âm thanh 16-bit 48kHz USB| RPi[Raspberry Pi 3 - Broadcom BCM2837]
subgraph Core Processing System
RPi --> NodeServer[Node.js Runtime Backend]
NodeServer -->|REST / gRPC API| GoogleAPI[Google Cloud Speech-to-Text API]
GoogleAPI -->|Văn bản JSON| NodeServer
NodeServer --> AngularApp[AngularJS MVC Frontend]
end
AngularApp -->|Cáp HDMI 1.4/2.0| LCD[Màn hình LCD sau gương hai chiều]
NodeServer -->|GPIO Pin Control 0V Trigger| RelayMod[Module 4 Relay Cách Ly Quang]
RelayMod -->|Đóng/Ngắt AC 220V| HomeLoad[Tải điện trong nhà / Đèn LED]
NodeServer -->|WiFi IEEE 802.11 b/g/n| Yeelight[Bóng đèn thông minh Xiaomi Yeelight]
Thông số kỹ thuật chi tiết các thành phần (Technology Stack)
- Khối xử lý trung tâm (Core Computing):
- Bo mạch: Raspberry Pi 3 Model B (Release 02/2016).
- Vi xử lý: Broadcom BCM2837 64-bit ARMv8 Cortex-A53 Quad-Core xung nhịp 1.2 GHz.
- Bộ nhớ: 1 GB LPDDR2 SDRAM (900 MHz).
- Bộ xử lý đồ họa: Broadcom VideoCore IV 3D GPU.
- Hệ điều hành: Raspbian GNU/Linux (Stretch Kernel), thẻ nhớ MicroSD 16GB Class 10.
- Khối thu âm và xử lý thị giác (Acoustic & Vision Input):
- Thiết bị: Sony PlayStation Eye kết nối USB 2.0.
- Microphone: Mảng 4 viên nang (4-capsule microphone array), lấy mẫu âm thanh 16-bit ở tần số 48 kHz, tỷ lệ tín hiệu trên nhiễu (SNR) đạt 90 dB, hỗ trợ khử nhiễu môi trường và định hướng chùm sóng âm.
- Video: Cảm biến 640x480 pixel @ 60 Hz / 320x240 pixel @ 120 Hz.
- Khối hiển thị & Chấp hành (Display & Actuator Output):
- Giao tiếp hiển thị: Cáp chuẩn HDMI 1.4/2.0, độ phân giải đầu ra Full HD 1080p @ 60Hz.
- Module Relay: Mạch 4 kênh tích hợp Optocoupler cách ly quang, kích đóng ở mức logic thấp ($V_{trigger} = 0\text{V}$), định mức chịu tải $250\text{V}\text{AC}/10\text{A}$ hoặc $30\text{V}\text{DC}/10\text{A}$.
- Chiếu sáng thông minh: Xiaomi Yeelight LED Bulb, công suất 9W, quang thông 600 lumens, nhiệt độ màu 4000K, giao tiếp mạng không dây 2.4 GHz.
- Phần mềm và Frameworks:
- Node.js (v8.x): Xây dựng máy chủ xử lý tác vụ bất đồng bộ dựa trên V8 JavaScript Engine.
- AngularJS (v1.6): Quản lý trạng thái giao diện người dùng theo mô hình MVC/MVVM với Two-way Data Binding và Dependency Injection.
- Google Cloud Speech API: Dịch vụ đám mây xử lý chuyển đổi giọng nói thành văn bản (Speech-to-Text).
Phương pháp luận (Methodology)
Dự án áp dụng mô hình phát triển phần mềm lặp rút gọn (Iterative Development) kết hợp kỹ thuật thi công phần cứng nhúng:
- Giai đoạn 1 (Tuần 1 - 3): Khảo sát cấu trúc tập lệnh ARMv8, thiết lập hệ điều hành Raspbian Jessie/Stretch trên thẻ MicroSD bằng phần mềm
Win32DiskImager, cấu hình truy cập từ xa qua giao thức VNC (Virtual Network Computing).
- Giai đoạn 2 (Tuần 4 - 7): Lập trình module thu âm qua cổng USB với thư viện âm thanh Alsa/Node-record-lpcm16, kết nối đường truyền dữ liệu âm thanh tới Google Speech API.
- Giai đoạn 3 (Tuần 8 - 11): Lập trình giao diện AngularJS, xây dựng các Service kết nối API thời tiết, Google Maps, Todoist và YouTube.
- Giai đoạn 4 (Tuần 12 - 14): Đấu nối mạch phần cứng GPIO với Module Relay và cấu hình điều khiển bóng đèn Xiaomi Yeelight qua giao thức TCP Socket/HTTP.
- Giai đoạn 5 (Tuần 15 - 16): Lắp đặt vào khung gương thực tế, tinh chỉnh độ nhạy micro và viết tài liệu kỹ thuật.
Implementation và kết quả
Quá trình phát triển và thuật toán cốt lõi
Quy trình nhận dạng và bóc tách câu lệnh từ âm thanh người dùng được thực hiện theo chu trình trích xuất đặc trưng âm học kết hợp mô hình ngôn ngữ đám mây:
[Tín hiệu Micro (48kHz)]
│
▼
[1. Windowing: Chia khung Hamming 20-30ms]
│
▼
[2. Biến đổi Fourier rời rạc (DFT / FFT)]
│
▼
[3. Lọc qua dải băng Mel (Mel Filterbank)]
│
▼
[4. Logarithm Năng lượng] ──► [5. Biến đổi Cosine ngược (IDFT)] ──► [Véc-tơ MFCC]
│
▼
[Google Cloud Speech API]
│
▼
[Phân tích Intent / Keywords]
-
Rút trích đặc trưng MFCC (Mel Frequency Cepstral Coefficients):
- Tín hiệu âm thanh liên tục được phân khung (Windowing) thành các đoạn ngắn 20-30ms nhằm đảm bảo tính dừng của tín hiệu.
- Áp dụng biến đổi Fourier rời rạc (DFT) để chuyển đổi từ miền thời gian sang miền tần số:
$$X[k] = \sum_{n=0}^{N-1} x[n] e^{-j 2\pi k n / N}$$
- Chuyển đổi tần số thực $f$ (Hz) sang thang đo Mel cảm nhận bởi tai người:
$$M(f) = 2595 \log_{10}\left(1 + \frac{f}{700}\right)$$
- Lấy logarit năng lượng và thực hiện biến đổi Cosine rời rạc đảo (IDFT) để thu về 13-20 hệ số MFCC đặc trưng của giọng nói.
-
Xử lý bất đồng bộ trong Node.js điều khiển ngoại vi:
Đoạn mã điều khiển tiếp nhận kết quả nhận dạng và kích hoạt GPIO/Module Relay:
// controller.js - Xử lý định tuyến câu lệnh và điều khiển ngoại vi
const Gpio = require('onoff').Gpio;
const relayChannel1 = new Gpio(17, 'out'); // GPIO17 kết nối chân S1 của Module Relay
const yeelight = require('yeelight-awesome');
function handleVoiceIntent(recognizedText) {
const command = recognizedText.toLowerCase().trim();
console.log(`[SPEECH EVENT]: ${command}`);
if (command.includes("light on")) {
relayChannel1.writeSync(0); // Mức logic 0 kích đóng Relay (Active Low)
return { status: "SUCCESS", device: "RELAY_1", state: "ON" };
} else if (command.includes("light off")) {
relayChannel1.writeSync(1); // Mức logic 1 ngắt Relay
return { status: "SUCCESS", device: "RELAY_1", state: "OFF" };
} else if (command.includes("show map")) {
return { status: "UI_ACTION", action: "RENDER_MAP", target: "Ho Chi Minh City" };
} else if (command.includes("zoom in")) {
return { status: "UI_ACTION", action: "MAP_ZOOM", level: "+2" };
} else if (command.includes("stop video")) {
return { status: "UI_ACTION", action: "MEDIA_STOP" };
}
return { status: "UNKNOWN_COMMAND" };
}
- Cấu trúc dữ liệu và điều phối luồng giao diện AngularJS:
Dữ liệu hiển thị được đồng bộ tự động với View nhờ cơ chế Two-Way Data Binding:
// mainController.js - AngularJS MVC Controller
app.controller('MirrorController', ['$scope', '$http', '$interval', function($scope, $http, $interval) {
$scope.weatherData = {};
$scope.todoList = [];
$scope.timerValue = 0;
$scope.fetchWeather = function() {
$http.get('/api/weather/current')
.then(function(response) {
$scope.weatherData = response.data;
})
.catch(function(error) {
console.error("Lỗi cập nhật thời tiết:", error);
});
};
// Chu kỳ cập nhật thông tin tự động mỗi 10 phút
$interval($scope.fetchWeather, 600000);
}]);
Thử nghiệm và Đánh giá hiệu năng
Hệ thống được đưa vào kiểm thử thực tế với 200 lượt ra lệnh trong các điều kiện âm học khác nhau:
| Kịch bản thử nghiệm |
Khoảng cách thu âm |
Mức độ ồn môi trường |
Tỷ lệ nhận dạng chính xác (Accuracy) |
Thời gian phản hồi trung bình (Latency) |
| Phòng yên tĩnh |
1.0 m |
< 35 dB |
96.5% |
1.15 giây |
| Phòng yên tĩnh |
2.5 m |
< 35 dB |
91.0% |
1.28 giây |
| Tiếng ồn sinh hoạt (TV/Nhạc nhẹ) |
1.0 m |
50 - 55 dB |
88.5% |
1.34 giây |
| Tiếng ồn lớn (Nước chảy/Quạt gió) |
1.5 m |
65 - 70 dB |
79.0% |
1.62 giây |
Hiệu năng nhận dạng giọng nói theo khoảng cách và tiếng ồn:
Độ chính xác (%)
100 ┌──────────────────────────────────────────┐
90 │ ■ [Yên tĩnh - 1.0m: 96.5%] │
80 │ ■ [Yên tĩnh - 2.5m: 91.0%] │
70 │ ■ [Ồn vừa - 1.0m: 88.5%] │
60 │ ■ [Ồn lớn: 79.0%]│
0 └──────────────────────────────────────────┘
- Hiệu năng hệ thống Raspberry Pi 3:
- Mức tiêu thụ bộ nhớ RAM: Chiếm xấp xỉ 420MB / 1GB RAM khi chạy song song Node.js Server và trình duyệt Chromium Kiosk Mode.
- Tải CPU trung bình: 18 - 25% ở trạng thái lắng nghe; 65 - 78% trong giai đoạn xử lý luồng âm thanh và render bản đồ.
- Tần số quét khung hình hiển thị (Display FPS): 58 - 60 FPS ổn định qua giao tiếp HDMI.
Kết quả đạt được
- Hoàn thành 100% các tính năng mục tiêu:
- Module Đồng hồ & Lịch trình: Hiển thị giờ hệ thống chính xác, đồng bộ hóa danh sách việc cần làm (Todoist API).
- Module Thời tiết: Tự động lấy dữ liệu nhiệt độ, độ ẩm, biểu tượng thời tiết theo thời gian thực.
- Module Bản đồ: Hiển thị bản đồ giao thông khu vực TP. Hồ Chí Minh với các lệnh điều khiển "Show map", "Zoom in", "Zoom out".
- Module Đa phương tiện: Tìm kiếm và phát video theo từ khóa (lệnh "Search video [Keyword]", "Stop video").
- Module Tự động hóa nhà (Home Automation): Điều khiển bật/tắt thiết bị điện tải cao thông qua module relay 4 kênh và đèn thông minh Yeelight với độ trễ chuyển mạch < 100ms.
Đổi mới và đóng góp
- Tích hợp phần cứng mảng Microphone khử nhiễu đa hướng: Sử dụng thiết bị PlayStation Eye với 4 microphone độc lập và SNR 90dB, mang lại giải pháp thu âm búp sóng (beamforming) chất lượng cao với chi phí phần cứng thấp hơn 70% so với các mảng microphone chuyên dụng trên thị trường.
- Kiến trúc phần mềm phân tán Web-to-Hardware: Kết hợp Node.js (xử lý I/O không khóa) và AngularJS (MVVM reactive data binding) trên môi trường nhúng Linux, cho phép giao diện gương tự động cập nhật trạng thái mà không cần tải lại trang (Zero-reload).
- Mô hình điều khiển lai (Hybrid Control): Tích hợp song song hai giao thức điều khiển:
- Điều khiển trực tiếp (Direct Hardware Control): Đóng ngắt rơ-le qua chân GPIO với cách ly quang an toàn điện.
- Điều khiển mạng (IP-based Control): Điều khiển bóng đèn Yeelight thông qua gói tin WiFi nội bộ không phụ thuộc đám mây trung gian.
Ứng dụng thực tế và triển khai
Tình huống ứng dụng thực tế (Use Cases)
- Không gian phòng tắm/bàn trang điểm thông minh: Giúp người dùng vừa sấy tóc, rửa mặt, trang điểm vừa theo dõi tin tức buổi sáng và lộ trình giao thông tới nơi làm việc mà không làm ướt điện thoại.
- Hệ thống khách sạn cao cấp (Smart Hospitality): Đóng vai trò làm cổng thông tin (Concierge Desk ảo), hiển thị lời chào cá nhân hóa, dự báo thời tiết địa phương và gọi dịch vụ phòng thông qua lệnh thoại.
- Phòng thay đồ tại các chuỗi bán lẻ thời trang: Hỗ trợ khách hàng kiểm tra thông tin kích cỡ, màu sắc trang phục hoặc phát nhạc theo sở thích.
Hướng dẫn triển khai hệ thống (Deployment Guide)
QUY TRÌNH TRIỂN KHAI PHẦN CỨNG & PHẦN MỀM
┌─────────────────────────────────────────────────────────┐
│ 1. Nạp OS Raspbian Stretch vào thẻ nhớ qua Win32Disk │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────v──────────────────────────────┐
│ 2. Cấu hình WiFi, SSH & Kích hoạt giao diện VNC Server │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────v──────────────────────────────┐
│ 3. Khởi tạo Project: git clone & npm install │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────v──────────────────────────────┐
│ 4. Khai báo GOOGLE_APPLICATION_CREDENTIALS json key │
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────v──────────────────────────────┐
│ 5. Đấu dây GPIO 17, 27, 22 tới chân tín hiệu Module Relay│
└──────────────────────────┬──────────────────────────────┘
│
┌──────────────────────────v──────────────────────────────┐
│ 6. Khởi động Node.js & Mở Chromium chế độ --kiosk │
└─────────────────────────────────────────────────────────┘
- Chuẩn bị môi trường:
- Tải và ghi hệ điều hành Raspbian Stretch vào thẻ nhớ MicroSD $\ge 8\text{GB}$ bằng công cụ
Win32DiskImager.
- Bật VNC Server trong
Raspberry Pi Configuration để điều khiển màn hình từ xa không cần bàn phím vật lý.
- Cài đặt runtime và gói phụ thuộc:
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install nodejs npm -y
git clone https://github.com/project/smart-mirror-core.git
cd smart-mirror-core
npm install onoff node-record-lpcm16 @google-cloud/speech yeelight-awesome
- Cấu hình biến môi trường và Google API Key:
- Tạo tệp chứng thực dịch vụ
keyfile.json trên Google Cloud Console với quyền Cloud Speech-to-Text API.
- Khai báo biến môi trường:
export GOOGLE_APPLICATION_CREDENTIALS="/home/pi/keyfile.json".
- Đấu nối mạch điện an toàn:
- Nối chân vật lý Pin 2 ($5\text{V}_\text{DC}$) và Pin 6 (GND) của Raspberry Pi cấp nguồn nuôi cho Module Relay.
- Nối GPIO17 (Pin 11), GPIO27 (Pin 13), GPIO22 (Pin 15) tới các ngõ vào kích tín hiệu $S_1, S_2, S_3$.
- Tải xoay chiều $220\text{V}_\text{AC}$ đi qua tiếp điểm thường hở (NO - Normally Open) và chân chung (COM) của Relay.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Phụ thuộc kết nối Internet: Do sử dụng Cloud Speech API để giải mã giọng nói tự nhiên, khi mất kết nối mạng, các chức năng nhận diện giọng nói sẽ tạm ngừng hoạt động.
- Xử lý ngôn ngữ tự nhiên (NLU): Hệ thống đang so khớp từ khóa (Keyword Matching) dựa trên chuỗi văn bản trả về, chưa tích hợp mô hình hiểu ngôn ngữ ngữ cảnh sâu.
- Tản nhiệt phần cứng: Khi đặt trong hộp gương kín phía sau lớp kính hai chiều, nhiệt độ chip BCM2837 có thể tăng cao (xấp xỉ $60-65^\circ\text{C}$), cần trang bị thêm tản nhiệt nhôm và quạt thông gió.
Hướng phát triển trong tương lai
- Xử lý giọng nói Offline cục bộ: Tích hợp mô hình ASR nhẹ như PocketSphinx, Vosk hoặc nén mạng nơ-ron lên phần cứng Raspberry Pi 4/Edge TPU nhằm duy trì các lệnh điều khiển cơ bản khi mất Internet.
- Nhận diện khuôn mặt cá nhân hóa: Ứng dụng thư viện OpenCV nhận diện khuôn mặt từng thành viên trong gia đình để tự động tải cấu hình giao diện, lịch làm việc và phong cách thời tiết riêng biệt.
- Điều khiển cử chỉ (Gesture Control): Sử dụng camera PlayStation Eye và mô hình nhận diện khung bàn tay (Hand Tracking) để cuộn trang hoặc chuyển đổi thẻ tab không cần nói.
Đối tượng hưởng lợi
- Sinh viên ngành Kỹ thuật Điện tử & CNTT: Nguồn tài liệu thực tế về phương pháp tích hợp hệ thống nhúng (Embedded Linux), giao tiếp I/O, thu âm mảng micro và xử lý tín hiệu âm thanh MFCC.
- Lập trình viên IoT & Nhà phát triển Web: Mẫu kiến trúc thực tiễn trong việc sử dụng JavaScript toàn diện (Full-stack JS với Node.js và AngularJS) để điều khiển trực tiếp các cổng GPIO và thiết bị nhà thông minh.
- Doanh nghiệp sản xuất nội thất & Thiết bị Smart Home: Mô hình tham chiếu có tính khả thi cao để thương mại hóa thành các dòng gương thông minh cho căn hộ cao cấp, chuỗi khách sạn và thẩm mỹ viện.
- Các nhà nghiên cứu công nghệ trợ năng: Nền tảng mở để phát triển các giao diện hỗ trợ người khuyết tật, người già tương tác với môi trường sống hoàn toàn bằng giọng nói.
Câu hỏi thường gặp
1. Yêu cầu cấu hình tối thiểu để triển khai phần mềm Smart Mirror là gì?
Phần mềm yêu cầu tối thiểu một bo mạch Raspberry Pi 3 Model B (hoặc tương đương) với chip Quad-Core 1.2GHz, RAM 1GB, thẻ nhớ 8GB Class 10, màn hình hỗ trợ đầu vào HDMI và micro thu âm USB có tỷ lệ SNR $\ge 80\text{dB}$.
2. Hệ thống có thể mở rộng để điều khiển các thiết bị điện 220V công suất lớn không?
Có. Nhờ tích hợp module 4 relay cách ly quang với dòng định mức $10\text{A}$ ở điện áp $250\text{V}_\text{AC}$, hệ thống có thể điều khiển trực tiếp các thiết bị có công suất lên tới $2200\text{W}$ trên mỗi kênh như bình nóng lạnh, quạt thông gió hoặc hệ thống chiếu sáng phụ trợ.
3. Làm thế nào để tích hợp thêm các thiết bị nhà thông minh thuộc hãng khác?
Nhờ nền tảng Node.js hướng sự kiện, hệ thống dễ dàng cài đặt các thư viện mã nguồn mở hoặc gửi HTTP Request/MQTT messages để kết nối tới các nền tảng phổ biến như Home Assistant, Tuya IoT, Apple HomeKit hoặc Samsung SmartThings.
4. Chi phí bảo trì và vận hành hệ thống hàng tháng là bao nhiêu?
Hệ thống tiêu thụ điện năng cực thấp (khoảng 12.5W cho toàn bộ khối điều khiển Raspberry Pi và ~25W cho màn hình LED), chi phí tiền điện không đáng kể (< 30.000 VNĐ/tháng). Với gói miễn phí của Google Cloud Speech-to-Text (60 phút audio/tháng), người dùng thông thường hoàn toàn không phát sinh chi phí API.
5. Khả năng bảo mật và quyền riêng tư của dữ liệu âm thanh/hình ảnh được đảm bảo ra sao?
Luồng âm thanh chỉ được kích hoạt và truyền dữ liệu khi có tín hiệu âm thanh vượt ngưỡng; hình ảnh từ camera được xử lý cục bộ trên RAM và không lưu trữ trên ổ đĩa cứng hay truyền tải lên bất kỳ máy chủ đám mây nào khác ngoài các endpoint bảo mật của Google API qua giao thức mã hóa HTTPS/gRPC.
Kết luận
Đồ án tốt nghiệp "Thiết kế và thi công mô hình gương thông minh (Smart Mirror)" của các sinh viên Trần Nguyên Vũ và Trần Hữu Nghĩa dưới sự hướng dẫn của ThS. Nguyễn Đình Phú đã hiện thực hóa thành công một sản phẩm IoT hoàn chỉnh, dung hòa giữa tính thẩm mỹ nội thất và công nghệ kỹ thuật số hiện đại.
Bằng việc kết hợp sức mạnh xử lý của vi xử lý nhúng ARMv8 Cortex-A53 trên Raspberry Pi 3, thuật toán bóc tách đặc trưng âm học MFCC, dịch vụ trí tuệ nhân tạo Google Speech API và nền tảng web bất đồng bộ Node.js/AngularJS, dự án không chỉ mang lại giá trị học thuật xuất sắc trong lĩnh vực điện tử truyền thông mà còn mở ra tiềm năng thương mại hóa mạnh mẽ cho thị trường nhà thông minh trong tương lai.