一、为啥要考虑这事儿?
开过便利店的朋友都知道,收银台那点地方,看着不大,事儿可不少。扫码枪“嘀”一声是不是真成功了?断网了收银系统有没有反应?交接班的时候钱箱关了没?
收银员的大脑带宽其实很有限——又要扫码、又要找钱、又要应付顾客问路,根本没空一直盯着屏幕看那一行小字的状态提示。
这时候,如果能给收银台加个“会说话的设备”,把关键状态直接用语音播出来,体验就好太多了。下面我就结合芯步的开放接口,聊聊具体怎么落地。
二、选啥设备?
芯步目前有三类设备适合这个场景
| 设备 | 特点 | 适合场景 |
|---|---|---|
| 智能语音喇叭3 | 即插即用,支持TTS文本转语音,音量够大 | 一般便利店首选,性价比高 |
| 智能语音台卡 | 放桌面上,带LED灯带 | 收银台空间小的店 |
| 智能语音音柱 | 功率大,20W,有线网版 | 大店、嘈杂环境 |
我推荐智能语音喇叭3,理由很简单:直接推送文本就能发声,不用提前录音,支持多音字和金额数字的自然读法。
三、整体怎么连?
先上一张逻辑图(脑补一下):
两种方式任选:
方式一:走芯步云平台(推荐)
适用场景:便利店已有宽带网络
优点:不用管网络配置,即插即用,远程管理
步骤:喇叭配网 → 拿设备ID → 调接口发命令
方式二:局域网私有化(可选)
适用场景:便利店网络环境复杂,或要求数据不出店
优点:不依赖外网,响应更快
步骤:设备连店内WiFi → 拿设备内网IP → 直接POST到
http://设备IP/control
四、核心技术要点
4.1 鉴权怎么做?
芯步的接口要求签名,公式是:sign = md5(md5(AppSecret) + ts)
逻辑很简单:
把AppSecret做一次MD5
把结果和当前时间戳拼起来
再整体做一次MD5
拿到sign后,请求地址就是:https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
4.2 怎么让它开口说话?
核心命令是 {"play:gbk:16":"内容"}。
关键坑:不支持UTF-8,得把中文转成GBK十六进制。
“你好” → 转成
c4e3bac3最终发给设备的是:
{"play:gbk:16":"c4e3bac3"}
金额读法:直接写数字就行,设备会自动识别数值。
{"play:gbk:16":"收款15.5元"}→ 会读成“收款十五块五”
4.3 怎么知道设备状态?
查设备状态用获取设备详情接口:https://api.thingboot.com/{AppID}/device/info/?sign={sign}&ts={ts},参数带上 device=设备ID。
返回的JSON里重点关注这几个字段:
online.status:1=在线,0=掉线state:具体业务状态(比如插座开关状态)network.signal:信号强度,数字越大越好(-30比-70好)
五、三个典型场景代码示例
第一种场景:收款成功播报
收银系统收到支付回调 → 立即让喇叭报金额:
第二种场景:设备掉线语音报警
写个定时任务(比如每30秒)轮询设备状态: