基于 STM32 的快递柜自动存取系统设计与实现(项目编号 X604041)

本文介绍一套面向社区末端投递场景的快递柜自动存取系统。系统以 STM32F103C8T6 为控制核心,由红外感应模块完成人员接近检测,以矩阵键盘与 OLED12864 构成人机交互界面,由 4 路继电器驱动柜门电磁锁;同时引入 ESP32-CAM 作为图像采集与传输节点,配合服务端的虹软人脸识别 SDK,实现取件码取件与人脸识别取件双通道的自动开柜逻辑,并通过移动端 APP 完成快递入柜、快递管理与记录查询的业务闭环。

一、项目基本情况

1.1 项目概述

本系统针对快递末端配送环节中人工值守成本高、服务时段受限、身份核验依赖人工等问题,设计并实现了一套基于 STM32 微控制器的快递柜自动存取装置(项目编号 X604041)。系统面向用户与快递员两类角色,前者完成取件码取件、人脸识别取件与取件记录查询,后者完成快递入柜、柜门远程开关与快递信息管理。

系统在结构上采用控制端、服务端与移动应用端三段式划分:控制端负责柜门执行、人机交互与状态反馈,只承担确定的实时动作;服务端承担业务数据持久化、指令转发与人脸比对,一切涉及身份判定与数据一致性的逻辑均在服务端完成;移动应用端以差异化视图向两类角色开放功能。这一划分使系统在硬件资源受限的 STM32 平台上仍具备完整的业务能力。

取件环节共设计两条通道。其一为取件码取件:用户在矩阵键盘输入取件码,以 # 键确认,控制端经 TCP Socket 上报服务端比对,比对通过后逐级下发开柜指令;其二为人脸识别取件:系统自动抓拍现场人脸图像,经 HTTP POST 上传至服务端,由虹软人脸识别 SDK 完成检测与特征比对,比对通过后自动检索该用户名下的待取快递并开柜。柜门开启后延迟 5 秒自动关闭;红外感应模块检测到人员靠近时点亮屏幕,15 秒无任何操作则自动熄屏,以降低显示模块的持续功耗。

1.2 系统技术架构

系统由嵌入式控制端、服务端与移动应用端三部分构成,各自的技术选型如下。

  • 嵌入式控制端:以 STM32F103C8T6 为核心,采用 Keil 5 集成开发环境与标准外设库开发,通过 GPIO、IIC 与串口驱动全部外设;图像采集节点 ESP32-CAM 运行独立固件,完成拍照、图像编码与 REST 上传。
  • 服务端:基于 JeeSite 平台构建,技术栈为 Java + SpringBoot + MySQL + Bootstrap。其中 TCPSocket 服务与硬件节点保持周期性数据同步,承担指令下发与状态回传;REST 接口负责接收图像数据并调用虹软 SDK 完成人脸检测与识别;MySQL 承担快递、用户、取件记录等结构化数据的持久化。
  • 移动应用端:采用混合(Hybrid)架构,以 WebView 控件加载 H5 页面实现,由 HBuilder 编译打包为 Android 应用(APK),业务逻辑以 H5 页面承载,与硬件相关的操作通过服务端中转完成。

系统的核心设计思想是控制与业务解耦:STM32 侧仅负责确定的实时动作------键盘扫描、继电器时序、显示刷新与音光提示;一切涉及身份判定与数据一致性的处理均交由服务端完成。

1.3 硬件构成

系统硬件由主控单元、人机交互单元、感知单元、执行单元、图像采集单元与供电单元组成,各器件的型号规格、接口方式与功能作用如表 1 所示。

序号 器件名称 型号 / 规格 接口方式 功能作用
主控 MCU STM32F103C8T6 核心板 --- 系统控制核心,采集外设数据并驱动执行机构
显示模块 OLED12864(1.3 英寸) IIC(SCL→PB6,SDA→PB7) 显示存取指引、柜号与状态提示
输入模块 4×4 矩阵键盘 GPIO(PA0~PA7) 输入取件码与柜号,选择存取功能
执行模块 4 路继电器模块 GPIO(PC14 / PB0 / PB10 / PB11) 驱动柜门电磁锁,实现柜门开关
感应模块 红外感应模块 GPIO(DO→PC15) 检测人员靠近,触发系统流程
提示模块 蜂鸣器 GPIO(BEEP→PB1) 操作成功或失败时的声音提示
指示模块 双色 LED GPIO(LED→PC13) 绿色表示成功,红色表示异常或待操作
图像模块 ESP32-CAM 串口(TX/RX→PA9 / PA10) 人脸与柜号图像采集及 REST 上传
供电单元 TYPE-C 供电口 5V 输入 为各模块提供 5V,板载稳压输出 3.3V

