孫萬麟
(昌吉學(xué)院 物理系,新疆昌吉,831100)
隨著計算機(jī)技術(shù)的飛速發(fā)展,工農(nóng)業(yè)現(xiàn)代化控制技術(shù)應(yīng)用越來越普及,尤其是眾多學(xué)者研制各種各樣監(jiān)控裝置對工農(nóng)業(yè)現(xiàn)場數(shù)據(jù)進(jìn)行實時采集、監(jiān)控已經(jīng)成為熱潮。比如煉鋼廠,人們研究對熔爐里的溫度進(jìn)行實時采集、監(jiān)控,以確保生產(chǎn)的安全和鋼材的質(zhì)量;水庫,人們研究對水位進(jìn)行實時采集、監(jiān)控,以確保處于安全水位;溫室大棚,人們研究對溫濕度等環(huán)境參數(shù)進(jìn)行實時監(jiān)控,以確保蔬菜在適宜環(huán)境生長等[1-3]。近年來,許多學(xué)者都先借助虛擬儀器技術(shù)對各類數(shù)據(jù)采集監(jiān)控系統(tǒng)進(jìn)行設(shè)計及仿真,然后在進(jìn)行調(diào)試、制作,以減少元器件浪費(fèi),降低成本。目前,應(yīng)用最為廣泛的仿真軟件當(dāng)屬Proteus和LabVIEW,Proteus軟件是仿真單片機(jī)及其外圍器件的最佳工具,而LabVIEW軟件則以其友好美觀的用戶界面深受眾多學(xué)者的喜愛,如今將多種軟件聯(lián)合仿真已經(jīng)成為當(dāng)下主流[4-6],已有許多學(xué)者將Proteus和LabVIEW聯(lián)合起來進(jìn)行各類控制系統(tǒng)設(shè)計及其仿真,并且有好多高校已建立虛擬實驗室進(jìn)行輔助實踐教學(xué)[7-10]。鑒于此,本文采用Proteus軟件作為下位機(jī)數(shù)據(jù)采集及控制平臺,LabVIEW軟件作為上位機(jī)數(shù)據(jù)監(jiān)控平臺,聯(lián)合利用LabVIEW和Proteus各自優(yōu)勢設(shè)計及其仿真一個以單片機(jī)作為主控器的溫室大棚溫濕度測控系統(tǒng)。
本系統(tǒng)主要由兩大模塊構(gòu)成,分別是以AT89C51單片機(jī)為主控器的數(shù)據(jù)采集模塊和LabVIEW為主控制的數(shù)據(jù)監(jiān)控模塊,首先通過DHT11傳感器進(jìn)行實時采集溫濕度數(shù)據(jù),因DHT11能直接以數(shù)字量輸出,故不需要A/D轉(zhuǎn)換模塊。緊接著單片機(jī)對采集溫濕度數(shù)據(jù)進(jìn)行處理及傳輸,并將采集數(shù)據(jù)在LCD液晶屏上顯示,同時單片機(jī)將采集數(shù)據(jù)通過虛擬串口傳輸給LabVIEW進(jìn)行實時監(jiān)控,并配置報警指示燈進(jìn)行實時提醒,指示燈為綠色表示正常,指示燈為紅色表示異常,該系統(tǒng)構(gòu)成框架如圖1所示。
圖1 系統(tǒng)框架圖
依據(jù)圖1系統(tǒng)構(gòu)成框架,采用Proteus軟件繪制數(shù)據(jù)采集電路圖,該電路以通用型AT89C51單片機(jī)作為主控器,并配有時鐘電路、RC復(fù)位電路、DHT11溫濕度傳感器、LCD液晶顯示、排阻RP1、串行端口通信模塊以及虛擬串行端口顯示模塊等構(gòu)成,其電路圖如圖2所示,該電路主要功能是實現(xiàn)對溫濕度數(shù)據(jù)實時采集并在LCD屏上顯示,同時將采集數(shù)據(jù)發(fā)送至虛擬串口。
圖2 系統(tǒng)電路圖
LabVIEW前面板用來繪制用戶監(jiān)控界面(人機(jī)交互界面),前面板控件選板上提供了各種各樣的控件,可以方便快捷地創(chuàng)建用戶界面。本文利用各控件所設(shè)置LabVIEW前面板監(jiān)控界面如圖3所示,主要實現(xiàn)對溫濕度數(shù)據(jù)的實時顯示,并設(shè)置超越閾值范圍指示燈具有報警提示功能。還有,增設(shè)錯誤輸出控件,可以對系統(tǒng)運(yùn)行狀態(tài)進(jìn)行監(jiān)控,也可根據(jù)錯誤提示,對系統(tǒng)進(jìn)行相應(yīng)調(diào)整,比如設(shè)置直觀顯示溫濕度波形曲線和溫度計、濕度計,方便實時對出現(xiàn)問題及時記錄。除此之外,設(shè)置了系統(tǒng)參數(shù),比如溫濕度上下限、串行通信參數(shù)配置等。
圖3 監(jiān)控界面圖
LabVIEW后面板用來實現(xiàn)前面板功能程序框圖,也可理解為LabVIEW軟件編程界面,后面板采用連線將各個控件連接在一起,實現(xiàn)對前面板各個控件進(jìn)行控制,并根據(jù)需求還可以添加想要的參數(shù)。本文依據(jù)圖3所實現(xiàn)系統(tǒng)監(jiān)控界面功能所對應(yīng)的程序框圖如圖4所示。
圖4 程序框圖
本文采用C語言編寫溫濕度測控系統(tǒng)源程序,其中主程序是上位機(jī)LabVIEW與下位機(jī)單片機(jī)之間相互通信,其設(shè)計流程如圖5所示[11~13]。
圖5 上下位機(jī)通信流程圖
主程序部分代碼如下[13~16]:
本文選取大白菜蔬菜溫室大棚作為研究對象,依據(jù)大白菜最佳生長溫度在20℃~30℃,最佳生長濕度在75%~80%,因此設(shè)置溫度上限為30℃,下限為20℃,濕度上限為80%,下限為75%。同時將虛擬串口參數(shù)如串口號、波特率數(shù)據(jù)位等必須與LabVIEW中COMPIM控件VISA參數(shù)值設(shè)置一致,才能實現(xiàn)正常通信。采用KeilC51軟件進(jìn)行系統(tǒng)源程序調(diào)試、編譯,并生成對應(yīng)的hex文件,并將其加載至AT89C51單片機(jī)中。參數(shù)設(shè)置好,Protues正常運(yùn)行后,運(yùn)行LabVIEW,并打開串口調(diào)試助手,LabVIEW和Protues兩個軟件將通過連通狀態(tài)的虛擬串口COM1和COM2進(jìn)行數(shù)據(jù)傳送,溫濕度傳感器會將采集到的數(shù)據(jù)通過虛擬串口傳送給上位機(jī)。
(1)若某時刻系統(tǒng)DHT11傳感器采集溫度(RH)為25℃,濕度(TH)為76%,Proteus仿真結(jié)果如圖6所示,LabVIEW監(jiān)控界面數(shù)據(jù)如圖7所示。
圖6 Proteus運(yùn)行圖
圖7 監(jiān)控運(yùn)行結(jié)果
在圖6中,LCD液晶屏顯示系統(tǒng)溫濕度,System(系統(tǒng)):TH(濕度):76、RH(溫度):25,即此刻DHT11傳感器采集溫度值為25℃,濕度值為76%,則溫濕度均在閾值范圍內(nèi)。由圖7監(jiān)控界面直觀看到,溫度值為25℃,濕度值為76%,且報警指示燈是綠燈點亮,進(jìn)一步表明此刻溫度值和濕度值都是正常狀態(tài)。比較圖6和圖7,LabVIEW監(jiān)控界面與LCD屏顯示數(shù)據(jù)一致,誤差為零,表明上位機(jī)LabVIEW與下位機(jī)單片機(jī)正常通信。
(2)若某時刻系統(tǒng)DHT11傳感器采集RH為25℃,TH為81%,Proteus仿真結(jié)果如圖8所示,LabVIEW監(jiān)控界面數(shù)據(jù)如圖9所示。
圖8 Proteus運(yùn)行圖
圖9 監(jiān)控運(yùn)行結(jié)果
在圖8中,LCD液晶屏顯示系統(tǒng)溫濕度,System:TH:81、RH:25,即此刻DHT11傳感器采集溫度值為25℃,濕度值為81%,即溫度在閾值范圍內(nèi),但濕度超出閾值范圍。由圖9監(jiān)控界面直觀看到,溫度值為25℃,濕度值為81%,且報警指示燈是紅燈點亮,表示此刻數(shù)據(jù)是異常狀態(tài),其實就是DHT11傳感器采集的實際濕度超過了上限。比較圖8和圖9,LabVIEW監(jiān)控界面與LCD屏顯示數(shù)據(jù)一致,誤差為零,表明上位機(jī)LabVIEW與下位機(jī)單片機(jī)是正常通信,但報警指示燈紅燈點亮,說明此時是異常狀態(tài),提醒用戶及時檢修電路。
本文聯(lián)合LabVIEW和Proteus各自優(yōu)勢,以單片機(jī)作為主控器,設(shè)計及其仿真了一個溫室大棚溫濕度測控系統(tǒng)。采用Proteus軟件設(shè)計數(shù)據(jù)采集電路,采用LabVIEW軟件設(shè)計用戶監(jiān)控界面,將下位機(jī)采集數(shù)據(jù)通過虛擬串口發(fā)送到上位機(jī)進(jìn)行實時監(jiān)控。仿真表明,上位機(jī)LabVIEW與下位機(jī)單片機(jī)正常通信,證實本系統(tǒng)設(shè)計正確、可行,為類似其他單片機(jī)控制系統(tǒng)的設(shè)計提供一些借鑒。