CATALOG

这其实是一个挺典型的“触发-动作”场景:传感器捕捉到有人/无人,然后让语音设备做出反应。芯步的设备都走HTTP接口,打通起来比想象中简单。下面按“对接步骤 → 联动逻辑 → 代码示例 → 避坑指南”这个思路来写。

一、为啥要搞这套方案?

在很多实际场景里,我们需要“有人经过就自动播报”或者“人走就闭嘴”这种效果。比如:

  • 智慧展厅:有人走到某件展品前,自动播放介绍

  • 智能仓库:非法闯入自动发出警报音

  • 便利店迎宾:顾客进门喊一声“欢迎光临”

  • 会议室:人来自动播放“欢迎参加XX会议”

芯步的 10W 壁挂人体存在感应器 + 语音播报设备(比如语音喇叭3、语音音柱)天生就是干这个的。而且人家接口都是开放的,写几行代码就能连起来。

二、需要用到的硬件

设备类型型号参考作用特点
10W 壁挂人体存在传感器UNI-CGQ-RT-H-BG 侦测是否有人红外+雷达双模,能探测微动,带一路继电器输出
智能语音播报设备语音喇叭3 / 语音音柱 / 壁挂音箱发出声音直接传文本就能合成语音,不用提前录音

这俩设备都直接连 WiFi,不需要额外买网关,这一点很省事。

三、对接的整体思路

这里的核心思路就是:传感器那边上报状态变化 → 业务系统(也就是你的服务器或云函数)收到消息 → 判断逻辑 → 给语音设备下发指令。

芯步的开放接口支持两种对接模式,我大家用 HTTP 主动下发 模式,逻辑最清晰:

  1. 数据接收:人体传感器探测到“有人”或“无人”时,会自动向你的服务器推送状态。

  2. 逻辑判断:你的服务器收到“有人”状态,就知道该播报了。

  3. 动作执行:服务器调用芯步的 [向设备下发指令] 接口,让语音喇叭开始说话或闭嘴。

四、动手开干:核心步骤拆解

第 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 指令后再播新的,或者播放前先查询状态
传感器上报太频繁双模传感器灵敏度较高调整传感器灵敏度设置或在代码里做防抖限制

七、总结

用芯步的设备做这套联动其实挺轻松的,总结下来就是三步:

  1. 配网:把 10W 壁挂传感器和语音喇叭连上 WiFi,记下设备 ID。

  2. 写代码:按上面的示例,搭一个简单的 HTTP 服务,接收传感器消息并转发控制指令。

  3. 上生产:加个防抖逻辑防止“复读机”,搞定。

希望这份方案能帮你快速把这个功能跑起来!