芯步30W音柱支持内置铃声、提示音、警示音各5种,通过HTTP接口的order字段即可直接调用。以下是完整的二次开发方案,涵盖签名计算、命令格式和代码示例。
一、 解决概述
芯步的智能语音音柱提供了标准化的HTTP API接口,允许开发者通过发送POST请求来控制设备。要实现内置铃声的播放,不需要进行复杂的音频文件上传或下载,只需在请求的order参数中指定对应的铃声ID即可。
核心逻辑:你的业务系统(OA/ERP/App) -> 触发事件(如订单到达) -> 调用HTTP API(携带设备ID和播放命令) -> 芯步云平台 -> 下发指令至30W音柱 -> 音柱播放指定铃声。
二、 准备工作:接口鉴权与地址
在开始编码前,需要从芯步控制台获取以下三个核心凭证,用于构造请求签名:
AppID:应用唯一标识。
AppSecret:开发者密码,用于签名加密。
Device ID:设备的唯一ID(30W音柱的ID)。
接口详情
请求地址:
https://api.thingboot.com/{AppID}/device/control/请求方式:
POSTContent-Type:
application/json
签名算法(Sign)
为了防止接口被恶意调用,所有请求都需要携带动态签名。签名算法规则如下(经搜索结果证实):sign = md5( md5(AppSecret) + ts )
Step 1:将
AppSecret进行MD5加密,得到字符串S1。Step 2:将
S1与当前的时间戳ts(秒级,如1715224194)进行字符串拼接,得到S2。Step 3:将
S2再次进行MD5加密,得到最终的sign。
三、 实现内置铃声播放的核心命令
根据芯步的指令集规范,30W音柱支持多种内置提示音。
在HTTP请求的order字段中,你可以通过以下三种Key来播放不同的内置音效:
| 音效类型 | Key名称 | 取值 (1-5) | 适用场景 | 备注 |
|---|---|---|---|---|
| 普通提示音 | message | 1, 2, 3, 4, 5 | 新订单提醒、扫码成功、门铃 | 短促、清脆、意在引起注意 |
| 铃声 | ring | 1, 2, 3, 4, 5 | 上下班打卡、来电提醒、整点报时 | 根据测试,值越大可能节奏越长 |
| 警示音 | alert | 1, 2, 3, 4, 5 | 故障报警、安全提醒、异常警告 | 音调较高,声音更急促 |
组合播放策略:通常在实际业务中,需要将音效与语音播报结合起来。例如:“叮咚”一声(提示音)后播放“您有新的订单”。
你可以在同一指令中组合命令,只需将order构造成一个JSON对象,同时包含message和play:gbk:16字段即可。
四、 代码实战示例
以下提供几种语言的二次开发核心代码片段,演示如何调用接口让音柱播放编号为3的内置提示音。
1. Java 实现
利用 Unirest 库和 Apache Commons Codec 进行签名计算。
2. JavaScript (适用于Web前端 或 Node.js后端)
如果是微信小程序或浏览器环境,请注意签名暴露的风险,在后端计算Sign;本地测试可使用如下逻辑:
3. HTTP原生请求 (Curl/命令行)
如果你使用Postman或Linux命令行进行联调:
五、 高级应用:自定义组合场景
在实际二次开发中,为了提升用户体验,通常不会只播放一个“嘀”声,而是播放“提示音 + 语音内容”。
场景:仓库出库校验成功
需求:播放“滴”的一声(提示音),接着播报“出库成功,请装车”。
实现:构建如下
order结构。
场景:产线故障紧急停机
需求:即使音柱当前在播放其他内容,也要强行打断并播放高优先级警报,且要求重复播放。
实现:先发送停止指令,再发送警示音指令。
六、 注意事项与排查
音柱型号确认:此方案明确适用于芯步30W HTTP接口语音音柱。请确认你的设备型号支持
message/ring/alert这三个指令集。声音大小:如果听不到铃声,请检查音量设置。你可以发送
{"volume":"7"}来调整音量(0-9级,9最大)。时间戳有效期:签名中的
ts是Unix时间戳(秒)。服务器通常会校验时间戳的有效性,若设备与服务器时间相差过大(如超过5分钟),签名会失效。音频格式
play:gbk:16中的gbk代表编码格式,16代表音量(0-16)。如果中文出现乱码,请确保你的开发环境编码与接口编码一致(使用UTF-8与GBK转换)。网络隔离:请确保你的服务器能够正常访问
api.thingboot.com(出网权限)。
通过上述步骤,你可以快速将芯步的语音音柱集成到自己的系统中,利用内置铃声实现低延迟、高稳定性的语音提醒功能。