🛡️

Phát Triển Ứng Dụng IoT
Để Bảo Vệ An Ninh Gia Đình

Giảng viên hướng dẫn: TS. Bùi Quy Anh

Sinh viên thực hiện: Trần Ngọc Nguyên Hạnh (52000554) - Võ Minh Khoa (52000351)

Khoa Công nghệ Thông tin - Trường Đại học Tôn Đức Thắng

Tóm Tắt (Abstract)

Đề tài tập trung xây dựng hệ thống giám sát an ninh gia đình giá rẻ, dễ triển khai sử dụng công nghệ Internet of Things (IoT). Hệ thống cho phép giám sát hình ảnh từ xa, phát hiện chuyển động và gửi cảnh báo tức thời đến điện thoại người dùng thông qua ứng dụng.

1. Mở đầu

1.1 Lý do chọn đề tài

Nhu cầu an ninh gia đình ngày càng tăng cao trong xã hội hiện đại. Tuy nhiên, các giải pháp camera an ninh truyền thống thường có chi phí đắt đỏ, lắp đặt cồng kềnh hoặc yêu cầu hạ tầng phức tạp. Đề tài hướng tới việc giải quyết vấn đề này bằng công nghệ IoT.

1.2 Mục tiêu

  • Tạo ra thiết bị giám sát nhỏ gọn.
  • Kết nối không dây (Wi-Fi) tiện lợi.
  • Chi phí thấp dựa trên nền tảng vi điều khiển ESP32.
  • Tích hợp khả năng cảnh báo thời gian thực.

2. Cơ sở lý thuyết

2.1 Tổng quan IoT

IoT (Internet of Things) là mạng lưới vạn vật kết nối Internet, nơi các thiết bị thông minh có thể thu thập, chia sẻ dữ liệu và tự động phản hồi.

2.2 Phần cứng: ESP32-CAM

Module ESP32-CAM được lựa chọn làm nòng cốt cho hệ thống nhờ tích hợp sẵn:

  • Wi-Fi & Bluetooth: Kết nối mạng dễ dàng.
  • Camera OV2640: Cho phép chụp ảnh và stream video.
  • Giá thành rẻ: Phù hợp cho các ứng dụng đại trà.
Hình 2.1: Module ESP32-CAM và sơ đồ chân

Hình 2.1: Module ESP32-CAM và sơ đồ chân

2.3 Nền tảng phần mềm

  • Blynk: Nền tảng IoT Cloud giúp quản lý thiết bị và tạo giao diện điều khiển (App) trên smartphone mà không cần code mobile app phức tạp.
  • Arduino IDE: Môi trường phát triển tích hợp dùng để viết và nạp code C++ cho ESP32.

3. Phân tích và Thiết kế hệ thống

3.1 Mô hình hoạt động

  1. PIR Sensor: Phát hiện chuyển động, gửi tín hiệu HIGH qua GPIO13.
  2. ESP32-CAM Xử Lý: Chụp ảnh UXGA (1600×1200), ghi video 15s lên SD Card, gửi HTTP POST request.
  3. Node.js Server - Bảo Mật 3 Lớp:
    • Layer 1: Kiểm tra API Key
    • Layer 2: Kiểm tra IP Whitelist
    • Layer 3: Rate Limiting (10 requests/phút)
  4. Upload Lên AWS S3: Server upload ảnh lên bucket esp32cam-security-khoahanh.
  5. AWS Rekognition: Phân tích ảnh, trả về labels (Person, Human, Face) với confidence score.
  6. Pattern Analysis: Đếm số lần phát hiện trong 10 phút, phân loại mức độ:
    • 1 lần → LOG (1 beep)
    • 2 lần → MEDIUM (2 beeps)
    • 3 lần → HIGH (3 beeps)
    • 4+ lần → CRITICAL (4 beeps)
  7. Server Response: Trả JSON về ESP32 chứa: hasPerson, level, count, confidence.
  8. ESP32 Phản Hồi: Parse JSON, kích hoạt Buzzer theo số beeps tương ứng với level.
  9. Cập Nhật Blynk: Update 9 Virtual Pins (V0-V8): Video Count, SD Usage, RAM Free, False Alarm, People Count, System Status, Enable Monitor, PIR Status, Last Detection.
  10. Push Notification: Blynk gửi thông báo "🚨 CẢNH BÁO: Phát hiện người X lần!" nếu level ≥ MEDIUM.

