CATALOG

无人售货机在落地过程中常面临一个现实问题:主控板与货道之间的布线随货道增加而变得杂乱,维护成本高,扩展也不灵活。这篇方案从硬件选型、接口调用到底层协议设计,展示如何用芯步的智能控制器实现主机与分体的分离控制。

1 背景与概述

在无人零售快速发展的今天,传统无人售货机的控制系统面临诸多挑战。传统一体式控制架构将所有I/O接口集中在单一主控板上,导致当货道数量增加时机柜内布线杂乱无章,不仅增加了生产和维护成本,还限制了设备的灵活扩展能力。一个典型的场景是:运营方希望在原有饮料机旁增加一个零食格子柜,但受限于主控板接口不足,往往需要更换整个控制系统,造成资源浪费。

本方案基于芯步的智能硬件开放接口,提出一种主机分体式扩展控制架构,将售货机的核心逻辑处理(主机)与货道执行控制(分体)解耦。主机负责支付交互、用户界面和业务逻辑,而分布在各个柜体中的智能控制器作为分体单元,通过RS485总线或Wi-Fi网络接收指令并独立控制货道电磁锁或电机。这种设计不仅使整机布线更加简洁,还允许运营方根据场地需求灵活增减货柜数量,同时支持通过云端对每个分体单元进行远程监控和故障诊断

2 系统设计

2.1 总体拓扑结构

本方案采用树形分层架构,自上而下分为云管理层、主机控制层和分体执行层。云管理层负责设备统一管理、数据分析和远程运维;主机控制层以工控机或高性能MCU为核心,运行主控程序并集成触摸屏、支付模块;分体执行层则由部署在各个货柜中的芯步智能控制器(如4路或8路直流电压版)构成,直接驱动电磁锁或出货电机。各层之间通过标准协议通信:主机与云端采用MQTT或HTTP,主机与分体之间则根据现场条件选择RS485有线通信或Wi-Fi无线通信。这种分层设计使得各模块功能单一、职责清晰,单个分体单元的故障不会扩散至整个系统,且支持热插拔式的动态扩展。

2.2 硬件选型与配置

在分体执行层,硬件选用芯步智能控制器系列。根据货道数量的不同,可选择4路直流电压版(型号:UNI-xxx-4CH)或8路直流电压版(型号:UNI-xxx-8CH),前者体积更小(95x90x35mm),适合紧凑型格子柜;后者提供更多控制路数(125x90x40mm),适合大型售货机。两类控制器均支持AC 85-265V宽压供电,每路继电器触点容量高达10A,可直接驱动直流电磁锁或220V交流电机,无需额外中间继电器。控制器内置2.4GHz Wi-Fi模块,默认工作于AP+STA模式,既能接入本地局域网与主机通信,也支持通过芯步开放平台进行远程直连。对于部署在地下室或信号屏蔽较强的场景,选择外置天线版本以增强信号接收能力

主机层推荐采用具备Linux系统的工业级边缘网关(如树莓派或RK3568核心板),其优势在于可直接运行Python或Node.js环境,便于快速集成芯步的HTTP API调用逻辑。主机需配备至少2个RS485接口(用于有线分体扩展)和1个Wi-Fi/以太网口(用于云端通信)。当采用有线方案时,需要在总线上加装120Ω终端电阻以消除信号反射,确保长距离通信稳定性。

3 分体式控制集成方案

3.1 基于RS485总线的有线扩展方案

RS485总线方案适用于多柜体堆叠场景,具有抗干扰能力强、通信距离远(可达1000米)的优势。在该方案中,主机的RS485接口作为Modbus主站,每台芯步智能控制器通过外接RS485转TTL模块配置为从站,并分配唯一的设备地址(1-32)。虽然芯步官方控制器原生支持Wi-Fi,但通过其软网关模式可以将其转换为有线通信:首先在主机上安装芯步软网关软件,控制器进入网关工作模式后会自动连接软网关并报告自身ID,主机通过调用软网关提供的本地HTTP接口(http://主机IP/control)即可实现对特定地址控制器的指令下发。这种方式既保留了原有控制器的接口兼容性,又将通信载体从Wi-Fi切换为RS485,兼顾了稳定性与易用性。

具体的物理连接上,只需将控制器的TTL串口引脚(TX/RX/GND)与RS485模块连接,再将所有模块挂载到总线上。控制柜门电磁锁时,主机发送Modbus指令,例如控制地址为01的控制器第一路继电器吸合(开门),指令帧为01 05 00 00 FF 00 8C 3A。为确保出货可靠性,在程序中加入先通后断逻辑:即先闭合继电器1000ms后自动断开,防止电磁锁长时间通电烧毁线圈

3.2 基于Wi-Fi的无线扩展方案

对于需要快速部署或避免布线的场景(如临时增设的户外展销柜),Wi-Fi方案更具灵活性。每台芯步控制器在配网后,会直接连接至本地无线路由器并获得独立IP地址。主机通过网络扫描发现这些设备,或通过芯步云端API获取设备列表

在此方案中,主机调用芯步标准的HTTP接口向指定控制器下发指令。请求地址为:http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts},POST方式发送JSON格式的order参数。例如,关闭8路控制器中的第2路,order字段为{"power2":"0"};批量控制第1、3、5路开启,则使用{"batch":{"relay":[1,3,5],"power":1}}。需要注意的是,由于Wi-Fi通信存在微小的丢包率,必须在应用中实现指令重试机制:若主机未在3秒内收到控制器的异步执行结果推送,应重新发送指令最多3次。同时,为避免同一路由器下设备过多导致拥塞,单个AP接入的控制器数量不超过20台。

4 软件对接与指令控制

4.1 开放接口调用流程