硬件采用扩展板与杜邦线互连的方式搭建,便于教学演示与功能迭代;工程同时提供了嘉立创 EDA 原理图源文件、PDF / SVG 矢量图与可直接打样的 Gerber 文件,具备由样机向定制 PCB 迁移的条件。

二、系统架构设计

2.1 系统总体架构

系统按感知执行层、网络通信层、服务与数据层、应用层四个层次组织,层间采用双向数据流:下层向上层上报状态与请求,上层向下层下发指令与配置,总体架构如图 1 所示。

感知执行层是系统的物理边界,由 STM32F103C8T6 主控统一调度:矩阵键盘与红外模块构成输入通道,OLED12864、蜂鸣器与双色 LED 构成反馈通道,4 路继电器驱动柜门执行机构,ESP32-CAM 独立承担图像采集与传输。网络通信层实现两种语义不同的链路------TCP Socket 长连接承载指令下发与状态回传,属于低频小报文;HTTP POST 上传承载图像数据,属于高频大报文,二者分离避免了图像传输对控制指令时延的影响。服务与数据层承载业务服务、通信服务、人脸识别与数据存储四类职责。应用层以 H5 页面承载业务界面,由 WebView 容器封装为移动应用。

▲ 图 1 系统总体架构(四层体系)

2.2 系统功能结构

系统功能沿硬件系统、软件系统与交付服务三条主线展开,如图 2 所示。硬件系统覆盖主控、人机交互、感知、执行与图像采集五个单元;软件系统按用户端 APP、快递员端 APP 与服务端划分,并按角色开放差异化功能;交付服务包含硬件实物、软硬件源码、图纸、演示视频与技术支持五项内容。

▲ 图 2 系统功能结构(硬件系统 / 软件系统 / 交付服务)

两类角色的功能边界由服务端权限控制:用户可执行注册登录、取件码查询、取件记录查询与个人中心维护;快递员可执行注册登录、快递入柜、快递管理与个人中心维护。其中个人中心包含人脸照片的上传与修改,该照片同时作为人脸识别取件的比对底库。

2.3 硬件系统原理

硬件系统以 STM32F103C8T6 为核心,输入设备与输出设备分别挂接在主控两侧,供电单元独立引出,各外设与主控的实际引脚连接如图 3 所示。

▲ 图 3 硬件系统原理框图(标注实际引脚连接)

引脚分配遵循外设特性与复用冲突规避两个原则:矩阵键盘占用 PA0~PA7 共 8 路 I/O,其中行线 R1~R4 接 PA0~PA3、列线 C1~C4 接 PA4~PA7,扫描时采用逐行拉低、逐列读取的方式识别键值;OLED12864 采用 IIC 接口,SCL 与 SDA 分别接 PB6 与 PB7,即 STM32F103 的 I2C1 复用引脚;4 路继电器的控制端占用 PC14、PB0、PB10 与 PB11,分时驱动四路柜门;红外模块的数字输出接 PC15,蜂鸣器接 PB1,双色 LED 接 PC13;ESP32-CAM 通过串口与主控相连,TX / RX 分别接 PA9 与 PA10。各单元的具体引脚分配如表 2 所示。

外设单元 信号线 STM32 引脚 说明
OLED12864 VCC / GND 3.3V / GND IIC 供电,取自核心板 3.3V
OLED12864 SCL / SDA PB6 / PB7 I2C1 复用引脚,刷新状态与指引
4×4 矩阵键盘 行 R1~R4 PA0 / PA1 / PA2 / PA3 逐行拉低扫描
4×4 矩阵键盘 列 C1~C4 PA4 / PA5 / PA6 / PA7 逐列读取电平判键
4 路继电器 K1 / K2 / K3 / K4 PC14 / PB0 / PB10 / PB11 分时驱动四路柜门
红外感应模块 DO PC15 人员靠近时输出电平翻转
蜂鸣器 BEEP PB1 开柜成功时短鸣提示
双色 LED LED PC13 绿为成功,红为异常
ESP32-CAM TX / RX PA9 / PA10 串口指令交互
供电 5V / GND TYPE-C 输入 板载稳压输出 3.3V

