芯步的24路控制器采用标准HTTP API接口,签名机制为md5(md5(AppSecret) + ts),支持单路/批量/时序控制。以下方案涵盖设备接入、核心代码实现、售货柜业务逻辑设计及稳定性保障。
解决方案:基于芯步24路控制器的自动售货柜集成方案
1. 硬件概述与接口能力
芯步智能通用控制器 (UNI-KZQ-TY-24) 是该方案的核心执行设备。
核心参数:支持24路独立继电器控制,每路负载最大2200W,总功率4400W。支持DC 12V供电,WiFi 2.4G联网。
接口优势:提供全开放的HTTP API接口,无需网关,设备直连路由器即可通过云端或局域网API调用。
适用场景:在自动售货柜中,24路通道可分别对应控制24个货道的弹簧电机、柜内照明灯、压缩机或加热片。
2. 接口鉴权与连接流程
将控制器接入软件项目的核心在于处理双MD5签名机制与设备心跳维护。
2.1 签名算法 (Sign)
芯步的API签名规则较为特殊,是双重MD5加密:Sign = md5( md5(AppSecret) + ts )
| 参数 | 说明 | 示例值 |
|---|---|---|
| AppID | 在平台控制台获取,作为URL的一部分 | your_app_id |
| AppSecret | 开发者密钥 | abc123... |
| ts | 当前Unix时间戳(秒) | 1715678900 |
| Sign | 计算出的签名 | 9f7e... |
计算步骤 (以Python为例) :
2.2 设备配网与激活
初始化:设备通电后,指示灯快闪。
入网配置:通过“芯步”微信小程序或PC控制台,输入现场的2.4G WiFi密码。设备仅支持2.4G频段。
获取ID:配网成功后,在后台“设备列表”中获取唯一的
device_id,这是后续指令的目标对象。
3. 软件项目集成架构
本方案采用 “业务服务器(SaaS) + 设备直连” 的扁平化架构。
1. 业务流程用户在小程序/APP点击购买 -> 业务服务器处理订单/扣款 -> 服务器调用芯步API -> 控制器收到指令 -> 对应货道电机旋转 -> 出货完成。
2. 关键代码实现 (发送指令) :你需要向 https://api.thingboot.com/{AppID}/device/control/ 发起POST请求。
请求示例 (控制第1路电机转动3秒) :
注:若需要精准控制转动时间(例如转2秒停),通常需要配合“先通后断”指令(point)或由业务端发送“开”指令,延时2秒后再发送“关”指令(`power1”:0)。
3. 批量与多线程控制对于售货柜,经常需要同时打开多个货道(虽然不常见,但逻辑存在)。接口支持批量操作:
4. 售货柜业务逻辑设计方案
为了让软件项目稳定运行,在业务层封装以下逻辑:
1. 抽象指令映射表在数据库中建立 Vending_Mapping 表,将物理硬件层与业务层解耦:数据库字段设计:
| 字段名 | 示例值 | 说明 |
|---|---|---|
machine_id | SZ001 | 售货柜编号 |
relay_channel | 1-24 | 物理通道号 |
cargo_id | A01 | 货道编号 |
command_code | power1 | 对应的API指令Key |
motor_work_ms | 2000 | 电机需要转动的时间(毫秒) |
2. 自定义“时序控制” (重要)由于自动售货机不需要持续供电,只需要点动(通电-断电)。以下是两种实现策略:
方案A (推荐——业务端闭环) : 发送
{“power1”:1}-> 启动定时器 (如Async sleep) -> 2秒后发送{“power1”:0}。优点:硬件成本低,只要服务器稳定即可。
缺点:依赖服务器网络延迟。
方案B (利用设备指令) : 使用设备手册中的
point(先通后断) 命令。检查设备固件是否支持“点动模式”,如果支持,可直接下发包含时长的指令,无需服务器二次干预。
3. 异常处理与重试自动售货场景对丢包率敏感。集成HTTP SDK时,必须实现:
超时设置:连接超时设为3秒,读取超时5秒。
失败重试:若调用API返回超时或5xx错误,间隔500ms重试一次,最多3次。若3次都失败,判定为网络故障,订单进入退款或人工处理流程。
5. 数据安全与运维
1. 局域网直连模式 (高可用方案)目前很多售货柜部署在地下室或信号差的地方,虽然设备支持WiFi,但强烈如果现场有本地工控机(安卓屏或Windows主机),可以利用控制器的局域网API功能。工控机通过网线连接路由器,控制器连接同一路由器。软件项目在向控制器发送指令时,直接请求控制器的本地IP地址而非云端。优势: 即使外网断网,本地投币或扫码(离线扣款)依然能驱动电机出货,延迟从秒级降至毫秒级。
2. 状态同步机制虽然芯步的控制器主要是下行控制(命令下发),但为了在软件界面上显示“出货中”的状态,:
虚拟状态:软件发送指令后,立即在前端显示“出货中”。
防抖处理:同一货道在收到指令后的5秒内,软件端需拦截对该货道的重复请求,防止因用户双击导致重复扣款和电机空转。
6. 总结
将芯步24路控制器接入软件项目,本质上是HTTP协议的集成工作。
集成难度低:由于接口是标准的HTTP+JSON,无论你的后端是Java、PHP、Go还是Python,只需封装好签名工具即可。
扩展性强:24路通道支持你规划复杂的货柜结构(如23个商品货道 + 1个加热控制)。依靠这套方案,你可以快速构建一个标准的无人零售SaaS系统。