项目编号X603141| 主控 STM32F103C8T6 + MFRC522 | 链路 MQTT(EMQX 公共 Broker) | 移动端 微信小程序 + web-view摘要:本文介绍一套基于 RFID 的智能服装管理系统。系统按「硬件节点 — 消息中间件 — 应用端」组织:硬件端以 STM32F103C8T6 最小系统板为主控,通过 MFRC522 读卡模块以 SPI 读取衣物上绑定的13.56 MHz 只读 ID 卡卡号,经 ESP-01S(ESP8266)以 MQTT 协议上报至 EMQX 中国区免费公共服务器;服务端基于 JeeSite 平台与 Spring Boot 构建,内置 MQTT 客户端订阅上报主题,按卡号关联衣物档案、判定本次是「入柜」还是「出柜」并写入 MySQL,再把识别结果与提示内容下发回硬件,由绿色 LED 与有源蜂鸣器给出声光反馈。移动端以微信小程序为壳,用 web-view 承载本地 H5 页面,首屏手填服务器地址与端口,提供衣物清单、使用记录、衣柜总览与数据统计等页面。文末附 MQTT 主题与订阅关系、主要数据表字段、界面实测数据切片与本地联调要点。
0.1 技术栈速览
| 层次 | 选型 | 备注 |
|---|---|---|
| 主控 | STM32F103C8T6 最小系统板 | Keil 5 开发,Type-C 5 V 供电 |
| 读卡 | MFRC522(13.56 MHz) | GPIO 模拟 SPI:SDA→PA7 · SCK→PA6 · MOSI→PA5 · MISO→PA4 · RST→PA1 |
| 通信 | ESP-01S(ESP8266) | 串口 RX←PA9 / TX→PA10,MQTT 透传 |
| 提示 | 绿色 LED + 有源蜂鸣器 | PB0 经 1 kΩ 限流;PB1 直接驱动 |
| 协议 | MQTT 3.1.1 | EMQX 中国区公共 Broker:broker-cn.emqx.io |
| 上报主题 | mybs/bsdata/2462AB65F2F2 | 以模组 MAC 结尾,避免多设备串扰 |
| 下发主题 | mybs/bsctr/2462AB65F2F2 | 服务端 → 硬件 |
| 服务端 | JeeSite + Spring Boot | Java / MySQL / Bootstrap |
| 移动端 | 微信小程序 + web-view | 承载本地 H5 页面,首屏填写服务器地址与端口 |
| 调试工具 | MQTTX | 订阅主题实时旁听报文 |
0.2 MQTT 主题与订阅关系
系统只有一条数据通道,上行与下行靠主题区分,主题末段是模组的 MAC 地址。硬件与服务端各自作为独立客户端接入同一个公共 Broker,订阅对侧的主题即可收报文:
Broker broker-cn.emqx.io (EMQX 中国区免费公共服务器) 硬件上报主题 mybs/bsdata/2462AB65F2F2 (硬件发布 → 服务端订阅) 硬件下发主题 mybs/bsctr/2462AB65F2F2 (服务端发布 → 硬件订阅) 无线接入 热点名称 8266wifi / 密码 123456789 苹果手机需在「个人热点」中打开「最大兼容性」开关 主题命名规则 mybs/<方向>/<模组 MAC> bsdata = 上行数据 bsctr = 下行控制 订阅关系 硬件端(ESP-01S) 订阅 mybs/bsctr/<MAC> 发布 mybs/bsdata/<MAC> 服务端(SpringBoot) 订阅 mybs/bsdata/<MAC> 发布 mybs/bsctr/<MAC> 调试端(MQTTX) 同时订阅两条主题,用于旁听报文往返
注意:主题末段的 2462AB65F2F2 是本项目演示模组的 MAC。多台设备同时挂在同一个公共 Broker 上时,只要各自替换为自己的 MAC 就能互不干扰;若要私有部署,把 Broker 地址换成本地 EMQX 即可,主题命名规则不需要改动。
一、项目基本情况
1.1 系统定位与技术架构
本项目是一套面向家庭衣柜与小型服装店的射频识别管理系统。系统以 STM32F103C8T6 为主控,通过 MFRC522 读卡模块识别衣物上绑定的 RFID 标签,实现衣物的增加、取出、放回与记录查询;ESP8266 模组经 MQTT 把数据送到服务端,微信小程序以 H5 形式提供衣物统计与数据可视化页面,把「衣橱里有什么、什么时候被谁取走」变成可查的数据。整个系统自上而下可以拆成四层:
| 层次 | 承担角色 | 本次实现 |
|---|---|---|
| 应用层 | 使用者入口 | 微信小程序(web-view 承载 H5 页面)与 Web 管理端,另有 MQTTX 作报文旁听 |
| 平台服务层 | 业务与数据 | 基于 JeeSite 平台,Java / SpringBoot / MySQL / Bootstrap,内置 MQTT 客户端 |
| 消息传输层 | 报文中转 | EMQX 中国区免费公共 MQTT 服务器 broker-cn.emqx.io,主题以模组 MAC 结尾 |
| 感知执行层 | 识别与提示 | STM32F103C8T6 主控 + MFRC522 读卡 + ESP-01S + 绿色 LED + 有源蜂鸣器 |
▲ 图 1 系统总体架构图
四层之间只靠两类信息流动:向上是「卡号 + 时间」,向下是「识别结果 + 提示」。这种拆分带来一个直接好处 —— 硬件端不做任何业务判断,衣物叫什么名字、属于哪个分类、该不该算作取出,全部由服务端决定,因此界面上改一处逻辑并不需要重新烧录固件。
卡片只保存一个只读卡号,衣物档案全部放在服务端 —— 换卡、改名、调位置,在系统里都只是一次数据操作,而不是一次重新写卡。
注意:关于卡片形态:项目介绍中的「配卡片」在方案导图中标注为 3 张,实物照片里可见两张白色 ID 卡与一枚蓝色钥匙扣卡,均为 13.56 MHz 只读标签。项目 FAQ 另有说明 —— 采用 ID 卡是因为它只具备读取能力、不具备写入能力,硬件读到唯一卡号后在系统中与该衣物绑定;若要扩展衣物数量,可自行采购配套白卡或软膜射频卡,单张成本约 0.2 至 0.3 元。
1.2 管理对象与硬件构成
系统管理的衣物按外套 / 上衣 / 下装三个大类归档,每件衣物另有颜色、适用季节与存放位置三个维度,标签字段用于把同一件衣服的多条记录归到一起。下列样本图与界面中的示例数据出自同一批素材:
▲ 图 2 项目管理的衣物样本(客户提供的实物图)
硬件部分是一块以 STM32F103C8T6 最小系统板为核心的扩展板:读卡模块经 SPI 挂在主控上,Wi-Fi 模组占用一路串口,声光提示由两个 GPIO 直接驱动,整板由 Type-C 接口 5 V 供电。六个器件的分工与连接方式如下:
| 器件 | 作用 | 连接与说明 |
|---|---|---|
| STM32F103C8T6 最小系统板 | 主控,Keil 5 开发 | 承接读卡、组包与提示的全部逻辑,是硬件系统的核心控制器 |
| MFRC522 读卡模块 | 读取衣物绑定的 RFID 卡号 | SPI:SDA→PA7、SCK→PA6、MOSI→PA5、MISO→PA4,RST→PA1 |
| 配套 ID 射频卡(3 张) | 衣物身份标签 | 13.56 MHz 只读,卡号与衣物信息在系统中绑定 |
| LED 指示灯(绿,3 mm) | 识别状态提示 | GPIO PB0 驱动,串联 R3 1 kΩ 限流电阻后接 GND |
| 有源蜂鸣器 | 识别声音提示 | GPIO PB1 直接驱动,另一端接 GND |
| ESP-01S(ESP8266) | Wi-Fi 接入与 MQTT 通信 | 串口接主控:RX←PA9、TX→PA10,EN 接 3.3 V |
▲ 图 3 硬件系统原理框图
注意:引脚来源说明:项目原理图为矢量 PDF 且带完整文字层,本文全部引脚号均由 PDF 文字层逐项提取,再与实物照片上的丝印交叉核对,并非从图片目测。另需留意一处接法 —— STM32F103 的硬件 SPI1 默认复用是 SCK=PA5、MISO=PA6、MOSI=PA7,而本项目把读卡模块的 SDA、SCK、MOSI、MISO 分别接到了 PA7、PA6、PA5、PA4,属于 GPIO 模拟时序的走线方式,自行移植驱动代码时需按这个对应关系改写。
注意:口径说明(一):项目介绍中写「绿灯表示识别成功,红灯表示异常」,但原理图与 BOM 中只有一颗绿色 3 mm 直插 LED(LED1,PB0 经 R3 1 kΩ 限流至 GND),并未设计红色 LED;实拍照片里另一颗发红光的是最小系统板自带的电源指示灯。正文按原理图如实描述为「绿色 LED 单灯提示」,特此留档。
1.3 软件构成与运行环境
| 项目 | 内容 |
|---|---|
| 移动端 | 微信小程序以 web-view 控件承载本地 H5 页面,首屏手动填写服务器地址与端口 |
| 服务端 | JeeSite 平台 + Java / SpringBoot / MySQL / Bootstrap |
| 消息中间件 | EMQX 中国区免费公共 MQTT 服务器 broker-cn.emqx.io |
| 硬件上报主题 | mybs/bsdata/2462AB65F2F2 |
| 硬件下发主题 | mybs/bsctr/2462AB65F2F2 |
| 硬件开发环境 | Keil 5 |
| 无线接入 | Wi-Fi 热点名称 8266wifi,密码 123456789 |
| 调试工具 | MQTTX,订阅主题后可实时旁听上行与下行报文 |
组网方式很轻:电脑或手机开一个名为 8266wifi 的热点(苹果手机需在个人热点界面打开「最大兼容性」开关),硬件接入后即可连上公共 Broker;服务端与硬件作为两个 MQTT 客户端订阅同一主题,消息即走即通。小程序一侧把页面放在本机运行的 H5 上,首屏手填服务器地址与端口,正是为了让本地开发环境变动时不必重新打包小程序。
二、系统架构设计
2.1 系统功能结构
从功能看,系统可以分成硬件系统、软件系统与交付服务三块,三者的边界比较清楚:
▲ 图 4 系统功能结构图
2.2 硬件原理与引脚分配
项目原理图由嘉立创 EDA 绘制,交付件同时提供 PDF、SVG 与源文件。图中左侧为 MFRC522 读卡模块,中间偏右是 ESP-01S 与 Type-C 供电接口,右侧为大面积的 STM32F103C8T6 核心板引脚区:
▲ 图 5 硬件原理图(STM32F103C8T6 + MFRC522 + ESP-01S 扩展板)
把图上的网络标号按模块整理成表,就是下面这份引脚分配:
| 器件 · 引脚 | 接到主控 | 说明 |
|---|---|---|
| MFRC522 · SDA(片选) | PA7 | 软件模拟时序的片选信号 |
| MFRC522 · SCK | PA6 | 时钟 |
| MFRC522 · MOSI | PA5 | 主发从收 |
| MFRC522 · MISO | PA4 | 主收从发 |
| MFRC522 · RST | PA1 | 复位 |
| MFRC522 · 3.3V / GND | 3.3V / GND | 读卡模块 3.3 V 供电,与主控共地 |
| MFRC522 · IRQ | 未接 | 中断未使用 |
| ESP-01S · RX | PA9(USART1_TX) | 主控发送、模组接收 |
| ESP-01S · TX | PA10(USART1_RX) | 模组发送、主控接收 |
| ESP-01S · EN | 3.3V | 使能脚上拉 |
| LED1(绿,3 mm)· 阳极 | PB0 | 经 R3 1 kΩ 限流后接 GND |
| 有源蜂鸣器 · 1 | PB1 | 另一端接 GND |
| Type-C · 4(+)/ 3(−) | 5V / GND | 5 V 输入,板上再转 3.3 V 供主控与读卡模块 |
▲ 图 6 系统实物(整机装配,左侧为主控与 Wi-Fi 模组,右侧为读卡天线)
▲ 图 7 配套 RFID 标签(两张白色 ID 卡与一枚蓝色钥匙扣卡,均手写卡号 031A7394)
实物照片与原理图能对上:整机照里可以辨认出蓝色的 STM32 最小系统板、黄色跳线帽、发着蓝光的 ESP-01S 模组,以及右侧面积最大的 RC522 读卡天线;另一张照片把配套标签一起拍了进来 —— 两张白色 ID 卡与一枚蓝色钥匙扣卡上都手写了卡号 031A7394,与界面里「毛呢大衣」那条记录绑定的 RFID 编号完全一致,说明「卡号 — 衣物」的绑定关系确实贯穿了从实体卡片到数据库的整条链路。
2.3 通信链路与报文主题
系统只有一条数据通道 —— MQTT。硬件与服务端都作为客户端接入同一个公共 Broker,以主题区分消息方向:上报走 mybs/bsdata/<模组 MAC>,下行指令走 mybs/bsctr/<模组 MAC>;主题以模组 MAC 结尾,多台设备挂同一个 Broker 时彼此不串扰。完整往返过程如下:
▲ 图 8 系统数据交互时序图(MQTT 报文往返)
| 主题 | 方向 | 作用 |
|---|---|---|
| mybs/bsdata/2462AB65F2F2 | 硬件 → 服务端 | 上报读到的卡号与时间,服务端据卡号关联衣物档案 |
| mybs/bsctr/2462AB65F2F2 | 服务端 → 硬件 | 下发识别结果与提示内容,硬件据此驱动 LED 与蜂鸣器 |
| broker-cn.emqx.io | 统一中转 | EMQX 中国区免费公共 MQTT 服务器,可用 MQTTX 实时旁听 |
整套时序里最关键的一点是:硬件不知道「这件衣服叫什么」。它只把读到的卡号原样上报,服务端拿卡号去查库,得到衣物名称、分类、当前位置与在柜状态,再按「上一次是入柜还是出柜」自动翻转本次操作类型,最后把结果与提示文案下发回来。这样一来,衣物档案的增删改查全部留在服务端,硬件固件在项目周期内不需要因为业务变化而重烧。
2.4 小程序运行形态
移动端不是一个完整的原生小程序,而是一个「壳」:小程序用 web-view 控件加载运行在电脑上的 H5 页面。开发者工具截图里可以看到整个工程只有 index 一个页面,页面上依次是两个输入框(服务器地址、服务器端口)与一个「打开首页」按钮,下方 web-view 随之加载对应地址的 H5 内容;右侧编译日志显示整个工程只有 25 个文件,编译与上传耗时都在百毫秒量级。如此设计的原因写在项目 FAQ 里 —— 本地开发时服务地址会变,把地址与端口放到首屏手填,就不用为了换个 IP 重新打包:
▲ 图 9 小程序运行形态(开发者工具中的模拟器、项目结构与首屏配置代码)
注意:本地演示与正式发布是两条路:本地演示只需保证手机与运行服务的电脑处于同一局域网,首屏把服务器地址填成该电脑的局域网 IP 即可;若要公网部署,则需要独立域名、SSL 证书与具备公网 IP 的服务器,并注册微信小程序开发者账号后导入源码。
三、系统界面展示
下面按使用顺序走一遍界面:登录注册 → 首页与清单 → 明细编辑 → 取放操作 → 记录与统计 → 后台配置。所有截图均为系统实际运行画面,图中数值取自同一批实测数据。
3.1 登录与新用户注册
登录页是系统的入口,用管理员账号登录后进入首页;新用户走「没有账号?点击注册」进入注册页,填写姓名、手机号与两次密码即可开户 —— 手机号同时充当登录账号。
▲ 图 10 登录页与新用户注册页
3.2 首页九宫格与衣物管理清单
首页用九宫格把功能分成三组:衣物管理(衣物管理、取放管理、衣物使用查询)、衣柜总览(衣柜总览、数据统计)与系统管理(终端管理、字典管理)。进入衣物管理后是一个带图片缩略图的清单,每条记录一次性给出编号、颜色、分类、季节、位置、标签、状态、RFID 编号与备注九个字段;搜索框支持多字段模糊查询。
▲ 图 11 首页九宫格与衣物管理清单
3.3 衣物明细编辑与清单操作
点开任意一条即进入衣物明细,可直接修改衣物名称、标签、分类、颜色、适用季节与存放位置;RFID 标签编号由「读卡」按钮现场刷卡写入,图片上传区显示已传图片的数量与体积(示例为 1 张、270.55 K);底部三个按钮分别是读卡、保存与关闭。清单上长按某一行会弹出修改 / 删除菜单,用于快速维护。
▲ 图 12 衣物明细编辑与清单长按操作
3.4 关键字模糊搜索与衣物取出 / 归还
搜索框输入「冬季」后,清单立刻筛出两条同为冬季的毛呢大衣(分别存放在衣柜 2 层与衣柜挂架),颜色、分类、RFID 编号各不相同 —— 说明模糊查询是在多个字段上同时匹配的。取放页用于衣物的取出与归还,页面顶部用红字提示了它的自动逻辑:在柜衣服自动修改为取出状态,取出衣服读卡后自动变为放回状态。表单里的操作类型、备注与右侧的读卡 / 查询按钮配合使用,下方同时展示该衣物的绑定图片。
▲ 图 13 关键字模糊搜索与衣物取出 / 归还
提示:这条「自动翻转」的规则是整套系统最省心的一处设计:操作人只需要刷卡,不需要在界面上选择「这是取出还是放回」—— 服务端按上一次记录的状态自行判断,既减少了误操作,也让使用记录的时序自然连续。
3.5 衣物使用记录与衣柜总览
使用记录页把每一次取放按时间倒序列出,除了衣物自身的九个字段,还额外带上「使用人」与操作备注,因此同一件衣服的多次进出可以逐条追溯。衣柜总览页用一个环形图给出状态占比,再用两张表分别按衣物标签与衣物类别统计在柜、取出与总计数量。
▲ 图 14 衣物使用记录与衣柜总览
3.6 衣柜总览统计与数据统计明细
统计部分的数据是从衣物记录里实时汇总出来的:状态占比显示在柜 6 件(66.67%)、取出 3 件(33.33%);按标签统计中牛仔裤、商务装各 1 件,T 恤 2 件处于取出状态,毛呢大衣与短裙各 2 件在柜,衬衣 1 件取出;按类别统计外套 2 件、下装 3 件、上衣 4 件。数据统计页则给出每一件衣物的使用次数、归还次数与总计,并可单独按衣物名称搜索。
▲ 图 15 按标签 / 按类别统计与衣物使用次数统计
3.7 数据统计图表与个人中心
图表部分把上面两张表可视化:单品总操作次数排行用横向条形图列出半身裙、毛呢大衣、短袖、西服与牛仔裤的操作次数,分类操作次数占比用环形图给出下装 37.5%、外套 25%、上衣 37.5%。个人中心显示当前登录的管理员账号,提供密码修改与退出登录两项操作。
▲ 图 16 单品与分类操作次数图表、个人中心
3.8 终端管理与字典管理
系统管理里有两张配置表。终端管理登记读卡终端本身的信息 —— 终端编号 ZDBH01、安装地点「主卧四门衣柜」、终端名称「衣柜读卡器」,状态显示为在线,另有一张表单用于新增或修改终端编号、名称与安装地点。字典管理维护界面上所有下拉选项:大类为「颜色」时参数项依次是白色、红色、黑色、橙色、绿色,大类为「衣物标签」时则是 T 恤等标签项 —— 每一项都由「参数项名称」与「参数值」成对定义,因此新增一个颜色或一类标签不需要改代码。
▲ 图 17 终端管理列表与终端信息表单
▲ 图 18 字典管理列表与字典修改 / 查看
3.9 界面实测数据汇总
把上述页面上的数值集中摘录成表,便于核对系统实际运行状态:
| 项目 | 实测值 |
|---|---|
| 终端信息 | 终端编号 ZDBH01;安装地点 主卧四门衣柜;终端名称 衣柜读卡器;状态 在线 |
| 登录账号 | 管理员 / admin |
| 衣物记录条数 | 清单中可见 8 条衣物明细,另有 1 条重复项未计入 |
| 衣柜状态占比 | 在柜 6 件(66.67%);取出 3 件(33.33%) |
| 按类别统计 | 外套 2 件、下装 3 件、上衣 4 件(其中上衣取出 3 件) |
| 单件最高操作次数 | 半身裙 4 次(使用 2 次 + 归还 2 次) |
| 分类操作次数占比 | 下装 37.5%、外套 25%、上衣 37.5% |
| 最近三条使用记录 | 02:57:57 短袖出柜;02:57:08 毛呢大衣入柜;02:56:52 毛呢大衣出柜 |
| 使用人 | 王五 |
| 字典项示例 | 颜色:白色 / 红色 / 黑色 / 橙色 / 绿色;衣物标签:T 恤、毛呢大衣、短裙、牛仔裤、商务装 |
| 绑定卡号示例 | 毛呢大衣 031A7394;短袖 55631235;半身裙 55631234;牛仔裤 55631236 |
四、系统视频展示
▲ 图 19 系统演示视频封面
演示视频以屏幕录制与实机拍摄结合的方式呈现,建议按下面的顺序观看,可以最快看清系统从「刷卡」到「记录落库」的完整链路:
- 硬件部分:STM32F103C8T6 扩展板与读卡天线的实物外观、Type-C 供电与上电状态;
- 配网环节:接入 8266wifi 热点后,服务端与硬件在 broker-cn.emqx.io 上完成主题订阅;
- 识别演示:把白卡或蓝色钥匙扣卡靠近读卡区,观察绿色 LED 与蜂鸣器的提示,同时看清单里的状态由「在柜」变为「出柜」;
- 记录与统计:回到使用记录页确认新增一条带使用人与时间戳的记录,并查看衣柜总览与数据统计页面数值同步变化。
注意:视频文件本身不内嵌进本文档 —— 体积过大且各平台对视频卡片支持不一,请把演示视频作为独立的视频稿件发布,本文只保留封面与观看顺序说明。
五、获取方法
5.1 交付清单
| 交付内容 | 说明 |
|---|---|
| 硬件实物 | 已完成联调的整套装置,含 STM32F103C8T6 扩展板与配套 ID 射频卡 |
| 程序源码 | 硬件端与软件端完整源码 |
| 硬件原理图 | 嘉立创 EDA 源文件及 PDF / SVG 等导出件 |
| 演示视频 | 系统完整运行的屏幕录制与实机演示 |
| 文档资料 | 项目介绍、系统方案与运行说明 |
5.2 获取与支持
获取步骤
- 确认项目编号为 X603141,避免与其他 RFID 类项目混淆;
- 在对应平台的评论区留言或站内私信,说明需要的项目编号 X603141;
- 拿到资料后先按 1.3 节核对运行环境(Keil 5、MySQL、MQTT Broker 与热点名);
- 按 2.2 节的引脚表复核硬件连接,再上电联调,可先只跑读卡与串口打印;
- 遇到环境搭建或程序调试问题,可远程协助排查。
注意:整套系统的外部依赖很轻:一个公共 MQTT Broker 加一个 Wi-Fi 热点即可跑通,无需公网服务器。因此第一次联调建议按「先跑通读卡与串口 → 再接通 Broker → 最后打开小程序」的顺序推进,定位问题会快很多。
5.3 技术支持范围
- 远程协助环境搭建:开发环境、数据库与 Broker 配置;
- 程序调试:硬件端与软件端的联调定位;
- 小规模修改答疑:界面字段、阈值与字典项的增改;
- 硬件问题排查:读卡失败、串口无输出等常见现象;
- 扩展建议:如何增购射频卡或扩展衣物数量。
附录 A:主要数据表字段
用户表 姓名 | 手机号(同时作为登录账户)| 密码 | 更新时间 衣物表 编号 | 颜色 | 分类 | 季节 | 存放位置 | 标签 | 状态(入柜/出柜)| RFID 标签编号 | 图片 | 备注 | 更新时间 使用记录表 编号 | 颜色 | 分类 | 季节 | 存放位置 | 标签 | 状态 | RFID 标签编号 | 使用人 | 备注 | 时间 终端表 终端编号 | 终端名称 | 安装地点 | 终端状态 | 更新时间 字典表 大类 | 大类代码 | 参数项名称 | 参数值 | 备注 | 更新时间 统计视图 衣物名称 | 衣物标签 | 分类 | 使用次数 | 归还次数 | 总计 衣物标签 | 在柜 | 取出 | 总计 衣物类别 | 在柜 | 取出 | 总计
注意:字典表是界面上所有下拉选项的来源 —— 「大类」为颜色时参数项是白 / 红 / 黑 / 橙 / 绿,「大类」为衣物标签时是 T 恤、毛呢大衣、短裙等。新增一个颜色或一类标签只需往字典表加一行,不需要改前端代码。
附录 B:界面实测数据切片
衣物清单(终端 ZDBH01 / 衣柜读卡器) 编号 颜色 分类 季节 存放位置 标签 状态 RFID 备注 毛呢大衣 黑色 外套 冬季 衣柜 2 层 毛呢大衣 入柜 031A7394 日常使用放回 短袖 白色 上衣 春季 衣柜 1 层 T 恤 出柜 55631235 日常使用取出 半身裙 白色 下装 夏季 衣柜 3 层 短裙 入柜 55631234 日常使用放回 牛仔裤 黑色 下装 秋季 衣柜 2 层 牛仔裤 入柜 55631236 日常使用放回 毛呢大衣 橙色 外套 冬季 衣柜挂架 毛呢大衣 入柜 55631238 日常使用放回 衣柜总览:在柜 6 件(66.67%)/取出 3 件(33.33%) 按标签统计 牛仔裤 1/0/1 商务装 1/0/1 T 恤 0/2/2 毛呢大衣 2/0/2 短裙 2/0/2 衬衣 0/1/1 (在柜/取出/总计) 按类别统计 外套 2/0/2 下装 3/0/3 上衣 1/3/4 衣物使用次数统计 衣物名称 衣物标签 分类 使用次数 归还次数 总计 毛呢大衣 毛呢大衣 外套 1 1 2 短袖 T 恤 上衣 0 1 1 半身裙 短裙 下装 2 2 4 牛仔裤 牛仔裤 下装 1 1 2 西服 商务装 上衣 1 1 2 分类操作次数占比:下装 37.5% 外套 25% 上衣 37.5% 使用记录(使用人:王五) 2026-03-29 02:57:57 短袖 出柜 日常使用取出 2026-03-29 02:57:08 毛呢大衣 入柜 日常使用放回 2026-03-29 02:56:52 毛呢大衣 出柜 日常使用取出
注意:最后三条记录连起来看,就是一次完整的演示:先取走毛呢大衣(出柜),再把同一件放回(入柜),随后取走短袖(出柜)—— 三条记录在 65 秒内完成,状态由服务端按卡号自动翻转,使用人与时间戳由系统补齐,不需要在界面上手工选择操作类型。
附录 C:本地部署与联调要点
- 硬件侧:Keil 5 编译烧录固件,按引脚表复核 MFRC522 与 ESP-01S 的连线,特别注意读卡模块走的是 GPIO 模拟时序(SDA→PA7 / SCK→PA6 / MOSI→PA5 / MISO→PA4 / RST→PA1);
- 网络侧:电脑或手机开热点 8266wifi / 123456789,硬件上电后接入并连上 broker-cn.emqx.io;
- 服务端:启动 Spring Boot 应用并确认内置 MQTT 客户端已订阅上报主题,可用 MQTTX 同时订阅两条主题,先验证报文能否往返;
- 移动端:小程序首屏把服务器地址填成运行服务的电脑局域网 IP、端口填服务端口,手机与电脑处于同一局域网即可打开首页;
- 公网部署:需要独立域名、SSL 证书与具备公网 IP 的服务器,并注册微信小程序开发者账号后导入源码,开发与演示阶段以本机运行加局域网直连为主。
项目编号 X603141。本文所述系统已完成实测验证,相关技术问题可在评论区交流。