Bối cảnh và vấn đề nghiên cứu
Trong bối cảnh các tổ chức và doanh nghiệp ngày càng chú trọng đến chất lượng quản trị nội bộ, phòng họp đóng vai trò trung tâm trong việc duy trì không khí và văn hoá tổ chức. Tuy nhiên, mô hình phòng họp truyền thống bộc lộ nhiều hạn chế: thiếu kiểm soát danh sách khách mời, không xác định được vị trí ngồi khi số lượng ghế lớn (có thể lên đến vài trăm), và phụ thuộc hoàn toàn vào nhân sự bảo vệ, lễ tân trực tiếp. Nhóm tác giả xác định rằng việc số hóa và tự động hóa các tác nghiệp này bằng hệ thống nhúng là hướng giải quyết phù hợp.
Mục tiêu nghiên cứu được nhóm xác định gồm bốn nhiệm vụ:
- Tìm hiểu nguyên lý hoạt động của hệ thống điểm danh khách mời bằng vân tay.
- Tìm hiểu phương thức hoạt động và sơ đồ kết nối của cảm biến vân tay, phương thức giao tiếp giữa module Arduino, Raspberry Pi 3 với các cảm biến và máy tính.
- Thiết kế hệ thống điều khiển phần cứng.
- Thiết kế giao diện phần mềm máy tính bằng ngôn ngữ C#.
Đối tượng nghiên cứu bao gồm: module cảm biến vân tay R305, kit Raspberry Pi 3, phần mềm Visual Studio 2015 (ngôn ngữ C#), cơ sở dữ liệu lưu trên file Excel, và board Arduino ATMega 2560.
Phạm vi nghiên cứu: hệ thống được thiết kế dựa trên cơ sở phòng họp của tòa nhà trung tâm Trường Đại học Sư phạm Kỹ thuật Thành Phố Hồ Chí Minh, thực hiện và hoàn thành tháng 01 năm 2018.
Cơ sở lý thuyết và phương pháp
Nền tảng lý thuyết và linh kiện sử dụng
Nhóm tác giả xây dựng hệ thống trên các thành phần phần cứng và giao thức sau:
- Raspberry Pi 3: CPU BCM2837, 1.2 GHz, 4 nhân ARM Cortex-A53 64-bit; tích hợp WiFi chuẩn 802.11, Bluetooth 4.1 + HS Low-Energy (BCM43438); VideoCore IV @ 400 MHz/300 MHz. Raspberry Pi 3 đóng vai trò Server xử lý dữ liệu vân tay và giao tiếp với máy tính.
- Board Arduino ATMega 2560: 54 chân Digital I/O (15 chân PWM), 16 chân Analog, bộ nhớ Flash 256 KB (ATmega16U2, với 8 KB dành cho bootloader), SRAM 8 KB, EEPROM 4 KB, tần số 16 MHz, điện áp hoạt động 5 VDC. Arduino đảm nhận thu thập thông tin vị trí ghế ngồi và giao tiếp với máy tính qua WiFi.
- Module ESP8266: chip SoC của Espressif, hỗ trợ WiFi 802.11 2.4 GHz (WPA/WPA2), giao tiếp UART đến 115200 baud, tích hợp TCP/IP stack, có thể hoạt động ở ba chế độ: Client, Access Point, hoặc cả hai.
- Module cảm biến vân tay R305: giao tiếp UART (tốc độ mặc định 57600 bps), lưu trữ tối đa 162 mẫu vân tay (theo nhiệm vụ nghiên cứu) / 256 mẫu (theo thông số kỹ thuật module), phân giải 500 dpi, thời gian lấy ảnh dưới 0,5 giây, tỷ lệ lỗi chấp nhận (FAR) 0,1 giây (1:1000).
- Cảm biến siêu âm SRF05 (HC-SR05): đo khoảng cách tối đa 3–4 mét, hoạt động theo nguyên lý phát/thu sóng siêu âm, hỗ trợ hai chế độ kết nối (tách riêng hoặc dùng chung chân TRIGGER-ECHO). Ở nhiệt độ 30 °C (tương ứng Việt Nam), vận tốc âm thanh xấp xỉ 349,02 m/s, thời gian âm di chuyển 1 cm là khoảng 28,65 µs.
- LCD 20×4: hiển thị thông tin khách mời và hệ thống câu hỏi trong phòng họp; kết hợp với module I2C LCD để giảm số chân kết nối với Arduino Mega.
- Giao thức và ngôn ngữ: Python (trên Raspberry Pi 3 giao tiếp với cảm biến vân tay qua UART), C# / Visual Studio 2015 (giao diện máy tính), tập lệnh AT (giao tiếp UART với ESP8266).
Phương pháp nghiên cứu
Nhóm kết hợp hai phương pháp:
- Phương pháp nghiên cứu lý thuyết: tham khảo tài liệu sách, Internet, ví dụ đi kèm bộ phần mềm ứng dụng và hướng dẫn trực tuyến.
- Phương pháp nghiên cứu thực nghiệm: thiết kế phần cứng mô hình, thiết kế phần mềm trên máy tính, tiến hành khảo sát và căn chỉnh trên thiết bị và phần mềm thực tế.
Nguồn dữ liệu: dữ liệu cá nhân khách mời lưu trên file Excel; dữ liệu vân tay lưu trực tiếp trong bộ nhớ Flash của module R305.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Trình bày tính cấp thiết của đề tài xuất phát từ xu hướng thay thế phòng họp truyền thống bằng phòng họp thông minh. Nhóm xác định ba vấn đề cốt lõi cần giải quyết: (1) kiểm soát danh sách khách mời bằng nhận dạng vân tay để loại trừ người không có trong danh sách; (2) hỗ trợ khách mời xác định vị trí ngồi chính xác thông qua màn hình hiển thị; (3) kiểm soát số lượng người trong phòng họp. Chương này cũng xác định đối tượng, phạm vi nghiên cứu và bố cục đồ án.
Chương 2: Cơ Sở Lý Thuyết Liên Quan
Trình bày chi tiết các thành phần kỹ thuật được sử dụng: đặc trưng và sơ đồ chân của Raspberry Pi 3, giao thức gói dữ liệu UART của cảm biến vân tay R305 (cấu trúc gói gồm 2 byte bắt đầu 0xEF01H, 4 byte địa chỉ, 1 byte nhận dạng, 2 byte độ dài, nội dung và 2 byte kiểm tra tổng), tập lệnh điều khiển module (kết nối, lấy ảnh, tạo mẫu, lưu mẫu, xóa mẫu, tìm kiếm), thông số kỹ thuật Arduino ATMega 2560, tập lệnh AT của ESP8266, nguyên lý hoạt động LCD 20×4 và cảm biến siêu âm SRF05. Đây là chương nền tảng kỹ thuật có mật độ thông tin cao nhất trong đồ án.
Chương 3: Thiết Kế và Tính Toán Hệ Thống
Mô tả kiến trúc ba phần của hệ thống:
- Phần 1 – Phần cứng bên ngoài: cảm biến vân tay R305 nhận biết khi khách mời đến; Raspberry Pi 3 đọc dữ liệu và gửi lên máy tính.
- Phần 2 – Phần cứng bên trong: Arduino ATMega 2560 thu thông tin vị trí ghế ngồi, LCD 20×4 hiển thị câu hỏi và thông tin; cảm biến siêu âm SRF05 phát hiện khách ngồi vào đúng vị trí.
- Phần 3 – Phần mềm máy tính: giao diện C# hiển thị thông tin khách mời, cho phép thêm/xóa khách, điều khiển toàn bộ qua kết nối mạng.
Chương trình bày lưu đồ giải thuật cho bốn chương trình con chính chạy trên Raspberry Pi 3:
| Chương trình con | Chức năng chính |
|---|---|
Enroll() |
Đăng ký vân tay mới: chụp hai lần, so sánh, lưu vào Flash |
Clearfg() |
Xóa một hoặc toàn bộ mẫu vân tay |
FindSeat() |
Tìm vị trí ngồi theo số điện thoại lưu trong file Excel |
SendCheck() |
Quét vân tay liên tục, trả về mã khách mời hoặc mã lỗi (-1, -2) |
Phần cứng mô hình được xây dựng bằng tấm bìa fomic. Khối nguồn sử dụng pin sạc dự phòng 5 V, 2 A (hai cổng output 1 A và 2,1 A) cùng module cấp nguồn breadboard cung cấp 5 VDC và 3,3 VDC cho toàn hệ thống.
Chương 4: Kết Quả Thực Nghiệm
Trình bày kết quả vận hành hệ thống trên ba thành phần:
- Server (Raspberry Pi 3): khởi tạo cảm biến vân tay thành công, LCD hiển thị trạng thái "Khoi tao thanh cong"; server chờ kết nối client, song song vẫn quét vân tay kiểm tra danh sách.
- Client (máy tính): giao diện C# hoạt động sau khi kết nối TCP thành công với Raspberry Pi 3; người quản lý thao tác thêm/xóa khách mời thông qua các nút chức năng.
- Arduino ATMega 2560: yêu cầu nhập địa chỉ IP để kết nối server; sau kết nối hiển thị bảng chọn chức năng (tìm chỗ ngồi, phát biểu) trên LCD.
Chương cũng trình bày kết quả triển khai thực tế trên mô hình.
Chương 5: Kết Luận và Hướng Phát Triển
Tổng kết những gì đã đạt được, phân tích ưu/nhược điểm của hệ thống và đề xuất hướng phát triển tiếp theo.
Thiết kế và triển khai
Kiến trúc hệ thống
Hệ thống có kiến trúc phân tán ba lớp kết nối qua mạng WiFi nội bộ:
Raspberry Pi 3 đóng vai trò server trung tâm: nhận dữ liệu vân tay qua USB-TTL (UART), xử lý bằng Python, và giao tiếp hai chiều với máy tính (Client C#) qua giao thức TCP/IP. Arduino kết nối WiFi qua ESP8266 và gửi dữ liệu vị trí khách mời lên server.
Công nghệ sử dụng
| Thành phần | Công nghệ/Ngôn ngữ |
|---|---|
| Server xử lý vân tay | Python (trên Raspbian/Linux) |
| Giao diện quản lý | C# / Visual Studio 2015 |
| Vi điều khiển phòng họp | Arduino IDE (C/C++) |
| Giao tiếp WiFi | ESP8266, tập lệnh AT, TCP/UDP |
| Cơ sở dữ liệu | File Excel (openpyxl hoặc tương đương) |
| Hiển thị nội bộ | LCD 20×4 + module I2C |
Kiểm thử
Nhóm tiến hành khảo sát và căn chỉnh (kiểm thử thực nghiệm) trực tiếp trên phần cứng và phần mềm: kiểm tra luồng đăng ký vân tay hai lần, kiểm tra phát hiện vân tay trùng, kiểm tra xóa từng mẫu và xóa toàn bộ, kiểm tra tìm vị trí ngồi theo số điện thoại từ file Excel, và kiểm tra phát hiện người ngồi qua cảm biến siêu âm SRF05.
Kết quả và đóng góp
Kết quả chính:
- Xây dựng thành công mô hình phòng họp thông minh ba phần hoạt động liên kết: điểm danh vân tay ngoài cửa, xác định vị trí ngồi bên trong, quản lý trên máy tính.
- Module vân tay R305 lưu tối đa 162 mẫu vân tay (theo phạm vi nhiệm vụ nghiên cứu xác định), tương thích với quy mô phòng họp thực tế.
- Cảm biến siêu âm SRF05 đo khoảng cách hiệu quả trong phạm vi 3–4 mét, phát hiện người ngồi vào vị trí ghế.
- Toàn bộ hệ thống vận hành bằng nguồn pin dự phòng 5 V không dây.
Giải pháp/kiến nghị tác giả đề xuất:
- Sử dụng cảm biến vân tay R305 thay cho RFID, nhận dạng khuôn mặt hoặc nhận dạng giọng nói vì tính thực dụng và tiện lợi phù hợp quản lý danh sách khách mời.
- Lựa chọn LCD 20×4 thay cho LED 7 đoạn hoặc LED ma trận nhằm hiển thị đủ thông tin và tạo giao diện thân thiện với người dùng.
- Sử dụng file Excel làm cơ sở dữ liệu nhằm đơn giản hóa việc quản lý và cập nhật danh sách khách mời.
Đóng góp: đồ án cung cấp mô hình tích hợp phần cứng–phần mềm hoàn chỉnh cho bài toán quản lý phòng họp thông minh tại quy mô trường đại học, kết hợp đồng thời nhận dạng sinh trắc học (vân tay) và định vị vật lý (siêu âm) trong một hệ thống nhúng không dây.
Hạn chế và hướng nghiên cứu tiếp
Văn bản đề cập các hướng phát triển sau:
- Hạn chế về dung lượng lưu trữ vân tay: bộ nhớ Flash của module R305 giới hạn số mẫu, chưa phù hợp với hội nghị quy mô lớn vượt ngưỡng lưu trữ.
- Cơ sở dữ liệu Excel: chưa có hệ quản trị cơ sở dữ liệu chuyên dụng, hạn chế khả năng tìm kiếm, phân quyền và mở rộng.
- Hướng phát triển: nhóm nêu định hướng mở rộng đồ án (chi tiết cụ thể được trình bày trong Chương 5), bao gồm nâng cấp hệ thống đáp ứng quy mô lớn hơn và cải thiện độ ổn định kết nối không dây.
- Phạm vi thực nghiệm giới hạn trong mô hình bìa fomic tại trường, chưa triển khai trong phòng họp thực tế với số lượng khách mời lớn.
Giá trị tham khảo
Đồ án hữu ích cho các nhóm đối tượng sau:
- Sinh viên ngành Công nghệ Kỹ thuật Máy tính, Điện tử – Viễn thông, Kỹ thuật Điều khiển và Tự động hóa: phần Chương 2 cung cấp tài liệu kỹ thuật chi tiết về giao thức UART của cảm biến vân tay R305, cấu trúc gói lệnh, mã ACK phản hồi, và cách kết nối Raspberry Pi 3 với Arduino qua ESP8266.
- Sinh viên làm đề tài IoT hoặc hệ thống nhúng: Chương 3 trình bày lưu đồ giải thuật bốn chương trình con (
Enroll,Clearfg,FindSeat,SendCheck) có thể tham khảo trực tiếp cho các bài toán điểm danh tương tự. - Sinh viên ngành Công nghệ thông tin làm hệ thống quản lý kết hợp phần cứng: phần thiết kế giao diện C# kết hợp giao tiếp TCP/IP với Raspberry Pi 3 và quản lý dữ liệu Excel là tài liệu tham khảo thực tế.
- Người nghiên cứu về Smart Room hoặc tự động hóa văn phòng: mô hình kiến trúc ba lớp (cảm biến – bộ xử lý trung tâm – giao diện quản lý) có thể tái sử dụng cho các ứng dụng tương tự.
Câu hỏi thường gặp
1. Module vân tay R305 lưu được tối đa bao nhiêu mẫu vân tay, và giao tiếp với Raspberry Pi 3 theo chuẩn giao thức nào? Theo phần nhiệm vụ nghiên cứu, số vân tay lưu tối đa trong cảm biến R305 là 120 (nêu trong nhiệm vụ) hoặc 162 (phần đối tượng nghiên cứu), trong khi thông số kỹ thuật module ghi nhận khả năng lưu đến 256 mẫu. Module giao tiếp qua chuẩn UART (tốc độ mặc định 57600 bps), cấu trúc gói bắt đầu bằng 0xEF01H và kết thúc bằng 2 byte kiểm tra tổng. Raspberry Pi 3 kết nối với R305 thông qua cổng USB sử dụng bộ chuyển USB-TTL, lập trình bằng Python.
2. Hệ thống xác định vị trí ngồi của khách mời trong phòng họp bằng cách nào?
Khách mời nhập số điện thoại trên keypad bên trong phòng họp; chương trình con FindSeat() trên Raspberry Pi 3 duyệt toàn bộ cột số điện thoại trong file Excel, so khớp và trả về vị trí ngồi được gán sẵn (cột F trong file). Đồng thời, cảm biến siêu âm SRF05 phát hiện vật thể trong khoảng cách 3–4 mét để xác nhận khách đã ngồi vào đúng vị trí. Vị trí ngồi sáng lên trên màn hình LCD 20×4.
3. Khi nào chương trình con SendCheck() trả về giá trị -1 hoặc -2, và ý nghĩa của từng giá trị là gì?
Chương trình con SendCheck() trả về -1 khi hệ thống không nhận dạng được vân tay (vân tay không có trong danh sách lưu trữ của bộ nhớ), hiển thị "không thể nhận dạng" trên LCD. Giá trị -2 được trả về khi client yêu cầu dừng cảm biến vân tay (ví dụ để chuyển sang chế độ đăng ký vân tay mới), LCD hiển thị "dừng cảm biến".
4. Module ESP8266 được kết nối và điều khiển như thế nào trong hệ thống? ESP8266 kết nối với Arduino ATMega 2560 qua giao tiếp UART, sử dụng tập lệnh AT để thiết lập chế độ hoạt động (AT+CWMODE=3 cho cả Client và Access Point), kết nối mạng WiFi (AT+CWJAP), và truyền nhận dữ liệu TCP. Khi khởi động, chân CH_PD được giữ ở mức 0 V và sau 2 giây mới kéo lên 3,3 V để đảm bảo module hoạt động ổn định. Arduino gửi dữ liệu vị trí ghế và nhận lệnh từ Raspberry Pi 3 qua kết nối WiFi này.
5. Hệ thống đăng ký vân tay mới diễn ra theo quy trình mấy bước, và điều gì xảy ra nếu hai lần đặt tay không khớp nhau?
Quy trình Enroll() gồm hai bước chụp vân tay: lần 1 lưu vào buffer 1 của cảm biến, lần 2 lưu vào buffer 2, sau đó hệ thống so sánh hai buffer. Nếu hai vân tay trùng khớp, mẫu được lưu vào bộ nhớ Flash và thông báo thành công gửi về client. Nếu không trùng khớp, LCD hiển thị "không trùng vân tay, thêm vân tay thất bại", kết quả trả về -1 và client nhận thông báo thất bại. Ngoài ra, nếu vân tay đăng ký đã tồn tại trong hệ thống từ trước, màn hình thông báo "trùng vân tay" và yêu cầu dùng ngón tay khác.
Kết luận
Đồ án tốt nghiệp "Hệ thống Quản lý, Giám sát Phòng Họp" của nhóm sinh viên Nguyễn Hồng Mẫn và Huỳnh Phúc Thái (Trường Đại học Sư phạm Kỹ thuật TP. HCM, 2018) trình bày thiết kế và triển khai một hệ thống nhúng tích hợp nhận dạng vân tay, cảm biến siêu âm, truyền thông không dây WiFi và giao diện quản lý trên máy tính, nhằm tự động hóa công tác điểm danh và sắp xếp chỗ ngồi trong phòng họp. Kiến trúc ba lớp (phần cứng cảm biến – Raspberry Pi 3 làm server – Client C# trên máy tính) cho phép vận hành không dây hoàn toàn bằng nguồn pin dự phòng 5 V. Cơ sở dữ liệu lưu trên file Excel và bộ nhớ Flash của module R305 phù hợp với quy mô phòng họp tại cơ sở đại học, song tạo ra giới hạn về khả năng mở rộng cho các ứng dụng lớn hơn trong tương lai.