CATALOG

芯步的设备接口设计得挺直接的——签名算好,一个HTTP请求就能让喇叭说话。下面这份方案会带你从签名算法开始,把人体传感器和语音设备串起来,最终实现一个简单的远程播放列表管理功能。

解决方案:利用芯步开放接口二次开发人体存在感应语音设备

一、 这个方案能解决啥问题?

简单来说,就是让一个普通的智能喇叭变“聪明”很多时候,我们买回来的智能语音设备只能播放固定的内容,或者只能在App里手动点一下才播报。通过二次开发,你可以把文字内容通过网络随时推给设备,结合人体存在传感器,实现“有人经过时,根据不同时间段、不同天气、甚至不同的人,播放不同内容”的效果。

举个实际场景:

  • 公司门口:工作日早上8-9点,有人经过就播“早上好,记得打卡”;中午播“外卖请放前台”;晚上播“请关灯锁门”。

  • 博物馆/展厅:有人走到展品前,自动播放对应的介绍,不用人工讲解。

  • 仓库/车间:检测到有人进入危险区域,立马喇叭喊“您已进入危险区,请戴安全帽”。

二、 主角设备与核心逻辑

我们需要用到芯步的两类产品(都开放HTTP接口):

  1. 触发端:智能人体存在传感器

    • 它能检测到“有人”还是“无人”,或者“人离开了”

    • 关键点:它可以把状态变化实时推送到你的服务器,也就是所谓的“Webhook”或“回调”。

  2. 执行端:智能语音喇叭/音柱

    • 市面上常见的“智能语音喇叭3”或“吸顶音箱”都行

    • 核心命令:通过 order 参数里的 play:gbk:16 指令,让设备直接说话。

整体流程图如下:

flowchart LR
    A[人体存在传感器
检测到有人] --> B[芯步云平台] B -->|HTTP推送| C[你的业务服务器
处理逻辑] C -->|下发指令 订单号/欢迎语| B B -->|TTS语音播报| D[智能语音喇叭]

三、 动手干吧:一步步开发教程

别怕,代码不多,核心其实就是“算签名”和“发请求”。

第一步:准备工作

去芯步控制台拿到三样东西:

  1. AppID:你的应用ID。

  2. AppSecret:你的应用密钥(打死也别写在网页前端代码里,得放后端)。

  3. Device ID:你要控制的那个喇叭的设备ID,还有传感器的ID。

第二步:搞定那个有点绕的签名算法

这是唯一需要动脑子(也是官方文档写得有点绕)的地方。芯步的签名规则是:

Sign=md5(md5(AppSecret)+ts)Sign = md5( md5(AppSecret) + ts )

注意:是md5小写,先把Secret加密一次,得到的32位字符串后面拼接上时间戳,再把整个拼好的字符串加密一次。

我们写个简单的Python函数(后端用)来搞定它:

第三步:让喇叭说一句话(控制播放列表的核心)

假设你想让喇叭说:“你好,欢迎光临”。接口地址是:https://api.thingboot.com/{你的AppID}/device/control/?sign={计算出的签名}&ts={当前时间戳}

请求体如下(JSON格式):

科普play:gbk:16 中的 gbk 是编码格式,16 大概是音量或优先级,照抄官方案例就行,把汉字换掉即可

第四步:接收传感器的“有人”信号

怎么知道“有人”来了?有两种方案,推荐第二种:

方案A(主动查询):你的服务器每隔几秒去问一下传感器状态。不推荐,太慢了,而且容易被限流。

方案B(被动接收 - 推荐):在芯步控制台设置一个“数据转发”或“HTTP推送”地址。当传感器检测到有人时,芯步的服务器会主动给你的服务器发个POST请求。你需要写一个接口来接收这个请求(例如 http://你的域名/api/sensor_callback)。

接收数据的代码示例(Python Flask版):

第五步:实现“远程播放列表管理”

这才是你标题里的“二次开发”核心。我们要实现一个简单的