共享棋牌室的痛点是:有人值守成本高,无人值守又怕用户乱开电器、空调忘关。解决这个问题的关键,就是把每个包间的“电”控制权收回到系统手里。下面详细说怎么把一个普通的5孔定时智能插座,通过芯步的开放接口,集成到你的棋牌室系统里。
一、 为什么选“1位5孔”插座?
在棋牌室场景里,我们不需要花里胡哨的功能,核心是要控制麻将桌和房间照明。
选型:选“1位5孔(10A)”就足够了。因为麻将桌和路由器的功率都不大,10A完全够用,而且86型面板可以直接替换墙壁插座,外观整洁。
要买计量版吗?:计量版贵一点点,但我强烈买。因为你可以通过接口读取实时功率,来判断“麻将机是否在运行”或者“空调是不是忘关了”,这对后续做能耗统计很有用。
二、 接口对接的核心逻辑
芯步的接口很友好,它走的是 HTTP协议。说白了,就是你后端程序给它发一个“请客吃饭”的请求(POST请求),它就把指令下发给插座。
整个过程就三步:
用户在小程序下单支付成功。
你的服务器收到支付回调,拼接一个HTTP请求,发给芯步的云端API。
云端告诉插座:“合上开关,来电!”
三、 实战:三个核心集成场景
我们假设你已经有了设备ID,下面直接看怎么在代码里实现业务逻辑。
场景1:用户下单成功,自动通电
这是最基础的功能。用户买了一个小时,付款成功那一刻,包厢的电必须马上通。
业务逻辑:支付回调触发 -> 调用“开”接口。
接口调用细节
URL
http(s)://api.thingboot.com/{你的AppId}/device/control/?sign={签名}&ts={时间戳}Method:POST
Body 参数
口语化解释:这就是告诉云端,“给这个插座发个指令,把电接通。”
场景2:防止“跳单”与自动断电
用户时间到了,如果不续费,必须断电。这里有个坑:直接断电太粗暴,万一用户正在自摸,你直接掐电,他下次就不来了。
优雅方案:利用插座的定时功能。
操作步骤
订单还剩5分钟时,小程序弹窗提醒:“即将断电,请续费”。
倒计时结束用户未续费,不直接发断电指令,而是发先通后断(point)指令。
调用代码:将上面的
order字段换成{"point":"60000"}。
效果:插座会保持通电,但1分钟(60000毫秒)后会自动断电。相当于给了用户1分钟的“收尾时间”,打完最后一把牌。
场景3:防止“白嫖”的电量检测(进阶)
如果有人自己带了排插,把麻将机插到别的插座上,绕过你的智能插座怎么办?
解决方案:使用计量指令。
实现逻辑:每隔5分钟,调用一次查询接口(或云端主动上报),读取当前功率。
如果功率 > 50W(麻将机待机或运行),判定包厢有人在使用。
如果功率 = 0W,且订单已结束,判定安全;如果功率 = 0W 但订单还在进行中,说明用户没开麻将机或者跳过了插座,系统可发出告警。
四、 业务逻辑流程图
为了让你更直观地理解整个流程,这里画一个用户从下单到离店的完整时序:
sequenceDiagram
participant User as 用户
participant App as 小程序/前端
participant Server as 你的后端
participant Yoyo as 芯步云端
participant Socket as 棋牌室智能插座
User->>App: 1. 选择包厢并支付
App->>Server: 2. 发起支付请求
Server-->>User: 3. 支付成功回调
Note over Server,Socket: 订单开始,自动通电
Server->>Yoyo: 4. POST /device/control/ (power:1)
Yoyo->>Socket: 5. 下发WiFi指令
Socket->>Socket: 6. 继电器吸合,麻将机通电
loop 订单进行中
Socket-->>Yoyo: 7. 上报实时功率数据
Yoyo-->>Server: 8. 推送计量数据(监测是否白嫖)
end
Note over Server,Socket: 订单倒计时结束
Server->>Yoyo: 9. POST /device/control/ (point:60000)
Yoyo->>Socket: 10. 延时1分钟断电指令
Socket->>User: 11. 1分钟后自动切断电源五、 避坑指南
网络配网:这种插座一般只支持2.4G WiFi。在客户现场安装时,一定要确保手机连的是2.4G信号,5G频段搜不到设备的。
断电记忆:芯步的设备好像支持断电记忆功能。设置好之后,如果现场跳闸又来电,插座能自动恢复到断电前的状态,不需要人工干预,这点对无人值守很重要。
签名