Nghiên cứu Khoa học

Thiết kế bộ khóa cửa thông minh đa chế độ (NFC + OTP + Nhận diện khuôn mặt) cho ứng dụng nhà thông minh

  • 18/11/2025
  • Nghiên cứu Khoa học

1. Tên đề tài

Thiết kế bộ khóa cửa thông minh đa chế độ (NFC + OTP + Nhận diện khuôn mặt) cho ứng dụng nhà thông minh

2. Tóm tắt (Abstract)

Thiết kế và triển khai một hệ thống khóa cửa thông minh tích hợp ba phương thức xác thực: thẻ/NFC, OTP (một lần) gửi qua ứng dụng/Telegram/MQTT và nhận diện khuôn mặt bằng camera AI. Hệ thống sử dụng ESP32 (hoặc Raspberry Pi cho xử lý ảnh), điều khiển mô-tơ/khóa điện, ghi log lên cloud, quản lý quyền truy cập và cung cấp giao diện web/mobile cho quản trị. Mục tiêu: nâng cao an toàn, linh hoạt trong quản lý truy cập, dễ triển khai cho nhà ở, ký túc xá, văn phòng nhỏ.

3. Mục tiêu nghiên cứu

  1. Thiết kế phần cứng cho khóa cửa thông minh hoạt động ổn định (NFC, camera, bộ điều khiển, mô-tơ/khóa điện).
  2. Triển khai các phương thức xác thực: NFC, OTP và nhận diện khuôn mặt; cho phép cấu hình ưu tiên/chế độ truy cập.
  3. Xây dựng giao diện quản lý (web/mobile) để cấp/revoked quyền, xem log và cấu hình hệ thống.
  4. Đánh giá hiệu năng (tốc độ mở khóa, tỉ lệ nhận dạng khuôn mặt đúng/sai, độ tin cậy OTP) và bảo mật hệ thống.
  5. Đề xuất các biện pháp bảo mật và quyền riêng tư phù hợp.

4. Phạm vi đề tài

  • Phần cứng: một nút khóa cửa thử nghiệm (cửa mô phỏng) với ESP32 hoặc Raspberry Pi, NFC reader, camera, mô-tơ servo/linh kiện cơ khí cho cơ chế khóa.
  • Phần mềm: firmware thiết bị, mô-đun nhận diện khuôn mặt (có thể dùng model nhẹ chạy trên Pi hoặc gửi ảnh lên server để xử lý), server nhỏ (Raspberry Pi/Cloud) để quản lý OTP/MQTT/Web UI.
  • Không bao gồm: tích hợp hệ thống cửa thương mại lớn, hệ thống đa cửa quy mô lớn, chứng thực theo tiêu chuẩn bảo mật doanh nghiệp (chỉ đề xuất).

5. Tổng quan tài liệu liên quan (ngắn)

  • Nghiên cứu về giải pháp khóa cửa thông minh, mô-đun NFC (PN532), giao thức MQTT cho IoT, thuật toán nhận diện khuôn mặt nhẹ (MobileNet, FaceNet, Tiny-YOLO để phát hiện khuôn mặt + FaceNet/ArcFace embedding + so sánh cosine), thực hành ứng dụng OTP (TOTP hoặc mã ngẫu nhiên gửi qua Telegram/SMTP).

6. Phương pháp thực hiện

6.1 Kiến trúc hệ thống (mô tả)

  • Thiết bị khóa (Edge device): ESP32 (hoặc Raspberry Pi) kết nối:
    • NFC reader (PN532 / RC522)
    • Camera (ESP32-CAM / Pi Camera)
    • Cơ cấu chốt khóa (servo/linear actuator hoặc khóa điện)
    • Module Wi-Fi để giao tiếp MQTT/HTTP với server
  • Server quản lý: API (Flask/Node.js), cơ sở dữ liệu (SQLite/MySQL), dịch vụ OTP (sinh mã + gửi qua Telegram/SMTP), mô-đun nhận diện khuôn mặt (có thể chạy trên Pi hoặc server).
  • Client: Web UI / Mobile (Progressive Web App) cho quản trị và xem log.
  • Giao thức: MQTT cho trạng thái/alert, HTTP/REST cho cấu hình và yêu cầu OTP.

