CATALOG

共享棋牌室要真正做到“无人值守”,核心就是电源控制——用户下单后自动通电,时间到了自动断电。芯步的8路智能分体远程电源控制箱正好能解决这个需求,而且它开放HTTP API接口,集成到你现有的小程序或后台系统里并不复杂。下面我按实际开发流程来写,尽量说得直白一些。

1. 背景与概述

大家好,现在我们都在搞共享棋牌室、共享茶室或者共享自习室。要做到真正的“无人值守”,怎么远程控制包厢里的电(麻将机、空调、灯)是核心问题

我们选用的硬件是芯步的“8路智能分体远程电源控制箱”。简单理解,这个东西就像一个可以放在电箱里的“智能排插”,但它有8个插孔,而且每个插孔都可以通过互联网单独控制开关

本文就是要告诉你,怎么通过代码让这个东西和你现有的小程序、公众号或后台管理系统打通。如果你想让用户在手机上下单后自动通电,时间到了自动断电,那就往下看。

2. 硬件选型与接线方案(极简说明)

在写代码之前,我们先简单说说硬件该怎么接。这个对于后面的逻辑很重要。

我们需要的是 UNI-KZQ-FT 型号的控制箱(8路版本)。

怎么接设备?

  • 路数对应:这个箱子有8路(L1-L8)。你可以把1路接麻将桌,2路接空调,3路接顶灯,4路接排风扇。

  • 接法:把控制箱串在设备和电源之间。这根线接不好设备就没法控制,请让电工师傅按说明书来。

能接多大功率?

  • 单路能带大约 2200W 阻性负载(比如灯),总功率控制在 4400W 以内。一般一个棋牌室的麻将机+空调+灯是够用的。如果空调功率特别大,单独一路并由接触器配合控制。

3. 软件集成核心步骤

芯步的接口设计得非常简单,全是标准的 HTTP 请求。不管你后端是用 Java、Python、Go 还是 PHP,只要会发 HTTP 请求就能调得动它。

这里有两个核心概念你要知道:

  1. AppID / AppSecret:相当于你软件系统的“用户名”和“密码”,在芯步控制台拿到

  2. Device ID:就是你这台8路控制箱的身份证号,也要从控制台复制。

另外,为了方便测试,你可以先在芯步的物联网控制台里手动点一下开关,确定设备在线且响应正常,再开始写代码

3.1 鉴权与签名机制

为了防止别人乱刷你的接口,芯步用了一个签名机制。每次发命令前都要算一个 Sign 值,这个基本通用,照着文档复现就行:

签名的生成算法(伪代码):

注意:千万不能用旧的时间戳,必须每次请求都生成新的 ts,时间戳有效期一般是5分钟,过期就失效了

3.2 API 调用实操:控制单个包厢的设备

假设现在用户在系统里下单了,选了“888包间”,系统需要自动打开这个房间的“总电”和“麻将机”。

  • 设备ID123456(请替换成你的真实ID)

  • 指令:打开第1路(麻将机)、第2路(照明)

请求地址https://api.thingboot.com/{你的AppID}/device/control/?sign={你的Sign}&ts={当前时间戳}

请求体(JSON格式)

参考文档:HTTP API控制部分

3.3 场景进阶:一键全开、全关与定时

第一种场景:保洁阿姨打扫卫生保洁需要一个总开关。如果发两个命令太麻烦,可以用批量控制,只要发一条 {"power1":0,"power2":0,"power3":0,"power4":0} 就能把所有设备都关了

第二种场景:自动断电(延时断电功能)假设用户续费失败或者时间到了,你是直接断电吗?那样太粗暴了(麻将机直接断电容易坏,而且突然黑灯顾客会骂人)。使用“先通后断”功能(即 点动模式)。

  • 命令示例:{"point1": 3000}(先接通第1路,维持3000毫秒(即3秒)后自动关闭)

逻辑:顾客时间结束时,先发一个语音提醒,然后如果要强制断电,可以使用“先断后通”功能,确保彻底切断。更优雅的做法是:先关麻将机电源,但保留照明电源2分钟,方便顾客收拾东西离开。

第三种场景:指定时间开关(预约与定时)

你不需要自己在服务器上写 Cron 定时任务那么麻烦,因为控制箱支持定时任务自定义联动操作

用户在前端预约晚上8点的包间时,后台可以直接调用接口(或者下发一个定时配置)给设备:

  • 预约开:2023-10-01 20:00:00,执行 {"power1":1, "power2":1}

  • 预约关:2023-10-01 23:00:00,执行 {"power1":0, "power2":0}

设备本身的固件里有一个时钟,到了那个点它自己就会动作。这样即使你的服务器关机了,或者网络波动了一下,设备到了时间点该断电还是会断电,这比依靠云端定时要可靠得多。

4. 共享棋牌室业务逻辑实战

我们把代码串起来,看看在真实的共享棋牌室软件系统里是怎么跑的。

用户端小程序/APP操作流程

  1. 用户下单:用户付了2小时费用。

  2. 系统后台:收到支付回调。

  3. 调用控制接口

    • 发送 {"power1":1, "power2":1, "power3":1} (打开麻将桌、空调、主灯)。

    • (可选)记录当前时间,设置一个2小时后的定时关任务。如果你不想处理复杂的定时逻辑,也可以自己在服务器上启动一个延迟线程或队列,2小时后发关指令

  4. 异常处理:如果设备离线或指令下发失败(API返回非200),后台需要记录日志并尝试重试。比较稳妥的做法是:开关灯之前先去查一下设备状态,确认设备在线再发指令。

  5. 用户续费:用户在手机上点续费1小时。后台收到续费单后,延长关闭的时间,或者什么都不用做(如果用的是设备自带的定时,需要重新下发一次定时覆盖之前的;如果用的是服务器轮询,则重置计时器)。

保洁/清场逻辑用户离开现场时后,系统其实已经切断了电源。但为了保险,可以设置一个场景:“清场模式”。发一个指令:{"power1":0, "power2":0, "power3":0, "power4":0}(确保所有线路都关了)

5. 常见坑点与避坑指南

在实际开发对接过程中,有几个地方容易踩坑,我在这里提前给大家提个醒:

  1. 感性负载问题麻将机和空调都属于感性负载,启动瞬间电流很大。文档里提到感性负载单路最好不要超过 350W。如果是大3匹的空调,直接接在8路控制器上容易烧触点。所以一定要加交流接触器——用小电流(控制箱)控制大电流(接触器线圈),再用接触器去带空调。

  2. 网络稳定性这个控制器是通过 2.4G WiFi 联网的。棋牌室环境复杂,墙多,路由器一定要好。如果WiFi信号不好,设备会掉线,你就控制不了灯了。每个包间尽量保证信号覆盖,或者采用 Mesh 组网。

  3. 接口返回200不代表电器真的亮了芯步的接口返回200,代表“指令平台收到达标了”,不代表“灯泡真的亮了”。如果设备掉线了,指令是下不去的。所以,如果你的系统对状态要求很高(比如远程查看灯到底亮没亮),你需要做一个“读状态”的接口(查询设备属性)来二次确认,或者在界面提示用户“指令已下发”。

  4. 区分“断电”和“断网”如果用户反映“灯怎么不亮了”,有可能是他点了关闭,也有可能是WiFi断了,控制箱没收到开灯指令。在小程序界面上,不仅显示开关状态(系统记录的状态),最好能显示一个“设备在线/离线”的标志,方便用户排查。

6. 总结

将芯步的8路智能分体控制箱集成到共享棋牌室项目中,技术门槛其实不高,核心就三步:

  1. 接线:请电工师傅按图接好线,分清哪路接什么设备。

  2. 抄参数:去芯步后台复制 AppID、AppSecret 和设备ID。

  3. 调接口:在你的后端代码里,对着文档用 HTTP POST 发 JSON 请求,参数就是 power1power2 配合 01

搞定这三步,你的软件就能控制墙壁里的电流了。祝各位老板项目顺利,生意兴隆!