CATALOG

针对将芯步60W音柱接入自有项目,核心是利用其开放HTTP接口,通过签名认证后下发TTS语音命令。以下是完整的技术解决方案:

1. 解决概述

对于大多数餐厅、奶茶店或零售门店,当产生新订单时,业务系统(POS/外卖SDK)会触发一个事件。本方案的核心流程是:业务系统 -> 芯步云平台 -> 60W音柱

采用HTTP请求模式是最简单且通用的方式。你只需要在代码中发起一条POST请求,无需复杂的MQTT协议配置

2. 准备工作:设备的注册与凭证

在编写代码前,需要进行以下初始化设置:

  1. 硬件配网:参考芯步的标准流程,使用“芯步”小程序为音柱配置Wi-Fi(仅支持2.4GHz频段),确保设备在物联网控制台显示为“在线”

  2. 获取凭证:登录芯步开放平台控制台,在“开发设置”中找到三个核心参数:

    • AppID:应用的唯一标识。

    • AppSecret:开发者密码,用于计算签名。

    • Device ID:60W音柱的设备ID(通常在设备标签或控制台设备列表查看)

3. 接口鉴权与安全机制(签名计算)

为了保证安全性,芯步接口使用动态签名认证。你需要按照以下规则计算sign

算法规则sign = MD5( MD5(AppSecret) + ts )

步骤解析

  1. 将你的 AppSecret 进行第一次MD5加密,得到 sign_a

  2. 获取当前的Unix时间戳(秒)作为 ts

  3. sign_ats 进行字符串拼接,得到 sign_b

  4. sign_b 进行第二次MD5加密,得到最终的 sign

关键点ts (时间戳)参数不仅用于签名计算,也需要作为Query参数传递,用于防止请求重放攻击。

4. 核心技术:TTS语音播报指令下发

芯步的语音产品支持 TTS(文字转语音) 能力。你可以直接推送文本,音柱会将其转化为语音播报,无需预先录制MP3文件

4.1 请求地址与方法

  • URLhttp(s)://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

  • MethodPOST

  • Content-Typeapplication/jsonmultipart/form-data

4.2 核心参数解析

在请求体中,order 字段是控制音柱的关键。

功能命令结构 (JSON)说明
文本播报{"play:gbk:16":"你好,新订单请及时处理"}核心功能。play:gbk:16为标准TTS指令
音量调节{"volume":"7"}范围 0-9,数值越大音量越高
音色切换{"voice":"1"}0=女声,1=男声
语速调节{"speed":"5"}范围 0-9
播放提示音{"message":"3"}内置提示音(1-5),通常用于播报前的“叮咚”声

4.3 代码示例 (Javascript / Node.js)

这是一个典型的Node.js实现示例,演示了如何计算签名并下发一条“订单播报”指令:

5. 深度集成:在业务系统中的实战流程

为了将音柱无缝集成到真实的门店订单系统中,采用 异步消息队列 架构,避免因网络波动导致主业务流程卡顿。

  1. 触发事件

    • 系统接收到美团、饿了么的推送,或收银系统生成新订单。

    • 或者,系统通过摄像头/地磁感应检测到有车辆/顾客进入门店区域

  2. 内容组装

    • 动态生成播报内容。例如:“您好,尾号 1234 的顾客已到店,请服务员引导。”

  3. 指令投递

    • 系统后端调用上文第4节的API接口,向音柱发送指令。

  4. 异常处理

    • 由于API返回200仅代表平台收到了指令,不代表设备已执行。启用消息推送功能,接收设备执行后的回调,确认播报成功。

    • 如果设备离线,可以配置重试或发送告警给管理员。

6. 总结与

将芯步60W音柱接入已有项目,技术门槛较低,核心在于处理好签名鉴权 和使用正确的TTS指令格式。在开发阶段先利用Postman等工具调试通签名算法和设备ID,再进行代码集成。对于需要IP66级防水的场景(如户外大排档、外卖取餐口),此款60W音柱是比较合适的选择