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