一、背景与需求分析
共享麻将馆作为无人值守场景的典型代表,核心运营痛点在于:如何在用户在线下单后,自动授予其进入包间的权限,并在订单结束后及时断电锁门,防止超时占用。这要求门禁信号能够与订单状态、电器控制实现实时联动。
芯步的智能硬件产品提供完全开放的HTTP接口,支持开发者对设备进行远程控制和自定义逻辑编程。本方案将重点解决“门禁信号如何与智能设备对接,以实现自定义联动逻辑控制”这一技术问题。
二、硬件选型与接口特性
要实现门禁与麻将馆内电器的联动控制,选用以下两款核心设备:
2.1 智能包间控制器(核心控制单元)
这是共享麻将馆的主控设备,安装在每个包间内,具备以下接口能力
门禁控制(关键):提供1路专用门禁电磁锁接口,可接直流电磁锁或电插锁
电器控制:共7路输出(1路30A空调接口 + 3路10A开关 + 2路10A插座接口),可独立控制麻将机、空调、照明、排风扇、饮水机等
语音播报(TTS版):支持远程语音播报,可用于订单提醒、倒计时通知等
总额定功率:6600W,覆盖包间全部用电需求
2.2 智能密码门禁/出门开关(可选方案)
如果只需单独控制门禁,可选用此类设备:
智能密码门禁:支持远程设置密码、删除密码,用户可通过输入密码开门
智能墙壁出门开关:直接控制电磁锁通断电,支持定时自动复位
2.3 接口通用特性
芯步所有智能硬件均提供统一的HTTP接口调用方式
| 特性 | 说明 |
|---|---|
| 请求方式 | POST |
| 请求地址 | http(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts} |
| 数据格式 | JSON |
| 响应时间 | 80-120ms |
| 接口开放程度 | 永久免费,支持私有化部署 |
三、接口对接基础:签名认证机制
在开发自定义联动逻辑前,需要先完成接口认证。所有请求必须携带签名(sign)和时间戳(ts)。
签名生成规则
sign = md5( md5(AppSecret) + ts )
其中:
AppSecret:开发者密码,在芯步控制台获取ts:当前Unix时间戳(秒,10位数字)
接口调用示例结构
四、门禁信号自定义联动的核心实现
4.1 联动逻辑架构图
用户下单(小程序/APP)
↓
业务服务器接收订单
↓
调用芯步API → 控制门禁线路通电(开门)
↓
用户进入包间
↓
订单倒计时开始
↓
【自定义联动逻辑层】
├── 提前5分钟 → 调用语音播报API(提醒续费)
├── 订单结束 → 调用门禁断电 + 麻将机断电
└── 超时未续费 → 再次调用门禁断电 + 推送告警4.2 第一种场景:用户下单后自动开门
业务逻辑:用户在线支付成功后,业务服务器自动向智能包间控制器发送开门指令。
关键命令:使用reset或point命令控制门禁线路短暂通电
命令说明
reset表示“先断后通”——先将指定线路断电(门锁打开),间隔指定毫秒后自动恢复通电(门锁吸合)。
4.3 第二种场景:订单结束自动锁门断电
业务逻辑:用户订单时间耗尽,业务服务器自动关闭包间内所有电器并锁门。
关键命令:批量控制多条线路
4.4 第三种场景:倒计时语音提醒(TTS版)
业务逻辑:距离订单结束还有5分钟时,自动触发语音播报。
关键命令:语音播报
可调节的音色参数
| 参数 | 命令示例 | 取值范围 |
|---|---|---|
| 音量 | {"volume":"5"} | 0-9 |
| 语速 | {"speed":"5"} | 0-9 |
| 音色 | {"voice":"1"} | 0=女声,1=男声 |
4.4 场景四:通过密码门禁实现自助开门
采用智能密码门禁时,用户可输入订单生成的临时密码开门。
设置密码命令
删除密码命令(订单结束后自动清除):
五、高级自定义联动逻辑
5.1 防占用的自动复位逻辑
场景:用户开门后长时间未进入,或超时未离开。
方案:利用设备内置的定时功能,无需服务器持续轮询。
设备支持
reset和point命令直接在硬件层面完成定时动作,无需依赖云服务器。
5.2 空调与门禁的联动节能
场景:用户开门时自动开启空调,锁门时自动关闭空调。
实现的方式是:在业务服务器中定义联动规则:
5.3 多设备协同控制(多包间场景)
对于拥有多个包间的棋牌室,业务服务器需要管理多个设备ID。
批量控制示例
5.4 错误处理与状态轮询
实现以下机制增强系统健壮性:
命令重试机制:接口调用失败时,间隔1秒重试3次
设备状态查询:定期调用设备状态接口,确认门禁和电器状态与实际订单状态一致
异常告警:检测到设备离线或命令执行失败时,通过微信/短信通知管理员
六、完整业务流程示例
以一次完整的用户使用流程为例:
| 步骤 | 触发事件 | 系统动作 | 调用的API命令 |
|---|---|---|---|
| 1 | 用户小程序下单 | 生成订单,记录包间ID和时长 | - |
| 2 | 支付成功 | 向对应包间控制器发送开门指令 | {"reset":{"relay":[7],"interval":5000}} |
| 3 | 用户进入 | 系统开始倒计时 | - |
| 4 | 倒计时剩余5分钟 | 触发语音提醒 | {"play:gbk:16":"[message_3]剩余5分钟"} |
| 5 | 订单正常结束 | 关闭所有电器并锁门 | {"batch":{"relay":[1,2,3,4,5,6,7],"power":0}} |
| 6 | 用户超时未续费 | 再次强制断电并推送告警给管理员 | 同上 + 推送通知 |
七、最佳实践
设备ID管理:在业务系统中建立“包间号 ↔ 设备ID”的映射表,便于管理
测试环境:芯步提供测试设备(需押金),先在测试环境完成全部逻辑验证
签名安全:签名计算应在业务服务器端完成,避免将AppSecret暴露在前端
IP白名单:在控制台开启IP白名单功能,仅允许业务服务器IP访问,增强安全性
网络选择:设备支持WiFi 2.4G网络,确保棋牌室WiFi信号覆盖稳定
八、总结
芯步的开放接口体系为共享麻将馆提供了标准化、低门槛的设备对接方案。通过本文所述的reset、batch、play:gbk:16等核心命令,开发者可以轻松实现门禁信号与订单系统的自定义联动逻辑,完成从在线支付到自助开门、倒计时提醒、订单结束自动锁门的完整无人化运营闭环。