CATALOG

共享棋牌室的设备控制核心难点在于:一个包间内通常有麻将机、空调、照明、门锁等多路设备,需要独立控制而非简单全开全关。芯步24路控制器正好解决这个需求——每路独立继电器,通过HTTP API即可精确控制。以下方案涵盖接口对接、签名算法、业务场景等关键环节。

1. 解决概述

在共享棋牌室(无人值守自助棋牌室)的运营场景中,对包间内各类电器(照明、麻将机、空调、通风扇、门禁锁等)进行远程、精准、实时的电源控制是痛点。

本方案的目标是解决如何将 芯步【智能通用控制器|24路】 高效对接到您的现有软件项目(如小程序、SaaS后台、APP)中。该硬件支持 HTTP API 接口,通过标准的网络请求,可实现24路通道的独立通断控制、批量控制及场景联动。

适用场景

  • 共享棋牌室/茶室:控制包间内麻将桌电源、空调、排风扇、氛围灯带。

  • 分时租赁空间:计时收费自动通断电,用户下单后自动开启,超时自动断电。

  • 集中管理:后台统一管理多个房间的用电设备状态。

核心技术优势

  • 无需网关:设备直连WiFi 2.4G,降低部署成本。

  • 接口开放:纯HTTP通信,兼容所有主流编程语言(Java, Python, PHP, Node.js, Go)。

  • 私有化部署:支持局域网/IP直连,数据安全可控

  • 高负载能力:支持单路最大2200W阻性负载,总负载4400W,可直接接入麻将机(感性负载约350W)和1.5匹空调

2. 硬件设备参数与接口定义

在对接前,需明确硬件的逻辑结构与API映射关系。

2.1 设备基础信息

  • 产品型号:UNI-KZQ-TY-24

  • 控制路数:24 路(继电器输出)

  • 工作电压:DC 12V 2A

  • 网络协议:WiFi 802.11 b/g/n 2.4GHz

  • 核心接口协议:HTTP API / 支持签名鉴权

2.2 电气特性映射表

注意:对于麻将机(电机类负载,属于感性负载),请请一定要核实启动电流,单路负载不超过350W以确保稳定性。

逻辑通道推荐控制设备命令Key说明
线路 1照明灯带power1阻性负载,开关响应快
线路 2换气扇/排烟power2阻性负载
线路 3麻将机电源power3混合负载,直接控制插座通断
线路 4空调(两匹)power4通过交流接触器连接大功率空调
线路 5饮水机power5阻性负载
.........最多支持24路
线路 24门磁/辅助power24信号输出或低功率负载
全线路一键全关batch清理房间时的快捷操作

3. 详细技术对接步骤

芯步的API采用动态签名鉴权,以下是具体的对接逻辑。

3.1 鉴权流程与签名算法

所有API请求都需要通过动态签名验证,防止接口被恶意篡改

核心逻辑:

  1. 准备参数AppID(应用ID)、AppSecret(开发者密码)、ts(当前Unix时间戳秒)。

  2. 生成签名 (Sign)公式为:Sign = md5( md5(AppSecret) + ts )

    • 第一步:计算 S1 = md5(AppSecret)

    • 第二步:计算 Sign = md5( S1 + ts )

不同语言的代码实现示例:

Python 实现:

Java 实现:

3.2 对接核心 API:控制单路设备

这是项目中最常用的功能,例如用户在小程序点击“开灯”。

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • 请求方式POST

  • HeaderContent-Type: application/json

  • URL参数

    • sign: 上一步计算的值

    • ts: 时间戳

  • Body 示例

  • Curl 命令示例

3.3 高级指令:批量控制与场景联动

棋牌室场景下,用户结束订单时需一键关闭所有设备(麻将机、空调、灯),可调用批量指令 batch 接口,无需循环调用24次HTTP请求

批量全关请求体示例:

3.4 状态同步与事件监听

作为共享棋牌室系统,您关心的是用户下单自动通电超时自动断电

  • 主动查询:调用 device/status 类接口获取当前各路开关状态(用于控制台展示)。

  • 被动接收:芯步平台支持 "消息推送" 功能,当设备状态变化时,平台会主动向您的服务器地址推送消息。配置此功能以确保数据库中的设备状态与实际物理设备实时同步

4. 软件项目落地架构

4.1 业务逻辑流程设计

