魏 德 夏 冰 王中坤
(平頂山學院 信息工程學院 河南 平頂山 467000)
隨著當前綜合國力不斷提升,社會蓬勃發(fā)展,我國的經(jīng)濟水平得到了極大的提高,同時由于我國建筑水平不斷地提高,使得我們居住的樓房越來越高,樓房之間的距離越來越緊密,由此帶來了一些安全隱患。傳統(tǒng)的人工疏散方式對火災的反應相對滯后,并且可能會造成沒有必要的人員傷亡。
本文以STM32F030C8T6為主控芯片,利用單片機控制技術(shù)和傳感器技術(shù),通過控制煙霧傳感器、GSM無線通信模塊、語音報警模塊、繼電器模塊和數(shù)據(jù)處理模塊,實現(xiàn)智能語音疏散等相關(guān)的基本功能。
系統(tǒng)的硬件電路設(shè)計包括 STM32單片機控制模塊、GSM無線通信模塊、MQ-2煙霧濃度檢測模塊、5V轉(zhuǎn)3.3V降壓模塊、按鍵模塊、語音報警模塊、128×64分辨率OLED顯示模塊和HK23F繼電器模塊。系統(tǒng)的軟件設(shè)計利用了KEIL5進行編程。其系統(tǒng)總體設(shè)計圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計圖
硬件設(shè)計使用了 STM32單片機、語音報警模塊、煙霧采集模塊、GSM、OLED屏和按鍵模塊。
本設(shè)計采用STM32F030C8T6單片機作為主控芯片。外圍電路有復位電路、晶振電路以及電源電路等[1]。復位電路可以實現(xiàn)用按鍵進行復位,晶振電路采用外接晶振為12 kHz的低頻晶振。該芯片工作電壓2.4 V-3.6 V,工作主頻率為48 MHz,同時具有豐富的片內(nèi)資源,片內(nèi)具有內(nèi)置高速存儲器。此外,它還有豐富的IO口和多個先進的通信接口,自帶3.3V穩(wěn)壓電路。此系統(tǒng)板具有性能強、功耗低,體積較小且價格低廉。最小系統(tǒng)及外圍電路如圖 2所示。
圖2 STW32最小系統(tǒng)及外圍電路
本系統(tǒng)采用的語音播報模塊是以JQ8400-FL芯片為核心的語音播報模塊,并選用了LS57N-12F-R8的 2.25寸高音喇叭。語音模塊的驅(qū)動芯片為JQ8400-16S,模塊采用USATR與單片機進行通信,TX端與單片機 RXD1端連接,RX端與單片機TXD1連接;喇叭通過輸出不同電壓,產(chǎn)生不同頻率的波形來發(fā)出不同的聲音[2]。語音報警模塊接口電路圖如圖3所示,JQ8400-FL芯片如圖4所示。
圖3 語音報警模塊接口電路
圖4 JQ8400-FL芯片
本設(shè)計中的煙霧濃度傳感器模塊上的電位器可以調(diào)節(jié)電阻從而調(diào)節(jié)輸出電壓來控制對煙霧濃度的靈敏度,其原理為:
其中:Vc為回路電壓;Ushuchu為傳感器輸出電壓;R為調(diào)節(jié)電阻;Rs為傳感器體電阻。
本設(shè)計中,MQ-2傳感器的小板數(shù)字開關(guān)接口DO懸空,小板模擬量輸出接口AO與STM32的IO口中的 PA3相連,通過傳感器內(nèi)部的 AD 轉(zhuǎn)換電路,單片機可以獲得周圍環(huán)境當中氣體濃度精準值,完成對室內(nèi)可燃氣體濃度采集。其模塊接口電路圖如圖5所示。
圖5 GSM無線通信模塊接口電路圖
本設(shè)計中主要使用的GSM模塊是SIM800L傳感器模塊,GSM模塊的RX、TX引腳分別與STM32主控芯片的PA15、PA14引腳進行連接,與單片機之間通過USART2進行數(shù)據(jù)傳送,當可燃氣體濃度超過一定指標時,MCU會立即控制GSM模塊向用戶發(fā)送報警短信。GSM/GPRS模塊接口電路圖如圖6所示。
圖6 GSM無線通信模塊接口電路圖
為了使測量結(jié)果更直觀,本次設(shè)計采用了128*64分辨率顯示的0.96寸OLED顯示屏模塊。本系統(tǒng)中OLED顯示屏模塊與單片機數(shù)據(jù)傳輸?shù)姆绞讲捎肧PI通信方式,硬件電路中將SCLK1、MOSI1、OLED_RST和OLED_CS引腳分別連接至單片機的I/O口PB13、PB15、PB6和PB5。寫數(shù)據(jù)時SCLK1先設(shè)置為低電平,在產(chǎn)生上升沿之前準備數(shù)據(jù),MOSI1給單片機傳送數(shù)據(jù)完成后,SCLK1拉高使OLED讀取數(shù)據(jù)。該模塊功能是實時顯示室內(nèi)溫煙霧濃度,煙霧濃度閾值調(diào)節(jié)的顯示。其與模塊接口電路圖如圖7所示。
圖7 OLED顯示屏模塊接口電路圖塊電路
本系統(tǒng)中,語音報警模塊、GSM無線數(shù)據(jù)模塊、煙霧濃度采集模塊供電電壓為5V。為了使系統(tǒng)正常工作,用USB為系統(tǒng)提供5V電壓,保證語音報警模塊、GSM無線通信模塊、煙霧濃度采集模塊正常工作。OLED顯示屏模塊供電電壓為3.3V,為獲得3.3V電壓,使用壓降模塊進行降壓,該模塊使用AMS1117芯片。AMS1117是一種線性穩(wěn)壓器,它對輸出電壓采樣并將輸出電壓反饋到輸出級調(diào)節(jié)管的阻抗,當輸出電壓過低時就調(diào)節(jié)阻抗變小,而輸出電壓過高時就調(diào)節(jié)阻抗變大,從而維持電壓的穩(wěn)定,輸入5V時阻抗增加,轉(zhuǎn)化為3.3V。壓降模塊接口電路圖如圖8所示。
圖8 電源電路模塊接口圖
繼電器是一種電控制器件,是當輸入量的變化達到規(guī)定要求時,輸出電路中使被控量發(fā)生預定的階躍變化的一種電器。它具有控制系統(tǒng)和被控制系統(tǒng)之間的互動關(guān)系,兩系統(tǒng)是絕緣隔離的;它實際上是用小電流去控制大電流運作的一種“自動開關(guān)”,通常應用于自動化的控制電路中[3]。
本設(shè)計采用電磁式繼電器,它由鐵芯、線圈、彈簧、銜鐵(動觸點)、常開和常閉觸點組成;常開是指繼電器常態(tài)(不通電時)下觸點為打開著,同理,常閉就是閉合著。工作時,線圈兩端有電勢差,勢差引起的電流流過線圈,產(chǎn)生電磁效應,會吸引銜鐵克服彈簧彈力與常開觸點接觸,被控制系統(tǒng)導通;不工作時,在線圈兩端沒電壓,線圈不會吸引銜鐵,銜鐵因彈簧彈力與常閉觸點接觸,被控制系統(tǒng)截止;在繼電器一次工作過程中可聽見短暫“嗒”一聲脆響。繼電器工作原理圖如圖9所示。
圖9 繼電器工作原理圖
本系統(tǒng)中,為了使發(fā)生報警的煙霧濃度閾值更為方便的調(diào)節(jié),除了通過MQ-2上的電位器調(diào)節(jié)外,還設(shè)計了通過按鍵模塊對報警閾值的調(diào)節(jié)。S1作為煙霧濃度閾值和告警開關(guān)的切換按鍵,系統(tǒng)默認S1為閾值調(diào)節(jié)狀態(tài),通過S2和S3分別增加和減少閾值。當S1按下時,進行閾值調(diào)節(jié),此時S3失效,切換為告警開關(guān)。當 S2按下時,告警開關(guān)關(guān)閉,S2再次按下,告警開關(guān)開啟。按鍵的調(diào)節(jié)過程為:按下S1可以調(diào)節(jié)煙霧濃度閾值,通過S2增加閾值S3減??;再次按下S1可以控制告警開關(guān),上電默認為開,按下 S2后可以關(guān)閉告警開關(guān)。按鍵模塊接口電路圖如圖10所示。
圖10 按鍵模塊
系統(tǒng)軟件使用 C語言在 Keil5環(huán)境下基于STM32官方庫進行程序開發(fā),使用ST-LINK燒錄軟件對程序進行下載與調(diào)試。
正常供電后,主程序先對整個系統(tǒng)參數(shù)進行初始化,然后對串口、定時器、OLED顯示屏模塊以及其它各模塊進行初始化,緊接著調(diào)用OLED顯示屏顯示函數(shù),將每一位待顯示數(shù)據(jù)傳輸至OLED顯示屏相對應的位置上進行顯示。系統(tǒng)的軟件設(shè)計為:系統(tǒng)上電后,開始系統(tǒng)初始化,然后在死循環(huán)中單片機開始不斷地獲取傳感器采集的數(shù)據(jù),通過標志位system_point進入switch語句,調(diào)用get_sensor函數(shù)判斷煙霧傳感器采集的數(shù)據(jù)是否大于預設(shè)定的煙霧濃度值。如果MQ-2傳感器檢測的數(shù)值大于預設(shè)定值,再通過標志位alarm標志位判斷告警開關(guān)是否開啟;若開啟,單片機就會驅(qū)動語音播報模塊進行語音報警同時驅(qū)動 GSM 模塊發(fā)送短信報警。系統(tǒng)主程序流程圖如圖11 所示。
圖11 系統(tǒng)總體程序流程圖
設(shè)計中所涉及的按鍵模塊部分主要包含的功能為:按下S1可以調(diào)節(jié)煙霧濃度閾值,通過S2增加閾值,S3減小閾值;再次按下S1可以控制告警開關(guān),上電默認為開,隨后按下 S2后可以關(guān)閉告警開關(guān)。按鍵模塊程序設(shè)計流程圖如圖12所示。
圖12 按鍵程序流程圖
為本系統(tǒng)上電運行后,進行系統(tǒng)參數(shù)初始化,先對MQ-2煙霧傳感器工作模式進行初始化,再將從傳感器的AO引腳讀取煙霧濃度數(shù)據(jù)發(fā)送給單片機。MQ-2煙霧傳感器主要通過內(nèi)部ADC轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號。煙霧濃度傳感器模塊上的電位器可以調(diào)節(jié)煙霧濃度的靈敏度(其原理見2.3)從而對不同的煙霧的濃度進行檢測。煙霧傳感器采集程序流程圖如圖13所示。
圖13 按鍵程序流程圖
本設(shè)計通過單片機的USART2串口2給GSM模塊發(fā)送AT+CMGF=1指令,隨后等待GSM模塊響應OK之后發(fā)送AT+CSCS=“GSM”,設(shè)置TE輸入字符集格式為“GSM”格式,再次響應OK之后,發(fā)送 AT+“手機號碼”編輯短信,再發(fā)送PDU格式的短消息響應OK之后,說明信息發(fā)送完畢[4]。報警的短信發(fā)送流程圖如圖14所示。
圖14 報警短信發(fā)送流程圖
硬件測試對于設(shè)計一個系統(tǒng)來說尤為重要,因為硬件電路連接部分出現(xiàn)的錯誤往往會使系統(tǒng)無法實現(xiàn)功能甚至導致電路的損壞[5]。
首先測試硬件PCB電路連接是否有問題,系統(tǒng)能否正常運行。然后測試語音播報模塊能否順利進行報警,傳感器模塊能否正常采集數(shù)據(jù),當環(huán)境異常時 GSM 模塊能否給用戶發(fā)送報警短信等。最后測試OLED顯示屏模塊長時間工作能否正常顯示當前煙霧濃度值以及系統(tǒng)能否長時間運行。
為MQ-2傳感器對可燃氣體等有一定的敏感度,故可通過用打火機模擬燃氣泄漏來測試其是否具備室內(nèi)環(huán)境監(jiān)測的功能。當釋放燃氣時,MQ-2檢測煙霧濃度達到99%,告警開關(guān)為開的狀態(tài)下,單片機會驅(qū)動語音播報模塊進行語音播報以及通過GSM發(fā)送報警短信。
軟件測試是開發(fā)設(shè)計中必不可少的流程,進行軟件測試可以檢驗系統(tǒng)功能是否完善,同時也可以檢測到硬件電路是否正常工作。
4.2.1 OLED屏幕軟件測試
OLED顯示屏顯示部分的軟件測試主要檢測OLED顯示屏的數(shù)據(jù)顯示及清屏功能是否正常,測試方法是在測試程序中分別寫入煙霧濃度顯示、煙霧濃度閾值顯示,下載程序并觀察OLED顯示屏顯示效果。OLED第一行顯示主控芯片為STM32,第二行顯示當前煙霧濃度,第三行顯示當前設(shè)定的煙霧濃度閾值,第四行顯示的告警開關(guān)的開關(guān)狀態(tài)。OLED顯示屏顯示如圖15所示。
圖15 OLED顯示屏顯示圖
4.2.2 按鍵設(shè)置閾值軟件測試
按鍵程序設(shè)置部分的軟件測試主要是為了檢測按鍵能否正常調(diào)節(jié)觸發(fā)煙霧報警的閾值和告警開關(guān),測試方法是在程序中寫入調(diào)節(jié)閾值和控制告警開關(guān)的程序,在顯示屏中查看數(shù)值是否能通過按鍵按下去改變。程序下載完畢之后,默認顯示 Max_Gas為30%,Alarm可以通過按鍵調(diào)節(jié)為OFF關(guān)閉狀態(tài)。按鍵調(diào)節(jié)效果如圖16所示。
圖16 按鍵調(diào)節(jié)效果圖
4.2.3 GSM無線通信軟件測試
GSM 模塊程序的部分主要是當煙霧濃度達到閾值,語音報警模塊發(fā)生報警之后,手機接到發(fā)生火災的警告。短信效果如圖17所示。
圖17 短信效果圖
本文設(shè)計了以STM32F030C8T9為核心控制器的語音智能疏散系統(tǒng)。系統(tǒng)對語音報警具有靈敏度高、成本低等優(yōu)點,具有較高的現(xiàn)實可行性。本設(shè)計還需進一步改進,例如系統(tǒng)對火災的檢測,可選用耐熱的材料,提高系統(tǒng)的穩(wěn)定性;系統(tǒng)也可與太陽能路燈共用電源,方便安裝和節(jié)約成本。