共享棋牌室的无人化管理,痛点在于如何通过一套系统同时控制多个包间的灯光、麻将机、空调等设备。芯步的8路控制器提供了开放的HTTP API接口,可以让你的SaaS平台直接下发指令,实现对每个包间电路的独立通断控制。
1. 背景与概述
在共享棋牌室(无人值守自助棋牌室)的运营场景中,管理者通常面临包间多、设备杂、计费难的痛点。为了实现真正的“无人值守”,必须将包间内的灯光、麻将机、空调、排风扇等设备纳入统一的物联网控制系统。
芯步智能8路分体远程线路管理控制箱(以下简称“8路控制器”)是一款集成8路继电器输出的工业级控制设备。本方案的目标是指导开发者如何利用该设备的开放接口(API),将其无缝对接到现有的共享棋牌室管理系统(SaaS后台/小程序),实现设备远程控制、状态监控与自动化计费联动。
2. 对接设计
为了确保系统的稳定性与响应速度,采用 “用户端小程序/后台 -> 业务服务器 -> 芯步云平台 -> 8路控制器” 的经典物联网三层架构。
应用层:你的共享棋牌室管理后台及小程序。负责业务逻辑(如订单生成、会员管理)。
云平台层:芯步开放平台 API。作为中间件,负责指令下发和设备状态转发。
设备层:安装在每个包间电箱内的8路控制器。直接控制麻将机、照明、插座等电路的通断。
注:该设备支持HTTP协议请求,不限制接入终端类型(Web、APP、小程序均可)。
3. 核心对接流程与接口实现
3.1 设备初始化与接入
在将控制箱安装进电箱前,需要在你的后台系统录入设备。
获取设备唯一标识:每个控制箱外壳或控制台有一个唯一的
Device ID(设备ID)。绑定与入库:将
Device ID录入你的后台数据库,并与具体的“包间号”和“线路用途”进行绑定。
3.2 指令下发接口(核心功能)
这是整个解决方案的核心模块。当用户在手机端下单或点击“开灯”时,系统需调用此接口。
接口地址
http(s)://api.thingboot.com/{AppID}/device/control/请求方式
POST(推荐,参数较长时) 或GET核心参数说明
device:之前在后台录入的设备ID。order:控制指令(JSON字符串)。这是对接的关键点。
实战示例共享棋牌室的包间通常需要独立控制麻将机(线路1)、照明灯(线路2)、空调(线路3)、排风扇(线路4)。
第一种场景:用户下单成功,自动通电当用户支付成功后,需自动开启线路1、2、3、4。
第二种场景:订单时间结束,自动断电必须切断所有设备的电源,防止超时占用。
第三种场景:单路精细控制(如客户只开灯)在订单进行中,若需单独关闭麻将机(线路1),保留照明。
3.3 线路映射与逻辑配置
针对“8路分体”的特性,在项目中建立枚举类或配置表,以适配不同包间的硬件接线差异。
| 物理线路 (Relay) | 推荐控制设备 | 业务逻辑说明 |
|---|---|---|
| 线路 1 | 麻将机插座 | 核心计费项:订单开始供电,订单结束断电。 |
| 线路 2 | 主照明 | 可随订单自动开启,或由用户在界面上单独控制(如呼叫服务)。 |
| 线路 3 | 空调 | 为节能考虑,部分方案仅在用户开启“空调开关”按钮时通电。 |
| 线路 4 | 排风扇 | 推荐联动订单:订单开始即排风,结束关闭。 |
| 线路 5 | 副照明/氛围灯 | 单独控制。 |
| 线路 6-8 | 路由器/收银机电源 | 常开:为了保证系统在线,此类设备需常通,甚至不接入控制器。 |
3.4 订单计费与设备联动的状态机设计
为了避免因网络延迟导致计费纠纷,在业务服务器设计状态双重验证机制:
用户下单:后台调用接口开启线路1/2/4。
开始计时:调用成功后,在数据库中启动订单倒计时。
订单结束
触发点A:用户主动点击“退单/结束”。
触发点B:系统倒计时归零。
执行动作:调用接口
{"power":0}切断所有继电器。冗余保护:服务器调用接口后,必须记录操作日志。若设备离线(API返回200但设备未实际动作,因为设备可能离线),后台应标记异常订单,待设备上线后补偿指令或人工介入。
3.5 批量管理(多包间/门店)
如果你运营的门店拥有几十个包间,需要用到“批量控制”。
拼接设备ID:接口支持
,或|连接多个设备ID。例如device参数值为10001,10002,10003。全局急停:当遇到消防警报或紧急情况,可设计一个“全场断电”按钮,一次性向所有包间的控制箱下发
{"power":0}指令。注意限制:一次请求最多支持100台设备,超过需分批发送。
4. 高级功能扩展
4.1 异步状态同步
HTTP接口的200返回码仅代表指令被平台接收,不代表设备真的执行成功。为了获取真正的设备状态(例如:是该线路实际是开还是关),你需要使用消息推送机制。配置你的服务器接收Webhook回调,当继电器吸合或断开时,芯步平台会主动推送状态变更,你可以借此在前端显示“空调已开启”的实时状态反馈。
4.2 场景自动化
预约预开:用户通过小程序预约19:00的包间。系统可在18:58自动下发指令开启空调,提前制冷,提升用户体验。
超时提醒与延时:订单结束前5分钟,系统可以调用接口 不动作,而是发送微信提醒。若用户选择“续费”,则调用接口刷新订单时长,无需操作继电器(保持通电);若用户不续费,时间到则执行断电。
5. 常见问题与排障
指令下发成功(Code 200),但麻将机没反应?
排查:查看你传入的
order参数是否正确(例如继电器编号1-8是否对应你接线的位置)。原因:设备可能处于离线状态,或指令格式中
power1的值传成了字符串"true"而非"1"。
全关功能无效?
排查:检查是否误传了
{"batch":{"power":0}}。实际上,根据技术文档,{"power":0}才是标准全关格式。
如何实现“先断电复位再通电”?
针对麻将机这种设备,单纯的断电可能无法触发复位。可以利用 先断后通(Reset) 指令:
{"reset":{"relay":[1],"interval":500}},这会让线路1先断开,等待500毫秒后再自动通电,实现麻将机的复位。
6. 总结
通过对接芯步的8路控制箱接口,你的共享棋牌室项目能够实现低成本、高可靠的电路级控制。开发者核心工作流总结如下:
硬件安装:在电箱内安装设备,将麻将机、灯等线路接入对应的1-8号继电器端口。
ID注册:在芯步后台获取 Device ID。
代码对接:在现有项目代码中,封装一个
controlRelay(deviceId, relayNum, action)函数,即调用http(s)://api.thingboot.com/.../control/接口。业务绑定:在支付回调或订单状态变更处,调用该函数。
本方案适配微信小程序、公众号网页、Android/iOS App 及任何支持 HTTP 请求的编程环境,能够完整解决共享棋牌室的无人值守难题。