劉開迪,張蕙玲,黎芷辰,陸思翰
(桂林電子科技大學(xué) 電子工程與自動化學(xué)院,廣西 桂林 541004)
中國是一個垃圾生產(chǎn)大國,垃圾年產(chǎn)量約4億噸,并以大約每年8%的速度增加。如今垃圾分類場與垃圾處理站都在超負(fù)荷運轉(zhuǎn),而人們的垃圾分類意識仍然很淡薄。因此,針對傳統(tǒng)垃圾分類系統(tǒng)以及垃圾分類知識普及存在的問題,我們研制了一種可以引導(dǎo)、鼓勵人們進(jìn)行垃圾分類的基于物聯(lián)網(wǎng)語音控制的垃圾分類系統(tǒng)[1]。
本系統(tǒng)主要由采集控制端、云服務(wù)平臺和PC上位機組成。設(shè)計方案如圖1所示。
圖1 設(shè)計方案
采集控制端以STM32為主控芯片配合檢測傳感器組成,采集垃圾桶重量、溢滿程度和煙霧濃度等參數(shù),使用WiFi模塊將采集到的數(shù)據(jù)通過MQTT協(xié)議上傳到百度智能云天工物聯(lián)網(wǎng)平臺,數(shù)據(jù)以JSON格式傳輸。而百度智能云天工物聯(lián)網(wǎng)平臺可以預(yù)覽垃圾桶所有參數(shù)的變動。PC上位機將麥克風(fēng)采集的語音上傳到百度EasyDL平臺,經(jīng)過在線語音識別后將識別結(jié)果傳回上位機,上位機通過判斷識別的語音結(jié)果判斷垃圾種類,從而通過主控芯片控制舵機打開相應(yīng)的垃圾桶蓋。用戶可在PC上位機界面查看語音識別結(jié)果、設(shè)置各項數(shù)據(jù)的閾值、訪問百度智能云查看數(shù)據(jù)等,實現(xiàn)遠(yuǎn)程監(jiān)控功能和在線識別語音功能。
主控芯片采用意法半導(dǎo)體公司出品的STM32F103RCT6微控制器(Micro Controller Unit, MCU)。其由HC-SR04超聲波測距傳感器、MQ-2煙霧傳感器、HX711壓力傳感器、ESP8266-WiFi模塊、AMS1117電源模塊、OLED液晶顯示屏等組成。該系統(tǒng)可實現(xiàn)的功能包括垃圾桶溢滿程度檢測、煙霧濃度檢測、重量采集、連接百度智能云天工物聯(lián)網(wǎng)平臺、顯示參數(shù)等。測量采集系統(tǒng)框圖如圖2所示。
圖2 測量采集系統(tǒng)
采用HC-SR04超聲波測距模塊可提供2~400 cm的非接觸式距離感測功能,測距精度可達(dá)3 mm。
STM32通過推挽輸出I/O引腳連接超聲波模塊的TRIG引腳觸發(fā)測距,給予10 μs的高電平信號。然后超聲波模塊自動發(fā)送8個40 kHz的方波,并自動檢測是否有信號返回。如果有信號返回,則通過I/O口ECHO輸出一個高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間。
超聲波時序如圖3所示。
圖3 超聲波時序圖
MQ-2氣體傳感器的探測范圍極其廣泛、靈敏度高、響應(yīng)快、穩(wěn)定性好、壽命長、驅(qū)動電路簡單。MQ-2煙霧傳感器檢測火災(zāi)煙霧是通過其輸出電壓與門限電壓比較得出。根據(jù)MQ-2的工作原理,其電導(dǎo)率隨著氣體濃度的增大而增大,其電阻是電導(dǎo)率的倒數(shù),所以電阻隨之減小,其特性就相當(dāng)于一個滑動變阻器。阻值R與空氣中被測氣體濃度C的計算關(guān)系式為:
STM32通過模擬輸入I/O引腳連接MQ-2氣體傳感器的AO引腳測量電壓,從而得到煙霧濃度。
HX711壓力傳感器是以HX711為核心的平行梁稱重裝置,其精度高、易加工、結(jié)構(gòu)簡單緊湊、抗偏載能力強、固有頻率高。
應(yīng)變式力傳感器的受力工作原理如圖4所示。將應(yīng)變片粘貼到受力的力敏型彈性元件上,當(dāng)彈性元件受力產(chǎn)生形變時,應(yīng)變片產(chǎn)生相應(yīng)的變化,并轉(zhuǎn)化成電阻的變化。將應(yīng)變片接成電橋,力引起的電阻變化將轉(zhuǎn)換為測量電路的電壓變化, STM32通過模擬輸入I/O引腳模塊ADC測量輸出電壓的數(shù)值,再通過換算即可得到所測量物體的重量[4-6]。
圖4 應(yīng)變式力傳感器的受力圖
采用0.96寸藍(lán)色OLED屏幕作為顯示模塊。STM32主控通過SPI協(xié)議控制OLED屏幕,可以顯示一些地方需要的漢字,電路連接簡單,可作為系統(tǒng)操作信息的輸出。
采用以ESP8266為主控的ESP-01模塊作為WiFi通信模塊。ESP-01模塊通過串口與單片機連接。將垃圾桶基本參數(shù)通過MQTT協(xié)議接入百度智能云天工物聯(lián)網(wǎng)[7]。
本系統(tǒng)選擇的物聯(lián)網(wǎng)環(huán)境為百度智能云天工物聯(lián)網(wǎng)平臺,使用MQTT協(xié)議進(jìn)行數(shù)據(jù)傳輸。MQTT是一種低開銷、低帶寬占用和為遠(yuǎn)程設(shè)備提供實時可靠消息服務(wù)的即時通信協(xié)議。其最大優(yōu)點是基于訂閱/發(fā)布機制,在物聯(lián)網(wǎng)和嵌入式移動設(shè)備中可廣泛應(yīng)用。MQTT 可以扮演3種不同的角色:發(fā)布者、訂閱者和服務(wù)器。百度智能云天工物聯(lián)網(wǎng)平臺提供了固定IP和端口的MQTT服務(wù)器作為數(shù)據(jù)轉(zhuǎn)發(fā)中轉(zhuǎn)站,實現(xiàn)了云存儲功能[8-9]。
本系統(tǒng)建立的云數(shù)據(jù)庫對系統(tǒng)進(jìn)行信息管理,此信息系統(tǒng)結(jié)構(gòu)如圖5所示。物聯(lián)網(wǎng)垃圾分類系統(tǒng)由變量信息、參數(shù)信息、警報信息、語音信息、個人信息組成。
圖5 信息系統(tǒng)結(jié)構(gòu)
(1)變量信息由溢滿信息、煙霧濃度信息、重量信息組成。
(2)參數(shù)信息由控制顯示的參數(shù)、舵機控制的參數(shù)組成。
(3)警報信息由溢滿警報信息和煙霧警報信息組成。
(4)語音信息由語音次數(shù)信息和語音種類信息組成。
(5)個人信息由個人所扔垃圾重量和積分組成。
在本系統(tǒng)設(shè)計的數(shù)據(jù)庫中建立了以下4個表:變量表、參數(shù)表、警報信息表和個人信息表。
變量表見表1所列。
表1 變量表
百度EasyDL平臺是一款面向追求高效率開發(fā)的開發(fā)者提供的零門檻AI模型訓(xùn)練與服務(wù)平臺。百度EasyDL平臺可以實現(xiàn)在線模型訓(xùn)練和服務(wù)部署。其中,百度語音識別服務(wù)可以將語音識別轉(zhuǎn)換成文字。通過API接口上傳音頻文件,實現(xiàn)精準(zhǔn)語音識別。包含中文、英語、粵語、四川話等多個識別模型,同時支持用戶語音識別模型在線自訓(xùn)練[10]。
語音自訓(xùn)練平臺可以有效解決語音識別模型精準(zhǔn)率不高的問題,如語音識別應(yīng)用的場景專業(yè)詞。在本項目中的垃圾詞匯通過自訓(xùn)練可以提升語音識別的準(zhǔn)確率。語音自訓(xùn)練平臺的在線訓(xùn)練特性可以緩解中斷性能短缺問題,上線模型的方式可以將模型部署到所應(yīng)用的設(shè)備上。自訓(xùn)練平臺流程如圖6所示。
圖6 自訓(xùn)練平臺流程
PyQt5是Qt v5的Python版本,功能強大復(fù)雜,提供Qt Designer設(shè)計UI。PC上位機的PyQt5界面主要由串口設(shè)置、串口的接收與發(fā)送、AI語音識別、更改參數(shù)、垃圾桶狀態(tài)顯示、波形顯示6個部分組成。用戶進(jìn)入系統(tǒng)后,服務(wù)器連接到百度EasyDL平臺,可保證實時進(jìn)行語音識別。當(dāng)STM32串口連接上位機后,可實時監(jiān)測溢滿信息、煙霧濃度信息、重量信息等數(shù)據(jù)。并且可以對讀取的數(shù)據(jù)進(jìn)行解析,并將數(shù)據(jù)的變化以折線圖的形式展示??梢赃x擇不同的語言種類,通過上位機采集的方式完成錄音,上傳到百度EasyDL平臺進(jìn)行識別并反饋。PyQt5界面功能如圖7所示。
圖7 PyQt5界面功能
首先將采集數(shù)據(jù)的STM32系統(tǒng)板連接電源,并用串口連接上位機,將上位機聯(lián)網(wǎng)。打開PC上位機軟件,用戶會直接進(jìn)入系統(tǒng)主頁面,如圖8所示。
圖8 系統(tǒng)主頁面
用戶點擊“串口檢測”后選擇串口,同時配置串口參數(shù),然后打開串口,如圖9(a)所示。連接串口后可以在發(fā)送區(qū)向STM32發(fā)送數(shù)據(jù),同時可以接收來自STM32的數(shù)據(jù),如圖9(b)所示。用戶可以選擇所要識別的語音種類,點擊“開始錄音”進(jìn)行錄音,點擊“停止錄音”結(jié)束錄音,點擊“識別”后可以顯示識別結(jié)果,如圖9(c)所示。用戶可以通過PC上位機讀取或更改STM32內(nèi)的相關(guān)參數(shù),如圖9(d)所示。用戶可以通過PC上位機查看STM32所連接的傳感器數(shù)據(jù),如圖9(e)所示。上位機通過解析傳感器數(shù)據(jù)繪制成一個實時變化的折線圖,方便用戶觀察,如圖9(f)所示。
圖9 演示結(jié)果
本次我們設(shè)計的系統(tǒng)使用STM32通過傳感器采集垃圾桶參數(shù),STM32連接WiFi模塊,通過MQTT協(xié)議連接到百度智能云服務(wù)器。上位機可以通過百度EasyDL平臺進(jìn)行語音識別。單片機通過接收語音識別的結(jié)果利用舵機打開不同的垃圾桶蓋,完成語音控制垃圾分類。同時,可以在百度智能云天工物聯(lián)網(wǎng)平臺查看垃圾分類的相關(guān)信息,幫助城市垃圾分類的物聯(lián)網(wǎng)化,為無接觸式垃圾分類的發(fā)展提供參考。