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