系统电路原理图如图 4 所示,图纸由嘉立创 EDA 绘制,涵盖 OLED12864、矩阵键盘、4 路继电器、ESP32-CAM、蜂鸣器、LED 与 TYPE-C 供电口各功能单元,并给出了 STM32F103C8T6 核心板的完整引脚引出关系。

▲ 图 4 系统电路原理图(嘉立创 EDA 绘制,含 OLED、矩阵键盘、4 路继电器、ESP32-CAM 等单元)

2.4 系统数据交互时序

系统一次完整的取件流程涉及用户、硬件节点、服务端与移动应用端四个参与方,各环节的消息顺序如图 5 所示。图中实线表示取件码取件链路,虚线表示人脸识别取件链路。

▲ 图 5 系统数据交互时序(实线为取件码链路,虚线为人脸识别链路)

流程可归纳为五个阶段。第一阶段为感应唤醒:用户靠近后红外模块输出翻转,控制端点亮 OLED 并显示存取件操作指引。第二阶段为身份输入:用户经矩阵键盘输入取件码并以 # 键确认,或直接以 # 键确认进入刷脸流程。第三阶段为服务端判定:控制端经 TCP Socket 上报请求,服务端查询 MySQL 中的快递与用户记录;若为人脸识别链路,则 ESP32-CAM 抓拍现场图像并上传,由虹软 SDK 完成人脸检测与特征比对,比对通过后检索该用户绑定的待取快递。第四阶段为执行与反馈:服务端下发开柜指令,控制端驱动继电器吸合开门,同步以蜂鸣器与双色 LED 提示操作结果,并将开柜结果回传服务端。第五阶段为状态收敛:服务端将快递状态由待取件更新为已取出,并向 APP 推送最新状态;柜门延迟 5 秒自动关闭,若柜前无人则延迟 10 秒返回主界面并进入待机,屏幕在 15 秒无操作后熄灭。

2.5 硬件实物与运行参数

系统实物按功能划分为继电器驱动区、主控区、人机交互区与图像采集区四部分,整机全貌如图 6 所示。其中继电器模块采用 JQC3F-05VDC-C 型四路继电器,触点容量为 10A 250VAC / 10A 30VAC,满足柜门电磁锁的驱动需求;STM32 核心板与 ESP32-CAM 通过扩展板固定在底板之上,矩阵键盘经排线与 4×4 键盘接口相连。

▲ 图 6 硬件实物整机全貌(4 路继电器、STM32 核心板、ESP32-CAM、矩阵键盘与红外模块)

控制端上电后首先在 OLED 上显示主菜单,提示三种操作入口:按 A 键进入用户取件,按 B 键进入快递员放件,按 C 键进入用户刷脸取件,如图 7 所示。进入取件流程后,屏幕按步骤提示当前应执行的操作,键位定义为:* 键删除、# 键确认、D 键返回。图 8 为快递员放件环节的状态提示,此时系统引导操作者转至 APP 端完成快递信息录入与柜门选择。

▲ 图 7 上电后的主菜单界面:按 A 用户取件、按 B 快递员放件、按 C 用户刷脸取件

▲ 图 8 快递员放件环节的 OLED 状态提示

ESP32-CAM 作为独立的图像采集与传输节点,其运行参数通过串口配置工具写入,上电后回显全部启动参数,如图 9 所示。关键参数包括:图像上传接口位于服务端 8889 端口的 /f/esp32/upload 路径;指令链路使用 TCP 19214 端口;抓拍间隔为 10 秒;闪光灯使能、自动拍照关闭、垂直反转开启;串口通信参数为 115200、8 位数据位、无校验、1 位停止位。由于柜体采用竖装结构,垂直反转开启使成像方向与柜体姿态一致;而自动拍照关闭则保证图像仅在业务流程触发时采集,避免无效上传占用带宽。

