CATALOG

这是一份关于芯步智能包间控制器(8路HTTP接口版) 的接入解决方案。

我尽量写得详细、接地气一点,直接告诉你“怎么用”以及“代码怎么写”。

大家好,今天聊聊怎么用代码“指挥”硬件。

如果你在做棋牌室、剧本杀或者自习室的项目,应该对“远程控制电源”这个需求不陌生。客人下单后,得自动开灯、开麻将机;时间到了,得自动断电,不能让客人白嫖。

要实现这个,通常需要一块继电器硬件。最近不少朋友在用芯步的 “智能包间控制器” ,这玩意儿有8路输出,正好对应一个包间里的照明、麻将机、空调、排风扇。

今天我就手把手教你,如何用HTTP请求把这货集成到你的Java/PHP/Python/Node.js后端项目里

注:下文中提到的“设备”特指UNI-KZQ-BJ-MAX型号

第一步:先搞懂硬件上的“8路”都接了啥

在写代码之前,你心里得有个谱:这8个接口分别控制什么?

根据硬件规格,通常是这样接的

  • 第1、2、3路:10A小功率,接照明灯、换气扇、吸烟灯。

  • 第4、5、6路:16A中等功率,接饮水机、麻将机。

  • 第7路:门禁锁。

  • 第8路:30A大功率,接空调(这路功率大,别接错了)。

映射关系:控制麻将机的通断,实际上就是控制 “第4路” 的开关;控制照明,就是控制 “第1路”

第二步:拿到开门的“钥匙”(准备凭证)

芯步的接口走的是HTTP协议,很标准,不挑编程语言

你需要准备三样东西:

  1. AppID:你的应用标识。

  2. Device ID:那个控制器的唯一ID(贴在盒子上的那个串号)。

  3. Sign:签名(为了安全,一般是 md5(AppID + AppSecret + Timestamp) 这种形式,具体看官方文档)。

第三步:实战代码——“开灯”与“关灯”

需求来了:客人下单成功,自动开启包间电源;时间到了,自动切断。

我们要调用的是 /device/control 接口 假设你的服务器地址是 api.thingboot.com

1. 构建请求地址

拼接出来的URL长这样(GET方式):

2. 核心参数(最关键)

虽然在URL里带了参数,但真正的控制指令用 POST 方式发送,推荐用 JSON 格式。

你需要告诉服务器两件事:

  • 控制谁? —— device 参数,填那串设备ID。

  • 控制什么? —— order 参数,这里要写成JSON。

3. 具体指令示例

第一种场景:客人下单了,打开所有设备(照明+麻将机+空调)

这里定义一下接口里的“属性”。为了方便理解,假设硬件厂商定义的属性名是 power1power81 代表开,0 代表关。

你发送的POST Body:

注意:如果厂商文档支持,你还可以在 order 里加一个 extra 字段,比如带上订单号 "extra":"ORDER_123456"。这样设备执行完指令后的回调消息里,你会知道是哪笔订单触发的,方便做异步对账

第二种场景:还剩10分钟,给客人“提醒一下”(语音播报)

很多朋友忽略了这控制器有个TTS(文本转语音)功能。很多棋牌室用的这款控制器是带语音版本的

如果你用带TTS的型号,可以这样发指令:

第三种场景:时间到!立即“扫地出门”(全断电)

时间到了,直接把所有路数置为 0

这样一来,灯灭了,麻将机停了,空调也关了。如果客人续费了,你把上面的 0 改成 1 再发一遍就行。

第四步:处理“没反应”的情况

这是新手最容易踩的坑:接口返回了 {"code":200},但灯没亮

为什么?因为 code:200 只代表“云端收到了指令”,不代表“设备执行了指令”。

如果设备当时WiFi信号不好,或者正处于断网重连中,云端虽然返回成功,但指令还在队列里,或者丢掉了。

的做法:

  1. 不要相信同步返回code:200 只代表指令发出去了。

  2. 依赖异步推送:你需要在你服务器上搭建一个接收芯步消息推送的接口。当设备真正把灯点亮后,设备会主动发一条消息给服务器:“我亮了”。你的系统接到这条消息,才把数据库里的状态改成“已开启”。

  3. 查询状态:如果不做推送,你也可以写一个定时任务,每隔5秒钟调用 查询设备状态 的接口,看看 power1 的真实值是不是 1

第五步:关于私有化部署(进阶玩法)

如果你门店比较多,或者觉得走公网云不稳定,想纯局域网内网控制,这控制器也支持 “私有化部署”原理就是:不让设备连芯步的云,而是让你自己的服务器假装成云。这时候指令虽然还是HTTP,但IP地址要换成你内网服务器的IP。这样延迟更低,没外网也能跑。

总结一下

把芯步的8路控制器接入棋牌室系统,说白了就是 “拼JSON”

  1. 设备上电联网。

  2. 后端封装HTTP请求,带上签名。

  3. 根据业务逻辑(下单、改时、退单),向不同的 powerX 属性发送 10

你不需要懂硬件电路,也不用处理那些复杂的TCP长连接,用最熟悉的HTTP POST就能搞定。把这套逻辑写进你的订单回调里,一个无人值守的棋牌室就基本成型了。