STM32智能行李箱控制系统

称重防超重+GPS防丢+指纹开锁+自动跟随式电机驱动,一篇讲完选型接线到APP联调

STM32智能行李箱控制系统:称重防超重、GPS防丢、指纹开锁、超声波防撞、蓝牙WiFi双模远程控制------从选型到联调全流程

一、痛点开场:你的行李箱还只是个"箱子"吗?

机场值机排队才发现超重、转盘上箱子被拿错、暗处找不到自己的行李、托运过程中箱子被磕碰......这些旅行糟心事,本质都是行李箱没有感知能力 。这篇要做的智能行李箱控制系统,就是把一个普通箱子武装起来:能称重报警、能测湿度防潮、光线暗自动亮灯、超声波防碰撞、GPS 实时定位防丢、指纹解锁防盗、蓝牙+WiFi 双模远程控制

系统以 STM32F103C8T6 为核心,全套模块都是淘宝能买到的常见型号,跟着本文从器件选型、硬件接线、软件流程到 APP 联调一次走通。

二、功能拆解:行李箱要管哪些事

功能 实现方式 解决什么痛点
重量监测 压力传感器 + HX711 24位ADC 接近/超过限重及时报警,机场值机不尴尬
湿度监测 湿度传感器实时采集 箱内受潮发霉预警
光照感应 光敏电阻检测 环境光不足自动点亮 LED,黑暗中一眼找到箱子
超声波测距 HC-SR04 与障碍物距离小于安全阈值触发蜂鸣器,防碰撞
GPS 定位 ATGM336H 模块 机场/车站实时定位,防丢失防误拿
指纹开锁 AS608 指纹模块 + 继电器模拟锁 只有授权指纹能开锁,防盗
数据展示 OLED12864 实时显示重量/湿度/光照/距离/经纬度
参数设定 按键 灵活设置各阈值,适应不同场景
蓝牙通信 JDY-31 APP 近距离控制与数据查看
WiFi 通信 ESP8266-01S 位置数据上云,远程持续追踪
运动控制 L298N + 直流电机 APP 遥控前进/后退/左右转

三、器件选型:每组双方案,为什么选它

论文对每个模块都做了双方案对比,浓缩成一张选型表:

模块 选定型号 落选方案 选定理由
主控 STM32F103C8T6 NXP LPC1768 Cortex-M3 @72MHz 够用、低功耗适合电池供电、生态资料最全
光敏 GL5528 光敏电阻模块 TSL2561 成本敏感场景性价比高、接口简单,精度够阈值控制用
GPS ATGM336H NEO-6M 高灵敏度、冷启动快、功耗低,弱信号表现稳定且便宜
称重 HX711 模块 FSR402 力敏电阻 24位分辨率、噪声抑制好、DT/SCK 两线接口,精度与成本平衡
指纹 AS608 FPM10A 最多存 1500 模板、UART 接口好集成、资料齐全性价比高
湿度 YL-69(论文选型) AM2120 便宜够用;工程实现建议换 DHT11 更贴合箱内空气湿度场景(见避坑)
测距 HC-SR04 Grove Ultrasonic Ranger 2cm~400cm 覆盖防撞需求、四线接口、教程海量
显示 OLED12864 ST7735 TFT 高对比广视角、自发光低功耗,适合电池供电设备
蓝牙 JDY-31 NRF24L01 蓝牙4.0、1Mbps、10~20m,手机直连免网关,功耗低
电机驱动 L298N DRV8825 双通道全桥、12V 供电直驱两路电机,经典方案资料多
WiFi ESP8266-01S nRF905 可直接联网上云、生态成熟;nRF905 只能点对点无法上网

成本参考(淘宝常见价,非论文数据):主控 10 元级、GL5528 2 元、ATGM336H 25 元、HX711+传感器 10 元、AS608 25 元、DHT11 3 元、HC-SR04 3 元、OLED 8 元、JDY-31 8 元、L298N 6 元、ESP8266-01S 8 元------核心电子件 150 元内可拿下。

四、硬件接线与引脚分配(以论文附录代码注释为准)

核心接线表(引脚来自论文主程序代码注释,最可靠):

模块 引脚 接 STM32
HX711 称重 DT / SCK PA0 / PA1
GPS ATGM336H TX/RX USART3(PB11 附近)
光敏 GL5528 AO ADC1 输入(PB1)
蜂鸣器 控制脚 PB9(三极管驱动,低电平响)
LED 控制脚 PA11(自动照明灯)
HC-SR04 Trig / Echo 定时器2 输入捕获(PC13/PC14)
按键组 4 个独立按键 PB12 / PB13 / PB14 / PB15
DHT11(湿度实测) DATA PC15(单总线)
继电器(模拟锁) IN PA4
L298N IN1~IN4 / ENA ENB GPIO + PWM
OLED SDA / SCL I2C 总线
JDY-31 蓝牙 TXD/RXD USART1(9600)
ESP8266-01S TXD/RXD USART2(115200,3.3V 独立供电)

