常文慧,張偉娟,李 靖,孫洪程
(1.燕京理工學(xué)院信息科學(xué)與技術(shù)學(xué)院,河北廊坊 065201;2.北京化工大學(xué)信息學(xué)院,北京 100029)
石油化工行業(yè)排放的未達(dá)標(biāo)廢氣已經(jīng)成為了大氣污染的主要來(lái)源之一[1]。所以需要一套設(shè)備多點(diǎn)實(shí)時(shí)監(jiān)測(cè)工業(yè)廢氣,滿足相關(guān)部門對(duì)廢氣判斷是否符合國(guó)家排放標(biāo)準(zhǔn)的需求。王雪飛[2]等設(shè)計(jì)了一套基于GPRS的廢氣遠(yuǎn)程監(jiān)測(cè)系統(tǒng),能夠?qū)崿F(xiàn)廢氣的自動(dòng)遠(yuǎn)程檢測(cè);徐敏[3]基于AT89S8252設(shè)計(jì)了工業(yè)廢氣監(jiān)測(cè)系統(tǒng),在LCD液晶屏上顯示廢氣的多種參量;韓團(tuán)軍[4]設(shè)計(jì)了基于WEB的空氣質(zhì)量實(shí)時(shí)監(jiān)測(cè)系統(tǒng),該系統(tǒng)完成了對(duì)空氣質(zhì)量參數(shù)的監(jiān)測(cè)、管理與分析;賈榮媛[5]等設(shè)計(jì)并實(shí)現(xiàn)了基于WSCN的工業(yè)廢氣監(jiān)測(cè)與凈化系統(tǒng);吳向成[6]等設(shè)計(jì)了基于ZigBee的可燃?xì)怏w監(jiān)測(cè)報(bào)警系統(tǒng),提供了氣體火災(zāi)預(yù)警的功能。上述系統(tǒng)存在不能多點(diǎn)監(jiān)測(cè)廢氣或者不能及時(shí)反應(yīng)廢氣參數(shù)變換狀態(tài)的情況,有的系統(tǒng)不能實(shí)現(xiàn)未達(dá)標(biāo)廢氣報(bào)警功能。因此本文設(shè)計(jì)了一套基于STM32的工業(yè)廢氣無(wú)線監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)對(duì)廢氣多點(diǎn)、實(shí)時(shí)監(jiān)測(cè),完成廢氣參量后臺(tái)查閱、實(shí)時(shí)保存和預(yù)警功能。
系統(tǒng)由廢氣參數(shù)采集節(jié)點(diǎn)、中央處理模塊與服務(wù)器/移動(dòng)端三部分構(gòu)成。廢氣參數(shù)檢測(cè)節(jié)點(diǎn)檢測(cè)該處廢氣信息,作為系統(tǒng)終端;中央處理模塊負(fù)責(zé)4G網(wǎng)絡(luò)的組建和數(shù)據(jù)的處理,作為數(shù)據(jù)處理和協(xié)調(diào)的中轉(zhuǎn)站。服務(wù)器/移動(dòng)端作為廢氣參數(shù)顯示、保存和預(yù)警的終端。圖1為系統(tǒng)整體設(shè)計(jì)框圖。
圖1 系統(tǒng)整體框圖
系統(tǒng)運(yùn)行時(shí),首先若干個(gè)檢測(cè)節(jié)點(diǎn)的ZigBee模塊分別和中央處理模塊的ZigBee模塊進(jìn)行組網(wǎng),然后各個(gè)廢氣檢測(cè)節(jié)點(diǎn)開(kāi)始定期采集該處廢氣參數(shù),中央處理模塊通過(guò)ZigBee無(wú)線通信協(xié)議接收各個(gè)檢測(cè)節(jié)點(diǎn)的發(fā)送信號(hào),中央處理模塊經(jīng)過(guò)一輪數(shù)據(jù)接收后,將數(shù)據(jù)進(jìn)行處理,最后,中央處理模塊以GPRS方式把數(shù)據(jù)發(fā)送給PC端,將數(shù)據(jù)顯示在PC端,同時(shí)將數(shù)據(jù)保存為xml文件,便于后期對(duì)廢氣的分析,如果檢測(cè)到的廢氣參數(shù)大于預(yù)設(shè)的閾值,將通過(guò)GSM的方式發(fā)送報(bào)警短信給相應(yīng)的手機(jī)號(hào)碼。
系統(tǒng)硬件設(shè)計(jì)由廢氣檢測(cè)節(jié)點(diǎn)模塊和中央處理模塊組成,兩種模塊間通過(guò)ZigBee進(jìn)行無(wú)線通信。圖2為系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)框圖。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
每個(gè)廢氣監(jiān)測(cè)節(jié)點(diǎn)由3個(gè)不同類型的廢氣參數(shù)測(cè)量傳感器與1片STM32、1個(gè)ZigBee模塊組成。功能流程為:傳感器將檢測(cè)到的廢氣參數(shù)分別傳送給STM32,STM32將3種參數(shù)數(shù)據(jù)和節(jié)點(diǎn)地址打包后發(fā)給ZigBee模塊。圖3為廢氣檢測(cè)節(jié)點(diǎn)電路。
圖3 廢氣檢測(cè)節(jié)點(diǎn)電路
3種氣體傳感器分別為MQ139型的氣體濃度傳感器、SHT30型氣體溫濕度傳感器和BH1750型光照強(qiáng)度傳感器。MQ139傳感器在工業(yè)領(lǐng)域具有廣泛的應(yīng)用,它使用5 V供電,模擬信號(hào)輸出,優(yōu)點(diǎn)是外圍電路簡(jiǎn)單,體積小,性價(jià)比高,內(nèi)部集成了吸附氣體的元件[7],以此測(cè)量廢氣濃度值,并將濃度值轉(zhuǎn)換為電壓信號(hào),因此將其輸出端接入STM32的12位的ADC接口,通過(guò)STM32的模數(shù)轉(zhuǎn)換功能得到實(shí)際的濃度值。由于工業(yè)廢氣溫度一般可達(dá)到80 ℃,并且濕度范圍分布廣,還考慮到傳感器的測(cè)量精度和體積大小的問(wèn)題,決定使用SHT30型氣體溫濕度傳感器,它的濕度測(cè)量范圍為0~100% RH,精度為1.5% RH,溫度測(cè)量范圍為-40~125 ℃,精度為±0.2 ℃,體積為12 mm×12 mm[8],它使用3.3 V供電,I2C接口輸出;通過(guò)檢測(cè)光照強(qiáng)度從而計(jì)算煙霧濃度,以此更加準(zhǔn)確地得到廢氣的濃度[9]。BH1750型光照強(qiáng)度傳感器是一種金屬氧化物傳感器,具有體積小、精度高等優(yōu)點(diǎn),工作溫度在-40~85 ℃,傳感器采用5 V供電,測(cè)量值可以通過(guò)STM32的串口直接讀出。
ZigBee是工業(yè)物聯(lián)網(wǎng)中一種應(yīng)用成熟的無(wú)線組網(wǎng)技術(shù)[10]。它是基于IEEE802.15.4標(biāo)準(zhǔn)制定的,在低速傳輸方面表現(xiàn)較好,具有廣泛的應(yīng)用,適合用作無(wú)線傳感器網(wǎng)絡(luò)的通信協(xié)議。完整的ZigBee協(xié)議從下至上按物理層、介質(zhì)訪問(wèn)層、網(wǎng)絡(luò)層、安全層和高層應(yīng)用順序排列組成,每層再采用各自的協(xié)議,組合形成無(wú)線通信,可以實(shí)現(xiàn)采用較低的成本構(gòu)建強(qiáng)大的無(wú)線通信網(wǎng)絡(luò)。本系統(tǒng)采用工業(yè)級(jí)無(wú)線通訊模塊LRF215A,主芯片為CC2530,3.3 V供電,板載了天線和串口,STM32通過(guò)串口發(fā)送AT指令控制或訪問(wèn)該模塊,具有多節(jié)點(diǎn)連接、低功耗和遠(yuǎn)距離傳輸?shù)葍?yōu)點(diǎn)。CC2530片上系統(tǒng)芯片集成了增強(qiáng)型的8051 MCU內(nèi)核、無(wú)線射頻收發(fā)器,支持ZigBee協(xié)議,工作在全球通用2.4 GHz頻段,具有功能強(qiáng)大、成本低、功耗低、抗干擾性能好等優(yōu)點(diǎn)。
STM32芯片的作用是采集多個(gè)氣體傳感器的檢測(cè)數(shù)據(jù),并將采集的數(shù)據(jù)和節(jié)點(diǎn)的位置數(shù)據(jù)打包為ASCII碼發(fā)送至ZigBee端。系統(tǒng)的數(shù)據(jù)處理和主控芯片采用STM32F407ZGT6,作為ARM系列面向工業(yè)控制的微控制器,它的運(yùn)行頻率可達(dá)72 MHz,內(nèi)部集成了豐富的片內(nèi)外設(shè),包括多個(gè)12位的ADC、UART和I2C等接口,進(jìn)行簡(jiǎn)單的配置后即可與豐富的外設(shè)進(jìn)行通信。
圖4為中央處理模塊電路。中央處理模塊由1個(gè)ZigBee模塊、1片STM32和1個(gè)GPRS模塊組成。ZigBee和GPRS模塊通過(guò)串口與STM32連接。此處的ZigBee模塊作用是與廢氣采集節(jié)點(diǎn)的多個(gè)ZigBee模塊進(jìn)行組網(wǎng),接收各廢氣采集節(jié)點(diǎn)發(fā)送的ASCII碼,STM32的作用一方面管理著各個(gè)廢氣檢測(cè)節(jié)點(diǎn)與中央處理模塊的ZigBee模塊的加入和退出,接收處理各個(gè)節(jié)點(diǎn)傳送回來(lái)的數(shù)據(jù),另一方面控制GPRS模塊向服務(wù)器/手機(jī)終端發(fā)送信息的功能。GPRS無(wú)線模塊將中央處理單元處理的數(shù)據(jù)上傳至服務(wù)器,如果該數(shù)據(jù)超過(guò)設(shè)定的閾值,還將通過(guò)短信功能向設(shè)置的號(hào)碼發(fā)送報(bào)警短信。本系統(tǒng)選用SIM800A模塊,該模塊是一款兩頻GSM/GPRS模塊,外觀小,性價(jià)比高,其工作頻率為900/1 800 MHz,可以實(shí)現(xiàn)低功耗語(yǔ)音、短信以及數(shù)據(jù)傳輸?shù)裙δ躘11],可通過(guò)串口傳輸標(biāo)準(zhǔn)的AT命令進(jìn)行控制。
圖4 中央處理模塊電路圖
考慮到廢氣檢測(cè)節(jié)點(diǎn)模塊和中央處理模塊芯片的電壓值多樣、耗電量大的情況,還要保證系統(tǒng)在現(xiàn)場(chǎng)環(huán)境較為惡劣情況下供電也能正常工作,決定采用12 V/5 A的適配器作為電源,并使用LM2576-5V和LM2576-3.3V芯片設(shè)計(jì)電源電路,產(chǎn)生5 V電壓為GPRS、BH1750模塊和MQ139模塊供電,產(chǎn)生3.3 V電壓為STM32、SIM800A、LRF215A模塊和SHT30模塊供電。電源電路圖如圖5所示。
圖5 電源電路圖
系統(tǒng)中各模塊的主芯片的VCC為5 V和3.3 V,據(jù)此設(shè)計(jì)了芯片的電源電路。如圖5所示。采用12 V的電源適配器,經(jīng)過(guò)LM2576降壓穩(wěn)壓后給各個(gè)模塊芯片供電。LM2576系列芯片是一種開(kāi)關(guān)型穩(wěn)壓降壓芯片,它的內(nèi)部封裝有完整的過(guò)壓、欠壓和過(guò)流保護(hù)電路[12],輸出電壓紋波小,輸出最大電流為3 A,使用少量的外接元器件就可以搭建穩(wěn)定的5 V降壓輸出電路。
系統(tǒng)的軟件設(shè)計(jì)由廢氣采集模塊、中央處理模塊和基于STM32的工業(yè)廢氣無(wú)線監(jiān)測(cè)系統(tǒng)界面組成。
廢氣檢測(cè)節(jié)點(diǎn)端軟件的主要功能是周期性地檢測(cè)多種廢氣參數(shù)信號(hào),并將信號(hào)的數(shù)據(jù)打包發(fā)送給中央處理模塊的ZigBee模塊。其具體流程圖如圖6所示。
圖6 廢氣檢測(cè)模塊軟件流程圖
多種傳感器通過(guò)內(nèi)部集成器件檢測(cè)到廢氣各項(xiàng)參數(shù)后通過(guò)不同接口類型將數(shù)字或者模擬信號(hào)傳送給STM32,STM32通過(guò)12位的ADC將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),得到所有傳感器檢測(cè)數(shù)據(jù)的有效值,將檢測(cè)節(jié)點(diǎn)序號(hào)和有效值打包通過(guò)串口傳輸給ZigBee模塊,ZigBee模塊通過(guò)Z-Stack協(xié)議棧將數(shù)據(jù)發(fā)送。
STM32的作用是控制各個(gè)模塊之間的協(xié)調(diào)運(yùn)作,通過(guò)串口取得系統(tǒng)終端各個(gè)采集節(jié)點(diǎn)的數(shù)據(jù)和發(fā)送AT指令控制GPRS模塊,通過(guò)GPRS模塊將終端數(shù)據(jù)最終發(fā)送給服務(wù)器、手機(jī)。其流程框圖如圖7所示。
圖7 中央處理單元軟件流程圖
STM32發(fā)送AT指令給ZigBee模塊和GPRS模塊,初始化中央處理模塊,通過(guò)ZigBee模塊建立與檢測(cè)節(jié)點(diǎn)模塊的ZigBee模塊的網(wǎng)絡(luò)連接,通過(guò)GPRS模塊建立與服務(wù)器端的TCP連接,在建立連接時(shí),需經(jīng)過(guò)“三次握手”,才能建立連接,是一種可靠連接。當(dāng)ZigBee模塊接收到數(shù)據(jù)后,將數(shù)據(jù)進(jìn)行打包,通過(guò)GPRS模塊將數(shù)據(jù)傳輸給PC端。當(dāng)數(shù)據(jù)大于預(yù)設(shè)閾值時(shí),GPRS模塊給指定電話號(hào)發(fā)送預(yù)警短信。
為了實(shí)現(xiàn)采集數(shù)據(jù)的統(tǒng)一管理,便于工作人員對(duì)系統(tǒng)數(shù)據(jù)的后續(xù)采集和分析。設(shè)計(jì)了數(shù)據(jù)可視化界面軟件,該軟件具有數(shù)據(jù)可視化和存儲(chǔ)功能。軟件通過(guò)PYQT設(shè)計(jì),PYQT是一個(gè)創(chuàng)建GUI應(yīng)用程序的工具包。它是Python編程語(yǔ)言和Qt庫(kù)的融合,PYQT設(shè)計(jì)上位機(jī)軟件具有開(kāi)發(fā)周期短、插件豐富等優(yōu)點(diǎn)。
根據(jù)以上對(duì)系統(tǒng)硬件和軟件的分析,研發(fā)了一套基于STM32的工業(yè)廢氣無(wú)線監(jiān)測(cè)系統(tǒng),在實(shí)驗(yàn)室條件下對(duì)系統(tǒng)的功能和測(cè)量的精準(zhǔn)度進(jìn)行了測(cè)試。按照?qǐng)D8建立實(shí)驗(yàn)平臺(tái)。在一個(gè)80 cm×80 cm×60 cm的頂部開(kāi)口的紙箱的對(duì)角部位和下頂中心部位放置了共5個(gè)檢測(cè)節(jié)點(diǎn),二氧化碳煙餅放置在紙箱的另一個(gè)角處,并在每個(gè)檢測(cè)節(jié)點(diǎn)附近放置了二氧化碳濃度標(biāo)準(zhǔn)測(cè)試儀。進(jìn)行實(shí)驗(yàn)時(shí),將煙餅點(diǎn)燃,模擬工業(yè)廢氣,直到煙餅燃燒完畢,在此過(guò)程觀察可視化界面是否能夠正常顯示氣體的各種參數(shù)。圖9為可視化界面顯示的數(shù)據(jù)。并將顯示參數(shù)和標(biāo)準(zhǔn)儀表數(shù)據(jù)記錄下來(lái),然后根據(jù)記錄的數(shù)據(jù)分析本系統(tǒng)與標(biāo)準(zhǔn)儀表間的測(cè)量誤差。測(cè)量誤差如表1所示。
圖8 實(shí)驗(yàn)平臺(tái)示意圖
表1 測(cè)量誤差 %
圖9 可視化界面
由圖9可知,系統(tǒng)的測(cè)量值顯示在了界面上,并在后臺(tái)進(jìn)行了保存。由表1的數(shù)據(jù)可知系統(tǒng)測(cè)得的氣體的各項(xiàng)指標(biāo)參數(shù)與標(biāo)準(zhǔn)儀表測(cè)量的數(shù)據(jù)的誤差很小,都維持在5%以下。并且在后續(xù)的實(shí)驗(yàn)中指定號(hào)碼的手機(jī)接到了系統(tǒng)的預(yù)警短信。通過(guò)以上分析可得,系統(tǒng)功能能夠正常實(shí)現(xiàn),檢測(cè)精確度也較高,滿足設(shè)計(jì)的需求。
本文設(shè)計(jì)了一套基于STM32的工業(yè)廢氣無(wú)線監(jiān)測(cè)系統(tǒng),將嵌入式與工業(yè)互聯(lián)網(wǎng)技術(shù)結(jié)合,采用多點(diǎn)測(cè)量多項(xiàng)測(cè)量參數(shù)相融合的方式測(cè)量工業(yè)廢氣。對(duì)硬件和軟件設(shè)計(jì)進(jìn)行了詳細(xì)分析,設(shè)計(jì)了系統(tǒng)的硬件和軟件,通過(guò)實(shí)驗(yàn)測(cè)試證明了系統(tǒng)的可行性。系統(tǒng)硬件設(shè)備體積較小、成本較低、操作簡(jiǎn)單,能夠完成工業(yè)廢氣無(wú)線監(jiān)測(cè)任務(wù)。