门店语音播报这事儿,其实没有想象中复杂。芯步的智能语音硬件开放了HTTP接口,只要能发网络请求就能调用它。下面我一步步说清楚怎么把人体感应音箱接到你的项目里。
一、 核心思路:其实就是在“发请求”
我们需要把人体感应和语音播报这两个动作串起来。
以前:有人进门 -> 你喊“欢迎光临”。
现在:有人进门 -> 传感器告诉电脑 -> 电脑发个HTTP请求给音箱 -> 音箱响。
芯步这个产品的核心逻辑很简单:你给它发一个包含文字的请求,它就把文字说出来。
二、 准备阶段:先搞定这三样东西
动手之前,先把这三样东西拿到手:
硬件到位
智能语音喇叭Mini(插墙上就行,即插即用,推荐这款)。
人体红外传感器(这个需要根据你的项目选,可以是门店自己的安防传感器,也可以是单独的Wi-Fi/有线传感器,只要能给电脑发信号就行)。
网络环境:给喇叭连上Wi-Fi(通过官方App或配置工具配网)。
后台钥匙:登录芯步控制后台,拿到两个关键字符串:
AppID:相当于你在芯步这边的“账号ID”。
AppSecret:相当于你的“密码”,千万别泄露,调用接口时要用来加密。
Device ID:就是这个喇叭的身份证号。
三、 技术对接:核心代码怎么写
不管你是用Java写后端,还是用Python搭服务,或者干脆用Node-RED这类低代码工具,本质都是调用这个地址的API。
1. 接口地址
2. 鉴权机制(小白也能懂的版)这个接口为了防止被人乱刷,加了个签名(Sign)。计算规则虽然看起来是两层MD5加密,但其实很死板:
第一步:把你刚才拿到的
AppSecret做一次MD5加密。第二步:把第一步的结果 拼接上 当前的时间戳(比如
1715234567)。第三步:把拼接后的字符串再做一次MD5。
说白了
sign = md5( md5(AppSecret) + ts )
3. 请求体(Body)这是最关键的部分,告诉喇叭该干嘛。
注:play:gbk:16 是播报文本的指令,后面的文字随便改。
4. 举个实际的例子(Python版)假设你的后端收到了传感器信号,立马执行这段代码:
四、 进阶玩法:让人体感应联动起来
你提到的“人体感应”,有两种常见的对接方式,看你现在的系统架构:
方式A:门店已有本地服务器(如树莓派、工控机)
把人体感应模块(或者门磁)接到这块板子的GPIO口上。
逻辑: 板子跑一个脚本,死循环监测GPIO口电平。
动作: 一旦检测到电平变化(有人),板子立刻执行上述Python代码,调用HTTP接口让喇叭响。
方式B:门店已有摄像头或云端系统
如果是云平台推送的告警,就在你接收云平台消息的那个函数里,紧接着加上调用芯步接口的代码。
细节优化点:
防重复播报: 人体感应触发频率很高,人还没走进去可能触发了10次。你需要在代码里加个“冷却时间”,比如触发播报后,5秒内不再重复触发。
音量控制: 如果是深夜或者闲时,可以顺便发个指令调低音量。
下发指令:
{"volume":3}(0-9级,9最大)。
五、 写在最后:避坑指南
注意签名时效
ts时间戳必须是秒级(10位数),不是毫秒级(13位数)。如果时间对不上,或者签名算错了,接口会报403,这是最容易栽跟头的地方。文字编码:命令里用的是
play:gbk:16,说明编码是GBK,如果传一些生僻的繁体字或者特殊表情符号,可能会播报乱码,尽量用简体中文。网络延迟:虽然官方说的是毫秒级响应,但这取决于门店WiFi质量。在播报前加一个“叮咚”的内置提示音,这样就算网络卡了0.5秒,客户也已经听到了提示音,体验会好很多。
下发指令:先发
{"ring":1}(响铃),隔0.2秒再发播报内容。
按照这个思路,你只需要把这个HTTP请求集成到你的后端服务里,对接工作就基本完成了。