6.2 Luồng hoạt động chính

  1. Người dùng chạm NFC → thiết bị đọc UID → so sánh với danh sách cho phép → nếu OK, mở khóa; nếu không, từ chối và ghi log.
  2. Yêu cầu mở từ xa: gửi yêu cầu mở từ Web/App → server gửi OTP tới người dùng (Telegram/SMS) → người dùng nhập OTP lên App hoặc thiết bị → server xác thực → gửi lệnh mở tới thiết bị.
  3. Mở bằng nhận diện khuôn mặt: camera chụp, phát hiện khuôn mặt, trích embedding, so sánh với database embeddings → nếu trùng/ngưỡng tin cậy vượt → mở khóa.
  4. Hệ thống ghi log mọi sự kiện: UID/NFC, kết quả nhận diện mặt, OTP (thành công/thất bại), thời gian, địa chỉ IP (nếu có).

6.3 Các thuật toán chính

  • Nhận diện khuôn mặt: phát hiện (MTCNN / HaarCascade / Tiny-YOLO) → chuẩn hóa khuôn mặt → trích feature (MobileFaceNet / FaceNet nhỏ) → so sánh cosine với threshold.
  • Quản lý OTP: Sinh mã ngẫu nhiên 6 chữ số, TTL 60–180s; hoặc dùng TOTP nếu muốn đồng bộ.
  • Quản lý quyền: Role-based (Admin, Resident, Guest) với thời gian hiệu lực cho thẻ/OTP.

7. Danh sách linh kiện (gợi ý)

  • Vi điều khiển / SBC: ESP32 DevKit + ESP32-CAM (nếu muốn tiết kiệm) hoặc Raspberry Pi 4 Zero W (nếu xử lý ảnh trên board).
  • NFC Reader: PN532 module hoặc RC522.
  • Camera: ESP32-CAM module hoặc Raspberry Pi Camera V2.
  • Khoá điện / Servo: Linear actuator nhỏ / Servo MG996R (tùy cơ cấu).
  • Nguồn: Adapter 5V 2A (tùy tải).
  • Relay driver (nếu dùng khoá điện), transistor driver.
  • Module RTC (tùy cần logging thời gian khi offline).
  • Module lưu trữ: MicroSD (nếu cần lưu ảnh), hoặc SSD/SD cho Pi.
  • Các phụ kiện: Breadboard, dây, hộp lắp khóa, 3D-printed bracket.
  • Server: Raspberry Pi (nếu dùng local server) hoặc VPS nhỏ (DigitalOcean/AWS Lightsail).
  • Phần mềm/Thư viện: Arduino/ESP-IDF, OpenCV, dlib/face_recognition, TensorFlow Lite (nếu muốn chạy model nhẹ trên edge), MQTT broker (Mosquitto), Node-RED (tuỳ chọn), Flask/Node.js cho API.

8. Sơ đồ khối (mô tả)

  1. User devices (NFC card / Mobile App) ↔ Edge Device (ESP32/RPi) ↔ Server (API + DB + Face Module) ↔ Client (Web/Mobile)
  2. Edge Device ↔ MQTT Broker (publish/sub)
    (Trong báo cáo bạn có thể vẽ sơ đồ gồm các khối: NFC reader, Camera, MCU, Lock actuator, Wi-Fi, MQTT broker, Server DB, Web UI)

9. Kế hoạch thực hiện (gợi ý — 12 tuần)

  • Tuần 1: Nghiên cứu, thu thập yêu cầu, lập đề cương, chọn linh kiện.
  • Tuần 2: Mua linh kiện, lắp ráp cơ bản (board, NFC, camera, khoá).
  • Tuần 3–4: Phát triển firmware đọc NFC, điều khiển khoá, kết nối Wi-Fi, gửi/nhận MQTT.
  • Tuần 5–6: Xây dựng server (API, DB), giao diện quản trị cơ bản, tích hợp OTP (Telegram/SMS).
  • Tuần 7–8: Triển khai mô-đun nhận diện khuôn mặt (test trên Pi hoặc server), huấn luyện/thu thập mẫu khuôn mặt.
  • Tuần 9: Tích hợp toàn hệ thống, quản lý quyền, logging.
  • Tuần 10: Kiểm thử chức năng (unit & integration), đo hiệu năng nhận diện, tỉ lệ false accept/reject.
  • Tuần 11: Tối ưu, hoàn thiện giao diện, viết hướng dẫn sử dụng.
  • Tuần 12: Viết báo cáo, chuẩn bị bảo vệ/dự án demo.

