这其实是一个挺典型的“触发-动作”场景:传感器捕捉到有人/无人,然后让语音设备做出反应。芯步的设备都走HTTP接口,打通起来比想象中简单。下面按“对接步骤 → 联动逻辑 → 代码示例 → 避坑指南”这个思路来写。
一、为啥要搞这套方案?
在很多实际场景里,我们需要“有人经过就自动播报”或者“人走就闭嘴”这种效果。比如:
智慧展厅:有人走到某件展品前,自动播放介绍
智能仓库:非法闯入自动发出警报音
便利店迎宾:顾客进门喊一声“欢迎光临”
会议室:人来自动播放“欢迎参加XX会议”
芯步的 10W 壁挂人体存在感应器 + 语音播报设备(比如语音喇叭3、语音音柱)天生就是干这个的。而且人家接口都是开放的,写几行代码就能连起来。
二、需要用到的硬件
| 设备类型 | 型号参考 | 作用 | 特点 |
|---|---|---|---|
| 10W 壁挂人体存在传感器 | UNI-CGQ-RT-H-BG | 侦测是否有人 | 红外+雷达双模,能探测微动,带一路继电器输出 |
| 智能语音播报设备 | 语音喇叭3 / 语音音柱 / 壁挂音箱 | 发出声音 | 直接传文本就能合成语音,不用提前录音 |
这俩设备都直接连 WiFi,不需要额外买网关,这一点很省事。
三、对接的整体思路
这里的核心思路就是:传感器那边上报状态变化 → 业务系统(也就是你的服务器或云函数)收到消息 → 判断逻辑 → 给语音设备下发指令。
芯步的开放接口支持两种对接模式,我大家用 HTTP 主动下发 模式,逻辑最清晰:
数据接收:人体传感器探测到“有人”或“无人”时,会自动向你的服务器推送状态。
逻辑判断:你的服务器收到“有人”状态,就知道该播报了。
动作执行:服务器调用芯步的 [向设备下发指令] 接口,让语音喇叭开始说话或闭嘴。
四、动手开干:核心步骤拆解
第 1 步:准备工作(拿钥匙)
在开始写代码之前,先去芯步的控制台拿到三样东西:
AppID:你的应用ID
AppSecret:你的应用密钥(这玩意儿要藏好,别写在前端代码里)
Device ID:人体传感器的ID + 语音喇叭的ID(设备标签上通常有,控制台也能看到)
第 2 步:搞明白传感器上报的数据
壁挂人体传感器在检测到变化时会发数据给你的服务器(比如你的公网IP或者云函数地址)。
它上报的数据大概是这个样子的:
小贴士:如果你暂时没有公网服务器,可以先在控制台看设备的日志,也能看到上报的历史数据,方便调试。
第 3 步:学会给语音设备下命令(核心动作)
现在我们要让语音喇叭响起来。芯步的接口是统一的 HTTP POST 请求,签名算法稍有点绕,但按着抄就行。
接口地址: http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}
播报命令 JSON 长这样
这里面 play:gbk:16 的意思是用 GBK 编码,音量 16 级(通常 15-20 挺合适)。
停止播放的命令(这个很关键,用来打断播报):
第 4 步:写代码:把“有人”和“播报”串起来
这里我写一段 Node.js 风格的伪代码,展示你的业务服务器该怎么处理逻辑,大家一看就懂:
第 5 步:高级玩法——避免“车轱辘话”来回说
如果你不做限制,只要人站在传感器前面,传感器可能会几秒钟上报一次“有人”,那语音喇叭就会不停地喊“欢迎光临”,这就太吵了。
这里给大家推荐一个防抖(Debounce)机制,代码如下:
五、另一种思路:不用服务器(纯硬件联动)
如果你的需求特别简单,就是“人来了,灯亮/喇叭响”,其实可以不写代码。
方法:把那路继电器输出接到语音喇叭的触发线上(如果你的喇叭支持干接点触发)。
效果:传感器检测到人,继电器闭合,喇叭通电就响;人走继电器断开,喇叭断电闭嘴。
这种方式纯物理接线,零代码,但缺点是没法控制具体播报什么内容。
六、几个容易踩坑的点
| 问题描述 | 原因分析 | 解决方案/ |
|---|---|---|
| 命令下发成功但设备没反应 | 接口返回 200 只代表指令到了云平台,不代表设备收到了 | 检查设备网络是否在线;查看设备日志确认是否收到指令 |
| 签名计算报 5006 错误 | AppSecret 没做 MD5 直接拼接了时间戳 | 正确公式:md5(md5(Secret) + ts),两层 MD5 不能省 |
| 语音播报被截断 | 下一条指令覆盖了上一条 | 发送 stop 指令后再播新的,或者播放前先查询状态 |
| 传感器上报太频繁 | 双模传感器灵敏度较高 | 调整传感器灵敏度设置或在代码里做防抖限制 |
七、总结
用芯步的设备做这套联动其实挺轻松的,总结下来就是三步:
配网:把 10W 壁挂传感器和语音喇叭连上 WiFi,记下设备 ID。
写代码:按上面的示例,搭一个简单的 HTTP 服务,接收传感器消息并转发控制指令。
上生产:加个防抖逻辑防止“复读机”,搞定。
希望这份方案能帮你快速把这个功能跑起来!