CATALOG

芯步的5W壁挂音箱通过开放HTTP接口,可以很方便地接入你现有的系统。整体思路是:先让音箱连上网,再从你的服务器发一条HTTP请求,就能让它开口说话。下面我把整个对接流程拆开来讲,尽量说得直白一些。

一、准备工作:把音箱连上网

拿到音箱后第一步不是急着写代码,而是先让它连上WiFi。这音箱用的是2.4G WiFi,不需要额外的网关,直接配网就行。

配网操作步骤:

  1. 给音箱通电,它会进入配网模式(通常会有语音提示或指示灯闪烁)

  2. 用手机或电脑连接音箱发出的热点

  3. 在浏览器里输入配网地址,把你店里的WiFi名称和密码填进去

  4. 提交后音箱会自动重启并连接WiFi,听到“联网成功”的提示音就说明好了

有个小细节:这音箱可以存5组WiFi,会自动连信号最强的那个,如果你店里网络复杂也不用担心。

配网完成后,去芯步的控制台(IoT Console)找到这台音箱的设备ID(一般是串数字),这个ID后面调用接口时会用到,可以先记下来。

二、调用接口的核心逻辑

音箱联网后,就可以通过HTTP接口向它发送播报指令了。接口地址是这样构成的:

每次调用都需要带上三个东西:AppIDts(时间戳)、sign(签名)。

关于签名

签名的生成规则稍微有点绕,但理清了也不难:

  1. 先把你的 AppSecret(开发者密钥)做一次MD5加密

  2. 把加密后的结果拼接上当前的时间戳(10位数字,单位是秒)

  3. 把拼接后的字符串再做一次MD5

用伪代码表示就是:

举个例子:假设 AppSecretabc123,MD5加密后是 e99a18c428cb38d5f260853678922e03,时间戳是 1735689600,那拼接后就是 e99a18c428cb38d5f260853678922e031735689600,再MD5一次得到最终的签名。

请求头和请求体

请求方式用 POST,数据格式是 JSON,记得加上 Content-Type: application/json

请求体示例:

  • device:填你刚才记下来的设备ID

  • order:这里面 play:gbk:16 是播报命令,后面的字符串就是要说的话

完整的调用示例(用curl模拟)

调用成功后,接口会返回 {"code":200},音箱大概在80-120毫秒后就会播报出来

三、进阶玩法:不止是播报文字

芯步这套接口不只是能发文字,还可以动态调节播音效果,比如:

  • 调节音量{"volume": 7} (0-9级,数字越大越响)

  • 切换男女声{"voice": "女声"}{"voice": "男声"}

  • 调节语速{"speed": 5} (0-9级)

  • 播报前加个提示音{"ring": 1} (内置5种铃声可选)

  • 停止当前播报{"stop": 1}

也可以把这些命令组合起来用,比如先调大音量再播报:

还有个比较实用的功能是 extra 字段——如果需要在回调里识别是哪条订单触发的播报,可以在命令里带上订单号,平台推送的消息里会原样返回

四、各语言代码片段

Python

JavaScript (Node.js)

Java

五、几个实际应用场景

餐厅/外卖店:顾客在外卖平台下单后,系统自动触发接口,后厨音箱播报“您有一笔新订单,请及时处理”。

工厂车间:ERP系统检测到某批次产品质检异常,立即让对应产线的音箱播报“XX生产线请注意,质检出现异常”。

办公室/会议室:与OA系统联动,会议开始前5分钟让对应会议室外的音箱播报“10点钟的部门会议即将开始”。

停车场/门禁:车辆入场时,系统识别车牌后让对应区域的音箱播报“欢迎XX先生,您的车位在A区12号”

六、需要注意的坑

  1. 签名的时间戳必须准确:服务器会校验时间戳,如果和你服务器的时间相差太多会报错,用NTP同步一下系统时间

  2. 调用频率别太高:单个设备限制1次/秒,短时间内发太多指令会被拒

  3. 200不代表播报成功code:200 只表示平台收到了指令并转发给了设备。如果音箱离线或者命令格式有问题,它其实不会播出来。如果需要确认播报结果,可以开通消息推送功能,通过异步回调来确认

  4. 中文编码:播报内容里的中文直接传就行,但要确保HTTP请求的编码是UTF-8,否则可能乱码。

基本上整个对接流程就是:配网 → 拿设备ID → 拼签名 → 发HTTP请求。芯步的接口设计得还算简洁,几个核心点掌握后,很快就能跑通。如果你还有不清晰的地方,可以直接去他们官网的控制台里看看,AppID、AppSecret和设备信息那里都能找到。