謝 檬,張安莉
(西安交通大學(xué) 城市學(xué)院,陜西 西安 710018)
傳統(tǒng)方法測量溫濕度多以熱電阻和熱電偶等溫度敏感元件,但都存在可靠性差,準(zhǔn)確度和精度低的缺點(diǎn)[1]。本設(shè)計(jì)采用VI界面,在單片機(jī)平臺上完成對溫度和濕度的實(shí)時測量。在系統(tǒng)的硬件方案設(shè)計(jì)中,采用帶有A/D轉(zhuǎn)換功能的DHT11溫濕度傳感器直接輸出的數(shù)字信號,通過單總線方式與下位機(jī)單片機(jī)通信,最后通過RS232串行接口將濕度及溫度的數(shù)據(jù)送至上位機(jī)由LabVIEW處理分析和顯示報警等[2]。軟件設(shè)計(jì)中,在LabVIEW軟件平臺上采用G語言編寫運(yùn)行程序,模塊化的編程使得程序具有可讀性強(qiáng)、易于維護(hù)和方便升級的特點(diǎn)[3]。該系統(tǒng)包含溫濕度仿真模式、溫濕度實(shí)時設(shè)置與顯示模式、歷史數(shù)據(jù)記錄及歷史數(shù)據(jù)回讀模式等功能塊,可實(shí)現(xiàn)溫濕度設(shè)定值的實(shí)時設(shè)置、溫濕度超標(biāo)的實(shí)時報警、溫濕度曲線的實(shí)時監(jiān)測、系統(tǒng)工作狀態(tài)的實(shí)時監(jiān)測、歷史測控?cái)?shù)據(jù)記錄及回讀等。
圖1 溫濕度監(jiān)測系統(tǒng)結(jié)構(gòu)圖Fig.1 Temperature and humiditymonitoring system structure diagram
基于LabVIEW的溫濕度控制系統(tǒng)設(shè)計(jì)包含以下部分:控制對象建模、數(shù)據(jù)采集、數(shù)據(jù)傳輸、數(shù)據(jù)處理、信號輸出接口電路設(shè)計(jì)及其他附屬功能的設(shè)計(jì)。本設(shè)計(jì)采用虛擬儀器技術(shù)搭建基于LabVIEW軟件開發(fā)平臺設(shè)計(jì)的溫濕度監(jiān)測系統(tǒng)結(jié)構(gòu)圖如圖1所示。
各環(huán)節(jié)功能說明如下:
傳感器DHT11:采集待測的溫濕度信號并將其直接轉(zhuǎn)換為數(shù)字信號。
數(shù)據(jù)傳輸:將傳感器輸出的數(shù)字信號通過單總線方式傳入單片機(jī)。
89C51單片機(jī):對信號進(jìn)行分析處理,并將其傳入上位機(jī)。
LabVIEW虛擬儀器:對數(shù)字信號進(jìn)行轉(zhuǎn)換,顯示結(jié)果,超限報警等。
該系統(tǒng)數(shù)控部分采用89C51系列單片機(jī)控制,89C51是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、有效的解決方案。
基于LabVIEW的溫濕度監(jiān)測系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)框圖如圖2所示。它主要由傳感器DHT11,單片機(jī)AT89C51最小系統(tǒng),通信總線部分組成。
圖2 溫濕度監(jiān)測系統(tǒng)硬件設(shè)計(jì)結(jié)構(gòu)框圖Fig.2 Temperature and humidity monitoring system structure diagram of hardware design
多路溫濕度采集采用單總線溫濕度采集系統(tǒng),單片機(jī)的I/O口線作為總線掛接多個數(shù)字溫濕度傳感器DHT11,總線處高電平時,為DHT1提供電源。單片機(jī)通過巡回檢測,獲取各測溫點(diǎn)溫度,存儲在數(shù)據(jù)存儲卡上,通過通信接口送上位機(jī),同時可送LabVIEW軟件界面顯示,溫濕度超限時驅(qū)動報警。
對多個DHT11進(jìn)行操作就能實(shí)現(xiàn)對溫濕度的采集,DHT11的操作主要有以下幾個步驟:初始化,搜索DHT11,匹配DHT11,發(fā)送溫濕度轉(zhuǎn)換指令,讀取溫濕度值,如圖3所示。
圖3 溫濕度傳感器DHT11采集流程圖Fig.3 Temperature and humidity sensor DHT11 acquisition process
DHT11傳感器是通過單總線協(xié)議和下位機(jī)進(jìn)行數(shù)據(jù)通信。DHT11傳感器需要嚴(yán)格的讀寫協(xié)議來確保數(shù)據(jù)的完整性。整個讀寫分為,上位機(jī)發(fā)送起始信號,上位機(jī)接收下位機(jī)發(fā)來的握手響應(yīng)信號,讀“0”,和讀“1”4個步驟。所有的信號除主機(jī)啟動復(fù)位信號外,全部都由DHT11產(chǎn)生。通過單總線訪問DHT11順序歸納如下:
1)主機(jī)發(fā)開始信號;2)主機(jī)等待接收DHT11響應(yīng)信號;3)主機(jī)連續(xù)接收40Bit的數(shù)據(jù)和校驗(yàn)和;4)數(shù)據(jù)處理。
傳感器數(shù)據(jù)輸出的是未編碼的二進(jìn)制數(shù)據(jù)。數(shù)據(jù)(濕度、溫度、整數(shù)、小數(shù))之間應(yīng)該分開處理。如果某次從傳感器中讀取如下5Byte數(shù)據(jù),如表1所示。
表1 讀取的數(shù)據(jù)Tab.1 Read data
由以上數(shù)據(jù)就可得到濕度和溫度的值,計(jì)算方法:
humi(濕度)=byte4.byte3=45.0 (%RH)
temp(溫度)=byte2.byte1=28.0 (℃)
jiaoyan(校驗(yàn))=byte4+byte3+byte2+byte1=73
如圖4所示,前面板主要包括波形顯示窗口、當(dāng)前時間窗口、4個溫度報警上下限窗口、4個濕度報警上下限窗口、8個報警指示燈、1個溫度仿真數(shù)據(jù)輸入窗口、1個濕度仿真數(shù)據(jù)輸入窗口、1個模式選擇窗口以及退出按扭。
圖4 系統(tǒng)軟件前面板Fig.4 System software front panel
軟件主要實(shí)現(xiàn)波形實(shí)時顯示,采集模式、仿真模式、回放模式的切換,采集參數(shù)設(shè)置,仿真參數(shù)設(shè)置,報警界線設(shè)置等。在采集模式下可以實(shí)現(xiàn)數(shù)據(jù)的采集、顯示和同步保存。仿真模式下可以根據(jù)設(shè)置的仿真參數(shù)仿真出相應(yīng)波形。回放模式可以回放歷史實(shí)驗(yàn)數(shù)據(jù)。
3.2.1 數(shù)據(jù)回放子程序
數(shù)據(jù)回放子程序程序的作用是對仿真模式和采集模式所產(chǎn)生的數(shù)據(jù)進(jìn)行查看,以及對其處理。回放模式主要實(shí)現(xiàn)歷史數(shù)據(jù)的顯示和分析,顯示主要分為波形顯示和表格顯示兩種方式,可以查詢指定時間段內(nèi)的記錄,并分別計(jì)算出這些記錄的平均值等信息。數(shù)據(jù)回放模式程序框圖完成讀取xls數(shù)據(jù)文件然后按列進(jìn)行處理計(jì)算出各列的平均值。
3.2.2 數(shù)據(jù)采集子程序
數(shù)據(jù)采集子程序是利用LabVIEW中的VISA串口采集由下位機(jī)傳入的數(shù)據(jù),數(shù)據(jù)采集模式主要是通過VISA串口獲得由下位機(jī)通過溫濕度傳感器傳入的數(shù)據(jù),然后經(jīng)過數(shù)據(jù)記錄與分析等等。
3.2.3 溫濕度報警子程序
溫度報警子程序模塊實(shí)時判斷各個通道當(dāng)前采集的數(shù)據(jù)是否在設(shè)定的范圍之內(nèi),當(dāng)超出范圍時報警燈會亮起。同時case結(jié)構(gòu)執(zhí)行條件滿足,執(zhí)行case內(nèi)的控件,完成當(dāng)前超范圍數(shù)據(jù)的保存。
在仿真模式下可以設(shè)定八個通道的溫濕度報警上下限,然后分別輸入溫濕度仿真數(shù)據(jù)的幅值,點(diǎn)擊運(yùn)行,如果輸入的數(shù)值超過所設(shè)8個通道的溫濕度報警上下限,則報警指示燈會閃爍,如圖5所示。
圖5 數(shù)據(jù)仿真模式前面板Fig.5 Simulationmode of the front panel data
仿真模式主要實(shí)現(xiàn)根據(jù)設(shè)定的仿真參數(shù),模擬出相應(yīng)的波形并顯示在波形圖顯示窗口,同時自動把對應(yīng)的仿真數(shù)據(jù)實(shí)時保存在指定的數(shù)據(jù)文件。
如圖所示,設(shè)定溫度1、2、3、4的報警上下限分別是40與 0,設(shè)定濕度 1、2、3、4的報警上下限分別是 80與 0,然后設(shè)置溫度仿真數(shù)據(jù)幅值為40,濕度仿真數(shù)據(jù)幅值為100,然后點(diǎn)擊運(yùn)行,產(chǎn)生的隨機(jī)數(shù)中就會包含0-100的隨機(jī)數(shù),當(dāng)產(chǎn)生的隨機(jī)數(shù)超過所設(shè)的報警上下限時,報警燈就會閃爍。
數(shù)據(jù)回放模式主要是對仿真模式和采集模式所產(chǎn)生的數(shù)據(jù)進(jìn)行查看,如圖6所示,可以設(shè)定時間A和時間B,然后點(diǎn)擊查詢,即可看到之前產(chǎn)生的數(shù)據(jù)以表格形式展現(xiàn)出來。
圖6 數(shù)據(jù)回放模式前面板Fig.6 Front panel data playback mode
數(shù)據(jù)回放模式可以方便地查看歷史實(shí)驗(yàn)數(shù)據(jù),并作簡單的統(tǒng)計(jì)分析。同時,可以按時間段查詢歷史記錄,并以表格或者波形圖的形式顯示出來。此外,還可以計(jì)算出各參數(shù)在查詢的時間段內(nèi)的平均值。
數(shù)據(jù)采集模式主要是對傳感器通過單片機(jī)傳入的數(shù)據(jù)進(jìn)行波形顯示,如圖7所示,若被監(jiān)測的數(shù)據(jù)超過預(yù)設(shè)的報警值,報警燈則會閃爍報警。其中,上面的曲線為濕度,下面的曲線為溫度。
圖7 數(shù)據(jù)采集模式前面板Fig.7 Front panel of data acquisitionmode
文中設(shè)計(jì)的基于LabVIEW的溫濕度監(jiān)測系統(tǒng)包含溫濕度仿真模式、溫濕度實(shí)時設(shè)置與顯示模式、歷史數(shù)據(jù)記錄及歷史數(shù)據(jù)回讀模式等功能塊,可實(shí)現(xiàn)溫濕度設(shè)定值的實(shí)時設(shè)置、溫濕度超標(biāo)的實(shí)時報警、溫濕度曲線的實(shí)時監(jiān)測、系統(tǒng)工作狀態(tài)的實(shí)時監(jiān)測、歷史測控?cái)?shù)據(jù)記錄及回讀等。該系統(tǒng)操作簡單、可視性好,運(yùn)行穩(wěn)定,可靠,能滿足技術(shù)更新的要求。
[1]曹玲芝.現(xiàn)代測試技術(shù)及虛擬儀器[M].北京:北京航空航天大學(xué)出版社,2004.
[2]戎舟.基于LabVIEW的虛擬示波器及遠(yuǎn)程測控[J].微計(jì)算機(jī)信息,2004,20(5):66-67.RONG Zhuo.The virtualoscilloscope based on LabVIEW and remote control technology[J].Micro Computer Information,2004,20(5):66-67.
[3]馬雙寶.基于LabVIEW7.0虛擬信號發(fā)生器的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2005,28(1):89-90.MA Shuang-bao.Implementation of virtual signal generator based on LabVIEW7.0[J].Micro Computer Information,2005,28(1):89-90.
[4]郁有文,常建,程繼紅.傳感器原理及工程應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2008.
[5]申忠如,郭福田,丁暉.現(xiàn)代測試技術(shù)與系統(tǒng)設(shè)計(jì)[M].西安:西安交通大學(xué)出版社,2006.
[6]蔡建安,陳潔華.基于LabVIEW的工程軟件應(yīng)用[M].重慶:重慶大學(xué)出版社,2006.