CATALOG

共享棋牌室的无人化管理,痛点在于如何通过一套系统同时控制多个包间的灯光、麻将机、空调等设备。芯步的8路控制器提供了开放的HTTP API接口,可以让你的SaaS平台直接下发指令,实现对每个包间电路的独立通断控制。

1. 背景与概述

在共享棋牌室(无人值守自助棋牌室)的运营场景中,管理者通常面临包间多、设备杂、计费难的痛点。为了实现真正的“无人值守”,必须将包间内的灯光、麻将机、空调、排风扇等设备纳入统一的物联网控制系统。

芯步智能8路分体远程线路管理控制箱(以下简称“8路控制器”)是一款集成8路继电器输出的工业级控制设备。本方案的目标是指导开发者如何利用该设备的开放接口(API),将其无缝对接到现有的共享棋牌室管理系统(SaaS后台/小程序),实现设备远程控制、状态监控与自动化计费联动

2. 对接设计

为了确保系统的稳定性与响应速度,采用 “用户端小程序/后台 -> 业务服务器 -> 芯步云平台 -> 8路控制器” 的经典物联网三层架构。

  • 应用层:你的共享棋牌室管理后台及小程序。负责业务逻辑(如订单生成、会员管理)。

  • 云平台层:芯步开放平台 API。作为中间件,负责指令下发和设备状态转发。

  • 设备层:安装在每个包间电箱内的8路控制器。直接控制麻将机、照明、插座等电路的通断。

注:该设备支持HTTP协议请求,不限制接入终端类型(Web、APP、小程序均可)

3. 核心对接流程与接口实现

3.1 设备初始化与接入

在将控制箱安装进电箱前,需要在你的后台系统录入设备。

  1. 获取设备唯一标识:每个控制箱外壳或控制台有一个唯一的 Device ID(设备ID)

  2. 绑定与入库:将 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. 用户下单:后台调用接口开启线路1/2/4。

  2. 开始计时:调用成功后,在数据库中启动订单倒计时。

  3. 订单结束

    • 触发点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. 硬件安装:在电箱内安装设备,将麻将机、灯等线路接入对应的1-8号继电器端口。

  2. ID注册:在芯步后台获取 Device ID。

  3. 代码对接:在现有项目代码中,封装一个 controlRelay(deviceId, relayNum, action) 函数,即调用 http(s)://api.thingboot.com/.../control/ 接口。

  4. 业务绑定:在支付回调或订单状态变更处,调用该函数。

本方案适配微信小程序、公众号网页、Android/iOS App 及任何支持 HTTP 请求的编程环境,能够完整解决共享棋牌室的无人值守难题