Skip to content

FluxSoul/Smart-Access-Control-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Access Control System

重庆邮电大学 2023级物联网工程专业 - 物联网复杂工程课程设计

基于 ESP32-S3 + STM32 双核架构的 AIoT 门禁系统,集成人脸识别、RFID、指纹验证及远程云端管理功能。

License Platform Status


📖 项目简介

本项目旨在设计并实现一套现代化的智能出入管理系统,解决校园、小区及重要部门的出入口安全防范管理问题。系统采用**“端-边-云”**架构,通过边缘侧的双核协同处理(AI计算+实时控制)与云端的数据分析,实现高效、安全、智能的门禁管理。

🌟 核心功能

  • 多模态身份认证:支持人脸识别(准确率≥85%)、RFID刷卡、指纹识别。
  • 智能交互看板:4.3寸 RGB 屏幕显示日期、天气、公告,支持 LVGL 图形界面。
  • 双核协同控制:ESP32-S3 负责 AI 与 UI,STM32 负责传感器轮询与继电器驱动。
  • 云端数据管理:基于 MQTT 协议实现数据上报、远程开锁、权限下发及异常报警推送。
  • 低功耗设计:红外感应唤醒机制,无人时自动休眠。

🏗️ 系统架构

系统硬件采用**“大脑 + 管家”**的双核架构设计,软件采用 FreeRTOS 多任务调度与状态机模式。

硬件架构

角色 核心芯片 职责描述
大脑 (Master) ESP32-S3 (N16R8) 运行 LVGL 界面、人脸识别 AI 模型 (ESP-WHO)、WiFi/MQTT 通信。
管家 (Slave) STM32F103C8T6 管理指纹/RFID/键盘、驱动继电器/语音、电源管理、独立看门狗。

软件通信协议

双核之间通过 UART (115200 bps) 进行通信,采用简单的字符串协议:

  • STM32 → ESP32: FP:SUCCESS (指纹成功), PIR:1 (有人靠近)
  • ESP32 → STM32: LOCK:OPEN (执行开锁), VOICE:WELCOME (语音播报)

🛠️ 硬件选型 (BOM)

根据需求分析,核心硬件清单如下:

模块 型号/规格 接口 说明
主控 ESP32-S3 (16MB Flash + 8MB PSRAM) - 必须带 PSRAM 以运行 LVGL 和 AI 模型
协处理器 STM32F103C8T6 (Blue Pill) UART 负责实时外设控制
摄像头 OV2640 (200万像素) DVP 用于人脸识别采集
显示屏 4.3寸 RGB 电容屏 (480x272) RGB 智能看板显示
指纹模块 AS608 (光学) UART 连接至 STM32
RFID MFRC522 SPI 连接至 STM32
门锁 12V 电磁锁 + 5V 继电器 GPIO 继电器需光耦隔离
电源 12V 3A + LM2596 (降压至 5V) - 需保证电磁锁启动电流

📂 项目目录结构

SmartAccessSystem/
├── docs/                  # 项目文档 (原理图、需求分析)
├── firmware/              # 嵌入式固件代码
│   ├── esp32-s3/          # ESP32 主控代码 (ESP-IDF)
│   │   ├── main/          # 业务逻辑 (LVGL, AI, MQTT)
│   │   └── components/    # 第三方组件 (esp-who, lvgl)
│   └── stm32-f103/        # STM32 协处理器代码 (Keil/CubeIDE)
│       ├── Core/          # 传感器驱动与逻辑
│       └── Drivers/       # HAL 库
├── server/                # 服务器后端 (GO Gin)
│   ├── app/               # 源码
│   └── Dockerfile         # 容器化部署
└── hardware/              # 硬件设计文件 (SCH/PCB)

🚀 快速开始


📡 通信协议定义

为了保证双核通信的稳定性,请严格遵守以下指令集:

STM32 上报指令 (Slave -> Master)

指令格式 说明 触发条件
PIR:1 人体感应 HC-SR501 检测到有人
FP:SUCCESS 指纹验证通过 AS608 比对成功
RFID:OK 刷卡成功 MFRC522 读取到卡片
SYS:READY 系统就绪 STM32 初始化完成
VOICE:WELCOME 语音播报 播放“欢迎光临”

ESP32 下发指令 (Master -> Slave)

指令格式 说明 动作
LOCK:OPEN 开锁指令 拉高继电器引脚 3秒后拉低
LED:RGB(r,g,b) 灯光控制 设置 RGB 灯颜色

📊 服务器端功能

服务器端基于 Python (FastAPI) + MQTT (EMQX) + MySQL 构建:

  1. 设备管理:监控设备在线状态,下发远程配置。
  2. 人员权限:存储人脸特征值(非图片)与指纹模板,支持增量下发。
  3. 数据看板:WebSocket 实时推送通行记录,统计考勤数据。
  4. 报警中心:接收异常报警(如暴力破解),通过 Webhook 推送至管理员。

📝 注意事项

  1. 电源安全:电磁锁启动瞬间电流较大,请务必使用独立的 12V 电源或确保电源适配器功率充足(≥3A),避免 ESP32 因电压跌落复位。
  2. 电平匹配:STM32 与 ESP32 均为 3.3V 逻辑,但部分传感器(如 RFID)可能是 5V 供电,连接 RX/TX 时请注意电平转换或串联限流电阻。
  3. 隐私合规:服务器数据库仅存储人脸特征值,不存储原始人脸照片,符合隐私保护要求。

📄 许可证

本项目基于 MIT 许可证。详情见 LICENSE 文件。


Made with ❤️ by CQUPT IoT Students

About

AIoT access control system based on the ESP32-S3 + STM32 dual-core architecture, integrating facial recognition, RFID, fingerprint authentication, and remote cloud management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors