CATALOG

芯步智能壁挂音箱的开放接口基于 HTTP 协议,二次开发的核心是构造签名并向指定 API 下发 order 指令。播放内置铃声/提示音无需上传音频文件,直接通过命令名称和序号即可触发。以下方案涵盖签名算法、命令格式和代码示例。

解决方案:基于芯步开放接口二次开发实现智能15W音箱内置铃声播放

1. 准备与环境概览

芯步的 智能15W远程控制语音壁挂音箱(型号通常为 UNI-YY-YX-BG-15W 或 Pro 版)提供了标准 HTTP 接口。这意味着无论你的后端系统是用 Java、Python、PHP 还是 Node.js 编写的,只需要能发起网络请求,就能控制该音箱

在开始编码前,请确认以下三项必备信息:

  • AppID / AppSecret:登录芯步开发者控制台获取,用于身份认证。

  • Device ID:音箱的设备唯一标识,可在控制台设备列表查看。

  • 网络环境:确保音箱已通过 WiFi 2.4G 联网,且你的服务器(或PC)与音箱网络互通。该设备支持公网和纯局域网私有化部署

2. 核心技术原理:签名机制与指令下发

芯步的 API 核心地址为:https://api.thingboot.com/{AppID}/device/control/

为了安全,每次请求必须携带动态签名,具体步骤如下:

  1. 拼接字符串:计算 string1 = md5(AppSecret)

  2. 再次拼接string2 = string1 + tsts 为当前的 Unix 时间戳,单位秒)。

  3. 最终签名sign = md5(string2)

请求体结构

3. 具体实现:播放内置铃声与提示音

对于“播放内置铃声”这一特定需求,不需要上传 MP3 文件。根据设备固件规范,音箱内部已预置了多种铃声、提示音和警示音(各约5种)。我们只需通过 order 字段指定要播放哪种声音即可。

音效类型关键命令示例说明
铃声{"ring": 1}播放内置的第1种铃声(通常为清脆电话铃)
提示音{"message": 2}播放第2种提示音(如“滴答”声)
警示音{"alert": 3}播放第3种警示音(如警报声)

例如,若要播放第1种铃声,order 字段应为 {"ring":1}

4. 代码实战 (Python 与 Java 示例)

以下提供 Python 和 Java 两种语言的完整实现逻辑。

4.1 Python 实现 (使用 requests 库)
4.2 Java 实现 (使用 Unirest 或 HttpClient)

假设利用 Unirest 库(轻量级 HTTP 客户端):

5. 进阶应用场景与整合

在实际业务中,很少单独播放一段铃声,通常是结合业务逻辑触发。

  • 场景 A:订单即时提醒当新订单产生时,先播放提示音引起注意,紧接着播报文本。实现方案:连续调用两次接口,先下发 {"message": 1}(短促“滴”声),再下发 {"play:gbk:16":"您有新的美团订单,请及时处理"}

  • 场景 B:定时打铃系统(如工厂/学校)利用你现有的调度框架(如 Linux Crontab、Jenkins、Java Quartz 等),在设定时间点触发上述 play_ringtone 函数。注意:15W 版本音箱音量大,适合覆盖大面积车间或走廊

  • 场景 C:整合现有系统如果你目前使用的是低代码平台(如钉钉宜搭、简道云)或现有的 ERP/OA 系统:

    1. 在平台中创建一个“Webhook”或“自定义按钮”。

    2. 请求地址填入上述 API URL。

    3. Header 和 Body 按照本文档签名规则填入。这样非开发人员也可以直接在业务表单上点击“播放”按钮

6. 常见问题排查 (FAQ)

  • 签名错误怎么办?芯步的签名规则是 MD5( MD5(Secret) + ts )。请注意这里是拼接字符串后再进行第二次 MD5,不要进行 Hex 转换的混淆。打印出服务端返回的签名错误日志进行比对。

  • 如何知道设备ID?设备 ID 通常是一串数字(如 1878820720),可以在设备联网后,在芯步控制台的“设备管理”页面找到

  • 可以播放自定义的录音吗(如老板讲话)?普通的 15W 文本版仅支持 TTS 文字转语音。如果需要播放自定义 MP3 文件,请采购 Pro 版本(音频+文本版本),Pro 版支持通过特定协议推送音频流或 URL,普通版仅支持文本播报和内置音效

通过上述步骤,你可以轻松地在 1 小时内完成从环境配置到代码调用的全过程,将物理世界的语音提醒无缝集成到你的软件逻辑中。