王浩博 唐晨棟 張宇
摘 要:針對(duì)當(dāng)下市場(chǎng)中大部分環(huán)境監(jiān)測(cè)設(shè)備功能不完善的問(wèn)題,文中提出并設(shè)計(jì)了一種室內(nèi)氣體環(huán)境的智能監(jiān)控系統(tǒng),所設(shè)置的功能可以極大程度地滿足用戶需求。系統(tǒng)采用多種傳感器,可以測(cè)量多種氣體的濃度。將STM32單片機(jī)作為核心處理器,增加系統(tǒng)的運(yùn)算能力,另設(shè)置了警戒閾值,實(shí)現(xiàn)了超過(guò)閾值時(shí)蜂鳴器報(bào)警、短信通知的功能。采用GSM模塊無(wú)線傳輸測(cè)量數(shù)據(jù),使系統(tǒng)能夠?qū)y(cè)量的結(jié)果實(shí)時(shí)傳輸至PC機(jī)中。為了實(shí)現(xiàn)數(shù)據(jù)的可視化,采用LabVIEW軟件完成上位機(jī)設(shè)計(jì),顯示不同氣體的數(shù)據(jù)曲線,得到多種氣體的濃度變化情況,實(shí)現(xiàn)了在PC機(jī)上顯示測(cè)量結(jié)果的功能。
關(guān)鍵詞:STM32單片機(jī);LabVIEW;環(huán)境監(jiān)測(cè);GSM;傳感器;通信
中圖分類號(hào):TP274+.3文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2095-1302(2019)09-00-04
0 引 言
LabVIEW(Laboratory Virtual Instrument Engineering Workbench,LabVIEW)是當(dāng)前頗受業(yè)界人士推崇與青睞的一種圖形化開發(fā)環(huán)境。最初,LabVIEW的主要功能為測(cè)量測(cè)試,經(jīng)過(guò)多年的發(fā)展,LabVIEW已能夠很好地完成大部分測(cè)量測(cè)試任務(wù)。如今,它被廣泛用于各種測(cè)量設(shè)備中,被工業(yè)、學(xué)術(shù)以及科研等領(lǐng)域作為測(cè)量測(cè)試、儀器控制必不可少的工具,用戶可以通過(guò)工具包組成完整的測(cè)試程序[1]。
國(guó)內(nèi)外的智能家居行業(yè)隨著測(cè)量技術(shù)的逐步發(fā)展,產(chǎn)品準(zhǔn)確性得到了明顯提高,隨著用戶對(duì)測(cè)量結(jié)果的重視程度不斷增加,智能家居系統(tǒng)將會(huì)向提升運(yùn)算速度、無(wú)線傳輸以及實(shí)時(shí)發(fā)送測(cè)量結(jié)果的方向發(fā)展[2]。針對(duì)上述情況,以STM32F103VET6作為嵌入式MCU,以SIM900A通信模塊實(shí)現(xiàn)無(wú)線傳輸功能,以LabVIEW上位機(jī)實(shí)時(shí)顯示測(cè)量結(jié)果,設(shè)計(jì)了基于LabVIEW的室內(nèi)環(huán)境監(jiān)控系統(tǒng),將多種傳感器采集的數(shù)據(jù)通過(guò)串口發(fā)送至STM32F103VET6單片機(jī),通過(guò)SIM900A通信模塊將采集結(jié)果發(fā)送至電腦以及手機(jī),創(chuàng)新性地利用LabVIEW對(duì)數(shù)據(jù)的處理功能方便用戶更直觀地了解采集結(jié)果。無(wú)線傳輸以及上位機(jī)顯示功能能夠方便用戶對(duì)緊急情況及時(shí)做出反應(yīng),使系統(tǒng)更加人性化。
1 系統(tǒng)總體設(shè)計(jì)
本系統(tǒng)擁有一個(gè)檢測(cè)點(diǎn)、一個(gè)后臺(tái)和一個(gè)用戶端,在對(duì)各檢測(cè)點(diǎn)的結(jié)構(gòu)組成進(jìn)行全面研究與分析后發(fā)現(xiàn),其均由溫度傳感器、甲醛傳感器、煙霧傳感器、單片機(jī)等組成。另外,單片機(jī)作為系統(tǒng)的關(guān)鍵構(gòu)成部分,以系統(tǒng)實(shí)現(xiàn)功能為重點(diǎn)依據(jù),控制器需要控制數(shù)據(jù)采集、指令解析、數(shù)據(jù)通信等。本系統(tǒng)中單片機(jī)一方面控制通信模塊發(fā)送信息,另一方面還需控制報(bào)警,當(dāng)某一測(cè)量值超限時(shí)蜂鳴器鳴叫。后臺(tái)為L(zhǎng)abVIEW上位機(jī),用戶端為用戶手機(jī)。系統(tǒng)總設(shè)計(jì)如圖1所示。
2 系統(tǒng)硬件設(shè)計(jì)
2.1 嵌入式微處理器
在一塊較小的電路板上嵌入一塊具有特定功能的微處理器芯片—嵌入式微處理器[2],由于外圍電路可滿足特定功能,因此嵌入式電路板體積明顯縮小。近年來(lái),嵌入式處理器發(fā)展的越來(lái)越成熟,其高性能、低功耗的特性已能夠滿足絕大部分設(shè)備的需求[3]。本系統(tǒng)選用意法半導(dǎo)體企業(yè)獨(dú)立研發(fā)的STM32F103VET6芯片,在對(duì)這款芯片的性能參數(shù)進(jìn)行深入分析后發(fā)現(xiàn),其內(nèi)核為32位Cortex-M3,內(nèi)置兩種不同規(guī)格的存儲(chǔ)器,分別為512 KB的閃存和64 KB的SRAM存儲(chǔ)器。芯片的運(yùn)行頻率為72 MHz,內(nèi)置12位ADC以及DAC,11個(gè)定時(shí)器。電源通過(guò)USB接口接入5 V電壓供電。晶振電路支持兩種不同規(guī)格的時(shí)鐘源,一是運(yùn)行頻率為23.768 kHz的時(shí)鐘源,為低速時(shí)鐘源;另一個(gè)是運(yùn)行頻率為8 MHz的時(shí)鐘源,為高速時(shí)鐘源。另外,復(fù)位電路的常用方式有兩種,即上電型與按鈕型,復(fù)位時(shí)電源復(fù)位輸出低電平作用于RESET管腳[4]。
2.2 傳感器模塊
2.2.1 溫度傳感器
本系統(tǒng)選用的溫度傳感器型號(hào)為DS18B20,該傳感器可利用1-Wire總線與STM32F103單片機(jī)通信,因此可使自身抗干擾性能得到進(jìn)一步提升,同時(shí)該傳感器監(jiān)測(cè)范圍相對(duì)較廣,其監(jiān)測(cè)區(qū)間為-55~125 ℃,且在監(jiān)測(cè)范圍-10~85 ℃之外時(shí)誤差可被合理地控制在±0.5 ℃之下,輸出數(shù)字量,正常情況下,其供電范圍為3.0~5.5 V[5]。此型號(hào)的傳感器與單片機(jī)的3.3 V及GND口連接,DQ口則與單片機(jī)的PA5口相連。
此型號(hào)傳感器支持6種不同形式的信號(hào),分別為復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0、讀1。溫度測(cè)量過(guò)程由STM32F103單片機(jī)發(fā)出復(fù)位脈沖開始,STM32F103單片機(jī)輸出480 μs以上的低電平。轉(zhuǎn)變?yōu)榻邮漳J剑≧x)之前需完成兩項(xiàng)基本操作,首先釋放總線,然后再對(duì)總線進(jìn)行上拉處理,由此轉(zhuǎn)變?yōu)楦唠娖?。在此之后,DS18B20傳感器通過(guò)拉低總線60~240 μs的方式輸出低脈沖,并對(duì)兩者的連接方法進(jìn)行檢測(cè),以進(jìn)一步確定是否為應(yīng)答信號(hào)的值,當(dāng)顯示0時(shí),說(shuō)明檢測(cè)到傳感器,返回1時(shí)表示未檢測(cè)到傳感器。在讀取檢測(cè)結(jié)果時(shí),單片機(jī)一定要先輸出讀時(shí)序,并且在該過(guò)程中,主機(jī)對(duì)總線完全釋放,在15 μs后對(duì)總線狀態(tài)進(jìn)行監(jiān)測(cè)與采樣。通過(guò)圖2可對(duì)此傳感器的溫度讀取過(guò)程有更直觀、全面的了解。
2.2.2 濕度傳感器
濕度傳感器型號(hào)為DHT22,采用3引線連接方式,數(shù)據(jù)線定義為SDA引腳,串行傳輸數(shù)據(jù),與單片機(jī)U3口相連。運(yùn)行電壓為3.3~5.5 V,測(cè)量范圍為0~99.9%RH,當(dāng)溫度為25 ℃時(shí),誤差在±2%RH以內(nèi)[6]。
DHT22傳感器一次采集8位數(shù)據(jù),循環(huán)采集4次,校驗(yàn)數(shù)據(jù),共40位。其中,高16位為濕度數(shù)據(jù),對(duì)捕獲到的濕度值進(jìn)行除10處理便能獲取準(zhǔn)確無(wú)誤的真實(shí)濕度值。在測(cè)量過(guò)程中,DHT22在接收到起始指令后立即轉(zhuǎn)變運(yùn)行模式,即由最初的休眠模式轉(zhuǎn)變?yōu)楦咚倌J?,利用SDA數(shù)據(jù)線傳送數(shù)據(jù)并在結(jié)束時(shí)執(zhí)行一次信息收集操作,在下次通信之前,傳感器進(jìn)入休眠模式。為了避免誤差過(guò)大,兩次采集的時(shí)間間隔必須大于1 s。
2.2.3 甲醛傳感器
甲醛傳感器采用ZE08-CH2O型電化學(xué)甲醛模組,是鄭州煒盛電子科技有限公司生產(chǎn)的產(chǎn)品。該傳感器利用電化學(xué)原理對(duì)空氣中存在的甲烷進(jìn)行探測(cè),穩(wěn)定性好,方便使用。內(nèi)部設(shè)計(jì)溫度傳感器可實(shí)現(xiàn)溫度補(bǔ)償功能,具有數(shù)字輸出和模擬輸出兩種方式。將系統(tǒng)的數(shù)字輸出與STM32單片機(jī)的串口3相連,量程為0~6.69 mg/m3,在0~50 ℃范圍內(nèi)運(yùn)行時(shí)其分辨率未達(dá)到0.01 mg/m3。選用主動(dòng)上傳方式通信,每間隔1 s發(fā)送一組測(cè)量值,數(shù)據(jù)共為8位,其中1位起止位,氣體濃度位于Byte4(高位)和Byte5(低位),測(cè)量的氣體濃度值計(jì)算式如下:
氣體濃度值=氣體濃度高位×256+氣體濃度低位[7]
2.2.4 煙霧傳感器
本系統(tǒng)選用集多重優(yōu)勢(shì)于一身的MQ-2煙霧傳感器對(duì)煙霧濃度進(jìn)行實(shí)時(shí)監(jiān)測(cè)。此傳感器的運(yùn)行電壓小于5 V,內(nèi)置有4個(gè)標(biāo)準(zhǔn)接口,可實(shí)現(xiàn)雙路信號(hào)輸出[8]。MQ-2煙霧傳感器采用模擬量A0接口與A/D轉(zhuǎn)換器相連的方式輸出數(shù)字量,連接單片機(jī)的PA7口。
2.2.5 GSM通信模塊
GSM是全球移動(dòng)通信系統(tǒng)(Global System for Mobile communications,GSM)的簡(jiǎn)稱,是由歐洲電信標(biāo)準(zhǔn)組織ETSI制定的一個(gè)數(shù)字移動(dòng)通信標(biāo)準(zhǔn)[10],其最大優(yōu)勢(shì)在于支持短信與數(shù)字語(yǔ)音的高效傳送,在本系統(tǒng)中,GSM模塊的功能是把傳感器采集的信息發(fā)送至手機(jī)及電腦中[11]。
本套系統(tǒng)選用SIM900A無(wú)線通信模塊。此模塊由全球知名廠商芯訊通(SIMCom)自主研發(fā)與生產(chǎn)制造,它是一種GPRS通信模塊,同時(shí)具備GSM與GPRS這兩大模塊的通信功能,外觀精致,性能可靠。常見(jiàn)的SIM900A運(yùn)行頻率分別為900 MHz與1 800 MHz,采用工業(yè)標(biāo)準(zhǔn)接口,與STM32單片機(jī)基于串口2相連并由此保持正常通信。SIM900A模塊內(nèi)置兩種專用TTL接口,可供3.3~5 V電壓的單片機(jī)使用。在連接之前,需將SIM900A的RXD與單片機(jī)的TXD相連,SIM900A的TXD與單片機(jī)的RXD相連,GND與單片機(jī)的GND相連[12]。SIM900A需接通5 V直流電源,接通后模塊會(huì)點(diǎn)亮D5與D6指示燈,模塊的工作狀態(tài)也可以通過(guò)兩個(gè)指示燈確定。
進(jìn)入AT狀態(tài):將USB-232串口線與電腦連接,安裝驅(qū)動(dòng)程序。在計(jì)算機(jī)中找到設(shè)備管理器端口并點(diǎn)擊COM,配置串口助手,同步波特率定義為9 600,發(fā)送AT指令查看SIM900A的運(yùn)行狀態(tài)。GPRS模塊發(fā)送數(shù)據(jù)與GPRS配置分別見(jiàn)表1與表2所列。
3 系統(tǒng)總體設(shè)計(jì)
3.1 單片機(jī)軟件設(shè)計(jì)
系統(tǒng)軟件主要為編寫的程序,用于控制系統(tǒng)各硬件做出指定動(dòng)作。各硬件之間相對(duì)獨(dú)立,軟件的模塊化特征愈加顯著。該系統(tǒng)由定時(shí)器程序模塊、溫度采集程序模塊、濕度采集程序模塊、煙霧濃度采集程序模塊、甲醛濃度采集程序模塊、SIM900A無(wú)線傳輸程序模塊、按鍵程序模塊組成。程序流程如圖3所示。
系統(tǒng)運(yùn)行時(shí)會(huì)按照?qǐng)D3所示的流程進(jìn)行控制,當(dāng)網(wǎng)絡(luò)連接成功后可通過(guò)按鍵1和按鍵2來(lái)控制系統(tǒng)狀態(tài)。按下按鍵1時(shí),系統(tǒng)進(jìn)入監(jiān)測(cè)狀態(tài),可對(duì)超過(guò)閾值的數(shù)據(jù)進(jìn)行報(bào)警;按下按鍵2,則系統(tǒng)退出檢測(cè)狀態(tài)。
3.2 通信協(xié)議
對(duì)于通信協(xié)議這一概念,具體指為實(shí)現(xiàn)正常通信或服務(wù)需雙方彼此共同遵循的制度與規(guī)定。在通信協(xié)議中,主要針對(duì)數(shù)據(jù)模塊使用的格式進(jìn)行了明確規(guī)定,同時(shí)要求信息單元的各項(xiàng)配置務(wù)必完整,唯有此才能保證數(shù)據(jù)的正常傳送[13]。本系統(tǒng)的無(wú)線傳輸功能需要將溫度、濕度、甲醛、煙霧傳感器測(cè)量的結(jié)果發(fā)送至電腦以及手機(jī),這是系統(tǒng)設(shè)計(jì)的重要環(huán)節(jié)。
3.3 后臺(tái)軟件設(shè)計(jì)
后臺(tái)軟件的設(shè)計(jì)工具為L(zhǎng)abVIEW,利用此軟件設(shè)計(jì)上位機(jī)不僅能夠清晰顯示傳感器的測(cè)量結(jié)果,還可以利用其強(qiáng)大的運(yùn)算功能實(shí)現(xiàn)數(shù)據(jù)的運(yùn)算處理[14]。
通過(guò)LabVIEW中自帶的TCP/IP通信組件實(shí)現(xiàn)上位機(jī)與下位機(jī)的數(shù)據(jù)連接,在降低復(fù)雜度的同時(shí)可確保網(wǎng)絡(luò)通信的可靠性[15]。TCP服務(wù)器VI建立時(shí),首先創(chuàng)建TCP偵聽器函數(shù),接入服務(wù)名稱注冊(cè)的端口號(hào),接出偵聽器ID與錯(cuò)誤輸出;接著創(chuàng)建讀取TCP數(shù)據(jù)函數(shù),接入連接ID與錯(cuò)誤輸入,接出接連ID、數(shù)據(jù)輸出和錯(cuò)誤輸出;最后創(chuàng)建關(guān)閉TCP連接函數(shù),接入連接ID與錯(cuò)誤輸入。在運(yùn)行之前,將預(yù)先在下位機(jī)設(shè)定好的端口號(hào)填入VI中便可啟動(dòng)TCP服務(wù)器[16]。
采用LabVIEW自帶的數(shù)值轉(zhuǎn)化模塊時(shí),數(shù)據(jù)需輸出一個(gè)判斷語(yǔ)句,當(dāng)發(fā)送語(yǔ)句字節(jié)為48 B時(shí)進(jìn)入數(shù)據(jù)處理部分,采用自帶的讀取數(shù)據(jù)功能讀取下位機(jī)數(shù)據(jù)每行對(duì)應(yīng)字符串,截取每一行字符串中對(duì)應(yīng)的數(shù)值進(jìn)行數(shù)值判斷和數(shù)值分析[17]。
LabVIEW數(shù)據(jù)讀取與處理程序如圖4所示。
該后臺(tái)軟件實(shí)現(xiàn)了對(duì)現(xiàn)場(chǎng)監(jiān)控的功能,包括顯示采集的信息、處理信息等,顯示界面如圖5、圖6所示。
4 結(jié) 語(yǔ)
該系統(tǒng)實(shí)現(xiàn)了室內(nèi)環(huán)境的實(shí)時(shí)監(jiān)控,盡管在設(shè)計(jì)時(shí)本系統(tǒng)的定位是室內(nèi)智能家居,但本系統(tǒng)也可以應(yīng)用于工廠、礦井、汽車、大棚等地[18]。通過(guò)GSM無(wú)線傳輸功能和LabVIEW的可視化以及數(shù)據(jù)處理功能實(shí)現(xiàn)了室內(nèi)氣體環(huán)境的實(shí)時(shí)監(jiān)控,結(jié)合單片機(jī)控制報(bào)警等功能,本系統(tǒng)已能夠有效保證室內(nèi)氣體環(huán)境,較為人性化。本系統(tǒng)能夠優(yōu)化居住環(huán)境,有效降低成本,具有廣泛的應(yīng)用前景。
注:本文通訊作者為張宇。
參 考 文 獻(xiàn)
[1]鄭對(duì)元.精通LabVIEW虛擬儀器程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2012:10-39.
[2] Michel Mouly,Marie-Bernadette Pautet. The GSM System for Mobile Communications[M].Telecom Publishing,2000: 15-60.
[3]肖冬瑞.基于STM32及LabVIEW的環(huán)境檢測(cè)系統(tǒng)[D].衡陽(yáng):湖南工學(xué)院,2015.
[4] ZHANG H,KANG W. Design of the data acquisition system based on STM32[J].Procedia computer science,2013(17):222-228.
[5]金曉龍,郭斌,孟小艷.基于SPCE061A溫室溫濕度監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)[J].計(jì)算機(jī)與現(xiàn)代化,2012(9):45-48.
[6]朱嶸濤,徐愛(ài)鈞.單總線傳感器AM2302溫濕度測(cè)控系統(tǒng)原理及應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(4):46-48.
[7]韓明軒,李耀.一種甲醛檢測(cè)儀[J].電腦知識(shí)與技術(shù)(學(xué)術(shù)交流),2015,11(13):215-216.
[8]張兆民,狄思雨.一種室內(nèi)煙霧處理系統(tǒng)的設(shè)計(jì)[J].價(jià)值工程,2018,37(32):142-144.
[9]朱向慶,鄧浩欣,李嘉寶,等.基于STM32和Android的智能家居系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2018,26(18):179-183.
[10]李再揚(yáng),楊少華.GSM:技術(shù)標(biāo)準(zhǔn)化聯(lián)盟的成功案例[J].中國(guó)工業(yè)經(jīng)濟(jì),2003(7):89-95.
[11]谷亞寧.基于無(wú)線通訊技術(shù)的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[D].杭州:浙江大學(xué),2013.
[12]隋俊杰,肖詩(shī)滿,邵偉恒,等.基于SIM900A的基站無(wú)線監(jiān)控系統(tǒng)[J].現(xiàn)代電子技術(shù),2016,39(3):51-54.
[13]劉弈宏.激光陣列空中特效設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京理工大學(xué),2011.
[14]李美平.基于LabVIEW的遠(yuǎn)程無(wú)線監(jiān)控系統(tǒng)[D].曲阜:曲阜師范大學(xué),2014.
[15]龍華偉,顧永剛.LabVIEW8.2.1與DAQ數(shù)據(jù)采集[M].北京:清華大學(xué)出版社,2008:143-145.
[16] LIU Z,DING X L, ZHENG L H.The 2015 International Conference on Advances in Construction Machinery and Vehicle Engineering (ICACMVE2015) [C]// Shanghai:Shanghai Scientific & Technical Publishers,2016:360-363.
[17]徐曉東,鄭對(duì)元,肖武.LabVIEW8.5常用功能與編程實(shí)例精選[M].北京:電子工業(yè)出版社,2009:30-37.
[18]閆林生,肖伸平,鄧鵬,等.基于物聯(lián)網(wǎng)的室內(nèi)環(huán)境監(jiān)控系統(tǒng)的設(shè)計(jì)[J].計(jì)算技術(shù)與自動(dòng)化,2012,31(4):47-50.