本项目仅包含ESP32-S3端以及Server端代码
重庆邮电大学 2023级物联网工程专业 - 物联网复杂工程课程设计
基于 ESP32-S3 + STM32 双核架构的 AIoT 门禁系统,集成人脸识别、RFID、指纹验证及远程云端管理功能。
本项目旨在设计并实现一套现代化的智能出入管理系统,解决校园、小区及重要部门的出入口安全防范管理问题。系统采用 “端-边-云” 架构,通过边缘侧的双核协同处理(实时控制)与云端的数据分析与边缘服务器端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(指纹成功)。(详见下文)
根据需求分析,核心硬件清单如下:
| 模块 | 型号/规格 | 接口 | 说明 |
|---|---|---|---|
| 主控 | 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)
为了保证双核通信的稳定性,请严格遵守以下指令集:
| 指令格式 | 说明 | 触发条件 |
|---|---|---|
FP:OK |
指纹验证通过 | AS608 比对成功 |
RFID:OK |
刷卡成功 | MFRC522 读取到卡片 |
PASSWORD:OK |
密码验证成功 | 密码键盘输入成功 |
服务器端基于 GO(GIN) + Python (FastAPI) + MQTT (任意) + POSTGRESQL 构建:
- 设备管理:监控设备在线状态,下发远程配置。
- 人员权限:存储人脸特征值(非图片)与指纹模板,支持增量下发。
- 数据看板:查看设备进入日志。(仅支持人脸进入)
- 电源安全:电磁锁启动瞬间电流较大,请务必使用独立的 12V 电源或确保电源适配器功率充足(≥3A),避免 ESP32 因电压跌落复位。
- 电平匹配:STM32 与 ESP32 均为 3.3V 逻辑,但部分传感器(如 RFID)可能是 5V 供电,连接 RX/TX 时请注意电平转换或串联限流电阻。
- 隐私合规:服务器数据库仅存储人脸特征值,不存储原始人脸照片,符合隐私保护要求。
本项目基于 MIT 许可证。详情见 LICENSE 文件。
Made by CQUPT IoT Students - Crist Yang