这是一个面向开发者和系统集成商的技术解决方案。我们将芯步的8路通用控制器视为售货柜的“四肢执行机构”,负责控制电磁锁和马达,而你的业务服务器则充当“大脑”。
通过以下四步,你可以将设备无缝集成到现有项目中。
第一步:硬件选型与连接
在该方案中,售货柜的格子门或弹簧货道通常通过电磁锁或直流电机控制。针对此场景,应选择 “智能通用控制器 | 8路直流版本” 。
接口匹配:控制器提供8路继电器输出接口。将售货柜每个货道的电磁锁正负极分别连接到控制器对应通道的 COM 和 NO 端口。
供电设计:控制器需接入 DC 12V/1.5A 电源。请注意,电磁锁通常需要独立的 DC 12V/24V 大电流电源,切勿与控制器混用,以免电流不足导致重启。
天线安装:控制器自带2.4G WiFi天线,安装时尽量确保天线远离金属遮挡物。
第二步:环境准备与设备注册
在编写代码前,需在芯步云平台创建设备实例并获取密钥。
注册与登录:访问芯步官网并注册账号。
获取凭证:登录后进入“工作台” -> “物联网控制台”,在“开发设置”中获取 AppID 和 AppSecret。这是后续API请求的唯一身份标识。
设备配网:给控制器通电,在控制台中选择“添加设备”,输入设备上的ID号,将设备连接到本地2.4GHz WiFi网络。设备上线后,可以在控制台看到设备状态为“在线”。
第三步:接口集成与鉴权
该控制器开放了标准的 HTTP API,可通过任意编程语言(Java/Python/PHP/Go)调用。核心在于动态生成 Sign 签名。
1. 签名生成规则
为了防止接口被恶意篡改,每次请求必须携带动态签名。签名生成逻辑如下:
ts 为Unix时间戳(秒)。
2. 核心请求示例
以控制 1号货道开门 为例,API请求细节如下:
URL:
https://api.thingboot.com/{你的AppID}/device/control/?sign={计算后的Sign}&ts={当前时间戳}Method:
POSTHeader:
Content-Type: application/jsonBody (JSON):
返回结果: 服务器返回 {“code”: 200} 即代表指令下发成功,设备将立即执行动作。
第四步:业务逻辑编排与指令映射
在售货业务中,你不会直接发送“power1=1”,而是需要将其封装为业务动作。
第一种场景:格子柜开门
用户购买第3格商品,支付成功后,业务服务器应发送{“power3”: 1}。为了确保电磁锁能及时复位(防止柜门弹开后立即吸回),可以在指令中增加延时复位逻辑:
高级指令(先通后断)
{“point”: {“relay”: [3], “interval”: 500}}。此指令使第3路接通 500毫秒 后自动断开,给予电磁锁足够的弹开时间。
第二种场景:蛇形货道/弹簧货道出货
某些售货机使用电机旋转出货,需要控制电机转动特定时间。
启动出货
{“power2”: 1}(电机开始转)。停止出货:2秒后发送
{“power2”: 0}。同样,使用先通后断指令
{“point”: {“relay”: [2], “interval”: 2000}},硬件会自动执行“转2秒即停”。
批量控制命令示例
如果你有多个货道需要紧急关闭,或者进行补货测试,可以使用批量控制语法:
附录:核心接口命令速查表
| 功能描述 | Order 指令 JSON (order字段内容) | 业务场景 |
|---|---|---|
| 单路开启 | {“power1”:1} | 1号柜门解锁 / 1号电机启动 |
| 单路关闭 | {“power1”:0} | 1号电机停止 |
| 脉冲式开启 | {“point”:{“relay”:[1],“interval”:500}} | 推荐用法:让锁/电机动作0.5秒后自动断电 |
| 全开/全关 | {“batch”:{“power”:1}} 或 {“power”:0} | 整柜断电应急处理 |
| 场景复位 | {“reset”:{“interval”:1000}} | 先全部关闭,1秒后全部开启 |
通过以上步骤,你无需关心底层无线通讯协议,只需通过简单的HTTP POST请求,即可完成远程售货柜的核心控制功能。