▲ 图 9 ESP32-CAM 串口配置工具的启动参数回显

参数项 取值 工程含义
WiFi 名称 / 密码 已配置(见设备端配置文件) ESP32-CAM 接入局域网的凭据
服务器 IP 192.168.137.250 服务端在局域网内的地址
Socket 端口 19214 TCP 指令与状态链路端口
上传地址 8889 端口 /f/esp32/upload 图像 REST 上传接口
拍摄间隔 10 秒 定时抓拍的最小间隔
闪光灯 / 自动拍照 开启 / 关闭 按需补光,仅在业务触发时采集
水平镜像 / 垂直反转 关闭 / 开启 适配柜体竖装姿态
串口参数 115200 · 8 · N · 1 配置工具的通信参数

三、系统界面展示

移动应用端按角色提供差异化功能视图。用户端以取件码与取件记录为核心,快递员端以快递入柜与快递管理为核心,二者共用登录、注册与个人中心模块。

3.1 登录注册与角色首页

登录页提供手机号与密码两种凭据的输入,并保留注册入口。注册时需选择角色(用户或快递员),系统提示注册完成后可在 APP 内进一步完善详细资料。登录成功后,首页按角色呈现不同的功能入口:用户端为我的取件码、取件记录与个人中心;快递员端为快递管理与个人中心,如图 10 所示。

▲ 图 10 APP 登录页与角色首页(左:登录;右:快递员首页)

3.2 快递入柜与柜门控制

快递员端首页进入快递入柜后,需录入快递单号、快递公司、收件人姓名与电话、寄件人姓名与电话等基本信息,并从下拉列表中选择空闲柜号与快递状态。表单提交后系统自动生成取件码并写入入柜时间,同时向控制端下发开柜指令,界面弹出指令发送完成的确认提示,实现录单与开柜的一体化操作,如图 11 所示。

▲ 图 11 快递入柜表单与指令下发结果(左:录入基本信息;右:指令发送完成)

3.3 快递管理与取出确认

快递员放件列表以卡片形式展示全部快递记录,每条记录包含快递单号、快递公司、收件人及其联系电话、快递员联系方式、取件码、快递状态与入柜时间。列表顶部提供按快递单号或收件人电话检索的搜索框。对已入柜的快递执行取出操作时,系统以模态弹窗二次确认,避免误操作,如图 12 所示。

▲ 图 12 快递员放件列表与取出确认(左:列表;右:确认执行快递员取出操作)

3.4 取件码与取件记录

用户端首页以醒目的字级展示其名下待取快递的取件码,点击条目进入详情页,可查看快递公司、快递单号、收件人、存入时间与存放位置。取件记录页按时间倒序展示历史取件条目,每条记录标注操作方式(用户取出或用户删除取出)并附带人脸留档照片,该照片与人脸识别取件环节的抓拍图像一一对应,可用于事后溯源,如图 13、图 14 所示。

▲ 图 13 用户端取件码与快递详情(左:取件码汇总;右:取件码明细)

▲ 图 14 取件记录与人脸留档照片(左:记录列表;右:照片附件预览)

3.5 个人中心与信息维护

个人中心提供信息修改、密码修改与退出登录三个入口。用户信息修改页支持修改姓名与手机号,并可通过上传照片控件更新人脸底库图像------该图像将作为人脸识别取件的比对基准,因此用户更换照片后,刷脸取件的特征库同步更新,如图 15 所示。

▲ 图 15 新用户注册与个人信息维护(左:注册;右:用户信息修改)

四、系统视频展示

系统提供三种规格的演示视频,覆盖屏幕录制与实机拍摄两种形式:B 站版本按平台规格编码,无水印版与水印版分别用于二次剪辑与分发留档。视频完整记录了从上电自检、键位操作到开柜动作的全过程,可直接作为功能验收依据。

视频规格 内容形式 适用场景
B 站版本 屏幕录制 + 实机拍摄剪辑 作为视频稿件发布,配合本文使用
无水印版 实机拍摄原始画面 二次剪辑、方案演示
水印版 带项目标识的成片 归档留存与成果汇报

