Bối cảnh và vấn đề nghiên cứu
Đồ án được thực hiện trong bối cảnh công nghệ Internet of Things (IoT) và Home Automation đang ngày càng phổ biến, khi các thiết bị điện tử thông minh dần xâm nhập vào cuộc sống sinh hoạt hằng ngày. Nhóm tác giả xuất phát từ quan sát rằng gương là vật dụng gần như gia đình nào cũng có, với bề mặt đủ lớn để hiển thị thông tin và có khả năng tương tác khi tích hợp công nghệ. Từ đó, nhóm đặt vấn đề: thay vì sử dụng một thiết bị HUB riêng biệt cho nhà thông minh, tại sao không biến chiếc gương — thứ đầu tiên người dùng nhìn vào mỗi buổi sáng — trở thành trung tâm điều khiển?
Đồ án được thực hiện tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, ngành Công nghệ Kỹ thuật Điện tử – Truyền thông, hoàn thành vào tháng 01/2017, dưới sự hướng dẫn của ThS. Nguyễn Đình Phú.
Mục tiêu nghiên cứu: Thiết kế và thi công mô hình gương thông minh (Smart Mirror) cung cấp giao diện hiển thị thông tin (thời gian, thời tiết, lịch trình công việc) và điều khiển thiết bị thông minh khác thông qua lệnh bằng giọng nói.
Nhiệm vụ nghiên cứu:
- Tìm hiểu cách viết ứng dụng cho Raspberry Pi.
- Khảo sát và lập trình giao tiếp giữa Raspberry Pi và module camera.
- Lập trình khối giao tiếp giữa Raspberry Pi và wifi.
- Lắp đặt mô hình gương thông minh.
- Lắp ráp các khối điều khiển vào mô hình.
- Chạy thử nghiệm hệ thống.
- Viết báo cáo kết quả đạt được.
Đối tượng và phạm vi nghiên cứu:
- Thiết kế mô hình gương thông minh hỗ trợ cập nhật thông tin và điều khiển thiết bị trong nhà.
- Sử dụng module Raspberry Pi làm bộ điều khiển và xử lý trung tâm.
- Camera sử dụng có độ phân giải tối thiểu 640×480 pixel, tối thiểu 28 khung hình/giây.
- Phạm vi áp dụng: chỉ hoạt động ở nơi có kết nối wifi hoặc 3G.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ sử dụng
Đồ án xây dựng trên nền tảng kiến thức vi xử lý và lập trình nhúng, kết hợp với các mã nguồn mở lập trình ứng dụng trong lĩnh vực Home Automation. Các thành phần lý thuyết và công nghệ chủ yếu bao gồm:
Công nghệ nhận dạng giọng nói: Nhóm trình bày lý thuyết nhận dạng tiếng nói theo ba nguyên tắc — biểu diễn tín hiệu tiếng nói qua phổ biên độ ngắn hạn (short-term amplitude spectrum), phiên âm nội dung thành dãy ký hiệu ngữ âm, và nhận dạng tiếng nói như một quá trình nhận thức có sử dụng thông tin ngữ nghĩa. Phương pháp rút trích đặc trưng được đề cập là MFCC (Mel Frequency Cepstral Coefficients), thực hiện qua năm bước: windowing, biến đổi Fourier rời rạc, chuyển sang vùng tần số theo cảm nhận tai người, lấy log, và biến đổi Fourier đảo. Công cụ nhận dạng giọng nói thực tế được tích hợp là nền tảng Google Cloud Speech-to-Text, truy cập qua API.
Phần cứng:
- Raspberry Pi 3 Model B (ra đời tháng 2/2016): CPU Broadcom BCM2837 ARMv8 Cortex-A53 64-bit Quad Core 1.2GHz, RAM 1GB LPDDR2 900MHz, GPU Broadcom VideoCore IV 3D, hỗ trợ WiFi 802.11n, Bluetooth 4.1, 40 chân GPIO, cổng HDMI, nguồn 5V/2500mA.
- Camera PlayStation Eye: độ phân giải 640×480 pixel ở 60Hz, hoặc 320×240 pixel ở 120Hz, tích hợp microphone xử lý mẫu 16-bit ở 48 kHz, tỷ lệ tín hiệu/tiếng ồn 90 decibel, giao tiếp qua USB 2.0.
- Bóng đèn thông minh Xiaomi Yeelight LED Bulb: công suất 9W, điện áp 220V–50Hz, thông lượng 600 lumens, kết nối WiFi IEEE 802.11 4GHz.
- Module 4 relay: điện áp nuôi 5VDC, đóng ngắt tối đa AC250V–10A hoặc DC30V–10A, tiêu thụ khoảng 80mA mỗi relay.
- Kết nối hiển thị HDMI: truyền tải hình ảnh và âm thanh đồng thời, hỗ trợ 8 kênh tiếng 24-bit ở 192Hz.
Phần mềm và thư viện:
- Hệ điều hành Raspbian Jessie cài đặt trên thẻ SD dung lượng >8GB.
- Node.js (Node): thư viện mã nguồn mở xây dựng trên JavaScript V8 Engine, mô hình đơn luồng (single thread), không đồng bộ, không lưu trữ dữ liệu buffer, phát hành theo MIT License.
- AngularJS: framework JavaScript phát triển ứng dụng trang đơn (Single Page Application – SPA), sử dụng mô hình MVC (Model–View–Controller) và kỹ thuật Dependency Injection.
- VNC Viewer để truy cập và điều khiển Raspberry Pi từ xa qua mạng nội bộ.
- Win32DiskImager để ghi hệ điều hành lên thẻ SD.
Phương pháp nghiên cứu
Phương pháp chủ yếu là thu thập thông tin, tự nghiên cứu, tổng hợp và đưa ra phương án thực hiện. Trên thực tế, nhóm triển khai theo quy trình thiết kế kỹ thuật phần cứng – phần mềm kết hợp: thiết kế sơ đồ khối hệ thống, lựa chọn linh kiện, lập trình ứng dụng nhúng bằng JavaScript (Node.js và AngularJS), tích hợp API Google Cloud, và chạy thử nghiệm thực tế trong điều kiện hoạt động.
Nguồn dữ liệu: Dữ liệu giọng nói thu từ camera PlayStation Eye, xử lý nhận dạng qua nền tảng Google Cloud Platform (Speech-to-Text API); dữ liệu thời tiết, bản đồ và video lấy từ các API trực tuyến.
Thiết kế và triển khai
Kiến trúc hệ thống
Hệ thống gương thông minh gồm bảy khối chức năng:
| Khối |
Chức năng |
| Khối thu âm |
Thu thập giọng nói từ môi trường qua camera PlayStation Eye |
| Khối xử lý trung tâm |
Raspberry Pi 3, nhận và xử lý tất cả dữ liệu đầu vào/ra |
| Khối xử lý giọng nói |
Chuyển đổi giọng nói thành văn bản (Speech-to-Text) qua Google Cloud |
| Khối internet |
Cung cấp kết nối WiFi cho Raspberry Pi giao tiếp với API |
| Khối hiển thị |
Monitor kết nối qua cổng HDMI, hiển thị giao diện AngularJS |
| Khối cơ cấu chấp hành |
Module 4 relay điều khiển bóng đèn thường và đèn Yeelight |
| Khối nguồn |
Cung cấp 5V/2500mA (12.5W) qua cổng Micro USB cho Raspberry Pi |
Raspberry Pi 3 đóng vai trò xử lý trung tâm: nhận tín hiệu âm thanh qua USB từ camera PlayStation Eye, gửi lên Google Cloud để nhận dạng, nhận kết quả dạng văn bản (JSON), phân tích lệnh và điều khiển giao diện hiển thị hoặc phần cứng tương ứng.
Phần mềm và lập trình
Ứng dụng được viết bằng JavaScript, sử dụng Node.js cho phần xử lý backend và AngularJS cho phần giao diện hiển thị (frontend) theo mô hình MVC. Chương trình gồm:
- Chương trình chính: khởi động hệ thống, lắng nghe từ khóa kích hoạt.
- Speech-to-Text: giao tiếp với Google Cloud Platform để chuyển giọng nói thành văn bản.
- Các chương trình con (mỗi chức năng có lưu đồ giải thuật riêng):
- Hiển thị bản đồ, Zoom in/Zoom out (tích hợp Google Maps API).
- Quản lý danh sách công việc Todoist: Add, Remove.
- Hiển thị đề mục tin tức báo chí.
- Điều khiển đèn thông minh Yeelight: Light on, Light off.
- Điều khiển module relay: LED on, LED off.
- Tìm kiếm và phát video, Stop video.
- Hiển thị thông tin thời tiết.
- Bộ đếm Timer: Start, Stop, Resume.
Hệ điều hành Raspbian Jessie được cài đặt trên thẻ SD (>8GB) thông qua Win32DiskImager. Truy cập điều khiển từ xa thực hiện qua VNC Viewer sau khi bật VNC Server trên Raspberry Pi (Preferences > Raspberry Pi Configuration > Interfaces > Enable VNC).
Kết nối phần cứng
Raspberry Pi 3 được kết nối:
- Nguồn 5V/2500mA (12.5W) qua cổng Micro USB.
- Camera PlayStation Eye qua cổng USB.
- Màn hình hiển thị qua cổng HDMI.
- Module relay qua các chân GPIO.
- Đèn Yeelight điều khiển qua WiFi (giao thức LAN nội bộ).
- Kết nối Internet qua WiFi tích hợp hoặc cổng Ethernet.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương này trình bày tình hình nghiên cứu hiện nay về thiết bị thông minh và Home Automation, lý do hình thành đề tài, tính cấp thiết khi Internet ngày càng gắn liền với cuộc sống. Nhóm xác định mục tiêu, nhiệm vụ, đối tượng, phạm vi nghiên cứu và phương pháp thực hiện, đồng thời nêu bố cục năm chương của đồ án.
Chương 2: Cơ sở lý thuyết liên quan
Chương này cung cấp nền tảng lý thuyết cho toàn bộ đồ án, gồm: lý thuyết nhận dạng giọng nói và phương pháp rút trích đặc trưng MFCC; tổng quan Raspberry Pi 3 (cấu hình phần cứng, pinout 40 chân GPIO, kiến trúc vi xử lý ARM/ARMv8 Cortex-A53); thư viện Node.js và AngularJS (cấu trúc MVC, Dependency Injection); chuẩn kết nối HDMI; camera PlayStation Eye; bóng đèn thông minh Xiaomi Yeelight LED Bulb; và module relay 4 kênh. Các bảng thông số kỹ thuật của từng linh kiện được trình bày chi tiết (Bảng 2-1 đến Bảng 2-4).
Chương 3: Tính toán và thiết kế hệ thống
Chương này mô tả kiến trúc hệ thống qua sơ đồ khối toàn hệ thống, sơ đồ nguyên lý từng khối (xử lý trung tâm, thu âm, hiển thị, xử lý giọng nói) và sơ đồ kết nối toàn mạch. Phần lập trình trình bày lưu đồ giải thuật của từng module phần mềm (17 lưu đồ từ Hình 3-18 đến Hình 3-38), bao gồm: chương trình chính, speech-to-text, bản đồ, Todoist, tin tức, điều khiển đèn Yeelight, module relay, tìm kiếm video, thời tiết và Timer. Quy trình cài đặt Raspbian, thiết lập VNC và cấu hình Google Cloud Platform API cũng được trình bày từng bước.
Chương 4: Kết quả nghiên cứu
Chương này trình bày kết quả thiết kế mô hình vật lý (mặt trước và mặt sau) cùng giao diện hiển thị khi khởi động. Nhóm kiểm tra thực tế hoạt động của từng tính năng: danh sách lệnh giọng nói mà gương có thể nhận, hiển thị bản đồ TP. Hồ Chí Minh khi nhận lệnh "Show map" và thực hiện Zoom in/out, quản lý danh sách công việc (Todoist), tìm kiếm video (ví dụ kết quả tìm "sushi"), và bộ đếm Timer.
Chương 5: Kết luận và hướng phát triển
Chương này tóm lược các kết quả đạt được và đề xuất các hướng mở rộng cho sản phẩm trong tương lai.
Kết quả và đóng góp
Kết quả chính: Nhóm đã thi công thành công mô hình gương thông minh hoạt động trên nền tảng Raspberry Pi 3, có khả năng nhận lệnh bằng giọng nói và thực hiện các tính năng:
| Tính năng |
Mô tả thực hiện |
| Hiển thị bản đồ |
Hiển thị bản đồ TP. Hồ Chí Minh, hỗ trợ Zoom in/Zoom out qua lệnh giọng nói |
| Quản lý lịch trình |
Kết nối Todoist, thêm/xóa công việc bằng lệnh Add/Remove |
| Tìm kiếm video |
Hiển thị kết quả video liên quan (ví dụ: tìm kiếm "sushi") |
| Bộ đếm thời gian |
Timer có Start, Stop, Resume |
| Điều khiển đèn Yeelight |
Bật/tắt bóng đèn thông minh Xiaomi qua WiFi |
| Điều khiển module relay |
Bật/tắt thiết bị điện qua GPIO của Raspberry Pi |
| Thông tin thời tiết |
Hiển thị dữ liệu thời tiết từ API trực tuyến |
| Đề mục tin tức |
Hiển thị tiêu đề tin tức báo chí |
Giải pháp kỹ thuật tác giả đề xuất: Sử dụng Google Cloud Speech-to-Text API để xử lý nhận dạng giọng nói thay vì xây dựng thư viện nội bộ, giúp giảm tải tính toán cho Raspberry Pi và tận dụng độ chính xác cao của dịch vụ đám mây. Kết hợp Node.js (backend) và AngularJS (frontend) trên cùng một thiết bị nhúng là lựa chọn phù hợp với cấu trúc Single Page Application chạy trên màn hình gương.
Đóng góp: Đồ án thực hiện tích hợp đồng thời nhiều dịch vụ (bản đồ, video, lịch trình, thời tiết, điều khiển phần cứng) trong một giao diện thống nhất điều khiển bằng giọng nói trên nền tảng Raspberry Pi 3 — một thiết kế DIY hoàn chỉnh phù hợp với bối cảnh nghiên cứu IoT và Home Automation.
Hạn chế và hướng nghiên cứu tiếp
Theo tác giả, đồ án được hoàn thành trong điều kiện còn hạn chế về kiến thức, do đó không tránh khỏi thiếu sót. Một số giới hạn xuất phát từ phạm vi nghiên cứu:
- Hệ thống chỉ hoạt động khi có kết nối WiFi hoặc 3G; không hỗ trợ chế độ ngoại tuyến (offline).
- Camera sử dụng là PlayStation Eye kết nối USB, chưa khai thác cổng CSI chuyên dụng của Raspberry Pi.
- Nhận dạng giọng nói phụ thuộc hoàn toàn vào dịch vụ Google Cloud, do đó bị ảnh hưởng bởi chất lượng kết nối mạng và độ trễ.
- Đồ án chưa đề cập đến bảo mật hệ thống (xác thực người dùng, mã hóa lệnh điều khiển).
Hướng phát triển: Nhóm tác giả đề xuất mở rộng thêm tính năng và cải thiện giao diện người dùng trong các phiên bản tiếp theo, song không nêu chi tiết cụ thể trong văn bản.
Giá trị tham khảo
Đồ án hữu ích cho các nhóm đối tượng sau:
- Sinh viên ngành Điện tử – Viễn thông, Kỹ thuật máy tính, Điện tử công nghiệp đang tìm hiểu về lập trình nhúng trên Raspberry Pi, tích hợp phần cứng với phần mềm ứng dụng web, và thiết kế hệ thống IoT.
- Sinh viên ngành Công nghệ thông tin quan tâm đến lập trình JavaScript (Node.js, AngularJS) trên nền tảng nhúng, hoặc tích hợp các API của Google Cloud (Speech-to-Text, Maps).
- Người thực hiện đề tài tương tự về Home Automation, Smart Home Hub, hoặc giao diện điều khiển bằng giọng nói.
Phần đáng tham khảo:
- Chương 2 (cơ sở lý thuyết): bảng thông số kỹ thuật Raspberry Pi 3, camera PlayStation Eye, đèn Yeelight và module relay; giải thích kiến trúc ARM/Cortex-A53; so sánh Node.js và AngularJS về đặc điểm và ứng dụng.
- Chương 3 (thiết kế): quy trình cài đặt Raspbian từng bước, thiết lập VNC, cấu hình Google Cloud API, và các lưu đồ giải thuật chi tiết cho từng module tính năng.
- Phụ lục 1 và 2: mã nguồn JavaScript và HTML thực tế của ứng dụng.
Câu hỏi thường gặp
1. Gương thông minh trong đồ án nhận lệnh giọng nói bằng cách nào?
Camera PlayStation Eye (kết nối qua USB) thu âm thanh, Raspberry Pi 3 gửi dữ liệu lên Google Cloud Platform qua API để thực hiện chuyển đổi giọng nói thành văn bản (Speech-to-Text). Kết quả văn bản được phân tích để xác định lệnh và kích hoạt chức năng tương ứng.
2. Tại sao nhóm chọn Raspberry Pi 3 thay vì Arduino hay các KIT khác?
Theo đồ án, Raspberry Pi 3 được chọn vì đáp ứng đồng thời các yêu cầu: hiển thị qua cổng HDMI, kết nối WiFi tích hợp (điều mà Pi 1 và Pi 2 không có), có sức mạnh xử lý đủ để chạy ứng dụng web Node.js và AngularJS, và có giá cả phù hợp. Arduino phù hợp hơn cho các dự án nhỏ không cần hiển thị hay kết nối mạng.
3. Camera PlayStation Eye có thông số kỹ thuật như thế nào và vì sao phù hợp?
Camera PlayStation Eye quay video ở 640×480 pixel/60Hz hoặc 320×240 pixel/120Hz, giao tiếp USB 2.0. Microphone tích hợp xử lý tín hiệu 16-bit ở 48 kHz với tỷ lệ tín hiệu/nhiễu 90 decibel, hỗ trợ loại bỏ tiếng vang và ức chế tiếng ồn — phù hợp với yêu cầu thu âm trong môi trường phòng ngủ hoặc phòng tắm.
4. Đèn thông minh Yeelight được điều khiển qua cơ chế nào, khác gì với module relay?
Đèn Yeelight Xiaomi LED Bulb (9W, 220V, 600 lumens) kết nối qua WiFi (IEEE 802.11 2.4GHz), do đó Raspberry Pi điều khiển bật/tắt thông qua mạng nội bộ mà không cần dây dẫn trực tiếp. Module 4 relay (DC30V–10A / AC250V–10A) dùng để điều khiển các thiết bị điện thông thường qua dây dẫn, được kích bằng tín hiệu GPIO 3.3V/5V từ Raspberry Pi.
5. Hệ thống gương thông minh hỗ trợ những tính năng cụ thể nào theo văn bản?
Theo Chương 4, gương thông minh hỗ trợ: hiển thị bản đồ TP. Hồ Chí Minh kèm Zoom in/Zoom out (lệnh "Show map"); quản lý danh sách công việc Todoist (Add/Remove); tìm kiếm và phát video; bộ đếm Timer (Start/Stop/Resume); điều khiển bật/tắt đèn Yeelight; điều khiển module relay; hiển thị thông tin thời tiết và đề mục tin tức báo chí.
Kết luận
Đồ án "Thiết kế và thi công mô hình gương thông minh (Smart Mirror)" của nhóm sinh viên Trần Nguyên Vũ và Trần Hữu Nghĩa là một công trình thiết kế kỹ thuật điện tử – nhúng hoàn chỉnh, tích hợp phần cứng (Raspberry Pi 3, camera PlayStation Eye, module relay, đèn Yeelight) với phần mềm ứng dụng web (Node.js, AngularJS) và dịch vụ đám mây (Google Cloud Speech-to-Text API). Sản phẩm đạt mục tiêu ban đầu: người dùng có thể điều khiển thiết bị và truy cập thông tin hữu ích thông qua giao diện gương bằng lệnh giọng nói, không cần chạm vào thiết bị. Đồ án phù hợp làm tài liệu tham khảo cho các nhóm sinh viên ngành Điện tử – Truyền thông hoặc Công nghệ thông tin muốn tìm hiểu về thiết kế hệ thống IoT, lập trình nhúng trên nền Linux, và tích hợp API đám mây vào phần cứng nhúng.