在本系统中,单片机负责音频信息的采集,音频播放,获取传感器的数据和显示。网络传输模块负责进行网络传输,与MQTT Server和语音识别API分别建立TCP连接,通过发布和订阅MQTT的Topic主题进行数据的上传与下行。单片机与网络传输模块通过USART串口进行数据的交互。手机端通过TCP连接MQTT Server进行数据的发布和订阅.
该系统方案大致如下:
1)单片机实现音频信息的采集,播放内置音频信息,获取温湿度传感器数据和光照度传感器数据,通过显示屏显示传感器数据和语音转文字后的信息。
2)网络传输模块实现网络传输,与MQTT Server和语音识别API分别建立TCP连接,通过发布和订阅MQTT的Topic主题进行数据的上传与下行。
3)单片机将采集的音频信息进行base64编码,将编码后的音频数据和TOKEN以及一些必要参数整合成JSON格式整合到HTTP BODY中,单片机通过带流控位的串口与网络传输模块进行数据传输。
4)网络传输模块将接收到串口数据通过TCP通信同步上传到百度语音识别API,传输结束后,等待TCP Server返回HTTP 响应报文,将报文BODY字段数据进行裁剪,只要其中JSON格式的语音识别信息(UTF-8编码),将语音识别信息发送到单片机,单片机通过UTF-8转GBK算法进行最终的语义控制, 并进行对应语音播报。
5)手机APP端利用语音识别API接口进行语音识别,与MQTT Server端建立TCP连接,通过MQTT协议订阅和发布,将转换后语音信息发布到订阅设备,单片机处理收到的订阅信息。
6)单片机将采集到的传感器数据发布到MQTT Server端,APP端可以通过订阅来实时更新传感器数据。