一、设计背景与目标
随着无人零售场景普及,传统自动售货机存在功能单一、支付方式局限、货道管理粗放等问题,难以满足用户多样化需求。基于STM32的自动售货机控制系统,通过集成多支付方式、精准货道控制与状态监测,实现智能化运营,适合电子与自动化专业毕设课设,帮助学生掌握嵌入式系统与多模块协同技术,兼具商业应用价值与教学意义。
本设计以STM32F103C8T6为核心,目标明确:支持3层6列共18个货道(适配零食、饮料等小商品),货道电机驱动响应时间<500ms;支持扫码支付(微信/支付宝)、NFC刷卡与硬币支付;2.4英寸TFT屏显示商品信息(名称、价格、库存)与支付状态;具备库存不足报警、支付失败退款功能;实时记录销售数据(每日销量、营收),适配校园、写字楼等小型无人零售场景。
二、系统硬件设计
系统硬件采用模块化架构,核心控制模块以STM32F103为核心,通过GPIO、SPI、UART等接口连接各功能模块,实现数据交互与指令执行。
货道驱动模块:18个货道各配1个步进电机(28BYJ-48),通过ULN2003驱动芯片与STM32连接,单片机输出脉冲信号控制电机转动角度,实现商品精准推出(电机转动1圈对应货道推送1件商品);每个货道加装红外对射传感器,检测商品是否成功掉落,反馈给单片机确认交易完成。
支付模块:包含NFC刷卡模块(RC522,支持Mifare卡)、扫码支付模块(ESP8266 WiFi模块,通过串口与STM32通信,接收支付平台回调信号)、硬币识别模块(CS5166,识别1元硬币,输出电平信号至单片机),多支付方式通过STM32统一调度,确保支付流程顺畅。
显示与交互模块:2.4英寸TFT触摸屏(SPI接口)显示商品列表(3行6列布局,含图片与价格),用户触摸选择商品后,屏上弹出支付方式选项;配备3个物理按键(“取消”“确认”“查询”),用于紧急操作与销售数据查询;屏背光亮度随环境光自动调节(通过BH1750光照传感器采集数据)。
状态监测与报警模块:每个货道红外传感器同时用于库存检测(连续3次未检测到商品则判定库存不足),TFT屏显示“缺货”标识并触发蜂鸣器报警;支付超时(超过30秒)或电机故障时,蜂鸣器长响,同时通过WiFi模块向管理员手机推送故障信息。
电源模块:采用12V/5A开关电源,经DC-DC转换器分别输出5V(供电机、支付模块)与3.3V(供STM32、传感器、显示屏),内置过流、过压保护,确保系统稳定供电。
三、系统软件设计
软件基于Keil MDK开发,采用C语言模块化编程,核心包括主程序、货道控制、支付处理、显示交互、数据管理子程序,主程序完成初始化后进入循环,实时响应用户操作与模块反馈。
货道控制子程序:接收用户选择的货道编号后,STM32向对应步进电机发送驱动指令,同时监测红外传感器信号;若检测到商品掉落,判定交易成功,更新库存数据;未检测到则触发电机重试(最多2次),仍失败则启动退款流程。
支付处理子程序:用户选择支付方式后,对应模块启动:NFC刷卡时,RC522读取卡号并校验余额,余额充足则扣减对应金额;扫码支付时,ESP8266生成商品支付二维码并等待平台回调,收到“支付成功”信号后通知主程序;硬币支付时,CS5166确认硬币金额达标后触发交易。支付失败或超时,子程序自动发起退款(NFC原路退回,扫码通知平台退款)。
显示交互子程序:初始化时加载商品信息(存储于STM32内部Flash),TFT屏以网格形式展示;用户触摸选择商品后,弹出支付界面并倒计时;销售数据查询时,读取存储的每日销量与营收,以图表形式在屏上显示。软件加入触摸防抖处理(连续3次检测到同一触摸坐标才判定有效)。
数据管理子程序:采用FATFS文件系统管理销售数据,每日自动生成销售日志(含时间、商品编号、支付方式);库存数据实时更新并存储,掉电不丢失;支持通过USB接口导出数据至电脑,便于后续分析。软件内置看门狗定时器,程序异常时自动复位,保障系统连续运行。
四、系统测试与优化
系统在模拟无人零售环境测试,初始存在两个问题:一是多货道同时触发时,电机驱动存在信号干扰,导致货道推送延迟(最长1.2秒);二是强光环境下,TFT屏反光严重,触摸识别准确率降至85%。
优化方案:硬件在电机驱动电路中增加LC滤波网络(10mH电感+100μF电容),软件采用时分复用策略,为每个货道分配独立驱动时间片,推送延迟缩短至400ms以内;更换高亮度TFT屏(亮度提升至500cd/m²),软件添加触摸坐标校准功能,强光下识别准确率提升至98%。
优化后测试:货道推送成功率99.5%,支付响应时间<2秒;库存检测准确率100%,故障报警及时;连续72小时运行无死机,销售数据记录完整;扫码、刷卡、硬币支付成功率均达99%。系统成本约300元,功能完善,适合毕设课设制作,可扩展商品过期提醒、远程补货通知功能,提升商业运营效率。
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。