張 進,董加碧,李慧鵬,淦作財
(江蘇建筑職業技術學院 信電學院,江蘇 徐州 221116)
隨著社會工業化進程的加速發展,人們經常被霧霾天氣、室內過度裝修及煤氣泄漏等家居環境污染所困擾,不但會引發各種呼吸道疾病,更是對人們生命財產安全的潛在威脅,亟待提供一種簡單實用的檢測設備幫助人們監測室內空氣質量;但現有各類檢測裝置普遍存在檢測參數單一、操作不便等缺點。基于上述原因,本課題擬設計一種利用語音控制方式實現室內環境及有害氣體的監測裝置,既能實現對室內環境及有害氣體的有效監測,又能滿足用戶對家居設備人性化的需求,操作簡單,攜帶方便[1]。
本課題設計了一種基于語音控制的便攜式家庭環境監測儀,采用Arduino UNO作為核心控制器,結合語音識別技術與傳感器技術,實現對家居溫濕度、氣壓等普通環境量的監控,同時,具有對PM2.5,CO2,TVOC等有害氣體的監測顯示和報警等功能。基于語音控制的便攜式家庭環境監測儀結構框架如圖1所示。

圖1 系統結構框架
系統硬件部分主要由Arduino主控模塊、語音識別模塊、液晶顯示模塊、語音播報模塊、電源模塊以及4路傳感器參量監測模塊組成。系統自動采集環境溫濕度、大氣壓強、PM2.5,CO2及TVOC等4路傳感器數據,并進行暫存處理;當語音識別模塊識別語音指令后,經單片機處理將符合要求的傳感器數據送LCD顯示,同時,驅動語音播放模塊,播報當前空氣質量等級;實時監控有害氣體質量濃度,一旦有害氣體的質量濃度超過系統設定閾值時,啟動語音播報,發出語音警示[2-3]。
本設計選用Arduino UNO開發板作為主控模塊,實現各種環境參量的采集及信號處理,完成語音模塊、顯示模塊驅動及輸入語音信號的處理。Arduino設計平臺非常適合與各類傳感器配合使用,實現各類環境參量的監測與處理,目前廣泛用于物聯網方面的電子系統設計和互動產品開發。Arduino UNO是以ATmega328P芯片為核心的微控制器開發板,具有16組I/O端(其中6路可用作PWM輸出)6路模擬輸入端、兩組UART,16 MHZ晶振,工作電壓為1.8~5.5 V,可用USB接口供電[4]。
語音識別模塊采用LD3320語音識別芯片,主要完成語音識別及實現語音輸入功能。LD3320是一款基于非特定人語音識別技術的語音識別/聲控芯片。芯片集成了高精度的A/D和D/A接口,不需要外接輔助的Flash和RAM,即可實現語音識別/聲控/人機對話等功能。LD3320的語音識別過程主要包括語音模塊的初始化和語音指令的識別兩個步驟。(1)初始化語音模塊,利用板載單片機,將需要識別的語音指令以拼音串形式,逐條輸入至語音模塊,形成與其對應的語音索引詞,并生成索引詞列表。(2)識別語音指令,將麥克風采集到聲音信號轉化為電信號,經A/D轉換,濾除掉信號中靜音和非話音部分,得到有效信號的起止信息,對數據進行分幀處理和特征提取,由數據幀中聲學特征得到語音關鍵詞,再與語音識別器中索引詞列表進行相似度匹配,最后,將匹配度最高的索引詞作為識別結果,輸出到主控方單片機[5]。
顯示模塊采用1602+I2C轉接器,用來實時顯示當前溫濕度、氣壓、PM2.5,CO2,TVOC氣體質量濃度值。1602液晶顯示屏采用HD44780控制器,顯示容量為16×2個字符,芯片工作電壓4.5~5.5 V。該顯示屏共有16個引腳,可接8位雙向并行總線,用來傳輸命令和數據。一般采用8位接線法與Arduino通信。為減少因連線復雜而導致的線路錯誤,本設計采用了I2C轉接器。顯示屏與I2C轉接器接線為雙插接線口,采用接線帽與16根引腳線依次對接,既可減少連接導線數量,又可方便調節顯示屏的背光亮度,以適應不同的使用環境。
語音播報模塊采用DFPlayer Mini語音芯片,實時播報當前溫濕度、氣壓、PM2.5、CO2、TVOC氣體濃度值。DFPlayer Mini是一款智能語音模塊,體積小巧,價格低廉,可以直接接駁揚聲器,用作Arduino UNO或其他帶有串口單片機的外接模塊使用。內部集成MP3,WAV,WMA等硬解碼,支持TF卡驅動,支持FAT16FAT32文件系統,具有多種控制模式可選,通過串口指令即可播放指定語音及其他文件。本設計采用TF卡存放語音數據,方便程序調用。
2.5.1 溫濕度傳感器模塊
溫濕度傳感器模塊采用DHT11數字溫濕度傳感器,用來監測環境中溫、濕度參數,并將檢測信號以數字量的形式送至單片機處理。DHT11溫濕度傳感器是一款含有已校準數字信號輸出的復合傳感器,采用數字模塊采集及溫濕度傳感技術,用于相對濕度和溫度測量。其輸出響應快,抗干擾能力強,具有較高可靠性和穩定性。該模塊輸出引腳分別為VCC,GND,DATA。
2.5.2 氣壓傳感器模塊
氣壓傳感器模塊采用GY-68-BMP180氣壓傳感器,主要完成監測環境中大氣壓強參數,并將檢測信號以數字形式送至單片機處理。BMP180是一款高精度、小體積、超低能耗的數字壓力傳感器,采用8腳陶瓷無引線芯片承載超薄封裝,絕對精度達到0.03 hPa,耗電極低至3 μA,可通過I2C總線直接與各種微處理器相連,適用于各類移動設備。該模塊輸出引腳分別為VCC,GND,SCL,SDA。
2.5.3 PM2.5傳感器模塊
PM2.5傳感器模塊采用GP2Y1014粉塵傳感器,主要監測環境中PM2.5的含量,并將信號以數字形式送至單片機處理。該傳感器是一款光學灰塵監測傳感器,模塊中間有洞,可令空氣自由流通,內部放置紅外發光二極管和光電晶體管,紅外發光二極管定向發送紅外信號,當空氣中有微粒阻礙時,紅外信號發生漫反射,光電晶體管接收到該信號,使輸出電壓隨之變化。GP2Y1014AU粉塵傳感器可測量0.8 μm以上微小粒子,主要用作檢測煙草所產生的煙氣、花粉及諸多粉塵,其供電電壓為5~7 V,工作溫度為﹣10~65 ℃,靈敏度為0.5 V/(0.1 mg/m3),輸出信號為電壓信號/PWM/串口信號等,相比其他傳感器,具有成本低、響應快、線路連接簡單等優點。
2.5.4 CO2、甲醛傳感器模塊
CO2、甲醛傳感器模塊采用SGP30 CO2甲醛傳感器,主要用來監測環境中CO2,TVOC參數,并將信號以數字形式送至單片機處理。SGP30是一款具有多個傳感元件的金屬氧化物氣體傳感器,內部集成4個氣體傳感元件,具有完全校準的空氣質量輸出信號,測量值的典型精度為15%。該傳感器可檢測各種揮發性有機化合物(VOC)和H2等,其返回值為總揮發性有機化合物(TVOC)讀數和二氧化碳讀數(CO2),廣泛適用于智能家居、家電和物聯網應用中環境監測。
軟件設計由有害氣體檢測和語音識別與播放兩部分組成。所有程序開發均在Arduino開發環境Arduino IDE 1.81版本軟件上編程實現,該開發環境是完全免費且綠色開源,可運行于所有較高或最新WINDOWS操作系統。Arduino程序語言類似C/C++語法,具有基本常用函數庫。由于本設計采用了多種傳感器,因此,安裝了不同種類傳感器函數庫。本設計用Arduino語言編程,運用模塊化處理各功能子程序,程序結構清晰、邏輯性強。
(1)有害氣體檢測設計流程。系統上電復位后,開始采集4路傳感器信號,并對采集的數據進行分析處理;根據有害氣體參數閾值判斷是否給予報警提示,如果有害氣體參數有一項或多項超過設置閾值,則點亮紅燈,并進行語音報警,提示用戶當前環境狀況較差;否則返回,繼續采集并分析數據。
(2)語音識別與播放設計流程。系統上電復位后,LD3320語音芯片開始采集并識別語音指令,通過串口輸出給單片機;單片機對指令內容進行分析判斷后,利用單片機的SPI端口將數據發送給LCD1602; LCD1602接收指令完成溫濕度、有害氣體等參數的顯示,并語音播報當前空氣質量等級。
該產品設計及制作完成后,進行了模擬測試實驗。實驗采用正常話音音量,按照以下3種環境條件進行對比測試:(1)有無外界雜音干擾環境;(2)0~1.5 m及1.5~3 m兩種測試距離;(3)普通話及徐州話兩種不同語音環境,分別對該產品進行語音控制,并統計其控制成功率,測試次數為10次/組。系統語音控制性能測試,如表1所示。

表1 系統語音控制性能測試
測試結果分析:距離0~1.5 m普通話環境及一定雜音干擾下,語音控制成功率基本達到99%;距離0~1.5 m徐州話環境及一定雜音干擾下,語音控制成功率平均在96%以上;距離1.5~3 m及一定雜音干擾下,不論采用哪種語音,語音控制成功率在93%以上。這表明該語音控制產品在一定干擾環境下具有較高的可靠性和適應性,適用于家庭及一般室內場合。當測試距離在0~3 m范圍內逐漸增大時,語音控制的成功率基本保持不變,表明語音控制的范圍較廣,可以認為在一定干擾下,語音控制產品性能穩定可靠,達到了設計預期效果。
本設計采用語音識別技術,借助Arduino設計平臺,構建基于語音控制的家庭環境檢測儀,完成了室內空氣質量多參數檢測顯示及語音播報提示等功能設計,實現了家用環境質量的自動監測與分析。實際測試表明,該儀器在外部干擾及不同距離不同語音環境下,都有較高的成功率,系統工作可靠,操作簡單,攜帶方便,且同樣適用于學校、商場、辦公室等各種需要對空氣質量進行評價的環境中,具有一定推廣應用價值。