芯步这款Mini控制器最方便的地方在于,接口完全开放,无论你的后台是用Java、Python还是Node.js写的,甚至直接在前端调用都没问题。下面我一步步拆解对接流程。
一、 核心准备:拿到“钥匙”与“门牌号”
在写代码之前,需要先去芯步的官网控制台拿到两样东西,这步搞定了,后面就很顺畅了:
获取 AppID 和 AppSecret
登录芯步控制台,找到“开发设置”。
AppID:相当于你在芯步平台的“用户名”,接口知道是谁在调用。
AppSecret:相当于“密码”,千万不能写在网页前端代码里,只在后端使用。
获取设备 ID (Device ID)
把“4路包间灯光空调控制器MINI”接通电源,用网线或配网工具让它连上WiFi(注意只支持2.4G频段)。
配网成功后,在控制台的设备列表里就能看到这个设备,那一串数字就是 Device ID,也就是我们要控制的“门牌号”。
二、 核心难点拆解:签名计算
这是很多朋友觉得麻烦的地方,其实就是个暗号。芯步的接口为了安全,所有的指令都需要携带一个动态生成的 sign。
签名的生成规则如下:
sign = md5( md5(AppSecret) + ts )
这里有两个关键点需要留意:
md5:就是常规的32位小写MD5加密算法。
ts:当前的时间戳(比如 Unix 时间戳)。注意:时间戳一定要和服务器时间同步,如果时间差太多会报签名过期。
拼接:先把 AppSecret 做一次 MD5 加密,得到一个32位的字符串,然后拼接上 ts,再对这个新字符串做一次 MD5 加密。
举个简单的例子:假设你的 AppSecret = abc123,当前时间戳 ts = 1712345678。
Step1 = md5(abc123) = ********(一串字母数字)Step2 = Step1 + ts = ********1712345678sign = md5(Step2)
三、 实战对接:四种常用场景的指令发送
拿到签名和设备ID后,我们就可以向 https://api.thingboot.com/{AppID}/device/control/ 这个地址发送 POST 请求了。
以下是KTV/足浴/棋牌室项目中最常用的几个功能代码逻辑(以 JSON 格式为例):
第一种场景:客人来了,开灯开空调
需求:客人下单后,系统自动开启包间的灯和空调。指令:控制第1路(灯)和第4路(空调)。
第二种场景:客人临时离开,节能模式
需求:客人上厕所或暂时离开,关闭灯光和麻将机,但保留空调(防止房间变热)。指令:关闭第1路(灯)和第2路(麻将机/插座)。
第三种场景:自动关门(电磁锁联动)
需求:用户手机点击“开门”,门锁(接在第3路)通电几秒后自动断开。说明:电磁锁需要先通电才能开锁,如果是电插锁(断电开),逻辑反过来就行。指令
(注:如果是断电开锁的电插锁,需要发送 reset 指令,让它先断电再恢复)
场景四:派对模式 / 一键关完
需求:顾客离店或超时未续费,系统一键切断包间所有电源。指令:批量控制。
四、 语音版专属功能:TTS 语音播报
如果你手上拿的是带 TTS 型号的版本,除了控制开关,它还能让设备“说话”。这对于棋牌室或足浴店非常实用——客人超时前,设备直接语音提醒,比发短信有效多了。
让控制器直接说话:
温馨小贴士:
play:gbk:16中的16是音量等级,范围一般是 0-16。编码问题:中文内容要保证 UTF-8 编码,否则可能会播报乱码。
五、 状态同步:别让APP显示“假状态”
作为一个成熟的解决方案,发指令只是第一步,查询状态同样关键。比如前台要显示“这个包间灯是不是忘关了”,就需要用到获取设备详情的接口:
请求地址:https://api.thingboot.com/{AppID}/device/info/参数:device=你的设备ID
返回的数据示例:
拿到这个数据后,你就可以在自己的前台大屏上实时刷新每个包间的设备状态了。
六、 几个避坑指南
在将上述代码集成到你自己的项目中时,有几个实战经验可以参考:
关于WiFi:这设备只支持 2.4G WiFi。现场如果装了那种“双频合一”的路由器(2.4G和5G同名字),在路由器后台关掉合一功能,或者找一台旧手机开2.4G热点测试,否则设备容易连不上网。