重庆邮电大学 2023级物联网工程专业 - 物联网复杂工程课程设计
基于 ESP32-S3 + STM32 双核架构的 AIoT 门禁系统,集成人脸识别、RFID、指纹验证及远程云端管理功能。
本项目旨在设计并实现一套现代化的智能出入管理系统,解决校园、小区及重要部门的出入口安全防范管理问题。系统采用**“端-边-云”**架构,通过边缘侧的双核协同处理(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(语音播报)
根据需求分析,核心硬件清单如下:
| 模块 | 型号/规格 | 接口 | 说明 |
|---|---|---|---|
| 主控 | 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)
为了保证双核通信的稳定性,请严格遵守以下指令集:
| 指令格式 | 说明 | 触发条件 |
|---|---|---|
PIR:1 |
人体感应 | HC-SR501 检测到有人 |
FP:SUCCESS |
指纹验证通过 | AS608 比对成功 |
RFID:OK |
刷卡成功 | MFRC522 读取到卡片 |
SYS:READY |
系统就绪 | STM32 初始化完成 |
VOICE:WELCOME |
语音播报 | 播放“欢迎光临” |
| 指令格式 | 说明 | 动作 |
|---|---|---|
LOCK:OPEN |
开锁指令 | 拉高继电器引脚 3秒后拉低 |
LED:RGB(r,g,b) |
灯光控制 | 设置 RGB 灯颜色 |
服务器端基于 Python (FastAPI) + MQTT (EMQX) + MySQL 构建:
- 设备管理:监控设备在线状态,下发远程配置。
- 人员权限:存储人脸特征值(非图片)与指纹模板,支持增量下发。
- 数据看板:WebSocket 实时推送通行记录,统计考勤数据。
- 报警中心:接收异常报警(如暴力破解),通过 Webhook 推送至管理员。
- 电源安全:电磁锁启动瞬间电流较大,请务必使用独立的 12V 电源或确保电源适配器功率充足(≥3A),避免 ESP32 因电压跌落复位。
- 电平匹配:STM32 与 ESP32 均为 3.3V 逻辑,但部分传感器(如 RFID)可能是 5V 供电,连接 RX/TX 时请注意电平转换或串联限流电阻。
- 隐私合规:服务器数据库仅存储人脸特征值,不存储原始人脸照片,符合隐私保护要求。
本项目基于 MIT 许可证。详情见 LICENSE 文件。
Made with ❤️ by CQUPT IoT Students