CATALOG

这是一个针对健身房私教包间场景,将芯步 8路智能电源控制器 集成到现有软件项目中的解决方案。

我会尽量写得像技术团队内部沟通那样,带点口语化,但也把技术细节讲透。

各位好,

针对咱们“私教包间”的智能化升级需求,我这里整理了关于如何把芯步的 8路智能电源控制器 无缝对接到咱们现有软件系统的方案。

简单来说,我们的目标就是:让会员买课或扫码后,包间自动通电;课程结束,自动断电;前台电脑上还能看到灯到底关了没有。

不再需要教练拿着手电筒去巡场,也不用担心会员下课忘了关空调。下面我们看看怎么搞定它。

一、 硬件能做什么?

首先要了解这个8路控制器能接什么。它并不是只能控制灯,它有 8个独立的继电器通道

也就是说,我们可以把 8 路不同功率的电器接上去,比如:

  • 通道1: 主照明 (营造氛围)

  • 通道2: 射灯/灯带

  • 通道3: 新风系统/排风扇

  • 通道4: 中央空调风机 (根据功率可能需要加交流接触器)

  • 通道5: 电视/屏幕电源

  • 通道6: 饮水机/小厨宝

  • 通道7: 瑜伽垫消毒柜

  • 通道8: 门锁/指示灯

重点是,这8路是完全独立控制的。我们可以随时单独把灯关了但保持电视开着,灵活性很高

二、 怎么“连”?—— 通信协议与鉴权

芯步这点做得比较友好,开放了标准的 HTTP API。不管咱们后台是 Java、Python 还是 Go,甚至前端想直接控制,只要发个请求就行

在写代码之前,有个关键步骤:搞懂它的签名机制,不然你会一直报 401 错误。芯步用的是 动态签名 模式

签名公式:

Sign = MD5 ( MD5 ( AppSecret ) + Ts )

操作步骤:

  1. 在芯步后台拿到 AppIDAppSecret (保管好,别传到前端去)。

  2. 生成当前时间戳 (Ts) (比如 1715678900)。

  3. 先对 AppSecret 做一次 MD5 加密。

  4. 把加密结果拼上时间戳,再做一次 MD5。

举个例子 (伪代码):

最后,拿着这个SignTsAppID去请求接口。这个机制主要是为了防止接口被恶意篡改,算是比较安全的方式

三、 核心集成逻辑 (附代码示例)

我们的软件项目最核心的任务,就是在适当的时候,发一个HTTP请求

1. 请求信息一览

  • 请求地址:https://api.thingboot.com/{AppID}/device/control/?sign={签名}&ts={时间戳}

  • 请求方式: POST

  • Header:Content-Type: application/json

  • Body 结构:

2. 指令集详解 (针对8路控制器)

根据产品手册,我们可以下发的命令主要有以下几种

  • 单路控制 (开/关)

    • 开第一路:{“power1”: 1}

    • 关第一路:{“power1”: 0}

    • 以此类推,power2 控制第二路……直到 power8

  • 全开/全关有些型号支持 {“power”: 1} 一键全开,用批量指令更稳妥。

  • 场景模式 (重点推荐)如果我们需要一键开启“有氧模式”(开灯+开电视+关排风扇),推荐使用 批量控制 Batch 指令:

3. 实战流程图

假设我们现在的场景是“会员扫码签到 -> 自动开启包间”:

1. 用户端/前台操作

会员在闸机刷码,或者私教在iPad上点击“开始上课”。我们的软件后台 接收到这个“上课开始”的信号。

2. 软件发起请求

后台计算出 Sign,然后组装一个 JSON:{“device”:“123456”, “order”:{“power1”:1,“power4”:1}} (打开灯和空调)。发送 POST 请求到芯步云 API

3. 设备执行

控制器收到指令,继电器吸合,电路接通。灯亮了,空调启动了。

4. (进阶)状态回传

控制器执行成功后,会回传一个状态。我们的后端需要监听消息推送(用MQTT或者Webhook),收到状态后更新数据库,前台界面就会显示“设备已开启”。

四、 比较关键的几个技术点

在实际写代码的时候,有几个坑可以先避开:

  1. 关于“感性负载”要注意灯具、空调电机属于感性负载,启动电流较大。虽然8路控制器额定电流不小,但如果一个包间挂了很多灯或者大功率商用跑步机,在控制器后面加装交流接触器,让控制器控制接触器的线圈,接触器控制大电流电路,这样比较稳,也能延长控制器寿命

  2. 关于“离线”状态的应对如果网络断了,8路控制器就变成“离线”了。

    • 在软件设计上,要给教练保留“应急物理开关”。

    • 在机制上,可以利用控制器的定时任务功能。我们可以在后台预设一个“最大时长”(比如90分钟),即使网络断了或软件崩了,控制器到时间也会自己断电,避免会员走了设备还开着的情况

  3. 课中/课后的逻辑处理

    • 临时暂停:如果会员去上厕所,私教按一下“临时暂停”,我们只发 {“power1”:0} 关灯,但空调不要关,回来了再发 {“power1”:1}

    • 下课断电:点击“结束课程”时,直接发送全关指令 {“batch”:{“relay”:[1,2,3,4,5,6,7,8],“power”:0}}

五、 总结

通过集成芯步的8路控制器,我们的软件就具备了“肢体”能力。

我们需要做的工作量其实很小:封装一个API调用类,处理签名逻辑,然后在现有的“私教课程表”或“订单状态”变更的钩子里,加上这个HTTP请求就可以了。

搞定这一步,我们的健身房私教包间就能实现全自动、可远程、省电省心的智能化管理了。