芯步的包间控制器系列产品本身不带语音唤醒功能,但它的开放接口(HTTP API)恰好让你可以自由接入任何语音平台——从现成的智能音箱到自研的语音模组都能无缝对接。下面这套方案的核心思路是:语音采集 → 意图解析 → API调用 → 设备响应,用你熟悉的编程语言就能完整实现。
1. 项目概述与目标
在当前的共享棋牌室、茶室、KTV及无人值守包间场景中,消费者对于“去开关化”的体验需求日益增长。本方案的目标是利用芯步的智能硬件生态与开放式API接口,将传统的实体墙壁开关或手机扫码控制,升级为自然语言控制的语音联动系统。
核心目标:
硬件利旧与集成:将麻将机、中央空调/壁挂空调、门禁锁、照明接入同一套迷你控制器。
免接触式交互:用户通过口令(如“打开麻将机”、“调低空调温度”)即可完成操作。
极速响应:利用HTTP接口的局域网/公网通讯能力,实现命令下发80-120ms的低延迟响应。
2. 硬件选型与电气连接
要实现对上述设备的“迷你控制”与“二次开发”,需选择支持独立继电器控制的包间专用控制器。麻将机本质是阻性负载电器,空调涉及红外或强电通断,门禁涉及12V直流信号。
推荐硬件组合:芯步 智能包间控制器|Max / Mini
| 设备类型 | 对应控制器接口 | 连接方案与技术细节 |
|---|---|---|
| 麻将机 | 16A插座接口 (Max的第4-6路 / Mini的第2路) | 物理强电切断:麻将机插头接入控制器插座。语音控制逻辑为继电器吸合/断开。此法最稳定,无需破解麻将机协议。 |
| 空调 | 30A插座接口 (Max的第8路 / Mini的第4路) | 红外转型方案:利用30A大功率继电器控制空调总电源通断。注意:仅通断电源无法调温。进阶方案:配合一个小型WiFi红外转发器,控制器负责供电,语音指令通过API同时触发红外转发器发码。 |
| 门禁锁 | 门禁电磁锁接口 (Max的第7路 / Mini的第3路) | 直流控制:接磁力锁或电插锁。客人下单成功自动通电开锁,计时结束自动断电上锁。语音控制(如“续费一小时”)通过后端逻辑执行,短暂开锁。 |
| 语音采集 | 外设 - 智能语音喇叭 | 非嵌入式改造:使用芯步的智能语音喇叭3作为麦克风阵列和TTS播报终端。该设备支持HTTP推送文本转语音,且可作为拾音入口。 |
连线图逻辑:所有设备集中到包间控制箱 → 控制器接入220V市电 → 麻将机等设备插头插在控制器对应插座上 (待办事项提醒:空调电源线需核对零火线,确保30A继电器触点容量匹配空调压缩机启动电流)。
3. API接口深度解析与鉴权
芯步采用的是标准的HTTP协议与极简的MD5签名机制。这意味着无论你是在微信小程序、Web后台还是Windows服务端开发,均可通过调用通用API实现控制。
3.1 接口基础信息
请求地址:
http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方式:
POSTBody数据格式:
application/json
3.2 签名机制 (鉴权逻辑)
在代码中需要构建以下参数:
AppId: 平台生成的开发者ID。AppSecret: 开发者密码。ts: 当前Unix时间戳(秒级)。sign: 计算规则为md5( md5(AppSecret) + ts )。说明:先对Secret做一次MD5,拼上时间戳,再整体做一次MD5。
3.3 设备命令映射表
针对包间场景,需开发者构建的JSON数据映射如下:
| 执行动作 | API Order (JSON) | 适用场景说明 |
|---|---|---|
| 开启麻将机 | {"power4": 1} | 假设麻将机接在第4路,1为开,0为关。 |
| 关闭麻将机 | {"power4": 0} | 订单结束自动断电,防止逃单或空转损耗。 |
| 开启空调(电源) | {"power8": 1} | 开启空调插座供电(若配有红外转发器,紧接着触发开机码)。 |
| 开启门禁(开锁) | {"power7": 1} 维持2秒后发送关 | 语音开锁需做时序控制,防止门长时间打开。 |
| 场景联动 | {"batch":{"relay":[1,3,4],"power":0}} | 一键“打扫模式”或“离开现场时模式”,关闭除照明外的所有设备。 |
| 语音播报反馈 | {"play:gbk:16":"指令已收到,麻将机已开启"} | 需TTS版本硬件,给用户听觉反馈。 |
4. 语音联动控制逻辑实现 (软件架构)
要实现“语音联动”,核心在于意图识别中间件。由于控制器本身不具备AI语音芯片,你需要编写一个轻量级的服务端程序来对接语音识别(ASR)与设备控制API。
4.1 架构流程图
采集端 (智能喇叭/手机小程序)捕获语音:“你好小友,打开麻将机”。
语音转文字:对接第三方ASR引擎(如科大讯飞、百度语音)或使用智能喇叭自带的识别功能转化为文本。
意图解析:服务端代码对文本进行正则匹配或NLU解析。
关键词匹配:
打开+麻将机->Action: Turn_On,Device: Relay_4
指令执行:服务端计算
sign,组装{"power4":1},发送至芯步API。状态反馈:芯步返回
200状态码,服务端触发TTS播报:“麻将机已启动”给包间喇叭。
4.2 核心代码逻辑示例 (伪代码/Python思路)
开发关键点:
4.3 空调控制的特殊优化
空调无法仅通过“断电”实现温度调节。由于芯步API仅控制继电器通断,针对空调的“语音调温”二次开发采用双路控制:
不断电:空调插座对应继电器保持常通状态。
信号控制:购买一个支持HTTP API的万能红外遥控器。
联动:语音指令 -> 后端服务器 -> 同时调用:芯步的电源确认指令(确保有电) + 红外遥控器的温度码值指令。这种混合架构能保持空调记忆功能的完整性。
5. 用户体验流与场景定制
5.1 客前迎宾模式
语音触发:“打开包间设备”
后端动作
调用
{"batch":{"relay":[1,7],"power":1}}:开启照明、解除门禁。调用
{"play:gbk:16":"欢迎光临,即将为您开启空调和麻将机"}。延迟500ms后,调用
{"power4":1}, {"power8":1}开启麻将机电源和空调电源。
5.2 无人值守安全逻辑
麻将机关断:当雷达传感器检测到无人超过15分钟(利用芯步雷达传感器的
radar_enable数据回调),服务器自动推送{"power4":0}关闭麻将机电源,避免持续待机损耗。门禁强制闭锁:语音指令“开门”仅在下单后5分钟内有效,防止用户在走廊通过语音要求开门。 (特别提醒:门禁涉及安全,生产环境保留传统物理开关或仅限手机操作,以防误触发)。
6. 落地实施清单
网络环境确认:包间内WiFi需覆盖2.4GHz频段(物联网设备普遍不支持5G),且需保证信号强度,否则接口下发虽成功,但设备掉线无法执行。
空调插座选型:如果你用的是Mini控制器,接空调必须用第4路(30A),绝对不能插入1-3路,否则会烧毁触点。
语音唤醒词自定义:若使用智能语音喇叭,需利用其接口设置唤醒词,避免包间接收到隔壁房间的误唤醒。
代码部署:你可以将上述逻辑代码部署在本地树莓派(局域网内延迟极低)或云服务器上。如果用的是云服务器,API请求走公网,延迟仍在可接受范围(<200ms)。
7. 总结
这套方案的核心优势在于去中心化判断:芯步硬件负责执行(强电切断/闭合),你的二次开发代码(部署在云端或本地)负责“思考”(语音转文字+决策)。通过调用其极简的HTTP接口,你完全可以将一个普通的通电设备改造成支持“打开麻将机”、“调至26度”的智能语音设备,同时利用其多路独立继电器的特性,实现分路计费与能耗管控。