无人售货机项目中,控制货道电机或锁具是核心环节。芯步的“智能2路交流远程控制终端”可以通过其开放平台的HTTP API,实现远程下发指令控制两路继电器通断。以下是具体集成方案。
智能2路交流远程控制终端集成方案:无人售货机两路设备控制
1. 解决概述
在无人售货机场景中,“智能2路交流远程控制终端”通常用于控制两路独立的220V交流负载,例如:
一路控制货道电磁锁:用户扫码支付后,控制特定货道的门锁打开。
二路控制照明/广告牌:根据环境光线或营业时间,远程控制售货机内部照明或外部广告灯箱的开关。
本方案基于芯步开放平台,使用其提供的 HTTP API 接口,实现对终端设备的远程双向控制。
2. 硬件与接口准备
智能2路交流远程控制终端:接入 220V 交流电,输出端分别连接至售货机的两个被控设备(如锁具电源和照明电源)。
网络环境:该终端内置物联网卡或支持 Wi-Fi 联网,确保设备在线。
开放平台凭证:在芯步控制台获取以下关键信息
{AppID}:应用唯一标识。
{AppSecret}:应用密钥(用于签名计算)。
{Device ID}:智能2路交流远程控制终端的唯一标识(贴于设备外壳)。
3. 集成开发详解:如何下发控制指令
集成核心在于调用 device/control 接口。下文以无人售货机“用户支付成功 -> 打开第一路货道锁(例如连接在1路的锁具)”为场景进行说明。
步骤一:鉴权与签名计算为了防止接口被恶意调用,每次请求需携带签名。规则如下
获取当前时间戳
ts。计算
md5(AppSecret)。计算
sign = md5( md5(AppSecret) + ts )。
步骤二:构造 HTTP 请求将指令下发至目标设备。芯步支持 HTTP 和 MQTT 两种方式,HTTP 更便于快速集成。
请求URL(示例) :
https://api.thingboot.com/{你的AppID}/device/control/?sign={计算出的签名}&ts={当前时间戳}请求方式:POST
请求头
Content-Type: application/json请求 Body (JSON) :
指令参数详解针对本例的智能2路交流远程控制终端,order 字段支持的指令如下
| 功能描述 | 指令参数 (order) | 数值含义 |
|---|---|---|
| 开启第1路 | {"power1": 1} | 1=开,0=关 |
| 开启第2路 | {"power2": 1} | 1=开,0=关 |
| 1路点动 | {"point1":"3000"} | 1路先通后断,3秒后自动复位 |
| 1路互锁/状态保持 | {"power1":{"keep":"1","revert":"3"}} | 用户手动关掉后,3秒自动恢复开启 |
代码示例 (Python 伪代码) :
4. 业务逻辑闭环:异步消息推送
HTTP 请求返回 200 仅代表平台收到了指令,并不代表设备真的执行了动作(设备可能离线或故障)。为确保业务严谨,需要配置消息推送
接收设备状态变更:在芯步控制台配置你的服务器回调 URL。
接收执行结果:当继电器真正吸合或断开时,平台会向你的服务器推送如下数据:
业务处理:你的售货机后台收到推送后,确认该次“开锁”动作已成功,再将订单状态更新为“已出货”。
5. 无人售货机特殊场景
防夹手与点动模式:对于货道门锁,不要直接发送简单的
{"power1":0},而是使用 点动指令{"point1":"2000"}(即接通2秒后自动断开)。这样即使网络延迟或后台系统崩溃,设备也会自动复位,避免线圈长时间通电烧毁,也防止门锁常开。信号稳定性:售货机通常位于室内或角落,若 2G/3G 信号不佳,设备优先选用 4G 或 Wi-Fi 版本,确保设备不在线导致掉单。
本地冗余机制:虽然使用云端 API 是核心,但可设计本地逻辑:如果 5 秒内未收到云端指令,售货机主板应自动切断该路电源,作为一种安全保护机制。
6. 总结
将芯步的智能2路交流远程控制终端集成到无人售货机项目,本质上是 “支付触发 API → API 通过 MQTT/HTTP 下发至设备 → 设备继电器吸合 → 设备状态回传” 的标准 IoT 闭环。
开发者仅需关注应用层(生成签名、调用接口、接收推送),无需关心底层通信协议,可快速实现让传统售货机拥有远程控制和状态监测能力。