L298N 电机运动控制真值表(论文原文逻辑,写驱动直接抄):

动作 IN1 IN2 IN3 IN4
前进 1 0 1 0
后退 0 1 0 1
左转 1 0 0 1
右转 0 1 1 0
停止 0 0 0 0

原理:L298N 双通道,IN1/IN2 控制左电机、IN3/IN4 控制右电机。左转 = 左电机正转 + 右电机反转,实现原地转向。

五、软件设计:八大子程序怎么实现

开发环境 Keil MDK + ST-Link。主程序初始化顺序:中断分组 → 延时 → 定时器 → USART1(9600) → 按键 → HX711 → 去皮 → LED → GPS(USART3) → ADC(光敏) → 超声定时器 → 继电器 → 蜂鸣器 → DHT11 → OLED → ESP8266/MQTT 初始化,然后进入 OLED_Display_Cotrol() 主循环。

5.1 称重:HX711 24 位读取 + 去皮校准

复制代码
初始化:SCK 推挽输出、DOUT 浮空输入
读取24位:DOUT 拉高 → SCK 拉低 → 循环翻转 SCK 逐位读
数据处理:结果异或 0x800000 还原符号位
去皮:上电 Get_Maopi() 记空秤值
净重 = 当前值 - 皮重;净重 > 0 时 ÷ 校准系数 = 实际重量

关键点:HX711 必须先读一次空秤去皮,否则每次称重都带一个固定偏置;校准系数需要拿标准砝码标定一次。

5.2 GPS:NMEA 解析 + Haversine 距离

ATGM336H 输出标准 NMEA 语句,论文用了串口中断收包:中断里校验包头、收到完整包标记就绪,主程序解析经纬度字段。坐标换算距离用 Haversine 公式(球面距离),解析失败进错误处理循环并打印错误信息。

5.3 指纹识别:添加 / 删除 / 验证三段流程

论文把 AS608 流程写得非常工程化,添加指纹要按两次(两次采集生成模板再入库,防止一次误按录入残缺指纹):

复制代码
添加流程:提示按手指 → 采集图像生成特征1 → 成功
          → 再次按手指 → 生成特征2 → 成功
          → 合成模板并入库 → 打印指纹 ID
验证流程:按手指 → 采集特征 → 比对 → 成功打印 ID(Unlocked)
          → 失败提示(Unlocking failure)+ 触发报警
          → 重试上限 15 次,超时提示

指纹模块串口波特率 57600,主串口 115200,注意区分。

5.4 超声波测距:定时器测 Echo 高电平时间

复制代码
Trig 拉高 10µs 触发发射
Echo 变高开始计时,回到低电平停止
距离(cm) = 高电平时间(µs) × 0.034 / 2

用定时器输入捕获测脉宽比 delay 轮询精确得多,距离低于阈值就触发蜂鸣器防撞报警。

5.5 湿度与光敏:ADC 多次采样取平均

两路模拟量统一套路:初始化 ADC → 软件触发转换 → 等 EOC → 连采多次取平均(间隔延时),再按"电压 = ADC×参考/4096"换算成湿度百分比 / 光强值。平均值滤波对这种缓变环境量非常有效。

5.6 OLED 显示:SSD1306 标准初始化序列

配置 I2C → 发送初始化命令(关显示 0xAE → 内存寻址模式 0x20/0x10 → 对比度/扫描方向/显示时钟 → 开显示 0xAF)→ 定位坐标 → 填充字符/汉字/位图。显示界面分多页,按键切换:湿度页 / 重量页 / 光照页 / 距离页 / GPS 经纬度页 / 阈值设置页。

5.7 蓝牙 JDY-31:USART1 透传命令

JDY-31 就是串口蓝牙透传:单片机 USART1(9600) 收发,APP 连上蓝牙后双向传字符串。协议自行约定 :上行发 DATA:xx,xx,... 上报状态,下行收 LOCK(开锁)/LIGHT_ON(开灯)/FWD/BACK/LEFT/RIGHT(运动控制)等指令,收到后转成对应动作。

5.8 WiFi ESP8266 + MQTT:位置上云

复制代码
初始化:复位引脚拉低 500ms → 等待 "ready"
AT+CWMODE=1        → STA 模式
AT+CWJAP="SSID","密码" → 连 WiFi,等 "OK"
AT+CIPMUX=0        → 单连接
AT+CIPSTART="TCP",服务器IP,端口 → 等 "CONNECT"
AT+CIPSEND         → 进入透传

