CATALOG

共享棋牌室现在越来越火,痛点就是“无人值守”。要实现这一点,关键是把包间的灯、麻将机、空调、门锁这些设备都联网控制。芯步的8路智能包间控制器正好解决这个问题——一个设备管一个包间,8路输出基本覆盖包间内所有用电设备。

下面我以一个开发者/项目集成者的视角,聊聊怎么通过它的开放接口把这个设备对接到自己的管理系统里。

场景设定:我在做共享棋牌室系统

假设你正在开发一套棋牌室SaaS系统,用户在小程序下单后,系统自动给对应的包间通电、开灯,时间到了自动断电。这中间的核心环节,就是让云端服务器能控制包间里的那台“8路智能包间控制器”。

其实这个过程没有想象中那么硬件,你基本上不需要懂电路,只需要把它当成一个可以通过HTTP请求控制的开关盒子就行了。

第一步:了解你的“硬件对象”

拿到芯步的这个控制器,先不要急着接线。在它的壳子上或者后台控制台里,你会找到一个叫 设备ID 的东西(通常是一串数字)。这玩意儿很重要,它就像这台设备的“身份证号”,你发指令的时候得指着它喊。

这个控制器大概长这样(想象一下):它里面有8个继电器,对应8路输出。你可以把:

  • 第1路 接照明灯

  • 第2路 接麻将机插座

  • 第3路 接空调

  • 第4路 接排风扇

  • 第5路 接路由器(这个别关)

  • ...以此类推

通过控制每一路的“通”或“断”,就相当于物理上把插头插上或者拔掉了。

第二步:准备你的“API钥匙”

芯步的接口是标准的HTTP协议,这意味着不管你后端用的是Java、Python、Go还是PHP,甚至前端JS(在安全环境下)都能调。

但在发命令之前,得先做一个小小的“握手”认证。他们用的是签名认证,目的是为了安全,防止别人随便控制你的设备。

你需要从芯步的后台拿到两个东西:

  1. AppID:你的应用ID,相当于账号。

  2. AppSecret:你的密钥,相当于密码。

签名的算法稍微有点绕,但很固定(以官方文档为准,大致逻辑如下):

假设你的 AppSecret 是 abc123,当前时间是 1714528000

  1. 先把 abc123 进行一次MD5加密,得到字符串 S1

  2. S1 拼接上时间戳 1714528000,得到 S1 + 1714528000

  3. 把这个拼接后的字符串整体再做一次MD5,得到最终的 sign

每次发请求,都需要带上这个动态的 sign 和时间戳 ts

第三步:实战——给包间“通电”

假设现在有客人在小程序下单了,系统要自动打开“888包间”的灯和麻将机。

这时候你的后端需要发一个HTTP POST请求,地址一般是这样:

请求体 (Body) 需要传JSON:

就这么简单。你的服务器发个请求过去,芯步的云平台就会把这个指令推送给那个控制器,然后“咔哒”一声,继电器吸合,麻将机亮灯。

第四步:更高级的玩法——语音播报与计时

除了控制通断,这个控制器通常还支持一些附加功能,比如接个喇叭。

  1. 语音提醒:当订单还剩10分钟时,你可以下发一个指令让包间里的音箱说话。

    这样用户体验会很好,不用看手机也知道快没时间了

  2. 状态查询:有时候你需要确认一下包间状态。你可以调用查询接口,看看第2路继电器现在到底是开的还是关的,防止误操作。

第五步:对接中的几个“避坑”指南

在实际写代码的时候,有几个细节需要注意:

  1. 异步 vs 同步你调用接口后,接口返回 200,这只代表指令到了云平台,不代表设备真的执行了(比如设备可能断网了)。如果你需要确保“真的断电了”,最好是订阅MQTT消息或者使用设备的“命令应答”机制。如果你的需求不苛刻,直接发指令默认成功也行,毕竟现在的WiFi覆盖率很稳。

  2. 时间戳问题签名里的时间戳是,不是毫秒。很多新手习惯用 System.currentTimeMillis() 忘记除以1000,导致签名错误,报 sign invalid

  3. 私有化部署(局域网)芯步的这套设备支持私有化部署。如果你的棋牌室网络环境复杂,或者不想走外网,可以把消息服务器部署在本地局域网。这样控制指令只在局域网内跑,速度更快

  4. 分组控制如果你有一个“深夜时段”需要一键关闭所有包间的空调,不用循环发指令。接口支持分组,你提前把“888包间”、“999包间”建一个叫“全场空调”的分组,对着这个分组发一条 power3=0,全店的空调就都关了

总结一下

把芯步的8路控制器对接到你自己项目里,其实就是在做三件事:

  1. 拿参数:把 AppIDAppSecret设备ID 配在你的后台。

  2. 写函数:封装一个“发HTTP请求”的工具,里面处理好MD5签名。

  3. 联业务:在用户“下单成功”的回调里,调用这个函数,让第1、2路通电;在“订单结束”的回调里,调用函数,让所有路断电。

一旦把这个流程跑通,你的共享棋牌室系统就能实现完全的自动化了。剩下的就是去现场接电线,把控制器装进弱电箱,把灯和麻将机插到对应的接口上就行。

有不懂的可以翻翻他们的官方文档,那个写得还是比较清楚的