Skip to content

FluxSoul/Smart-Access-Control-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

122 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Smart Access Control System

本项目仅包含ESP32-S3端以及Server端代码

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

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

License Platform Status


📖 项目简介

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

🌟 核心功能

  • 多模态身份认证:支持人脸识别(准确率≥85%、ESP32上传到边缘服务器处理)、RFID刷卡、指纹识别(STM32端实现)。
  • 智能交互看板:屏幕显示人脸识别状态。
  • 双核协同控制:ESP32-S3 负责 Wifi、MQTT、UART。
  • 云端数据管理:基于 MQTT 协议实现数据上报、远程开锁、权限下发及异常报警推送。

🏗️ 系统架构

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

硬件架构

角色 核心芯片 职责描述
大脑 (Master) ESP32-S3 (N16R8) 运行 摄像头获取图像数据、WiFi/MQTT 与服务器及语音模块通信。
管家 (Slave) STM32F103C8T6 管理指纹/RFID/键盘、驱动继电器、电源管理、独立看门狗。

软件通信协议

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

  • STM32 → ESP32: FP:OK (指纹成功)。(详见下文)

🛠️ 硬件选型 (BOM)

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

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

📂 项目目录结构

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

🚀 快速开始


📡 通信协议定义

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

STM32 上报指令 (Slave -> Master)

指令格式 说明 触发条件
FP:OK 指纹验证通过 AS608 比对成功
RFID:OK 刷卡成功 MFRC522 读取到卡片
PASSWORD:OK 密码验证成功 密码键盘输入成功

📊 服务器端功能

服务器端基于 GO(GIN) + Python (FastAPI) + MQTT (任意) + POSTGRESQL 构建:

  1. 设备管理:监控设备在线状态,下发远程配置。
  2. 人员权限:存储人脸特征值(非图片)与指纹模板,支持增量下发。
  3. 数据看板:查看设备进入日志。(仅支持人脸进入)

📝 注意事项

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

📄 许可证

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


Made by CQUPT IoT Students - Crist Yang

About

[重庆邮电大学-物联网复杂工程课程设计] AIoT access control system based on the ESP32-S3 + STM32 dual-core architecture, integrating facial recognition, RFID, fingerprint authentication, and remote cloud management

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors