芯步的开放接口基于标准HTTP协议,这意味着你可以用任何编程语言(Java、Python、PHP、Node.js等)在3-5行核心代码内完成空开的远程通断电控制。下面是一份详细的接入方案。
1. 项目概述与业务价值
在现代无人零售场景中,自动贩卖机常面临缺货、故障死机、能耗浪费等问题。传统的运维方式需要人工前往现场进行断电重启或检修,成本高且效率低。
通过引入芯步50A远程智能空开,并结合其开放的 HTTP API接口 ,我们可以将贩卖机的物理电源开关能力无缝集成到现有的软件系统中(如SaaS后台、运维APP、小程序)。本方案的目标是实现以下转型:
从“人工现场处置”到“远程一键运维” :遇到设备死机,运营人员无需出车,在电脑后台点击“重启”即可完成。
从“被动报修”到“主动巡检” :软件系统可定时自动巡检,或结合营收数据,在缺货或低峰期自动切断电源,节省电费并延长设备寿命。
载流能力:50A规格适用于绝大多数商用冰柜、饮料机及成人用品自动售货机。
2. 硬件与接口特性
2.1 硬件简介
本次方案的核心设备为芯步50A智能大功率断路器(智能空开)。不同于家用10A插座,该设备具备工业级载流能力,支持磁保持继电器技术。
磁保持特性:该技术在切换状态(通/断)时仅需极短脉冲电流,平时不耗电。即使设备断电或断网,空开依然保持当前状态(不会自动恢复供电,这对维修安全很重要)。
计量功能:具备高精度电量计量(电压、电流、功率),可辅助判断设备压缩机状态。
2.2 软件接口特性
芯步平台提供标准的 HTTP 协议接口,这意味着:
无SDK绑定:无论你的后台是Java、Python、PHP还是Node.js,只要支持HTTP请求即可接入。
支持私有化部署:如果数据安全要求高,可将API服务部署在内网。
实时性:命令下发响应通常在 100ms 左右。
3. 接口接入设计
为了确保高并发下的稳定性及异步命令的确认,采用 “请求-响应 + 异步消息推送” 的双通道架构。
业务服务器:现有的贩卖机运营后台。
芯步云平台:作为连接层,处理设备连接状态。
交互流程
业务服务器调用API:发送
{"power":0}指令关闭空开。平台返回ACK:平台确认收到指令(不代表空开已动作,只是指令格式正确)。
设备执行回调:空开执行动作后,通过MQTT/HTTP回调通知业务服务器“执行成功”或“超时”。
4. 详细开发步骤
4.1 准备工作
将50A智能空开安装到位,插入4G卡或连接WiFi,确保设备在芯步控制台状态为 【在线】。
在芯步开放平台创建应用,获取专属的
AppID和AppSecret。
4.2 第一步:获取设备ID
在开始编码前,需要先确定要控制的目标设备。
物理查找:扫描空开机身上的二维码或在控制台设备列表中找到 Device ID(通常是一串数字)。
API查询:也可以调用平台提供的设备列表接口,拉取所有设备信息。
4.3 第二步:生成签名与请求URL
芯步的API严格要求身份验证。URL结构如下:https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
ts(时间戳):Unix时间戳秒数,用于防止重放攻击。
sign(签名):需将
AppSecret+ts进行MD5或平台指定的Hash运算。示例逻辑伪代码:
sign = md5(AppSecret + ts)
4.3 第三步:下发“断电/通电”指令
这是最核心的代码逻辑。我们需要构造一个JSON对象,调用POST方法发送。
第一种场景:远程重启贩卖机(先断后通)这是解决死机最常用的功能。为避免立即上电对压缩机造成冲击,加入延时参数。
接口地址
https://api.thingboot.com/你的AppID/device/control/Header
Content-Type: application/jsonBody 请求参数
第二种场景:紧急闭店或清货断电如果只需要单纯的切断电源(如仓库机器或夜间待机),使用线路控制。
Body 请求参数
4.4 第四步:接收异步回调与状态同步
由于网络波动,API返回“200”只代表指令下发成功,不代表空开真的跳闸了。为了确保软件界面(如“当前状态:断电”)准确无误,需要设置消息推送。
配置回调URL:在芯步控制台设置你的服务器地址
https://你的域名/api/device/callback。接收数据:当空开物理状态改变或被手动按下时,芯步平台会主动推送数据到该地址。
代码解析示例:你的服务器需接收POST数据,解析其中的
power字段,并更新数据库中的设备状态。
5. 高级业务场景联动
将通断电能力与业务数据结合,才能真正发挥价值。以下提供3个可直接复用的软件逻辑思路。
5.1 死机自动修复逻辑通常在凌晨2:00-4:00,如果后台发现贩卖机网络离线超过30分钟(大概率死机),且该位置当天有营收记录。
步骤
调用“线路断开”命令(
power:0)。等待 10 秒。
调用“线路闭合”命令(
power:1)。等待 5 分钟,检测网络是否恢复上线。
5.2 缺货/补货联动与贩卖机的主控板数据对接。
场景:后台监测到饮料A/B/C货道均售空。
动作:自动下发断电命令,并在APP推送消息:“贩卖机A已清空售罄,系统已自动断电,请补货员前往。”
补充:补货员补货完毕,只需在APP点击“上架”,软件自动发起点位复位(
point:1000)进行短暂供电测试。
5.3 能耗监测与运营利用空开的计量接口(metering)。
每小时读取一次电流值。
判定规则:如果电流值持续为 0A 但状态是“通电”,判定为“电源故障”;如果电流值持续过高,判定为“设备过载预警”。
6. 常见异常处理与维护
6.1 接口调用错误码
在集成过程中,可能会遇到以下常见错误,开发时需特别注意:
| 错误码 | 含义 | 处理方案 |
|---|---|---|
| 501 | 未指定设备ID | 检查请求参数中的 device 字段是否为空。 |
| 502 | 设备不存在 | 检查 Device ID 是否复制正确,或设备是否已被删除。 |
| 504 | 部分设备不可用 | 此次请求涉及多个设备,但其中一部分无权限或离线。 |
6.2 设备离线处理
现象:调用接口返回成功,但空开没反应。
排查:几乎100%是设备网络问题(4G信号弱、WiFi断了)。
软件对策:在管理界面增加“最后在线时间”字段。若设备离线,界面上应禁用“断电/通电”按钮,防止给运维人员造成误操作或误判。
6.3 安全规范(重要)
上电保护:代码逻辑中应默认所有合闸命令均需二次确认。切勿在检修模式中直接远程合闸,防止伤人。
唯一链路标识:在进行有资金风险的维护时,可在
order中携带extra字段(如“extra”:“order_123456”)。回调消息会原样返回,便于核对操作日志。
7. 总结
通过上述方案,可以将芯步的50A智能空开快速从“硬件设备”转变为“软件可编程资源”。
开发者核心路径回顾:
看文档 -> 拿到
AppID和DeviceID。写代码 -> 构造
{“power”:“0”}发送给 API。做监听 -> 接收回调,更新数据库状态。
此方案不仅适用于自动贩卖机,同样适用于无人货柜、充电桩、广告机等任何需要远程断电重启的大功率设备场景。