芯步的开放接口设计遵循RESTful风格,调用核心在于签名计算和设备ID管理。首先,开发者在芯步控制台获取AppIDAppSecret,调用接口时需计算签名sign = md5(AppID + AppSecret + ts),其中ts为Unix时间戳,用于防止重放攻击。为了简化开发测试流程,平台提供了调试模式:在开发设置中开启后,系统暂时不校验签名和时间戳,允许开发者使用Postman等工具直接验证接口逻辑

在实际编码中,将接口调用封装成独立的Python函数库。函数control_device(device_id, power_action)接收设备ID(如“12345678”)和动作指令(如{"power1":"1"}),内部构造请求头和请求体并发送POST请求。返回结果中,code为200仅代表指令已送达平台,如需确认设备实际执行成功,必须订阅设备上报的异步消息。这可以通过在order中增加extra字段来实现,例如{"power1":"1","extra":"order_1001"},当设备执行完成后,平台推送的消息中包含相同的extra值,主机据此更新订单状态。

4.2 主机业务逻辑实现

主机程序采用状态机模型管理售货流程。系统启动后,主机周期性扫描各分体控制器的在线状态(通过心跳包或API查询),并缓存各货道的库存数据。当用户扫码选择货道(例如格子柜A-03)并完成支付后,主机首先在本地库存表中扣减对应商品,随后调用上述control_device函数向管理该格子柜的智能控制器下发开门指令,指令格式为{"power3":"1"}。为确保电磁锁可靠动作,主机应连续发送两次指令(间隔200ms),因为首次指令可能因控制器Wi-Fi唤醒延迟而丢失

出货后,主机需要等待出货检测传感器的反馈。由于芯步控制器支持开关量输入接口,用户取走商品关闭柜门时,门磁开关会触发控制器的输入通道。控制器将此状态变化主动推送给主机(通过MQTT或HTTP回调),主机接收到信号后,标记订单完成并记录日志。如果15秒内未检测到柜门关闭信号,主机会再次发送关门指令并触发语音提示。

5 应用场景与优势分析

第一种场景:模块化自动售货机组合运营商可以在一个主柜旁边灵活添加不同功能的副柜,例如零食柜、饮料柜甚至生鲜柜。每个副柜内置一个芯步8路控制器,通过RS485总线与主柜主机相连。当市场需求变化需要更换副柜时,运维人员只需拔掉旧的RS485插头,插入新柜体并扫码录入设备ID,主机即可自动识别新柜体的货道数量并更新界面,真正做到即插即用

第二种场景:异型或大容量售货柜对于售卖米面、盒饭等大体积商品的货柜,传统弹簧旋转式出货机构常因卡滞导致故障。采用分体式控制后,每个货道独立配置一个4路控制器,专门驱动一个大型推板电机。由于控制器支持1000W每路的负载能力,可以直接驱动大功率减速电机。当某个货道出货失败时,主机会精准定位到该控制器并记录故障日志,运维人员到场后可直接更换单个控制器模块,无需拆卸整机电路。

第三种场景:半户外或临时售货点针对景区、夜市等临时性售卖场景,Wi-Fi无线方案的优势凸显。商家只需将带有智能控制器的售货柜推至现场,接通电源,主机即可通过4G路由器连接云端并自动发现所有控制器。无需布线施工,大大缩短了开业准备时间。活动结束后,设备可快速转移至下一场地。

核心优势总结

  1. 布线简化:将几十甚至上百路的复杂线束减少为2根RS485信号线或直接取消信号线,机柜内整洁度提升80%以上

  2. 高扩展性:单台主机理论上可寻址256个分体控制器,支持超过2000个货道,远超传统方案的32路I/O限制。

  3. 维护便捷:系统可精准定位到故障控制器,支持热插拔更换,单个模块更换成本低至百元级,无需专业技术人员。

  4. 独立运行能力:在云端网络断开时,主机仍可通过本地局域网或RS485总线直接控制分体单元,保障基本售货功能不受影响。

  5. 开放生态:芯步的接口标准化程度高,不仅支持HTTP和MQTT,还提供软网关方式进行纯本地化部署,适合对数据安全要求严格的金融、政务场景

控制器产品方案:
无人售货机两路设备控制:如何把智能2路交流远程控制模块集成到软件项目中
查看 >>
剧本杀密室包间场景:怎样把HTTP接口包间控制器接入到自己的项目中
查看 >>
共享自习室包间管理:怎么将8路包间灯光空调控制器接入到软件项目中
查看 >>
如何接入8路包间综合管理控制器以实现包间消费时长电源联动
查看 >>
共享自习室独立包间控制:怎样把共享空间智能控制器对接到软件项目中
查看 >>
无人售货机场景方案:
无人售货机多回路设备控制:如何将16路分体远程场景联动箱集成到软件项目中
查看 >>
无人售货机电路控制:如何把20A 智能断路器对接到软件项目中
查看 >>
怎样在无人售货机灯光控制中集成智能设备以实现远程控制8路照明设备通断
查看 >>
怎样在无人售货机控制中集成智能硬件以实现8路设备电源状态监测
查看 >>
无人售货机电源控制:如何将16A86型物联网智能插座对接到软件项目中
查看 >>
分体式用途方案:
怎样在运动场馆多路设备控制中接入智能设备来实现主机分体式扩展控制
查看 >>
怎样在无人售货机控制中集成智能硬件以实现主机分体式扩展控制
查看 >>
怎样对接24 路智能分体远程集中控制模块来实现主机分体式扩展控制
查看 >>
如何在餐饮后厨设备控制中接入智能硬件来实现主机分体式扩展控制
查看 >>
如何在弱电间设备管理中对接智能硬件来实现主机分体式扩展控制
查看 >>