包间预约联动通电的关键在于“预约系统生成订单 → 调用控制器接口通电 → 订单结束后断电”的闭环。芯步的8路控制器通过HTTP接口开放了每一路的独立控制能力,二次开发的核心就是根据订单状态调用对应接口即可。以下是完整的解决方案:
一、解决概述
为了实现“用户线上预约包间——订单生效后自动通电——订单结束后自动断电——管理员可远程管理”的全流程自动化,我们将通过以下逻辑进行二次开发:
系统集成:将芯步8路智能包间控制器的API集成到现有的包间预约系统(如公众号、小程序或PC端软件)后台。
状态联动:通过代码监听订单状态(待使用/使用中/已结束/已取消),自动触发对控制器的通电(开)或断电(关)指令。
精细化管理:利用8路独立接口,实现“照明、麻将机、空调、门锁”的分时/分设备控制(例如:进门只通电照明和插座,开始计时才通麻将机)。
二、准备工作
在开始编码前,请确认具备以下条件:
| 准备项 | 说明 |
|---|---|
| 硬件设备 | 已安装芯步 8路智能包间控制器,并已连接Wi-Fi(2.4G)且设备在线。 |
| 平台账号 | 注册芯步开放平台账号,获取 AppID 和 AppSecret(开发者密码)。 |
| 设备ID | 在控制台获取目标包间对应的 Device ID(设备唯一ID)。 |
| 开发环境 | 支持HTTP请求的任何语言环境(如Java, PHP, Python, Node.js等),本文以通用PHP/Java示例讲解。 |
三、核心技术:签名生成与接口调用
芯步的开放接口采用 Sign(签名) 认证,所有控制指令都需要计算签名才能下发。
签名算法(官方标准):Sign = md5( md5(AppSecret) + ts )
变量说明
AppSecret:开发者密码。ts:当前Unix时间戳(秒级)。md5():标准的32位小写MD5加密。
代码实例:生成签名
四、业务逻辑实现:预约联动通电
这里以典型的共享棋牌室/茶室场景为例,设计二次开发流程图:
用户在微信小程序下单,选择 14:00 - 16:00 的包间。
支付成功后,订单状态变为“待开始”。
定时任务:系统扫描到订单即将在2分钟后开始,或通过消息队列,向硬件下发指令。
通电逻辑
开门(第7路):短暂通电2秒开锁。
总闸/照明(第1路):通电。
空调(第8路):通电。
机麻(第4路):保持断电,待用户点击“开始计时”后再通电,或等待感应器检测到人入座。
断电逻辑:16:00订单结束,系统调用指令关闭所有路(全关)。
1. 指令下发接口定义
URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Method:POST (JSON格式)
Headers
Content-Type: application/json
2. 核心代码封装:单路控制
我们需要封装一个函数,用于控制指定包间控制器的指定线路通断。
请求Body示例(控制第4路接通给机麻通电):
注意power1 代表第1路,以此类推,power8 代表第8路。值 1 代表接通(开),0 代表断开(关)。
3. 场景代码实现(伪代码逻辑)
场景 A:用户下单并支付成功(预授权模式)逻辑:虽然用户还没到场,但系统准备就绪,或者仅开启门锁等待。
场景 B:订单正式开始(用户点击“开始”或定时任务触发)逻辑:用户到达包间,验证码核销或系统倒计时结束,开启麻将机等主力设备。
场景 C:订单结束/超时自动断电逻辑:时间到或用户点击退单,切断所有电源,防止设备空转。
4. 通用发送函数实现
五、进阶优化方案
1. 多设备批量控制
如果您的包间较大,一个包间内安装了多个控制器(例如一个控制照明,一个控制空调),芯步的接口支持 批量控制。
注意:批量下发时,所有设备必须支持相同的指令类型。
2. 异步消息推送(获取真实状态)
单纯的 HTTP 下发指令是单向的(只管发,不管设备是否真的执行成功)。为了更严谨的逻辑(例如:如果插座烧毁无法断电,需通知管理员),配置 消息推送。
在芯步控制台配置“上行消息接收URL”。
当设备成功执行命令或状态发生变化(如被人按了物理开关),平台会主动推送消息到您的服务器。
您的服务器根据推送更新数据库中的“设备状态”,防止状态不同步。
3. 异常处理机制
断网重连:控制器支持存储5组WiFi,会自动重连,但业务层增加“心跳检测”,如果设备离线,系统端不应允许下单。
掉电恢复:如果市电停电又来电,控制器的继电器默认状态?二次开发时,在上电后主动查询一次设备状态,或主动下发一次全关指令,确保安全。
六、总结
通过二次开发芯步8路智能包间控制器的开放接口,实现“预约联动通电”的技术难点主要集中在 签名鉴权 和 业务状态的流转控制 上。
核心逻辑总结:
预约成功 → 下发
power指令开启门锁/照明。使用中 → 根据业务需求动态下发
powerX指令。订单结束 → 下发
batch批量指令切断所有电源。
这套方案不仅适用于棋牌室,同样适用于自习室、茶室、酒店公寓等任何需要“分时租赁、无人值守”的场景。开发人员只需关注 HTTP 接口的对接,无需关心底层硬件协议,即可快速构建稳定的商业控制系统。