CATALOG

共享棋牌室的灯光控制是用户体验的关键环节——用户下单后灯光应自动通电,订单结束则自动断电。芯步的2路智能触摸开关通过开放HTTP接口,可以无缝接入现有棋牌室管理系统,无需额外网关。下面详细说明如何完成对接。

解决方案:共享棋牌室灯光控制——将芯步2路智能触摸开关接入自有系统

一、 准备工作

在开始编码之前,需要完成硬件选型、环境配置与设备配网。这是后续所有API调用成功的基础。

1. 硬件选型与参数

  • 硬件芯步 智能墙壁触摸开关2路 (型号:UNI-KG-CM-2)

  • 关键特性

    • 双路控制:该开关包含两路继电器(线路1和线路2),可独立控制两个灯组(例如:“麻将桌主灯”和“休闲区灯带”)。

    • 无需网关:设备直连2.4G WiFi,降低共享棋牌室的硬件成本和故障点

    • 接口开放:提供标准的HTTP API接口,只要你的系统能发出HTTP请求,就能控制它

2. 环境与账户准备

  • 注册账号:访问芯步官网注册开发者账号。

  • 获取密钥:登录后进入工作台,在“物联网控制台” -> “开发设置”中获取 AppIDAppSecret。这两个参数是生成签名的凭证

  • 配网:使用微信小程序“芯步”或电脑控制台,将开关连接到棋牌室的2.4G WiFi网络中。配网成功后,你会在控制台看到设备生成的唯一 Device ID(设备ID)

二、 接口对接核心逻辑

芯步的API采用双重MD5加密机制。共享棋牌室的系统(如PHP、Java、Python、Node.js等)需在服务端生成签名,向指定URL发起POST请求

1. 请求地址与签名算法

  • 请求URLhttps://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

  • 签名生成步骤(关键)

    1. 将你的 AppSecret 进行一次MD5加密,得到 Secret_MD5

    2. 获取当前Unix时间戳(秒)作为 ts

    3. 拼接字符串:Secret_MD5 + ts

    4. 将拼接后的字符串再次进行MD5加密,得到最终的 sign

  • Python代码示例验证

2. 下发控制命令

  • 请求头Content-Type: application/json

  • 请求体参数

    • device:你的设备ID。

    • order:指令JSON。

第一种场景:用户下单成功(开启灯光)

当用户在共享棋牌室小程序支付成功后,系统自动调用接口打开该包间的所有灯。

注:power1 对应开关上的“线路1”,power2 对应“线路2”

第二种场景:订单计时结束 / 用户点击“结束”(关闭灯光)

订单结束或超时未续费,系统自动切断电源。

第三种场景:临时单独控制(如清洁模式)

保洁人员在打扫时,只需要开灯不用开麻将机。可以通过管理后台单独开关某一路。

三、 进阶联动:结合传感器实现“人走灯灭”

这是共享棋牌室降低电费的关键。结合芯步的传感器,可以实现自动化控制

1. 硬件组合

  • 智能墙壁触摸开关2路 (执行端)。

  • 智能人体存在雷达传感器 (感应端)。

2. 工作机制

  • 消息推送:设置雷达传感器的回调URL指向你的服务器。

  • 逻辑判断

    • 当传感器上报 {"status": "unoccupied"} (无人)超过15分钟。

    • 你的系统检查该房间订单状态是否为“空闲”或“已结束”。

    • 执行动作:调用开关接口发送 {"power1": 0, "power2": 0}

    • 防呆设计:若订单进行中,即使传感器检测到无人(比如客人去上厕所),系统也应忽略关闭指令,避免误判。

3. 状态同步(Status Sync)为了防止APP与设备实际状态不同步(例如客人手动按了开关),芯步支持状态上报。你需要配置一个用于接收设备当前状态的回调接口,当开关被人手动触摸时,它会主动上报当前状态到你的服务器,你可以据此更新数据库中的状态并推送给小程序前端。

四、 实战演示:对接工作流时序图

下面这幅图清晰地展示了从用户操作到最终灯光亮起的完整数据流转过程:

sequenceDiagram
    participant User as 微信小程序用户
    participant Server as 棋牌室后端系统
    participant YoyoAPI as 芯步云API
    participant Switch as 智能触摸开关

    User->>Server: 1. 下单支付成功
    Server->>Server: 2. 生成签名 (AppSecret + ts)
    Server->>YoyoAPI: 3. POST /device/control/ (设备ID + {power1:1, power2:1})
    YoyoAPI-->>Server: 4. 返回 {"code":0, "msg":"success"}
    Server-->>User: 5. 页面显示"灯光已开启"
    
    YoyoAPI->>Switch: 6. 推送给设备(MQTT/HTTP)
    Switch->>Switch: 7. 继电器吸合,灯亮了

五、 常见问题与避坑指南

在接入过程中,你可能会遇到以下三个典型问题:

  1. 签名错误(Invalid Sign)

    • 原因:绝大多数是时间戳 ts 与服务器时间相差超过1分钟,或者拼接顺序错误。

    • 解决:确保服务器时间是北京时间(NTP同步),严格按照 md5(md5(AppSecret) + ts) 顺序执行。

  2. 设备离线(Device Offline)

    • 原因:棋牌室WiFi信号弱或不稳定。该产品仅支持2.4G频段。

    • 解决:在路由器中将此频段的WiFi名称(SSID)与5G频段区分开;若信号差,需增加WiFi信号放大器。

  3. 私有化部署(局域网)

    • 场景:棋牌室要求断外网也能本地控制。

    • 方案:芯步支持私有化部署。如果你的系统也部署在本地局域网,可以指定请求发送到局域网内的消息服务器地址,而非公网API

通过以上步骤,开发人员可以在2-3小时内完成从注册、配网到代码集成的全过程,快速为共享棋牌室项目落地稳定、响应快速的灯光控制解决方案。