一、这是个啥玩意儿?先认识一下主角
咱们今天要聊的主角是芯步的智能包间控制器Mini(型号:UNI-KZQ-BJ-MINI)。这玩意儿说白了就是一个可以用网络远程控制开关的小盒子,特别适合用在共享棋牌室、茶室、按摩房、自习室这种需要远程管理包间电器的场景。
这小东西有啥本事呢?它一共给了4路独立的输出接口,每一路都能单独控制通断:
| 线路 | 类型 | 能接啥电器 |
|---|---|---|
| 第1路 | 16A开关 | 照明灯、换气扇、吸烟灯 |
| 第2路 | 16A插座 | 饮水机、麻将机、按摩仪 |
| 第3路 | 10A门禁接口 | 电磁锁、电插锁 |
| 第4路 | 30A插座 | 2匹空调 |
最关键的是,这4路全部支持通过HTTP接口远程独立控制,就是说你可以用自己的软件系统来指挥它开哪一路、关哪一路,想开多久开多久。
二、准备工作:你需要先拿到这几样东西
开始动手之前,先把下面这些东西准备好:
2.1 硬件准备
一台智能包间控制器Mini(废话)
给它供上5V1A的直流电
连接好2.4G WiFi(记住,5G频段它不认识,只认2.4G)
2.2 软件准备(账号相关)
去芯步官网注册一个开发者账号
登录控制台,创建一个应用
在“开发设置”里找到你的 AppID 和 AppSecret(这俩相当于你的身份标识和密码,别乱给别人看)
把设备添加到你的账号下,拿到设备的 Device ID(可以在控制台看到,也可以从设备外壳上找)
2.3 网络要求
这设备走的是WiFi直连,不需要网关,只要有2.4G WiFi信号就行。它还支持私有化部署,如果你不想走云端,可以自建消息服务器跑在纯局域网环境。
三、核心环节:签名怎么算?
调用芯步的HTTP接口之前,有个绕不开的步骤——算签名。这玩意儿听着唬人,其实就是个防篡改的校验机制,跟着步骤来其实很简单。
签名的计算公式长这样:
sign = md5( md5(AppSecret) + ts )
其中 ts 是当前时间的Unix时间戳(秒为单位)。
来,我用大白话拆解一下:
先把你的
AppSecret做一次MD5加密,得到一串32位的字符串把这串字符串和当前的时间戳(比如
1734567890)拼在一起把拼出来的新字符串再做一次MD5加密
最终得到的32位字符串就是你的
sign
举个栗子(假设用Shell命令,你也可以用任何编程语言实现):
注意事项
每次请求都要用最新的时间戳重新计算签名
时间戳和签名要一一对应,服务端会校验时间差,一般允许5分钟左右偏差
签名算法里用的是MD5(md5(AppSecret) + ts),不是直接md5(AppSecret+ts),顺序别搞反
四、核心接口:控制设备通断
一切准备就绪,现在咱们来正式指挥设备干活了。
4.1 请求地址和方式
请求URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}注意把 {AppID}、{sign}、{ts} 替换成你自己的值。
请求方式POST
请求头(Header)
Content-Type: application/x-www-form-urlencoded
请求体(Body):需要传两个参数
device:设备的唯一ID(字符串格式)order:要下发的命令(JSON字符串格式)
4.2 重点来了:order命令怎么填?
这是最核心的部分。order是一个JSON字符串,用来告诉控制器你要干什么。
单路独立控制(最常用的操作)
| 操作 | order内容 | 说明 |
|---|---|---|
| 打开第1路 | {"power1":1} | 接通照明 |
| 关闭第1路 | {"power1":0} | 断开照明 |
| 打开第2路 | {"power2":1} | 插座通电 |
| 关闭第2路 | {"power2":0} | 插座断电 |
| 打开第3路 | {"power3":1} | 门禁开锁 |
| 关闭第3路 | {"power3":0} | 门禁关锁 |
| 打开第4路 | {"power4":1} | 空调开机 |
| 关闭第4路 | {"power4":0} | 空调关机 |
实际发送的请求示例(用curl命令演示):
这个请求的意思是:让指定设备把第1路接通(比如开灯)。
批量控制(一次操作多路)
如果你想一次控制多个线路,用 batch 命令:
| 操作 | order内容 |
|---|---|
| 全开(4路全通) | {"batch":{"power":1}} |
| 全关(4路全断) | {"batch":{"power":0}} |
| 只开第1、3路 | {"batch":{"relay":[1,3],"power":1}} |
| 只关第2、4路 | {"batch":{"relay":[2,4],"power":0}} |
高级玩法:先通后断 / 先断后通
这个功能特别适合门禁场景——比如按一下按钮,门锁通电1秒然后自动断电。
先通后断(point):先接通指定线路,延时后自动断开
{"point":{"relay":[1,3],"interval":1000}}意思是:第1路和第3路先接通,1秒后自动断开。
先断后通(reset):先断开,延时后自动接通
{"reset":{"relay":[2],"interval":2000}}意思是:第2路先断开,2秒后自动接通。
4.3 完整代码示例(Java版)
给你们贴一段完整的Java代码,方便直接拿去用:
五、进阶玩法:定时任务和联动
光能手动控制还不够爽?这设备还支持远程定时任务和自定义联动操作。
5.1 定时任务
你可以在芯步的控制台设置定时规则,比如:
每天早上9点自动打开第1路(开灯)
晚上11点自动关闭所有线路(断电节能)
5.2 自定义联动
设备本身也支持本地联动逻辑,通过配置项来实现。比如你可以设置:按一下物理按钮,对应线路延时2秒后再动作等。
六、语音播报版(TTS)的额外福利
如果你买的是带TTS语音播报的版本(型号后缀带-TTS),除了控制通断,还能让设备开口说话
{"play:gbk:16":"你好,欢迎光临"}这个功能特别适合订单提醒、服务说明、迎宾语之类的场景。
七、常见坑点和避坑指南
根据经验,新手容易踩这几个坑:
签名计算错误:这是最常见的问题。检查一下是不是用了
md5(md5(AppSecret)+ts)这个公式,别搞反顺序。时间戳偏差太大:服务器会校验时间戳,你的系统时间和服务器时间差太大会报签名过期。解决办法是用NTP同步一下服务器时间。
WiFi频段不对:设备只支持2.4G WiFi,别连5G的。
device参数传错
device参数传的是设备ID,不是设备名称。多个设备ID可以用英文逗号隔开。Content-Type忘设:请求头要设置
Content-Type: application/x-www-form-urlencoded,别设成application/json。
八、总结
总的来说,芯步这个4路控制器的HTTP接口设计得还是挺友好的:
接口简单:就一个POST请求,带上签名和设备ID就能发命令
命令直观
power1、power2...一看就懂灵活度高:支持单路、批量、延时等多种控制模式
部署灵活:支持云端和私有化部署
无论你是用Java、PHP、Python还是其他任何支持HTTP请求的语言,甚至是在微信小程序里调用,理论上都能轻松对接。希望这篇解决方案能帮你顺利搞定二次开发!