CATALOG

共享麻将馆场景中,传统86型开关如果直接替换为智能开关,物理按键状态与软件状态容易不同步,用户体验会很割裂。下面这套方案的核心思路是:保留用户习惯的物理按压手感,同时让软件能实时感知并按需覆盖按键状态。

1. 背景与分析

在共享麻将馆的无人值守模式中,远程控制门禁和灯光是刚需。然而,市面上的普通智能墙壁开关(触控式)往往让习惯传统机械手感的用户(尤其是中老年麻友)感到困惑,容易导致误操作。痛点

  1. 状态同步:物理开关断电后,软件端状态显示滞后,导致下一轮客人无法预约或系统误判。

  2. 双控逻辑:用户手动关灯后,软件需能再次开灯;反之,软件关灯后,用户需能手动开灯。

  3. 安装空间:86型暗盒体积小,需容纳强电与通信模块。

解决思路我们将保留用户熟悉的86型3位大翘板开关(复位式或自锁式),将其接入芯步生态的WiFi通断器或IO模块,利用其开放的HTTP API实现软件与硬件的双向“状态同步”。

2. 硬件选型与连接拓扑

为了实现“翘板开关手感”与“软件控制”,需要对电路进行改造。传统翘板开关通常是一个自锁电路,直接切断电源,这会导致模块掉线。

2.1 硬件清单

  • 86型3路翘板开关:选择复位式(自复位) 翘板开关。这种开关按下后自动弹回,输出一个瞬间的通断信号,而不是永久切断电源。这能保证智能模块始终通电在线

  • 核心控制模块:推荐使用芯步兼容的 3路 WiFi继电器模块干接点转WiFi模块(如基于ESP8266的方案)。

    • :市面上已有专为86盒设计的超小尺寸模块(如55*40mm),可直接塞入暗盒中

  • 强电负载:麻将桌插座、LED照明灯带(需注意继电器安倍数,10A以上)

2.2 物理接线逻辑

  1. 供电:零火线接入模块,为模块提供220V供电和WiFi芯片工作电压(通常是3.3V/5V,通过AC-DC模块转换)

  2. 输入接口:将86型开关的3路信号线连接到模块的GPIO输入引脚

    • 关键点:开关按下瞬间,GPIO电平变化触发中断,模块向服务器发送“手动按下”的事件包

  3. 输出接口:模块的继电器引脚负责控制灯和门禁的通断。

3. 软件对接技术实现

芯步的开放接口基于 HTTPWebSocket 协议,支持设备上报状态和控制指令下发

3.1 核心工作流:状态同步机制

解决“翘板开关”与“软件状态”不同步的关键在于 “状态主动上报”

第一步:设备注册与初始化模块通过WiFi连接网络后,向芯步云平台发送注册包,携带device_id(设备唯一ID)。

第二步:物理开关触发(手动场景)

  1. 用户按下86型开关(如“照明”路)。

  2. WiFi模块检测到对应GPIO电平由低变高。

  3. 模块主动调用芯步的 HTTP 接口 上报当前状态:

    • 请求地址POST http(s)://api.thingboot.com/{AppId}/device/data

    • 数据包

  4. SaaS后台接收到此消息,更新数据库中的灯状态为“1”。

第三步:远程操作场景(软件端)

  1. 用户在(小程序/管理后台)点击“开灯”。

  2. 后台向芯步API下发指令:

    • 请求地址POST http(s)://api.thingboot.com/{AppId}/device/control/?sign={签名}

    • 数据包{"device":"xxx","order":{"channel_1":1}}

  3. 云平台将指令推送给设备(通过MQTT/HTTP),设备执行继电器吸合。

    • 注意:此时虽然软件状态是“开”,但物理翘板此时可能是“关”位(因为它是自复位或未归位)。但在下一轮操作中,用户依然可以按压物理开关,此时模块会再次将状态反转,确保软件同步。

3.2 针对门禁的联动逻辑(高阶)

共享麻将馆通常需要“订单开始才通电,订单结束断电”。

  1. 人体传感器联动:在门口安装芯步的智能人体存在传感器。当传感器探测到有人且门锁处于预约状态时,自动调用API点亮走廊灯

  2. 总控逻辑

    • 用户下单 -> SaaS系统 -> 调用/device/control -> 门禁解锁 + 房间总闸(3路中的第一路)闭合。

    • 用户离开现场时(点击退租/超时) -> 调用/device/control -> 总闸断开(照明/麻将机断电),但保留门禁模块供电。

4. API 接口调用示例

以下是一个典型的对接流程,基于芯步开放平台规范

4.1 查询设备当前状态

在软件启动时,需轮询或订阅设备当前状态以确保界面一致。请求示例

返回示例

4.2 下发控制指令

用于后台强制控制或订单结束时的联动。请求示例

注:参考芯步雷达传感器的命令格式,控制线路通断的关键字段为power

4.3 消息推送接收

为了实现实时性,你的服务器需要暴露一个接收地址。当物理开关被按下时,平台会向该地址推送消息。

  • 接收示例:平台POST数据到你的https://yourdomain.com/iot/callback

  • 数据内容

5. 落地实施关键点与排障

5.1 自锁开关 vs 自复位开关

  • 错误做法:使用传统的自锁式翘板开关(按下后陷进去卡住)。

    • 后果:如果软件把灯关了,但物理开关还在“开”的位置,用户手动去关时,必须按“关”,但此时物理开关位置和实际通断相反,逻辑混乱。

  • 正确做法:使用自复位开关(像门铃一样按下去弹回来)。

    • 逻辑每次按压切换当前状态。无论物理键在哪里,按一次,灯如果亮就灭,如果灭就亮。这样用户体验最好

5.2 散热与安装尺寸

  • 散热:WiFi模块在86暗盒内工作时发热,尤其是驱动继电器控制麻将桌这类大功率设备时。控制电流不超过3A/路,或使用固态继电器以减少发热

  • 天线:金属暗盒对WiFi信号屏蔽严重。选择模块时,优先选择带有外置天线(通过面板缝隙伸出)或陶瓷天线的版本,避免掉线。

5.3 断网应急预案

共享麻将馆不能依赖远程,需设计“离线模式”。

  • 在WiFi模块的固件中设置逻辑:一旦心跳包检测到与云端断开,自动切换为本地直连模式。此时,86型翘板开关依然能控制继电器,但软件端状态需等待网络恢复后再同步。

6. 总结

将“86型3路翘板开关”对接到芯步的软件项目中,本质是将物理触点信号转换为API事件

  1. 硬件层:牺牲掉传统的強切自锁功能,改用自复位开关 + WiFi通断器塞入86盒。

  2. 数据层:利用芯步的/device/control消息推送接口,建立起软件与硬件的双向心跳

  3. 体验层:实现了“老人会用机械键,年轻人会用手机端”的无差别覆盖,且状态永远保持一致。

通过这种方案,你的共享棋牌室SaaS可以完美适配市面上绝大多数标准86型面板,既保留了装修的美观统一,又实现了无人化控制的稳定性。