连接 MQTT 服务器后走心跳保活,定期 send_data() 上报 GPS 位置,断线自动重连,供 APP 端远程查看箱子位置。

六、APP 联调:热点 + 蓝牙 + 后台一次配通

论文调试记录里给了完整联调参数,照抄可复现:

  1. 手机开热点:名称 yxrq9999,密码 yxrq666888,ESP8266 连上该热点;
  2. 打开 APP 连蓝牙:设备名 JDY-31,点击连接;
  3. 登录后台:管理员 admin / 密码 123456
  4. 主界面实时显示湿度、光强、重量、经纬度;调阈值后 APP 数据同步更新;
  5. 点"开锁/开灯"按钮远程控制;点"前进/后退/左转/右转"行李箱电机立即执行对应动作。

七、调试要点与结论

论文从硬件、软件、系统三层调试:先逐模块验电验证(传感器读数、通信模块收发),再用 Keil 断点 + Watch 窗口盯寄存器,最后整体联调按键阈值设置、指纹添加/删除/开锁、阈值自动报警(光强低于阈值自动开灯 + 报警;距离低于阈值蜂鸣器;重量/湿度超限报警)。系统各项功能均验证通过,稳定性满足设计要求。

八、避坑清单(做实物前必看)

  1. 湿度传感器选型打架 :论文选型章写 YL-69(土壤湿度探头),但主程序实际用 DHT11 测箱内空气湿度(PC15)------做实物建议用 DHT11,YL-69 的金属探针测空气意义不大;
  2. PA4 引脚冲突 :论文硬件章说 PA4 是 ESP8266 复位脚,代码注释却是继电器 Relay_init() //PA4------以代码为准,ESP8266 复位另找一个空闲 GPIO;
  3. L298N 供电 :电机电源 12V 与逻辑 5V 建议分开,且共地,否则电机一转主控就复位;
  4. GPS 天线:ATGM336H 一定要外接有源天线并放在箱子外侧/顶部,塞在金属框架里定位会漂到怀疑人生;
  5. AS608 指纹采集:手指湿润/有油污识别率骤降,录模板时建议每个手指录 2~3 次不同角度。

九、总结

这套智能行李箱 = STM32F103C8T6 + 称重(HX711) + 湿度(DHT11) + 光敏(GL5528) + 超声波(HC-SR04) + GPS(ATGM336H) + 指纹(AS608) + OLED + 蓝牙(JDY-31) + WiFi(ESP8266) + 电机驱动(L298N),一个典型的"传感器 + 执行器 + 双模通信"嵌入式综合体。

它的价值在于把**安全(指纹/防丢/防撞)与便利(称重/照明/遥控)**合到一个箱子里,而每一个子模块单独拎出来,又都是可以复用的驱动例程------称重+蓝牙可以变成智能药盒,GPS+WiFi 可以变成老人防走失定位器。先跑通"传感器→OLED→阈值报警"闭环,再叠加通信和运动控制,你就能拥有一个能跑能叫能定位的行李箱。

六、资料内容完整工程资料(原理图、PCB、代码、元件清单)

七、资料获取方式

相关推荐
Rocktech_ruixun1 小时前
机器人视觉SLAM对主控硬件有哪些要求?瑞迅科技RK3588/3576/3568分级方案解析
人工智能·嵌入式硬件·机器人
Brilliantwxx1 小时前
【STM32】GPIO :寄存器原理、点灯实战与输出特性全解
stm32·单片机·嵌入式硬件
西城微科方案开发1 小时前
充气泵方案开发
单片机·嵌入式硬件
jianqiang.xue1 小时前
审查技能库(中):硬件与系统安全
stm32·单片机·物联网·架构·esp32
内核笔记2 小时前
内核调用栈调试
linux·单片机·bsp
zcmodeltech2 小时前
工程车模型多车型动作控制系统设计与实现方案——基于STM32与Modbus RTU的挖掘机、装载机、自卸车、起重机、电力工程车全场景控制方案,服务范围覆盖全国
分布式·stm32·单片机·嵌入式硬件·交互
Zhang.Yi2 小时前
STM32-I2C
stm32·单片机·嵌入式硬件
LCG元2 小时前
STM32L431 低功耗实战:STOP2 模式 + LPUART 唤醒 + 实测电流对比
stm32·单片机·嵌入式硬件
国科安芯3 小时前
空间数据总线的新范式:ASM1042S2S型抗辐射CANFD收发器在低轨遥感卫星星座中的应用研究
网络·嵌入式硬件·架构·canfd·数据总线·星载数据处理