10. Tiêu chí và phương pháp đánh giá / nghiệm thu

  • Thời gian mở khóa từ khi đọc NFC hoặc nhận OTP ≤ X giây (đặt mục tiêu: ≤ 2–3s cho NFC, ≤ 5s cho nhận diện khuôn mặt nếu xử lý trên Pi).
  • Tỉ lệ nhận diện khuôn mặt chính xác: mục tiêu ≥ 90% trong điều kiện ánh sáng tiêu chuẩn (phòng thí nghiệm).
  • OTP đúng/không đúng: hệ thống phải từ chối OTP sau khi quá thời gian hiệu lực; ghi log mọi lần nhập.
  • Hệ thống ghi log đầy đủ và có chức năng truy vấn log theo khoảng thời gian.
  • Kiểm tra bảo mật cơ bản: không chấp nhận replay attack (ví dụ: dùng nonce/TTL cho OTP), mạng có TLS (nếu dùng server cloud).

11. Dự toán chi phí (ước lượng)

(Giá tham khảo, có thể thay đổi)

  • ESP32 + ESP32-CAM: 15–25 USD
  • Raspberry Pi Zero W (nếu cần): 20–50 USD
  • PN532 / RC522: 3–10 USD
  • Camera Pi (nếu dùng Pi): 10–30 USD
  • Servo/khóa điện/linh kiện cơ khí: 10–40 USD
  • Nguồn, dây, hộp: 10–20 USD
  • Raspberry Pi (server) / VPS nhỏ: 0–10 USD/tháng (VPS) hoặc 35–50 USD (Pi)
    => Tổng ước tính: ~60–200 USD tùy cấu hình.

12. Các rủi ro & biện pháp giảm thiểu

  • Rủi ro nhận diện sai do ánh sáng/chế độ góc mặt → giảm thiểu: thu thập dữ liệu đa góc, tăng tín nhiệm bằng threshold, hỗ trợ đăng ký nhiều mẫu cho mỗi người.
  • Rủi ro an ninh mạng (MITM, replay) → giảm thiểu: dùng TLS cho giao tiếp server, JWT cho API, OTP có TTL, nonce.
  • Rủi ro hỏng cơ khí khóa → dùng cơ chế fail-safe (có thể mở bằng chìa vật lý trong trường hợp khẩn cấp).

13. Vấn đề đạo đức & quyền riêng tư

  • Ảnh khuôn mặt là dữ liệu nhạy cảm: lưu trữ có mã hóa, chỉ lưu embedding thay vì ảnh gốc nếu có thể.
  • Xin phép chủ thể trước khi thu mẫu khuôn mặt.
  • Cung cấp cơ chế xóa/full wipe dữ liệu người dùng theo yêu cầu.

14. Kết quả mong đợi / Sản phẩm đầu ra

  • Một prototype hoạt động: bo mạch lắp đặt, khóa mở bằng NFC/OTP/Face.
  • Server & Web UI cho quản trị, log và cấp quyền.
  • Báo cáo kỹ thuật đầy đủ, tài liệu hướng dẫn triển khai, code nguồn (firmware + server + front-end).
  • Bài thuyết trình/bảo vệ demo.

15. Tài liệu tham khảo gợi ý

(Trong báo cáo chính thức đưa các nguồn: datasheet PN532, tài liệu ESP32, OpenCV tutorials, papers về MobileFaceNet/FaceNet, hướng dẫn MQTT/Mosquitto, chuẩn RFC cho OTP/TOTP.)

 

Các tin khác