建议按以下顺序观看,以便完整理解系统的业务闭环。

  1. 上电自检与主菜单:观察 OLED 点亮后显示的三种操作入口与红外模块的唤醒响应。
  2. 快递员放件:在 APP 端录入快递信息并选择柜号,观察取件码生成与对应柜门开启的联动。
  3. 取件码取件:在矩阵键盘输入取件码并以 # 键确认,观察开柜动作、蜂鸣器提示与 LED 指示。
  4. 人脸识别取件:以 # 键确认进入刷脸流程,观察 ESP32-CAM 抓拍、服务端比对与自动开柜的过程。
  5. 记录同步:在 APP 端查看取件记录与人脸留档照片,确认快递状态由待取件更新为已取出。

视频中出现的取件码、手机号、快递单号与快递公司信息均为演示数据,不对应真实业务数据;人脸照片亦为演示素材。

五、获取方法

5.1 交付内容

本项目的交付内容包括硬件实物、软硬件程序源码、硬件原理图与演示视频四类,并按下列清单组织,便于按需取用。

交付类别 具体内容
硬件实物 焊接调试完成的控制板(含继电器模块、矩阵键盘、红外模块、ESP32-CAM)
嵌入式源码 STM32F103 控制程序(Keil 5 工程)与 ESP32-CAM 图像节点固件
应用端源码 Android APP 工程(HBuilder 项目)与 MySQL 数据库脚本
硬件图纸 嘉立创 EDA 原理图(PDF / SVG / SchDoc)与 Gerber 打样文件
文档资料 数据库还原说明、通信参数说明与设备清单
演示视频 B 站版本、无水印版、水印版三种规格

5.2 获取方式

在 B 站站内获取

  1. 在本文下方评论区留言,说明所需的项目编号 X604041 与交付类别。
  2. 或通过 B 站站内私信联系,注明项目编号与联系方式。
  3. 收到留言后会在站内统一回复,并提供对应的资料清单与交付形式说明。

5.3 部署前确认

由于系统同时涉及嵌入式端、服务端与移动应用端,建议在获取资料后先完成以下确认,以便缩短环境搭建周期。

  • 开发环境:嵌入式端需要 Keil 5 与 ST-Link 下载器;服务端需要 JDK、Maven 与 MySQL 5.7 及以上版本;应用端需要 HBuilder 或 Android 打包环境。
  • 网络环境:控制端与服务端须处于同一局域网,以保障 TCP 指令链路与 HTTP 图像上传链路可达。
  • 硬件检查:确认继电器模块与柜门电磁锁的供电独立且共地,避免电磁锁吸合瞬间的电流冲击影响主控稳定性。
  • 参数核对:ESP32-CAM 的 WiFi 凭据、服务端地址与端口需与现场环境一致,可通过串口配置工具重新写入。
相关推荐
xx~t1 小时前
嵌入式——ARM——汇编2
linux·汇编·arm开发·嵌入式硬件·启动代码
DolphinDB1 小时前
存算一体、云边协同:DolphinDB 为石油化工行业设备监测打造高效数据底座
物联网·时序数据库·dolphindb
TST-魚爷1 小时前
会议摄像头电脑连接实操讲解(易视讯)
stm32·电脑·腾讯会议·zoom会议
M78佐菲2 小时前
ARM学习笔记(三)
linux·arm开发·笔记·嵌入式硬件·学习
wuyk5552 小时前
《WiFi 嵌入式物联网开发全套实战》| 第 12 章 Linux 系统 WiFi 常用命令全集:iw/iwlist/ip/wpa_cli 实战
linux·网络·stm32·物联网·tcp/ip
威嵌神州2 小时前
天脉 3 开发环境与 BSP 适配:IDE license、驱动开发、飞腾平台
ide·驱动开发·嵌入式硬件·fpga开发
织元Zmetaboard2 小时前
5类大屏可视化工具怎么选?按数据、交互和部署条件比较
物联网·信息可视化·三维可视化·数据可视化·大屏
辰域电子2 小时前
STM32项目开源:智能插座控制系统(代码 + 原理图 + 仿真)
stm32·单片机·嵌入式硬件·开源·51单片机·proteus
芯岭技术郦2 小时前
MS32C001B32位MO+内核MCU
单片机·嵌入式硬件·个人开发