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