Thời gian xử lý: ~4.5 giây từ PIR trigger đến Blynk Notification.

Hình 3.1: Sơ đồ luồng dữ liệu của hệ thống

Hình 3.1: Sơ đồ luồng dữ liệu của hệ thống

3.2 Sơ đồ kết nối phần cứng

Để nạp code cho ESP32-CAM (vốn không có cổng USB), cần sử dụng Arduino UNO hoặc dùng đế nạp ESP32-CAM-MB.

// ===== CẤU HÌNH CHÂN =====
#define PIR_PIN 13
#define LED_FLASH 4
#define BUZZER_PIN 12

// ===== CẤU HÌNH CAMERA (AI-THINKER) =====
#define PWDN_GPIO_NUM     32
#define RESET_GPIO_NUM    -1
#define XCLK_GPIO_NUM      0
#define SIOD_GPIO_NUM     26
#define SIOC_GPIO_NUM     27
#define Y9_GPIO_NUM       35
#define Y8_GPIO_NUM       34
#define Y7_GPIO_NUM       39
#define Y6_GPIO_NUM       36
#define Y5_GPIO_NUM       21
#define Y4_GPIO_NUM       19
#define Y3_GPIO_NUM       18
#define Y2_GPIO_NUM        5
#define VSYNC_GPIO_NUM    25
#define HREF_GPIO_NUM     23
#define PCLK_GPIO_NUM     22
                    

4. Kết quả thực nghiệm

4.1 Sản phẩm hoàn thiện

Hệ thống được đóng gói gọn gàng, bao gồm nguồn cấp, vi điều khiển và camera.

Hình 4.1: Ảnh thực tế sản phẩm sau khi lắp ráp

Hình 4.1: Ảnh thực tế sản phẩm sau khi lắp ráp

4.2 Giao diện ứng dụng

Trên điện thoại, người dùng có thể:

  • Xem Trạng thái hệ thống.
  • Enable Monitor.
  • SD Usage.
  • Video Count.
  • People Count (Số người phát hiện).
  • False Alarm (Số lần phát hiện giả).
  • PIR Status (Trạng thái PIR).
  • Last Detection.
  • RAM Free.
  • Nhận thông báo (Notification) khi có cảnh báo nguy hiểm.
  • Xem nhật ký (Log) các lần cảnh báo nguy hiểm.
Hình 4.2: Giao diện App Blynk trên Smartphone

Hình 4.2: Giao diện App Blynk trên Smartphone

4.3 Đánh giá hiệu năng

Tiêu chí Kết quả Nhận xét
Điều kiện mạng Wi-Fi gia đình (2.4GHz) Hoạt động ổn định
Độ trễ (Latency) 0.5 - 1.5 giây Chấp nhận được cho giám sát dân dụng
Chất lượng ảnh SVGA (800x600) Rõ nét, đủ nhận diện khuôn mặt

5. Kết luận và Hướng phát triển

5.1 Kết luận

Nhóm đã xây dựng thành công hệ thống giám sát an ninh cơ bản với các ưu điểm: chi phí thấp, dễ lắp đặt và sử dụng công nghệ IoT hiện đại. Tuy nhiên, hệ thống còn phụ thuộc vào độ ổn định của server miễn phí (Blynk) và cần nguồn điện ổn định.

5.2 Hướng phát triển (Future Work)

  • Tích hợp AI: Sử dụng thư viện AI trên biên (Edge AI) để nhận diện khuôn mặt, phân biệt người nhà và người lạ.
  • Lọc nhiễu: Cải thiện thuật toán để loại bỏ cảnh báo giả do động vật (chó, mèo) hoặc cây rung.
  • Phân quyền (RBAC): Thêm chức năng Admin/User/Guest để chia sẻ quyền giám sát cho nhiều thành viên trong gia đình.
  • Cloud Storage: Tích hợp lưu trữ Google Drive hoặc AWS S3 để lưu lại video bằng chứng lâu dài hơn.

Tài liệu tham khảo

  • Espressif Systems - ESP32 Technical Reference Manual.
  • Arduino Documentation - Language Reference.
  • Blynk IoT Platform - Getting Started with Blynk.
  • Node.js Foundation - Documentations.

Xem PDF

Xem toàn bộ báo cáo dưới định dạng PDF:

📥 Tải xuống PDF