将对接封装为 PowerControlService 服务层,在您的业务代码中这样调用:

  1. 用户预定/下单

    • 前端请求 -> 后端业务逻辑(检查订单有效性) -> 调用硬件接口:为该房间的设备通电 (power3=1, power1=1)。

  2. 用户开场/使用中

    • 心跳保持:根据订单剩余时间,不做干预或闪烁提醒(调用TTS语音模块,如支持)。

  3. 用户点击“结束”/超时

    • 后端验证 -> 若超时已发生 -> 调用硬件接口:全关 (Batch 命令 power=0) -> 更新设备状态 -> 结算。

4.2 代码架构

在项目中创建统一的 Device Gateway (设备网关层)

4.3 异常处理与重试机制

  1. 网络抖动:由于WiFi环境的不稳定性,HTTP请求可能超时。请在代码中实现 随机间隔(或逐次增大间隔)重试(最多3次)。

  2. 设备离线:当调用API返回 device offline 错误时,您的软件应在前端提示“设备不在线,请联系管理员”,并触发警报机制。

5. 共享棋牌室典型场景实战:动态电源控制流程图

以下是完整的交互流程,展示了从用户下单到设备上电的全链路数据流:

sequenceDiagram
    participant User as 微信小程序/用户
    participant Backend as 您的业务服务器 (Go/Java/PHP)
    participant YoyoAPI as 芯步开放API
    participant Device as 智能通用控制器24路
    participant Load as 包间电器 (灯/麻将机)

    Note over User, Load: 1. 用户下单与准备阶段
    User->>Backend: 请求开单/预定包间
    Backend-->>Backend: 生成订单,支付校验
    
    Note over Backend, Device: 2. 硬件控制指令下发
    Backend->>Backend: 生成动态Sign签名
(md5(md5(AppSecret)+ts)) Backend->>YoyoAPI: POST /device/control
{power1:1, power3:1} YoyoAPI->>Device: 通过WiFi透传指令 Device->>Load: 继电器吸合,220V通电 Load-->>User: 照明亮起,麻将机通电待机 Note over Backend, User: 3. 计费中与定时巡检 loop 每分钟巡检 Backend->>Backend: 比对订单剩余时长 alt 剩余5分钟 Backend->>YoyoAPI: 可选:调用TTS语音播报提醒 YoyoAPI-->>Device: 播报"余额不足,请续费" end end Note over Backend, Load: 4. 订单结束,断电解约 User->>Backend: 请求结束订单 Backend->>YoyoAPI: POST /device/control
batch command (全关) YoyoAPI->>Device: 断开所有回路 Device->>Load: 切断电源(灯灭/麻将机停) Backend-->>User: 订单结算完成,欢迎下次光临

6. 常见问题与解决方案

Q:24路控制器全都用来控制插座,怎么接门锁?A:24路控制器输出的是12V/220V信号。如果门锁是12V直流,可直接接其中一路;如果是磁力锁(需断电开锁),可利用控制器的“常闭/常开”触点逻辑来控制门禁电源。

Q:如何确保超时断电的绝对准确性?A:由于采用HTTP请求,网络延迟可能导致秒级误差。策略:软件层(订单到期立即发指令) + 硬件层(利用控制器自带的“定时任务”功能,在云端设置一个绝对时间点的备用断电指令)。

Q:能不能对接语音播报?A:虽然24路控制器本身主要做电源控制,但芯步生态中拥有智能语音喇叭。您可以在用户开门时,额外调用一次语音API接口:{"play:gbk:16":"欢迎光临,X号包间"}。您的软件项目可以同时对接电源控制器和语音设备,实现视听觉一体化。

Q:是否必须走公网?没有网络怎么办?A:该设备支持局域网通信。如果您的棋牌室内部署了本地服务器,可以将API请求指向设备的本地IP(在设备联网设置中开启局域网控制),实现纯内网控制,速度更快且不依赖外网

7. 结论

将芯步24路智能分体远程电源控制器对接到共享棋牌室软件项目中,本质上是通过 HTTP 协议进行 RESTful API 调用的过程。开发者只需处理好 动态MD5签名生成业务状态机(订单状态 -> 通电/断电)的映射,即可在1-2天内完成核心功能的开发。

该方案不仅解决了传统布线的复杂性,依托其24路独立控制和开放的API体系,还能为您未来增加按摩椅、空气净化器等增值服务提供充分的扩展空间。