在本系統(tǒng)中,單片機負責音頻信息的采集,音頻播放,獲取傳感器的數據和顯示。網絡傳輸模塊負責進行網絡傳輸,與MQTT Server和語音識別API分別建立TCP連接,通過發(fā)布和訂閱MQTT的Topic主題進行數據的上傳與下行。單片機與網絡傳輸模塊通過USART串口進行數據的交互。手機端通過TCP連接MQTT Server進行數據的發(fā)布和訂閱.
該系統(tǒng)方案大致如下:
1)單片機實現音頻信息的采集,播放內置音頻信息,獲取溫濕度傳感器數據和光照度傳感器數據,通過顯示屏顯示傳感器數據和語音轉文字后的信息。
2)網絡傳輸模塊實現網絡傳輸,與MQTT Server和語音識別API分別建立TCP連接,通過發(fā)布和訂閱MQTT的Topic主題進行數據的上傳與下行。
3)單片機將采集的音頻信息進行base64編碼,將編碼后的音頻數據和TOKEN以及一些必要參數整合成JSON格式整合到HTTP BODY中,單片機通過帶流控位的串口與網絡傳輸模塊進行數據傳輸。
4)網絡傳輸模塊將接收到串口數據通過TCP通信同步上傳到百度語音識別API,傳輸結束后,等待TCP Server返回HTTP 響應報文,將報文BODY字段數據進行裁剪,只要其中JSON格式的語音識別信息(UTF-8編碼),將語音識別信息發(fā)送到單片機,單片機通過UTF-8轉GBK算法進行最終的語義控制, 并進行對應語音播報。
5)手機APP端利用語音識別API接口進行語音識別,與MQTT Server端建立TCP連接,通過MQTT協(xié)議訂閱和發(fā)布,將轉換后語音信息發(fā)布到訂閱設備,單片機處理收到的訂閱信息。
6)單片機將采集到的傳感器數據發(fā)布到MQTT Server端,APP端可以通過訂閱來實時更新傳感器數據。