王一涯+牛濤+陳曙光+王憲菊
摘要:在利用溫室大棚進(jìn)行農(nóng)作物培育時,溫度是影響其生長、發(fā)育的關(guān)鍵因素之一,因此對溫室大棚進(jìn)行多點溫度監(jiān)控,采取有效的措施控制大棚溫度在一定范圍內(nèi)顯得尤為重要。設(shè)計了一種基于單片機的溫室大棚多點溫度監(jiān)控系統(tǒng)。系統(tǒng)中選用DS18B20傳感器作為測溫元件,以STC89C52單片機為核心,進(jìn)行多點溫度檢測并以1602液晶顯示數(shù)據(jù)。同時,通過串口與PC進(jìn)行通信,并以VB編寫的上位機界面將各點溫度以曲線的形式顯示出來,可保存相關(guān)溫度數(shù)據(jù)。經(jīng)多次試驗證明,該系統(tǒng)溫度測量范圍廣,穩(wěn)定性好,能夠長時間工作,基本上能夠滿足溫室大棚溫度監(jiān)控的需求。
關(guān)鍵詞: DS18B20;溫度監(jiān)控系統(tǒng);1602液晶;VB;單片機
中圖分類號:TP368 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)31-0237-03
Abstract: Temperature is one of the key elements in influencing the growth and development of vegetables, when cultivating them in greenhouse. Therefore, it is especially important to monitor the temperature multi-point, thus, effective measures can be taken to stabilize the temperature in the greenhouse within a certain range. a kind of greenhouses multi-point temperature monitoring system based on single chip microcomputer is designed. Sensor DS18B20 is chosen to be the temperature measuring element, STC89C52 single-chip microcomputer as the core, and the data of the multi-point temperature detection is to display by the 1602 LCD. At the same time, communicating with the PC through the serial port, related temperature data will be displayed and then preserved through the surface of the upper machine written by VB in the form of curve. Many experiments proved that, this system can basically satisfy the demand of monitoring the temperature in Greenhouses because of the advantages of temperature measurement range, good stability and the ability of working for a long time.
Key words: DS18B20; Temperature monitoring system;LCD1602; VB; MCU
1 引言
環(huán)境因素的適宜與否對于溫室大棚系統(tǒng)來說是首要考慮的問題,也是其需要克服的關(guān)鍵技術(shù)之一,如果僅靠人工管理的方法是無法單獨實現(xiàn)的,必須要以現(xiàn)代科學(xué)技術(shù)作為輔助。通過對監(jiān)測數(shù)據(jù)的分析,結(jié)合作物生長發(fā)育規(guī)律,來控制環(huán)境條件,從而使作物能夠達(dá)到優(yōu)質(zhì)、高產(chǎn)、高效的栽培目的[1]。
目前,我國溫室自動化控制模式主要有兩種:一是以工業(yè)計算機核心,二是以單片機為核心[2]。國內(nèi)目前研發(fā)生產(chǎn)的溫度控制系統(tǒng)參差不齊,價格低廉的大都是壽命短,控制精度較低且穩(wěn)定性差,真正設(shè)計合理,操作方便的,價格比較昂貴,生產(chǎn)成本很高,不宜大規(guī)模投入實際應(yīng)用,而且在數(shù)據(jù)的處理和整合方面也不夠完善。因此,開發(fā)出成本低、性能好、具有自主知識產(chǎn)權(quán)的一套溫度測控系統(tǒng)對于溫室大棚產(chǎn)業(yè)的發(fā)展具有重要意義。
2 系統(tǒng)設(shè)計
2.1 系統(tǒng)整體結(jié)構(gòu)設(shè)計
本系統(tǒng)以STC89C52單片機為控制中心,以多個DS18B20溫度傳感器作為測溫元件對溫室大棚內(nèi)多點溫度進(jìn)行測量,單片機對其溫度數(shù)據(jù)進(jìn)行分析、處理,并通過TFT彩屏實時顯示,將測量數(shù)據(jù)與設(shè)定值進(jìn)行比較,若實際溫度值不在設(shè)定溫度范圍內(nèi),單片機輸出控制信號,控制報警模塊發(fā)出警示,并控制繼電器驅(qū)動外部設(shè)備執(zhí)行相關(guān)動作。單片機作為下位機,將處理過的溫度數(shù)據(jù)通過串口傳輸給PC機,并通過VB編寫的上位機界面以數(shù)據(jù)形式和曲線形式進(jìn)行顯示,便于溫室內(nèi)的溫度觀察與分析。通過VB上位機界面和外界的鍵盤均能夠人為的設(shè)置報警溫度的范圍,可應(yīng)用于不同環(huán)境條件中去。系統(tǒng)整體結(jié)構(gòu)圖如圖1所示。
2.1.1 系統(tǒng)硬件設(shè)計
系統(tǒng)硬件部分主要由單片機STC89C52、多路溫度傳感器DS18b20、按鍵、彩屏TFT和溫度報警模塊。 在溫室大棚里布置多個溫度傳感器,實現(xiàn)多點的溫度測量,溫度傳感器將采集的數(shù)據(jù)通過單總線傳輸給單片機,單片機對輸出進(jìn)行分析和處理,一方面將處理后的輸出送彩屏TFT顯示,另一方面通過串口分時將各點采集的溫度值通過串口傳輸給PC機。PC機將接收的數(shù)據(jù)通過VB編寫的上位機軟件實時顯示各點溫度值,并能以曲線的形式顯示任一點的溫度變化趨勢。按鍵模塊有三個按鈕組成,按鈕分為設(shè)置鍵、加鍵和減鍵。按下設(shè)置鍵后,TFT顯示界面自動跳轉(zhuǎn)到參數(shù)設(shè)置界面,再通過加鍵和減鍵修改溫度上下限值。若測量的溫度值不在設(shè)置的溫度范圍內(nèi),單片機則啟動報警模塊發(fā)出警示信息,同時在上位機的界面也可觀察到提示信息。以便采集有效措施,進(jìn)行大棚溫度的有效控制。
2.1.1.1 溫度測量模塊
該系統(tǒng)采用8個DS18B20數(shù)字溫度傳感器作為測溫元件,因為其獨特的單總線接口設(shè)計使得硬件電路非常簡單,只需將傳感器的信號線管腳與單片機I/O口直接相接。該系統(tǒng)將8個溫度傳感器依次與單片機的P1口的8個引腳連接。單片機分時讀取8個DS18B20傳感器采集的溫度數(shù)據(jù)。由于在液晶顯示屏上和上位機軟件上不但要顯示各點的溫度值還要顯示各點的位置信息,因此對8個溫度傳感器進(jìn)行編號,其編號與傳感器所在位置一一對應(yīng)。DS18B20溫度傳感器的測量電路如圖3所示:
2.1.1.2 彩屏顯示模塊
為了節(jié)省單片機的I/O資源,本系統(tǒng)選擇具有SPI串口通信功能的LCD液晶顯示,該彩屏與單片機的硬件連接十分簡單,如圖3所示,彩屏的時鐘信號輸入線CLK接單片機的P2.0引腳,數(shù)據(jù)輸入線MOSI接單片機的P2.1引腳,復(fù)位線RES接單片機的P2.2引腳,數(shù)據(jù)/命令選擇線DC接單片機P2.3引腳, 背光線BLK接單片機P2.4引腳,數(shù)據(jù)輸出線MISO接單片機的P2.5引腳。若不讀取彩屏信息,MISO線可以不接。該彩屏一方面可實時顯示各點的溫度值,兩一方面結(jié)合按鍵模塊可對溫度上下限值進(jìn)行設(shè)置。
2.1.1.3 按鍵輸入模塊
本設(shè)計鍵盤模塊電路如圖4所示,S1、S2和S3分別接單片機的P3.2、P3.3和P3.4引腳。在主界面狀態(tài)下按下S1鍵一次,進(jìn)入最高報警溫度上限的設(shè)置,再通過點擊S2和S3進(jìn)行加減;按下S1鍵兩次,進(jìn)入最低報警溫度下限的設(shè)置,同樣通過點擊S1和S2進(jìn)行加減,即可完成溫度范圍的設(shè)置。
2.1.1.4 串口通信模塊
MAX232 引腳C1+與C1-,C2+與C2-,V+與VCC,V-與GND之間均必須接電容,一般選用瓷片電容,0.1 UF或者1UF皆可,具體電容值由所選用的MAX232型號決定。串口模塊電路如圖5所示。
2.1.2 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件采用模塊化編程思想,C51語言編寫。軟件主要分為按鍵掃描子程序、數(shù)據(jù)采集子程序、串口通信子程序、液晶顯示子程序和報警子程序。程序流程圖如圖6所示。當(dāng)系統(tǒng)上電復(fù)位后,主程序開始運行,程序開始初始化各參數(shù)以及端口定義,然后各標(biāo)志位清零和彩屏顯示,接著進(jìn)行鍵盤掃描,再讀出各個DS18B20傳感器的溫度。處理后的溫度值同時送彩屏顯示和通過串口傳輸給上位機顯示。最后將溫度值與設(shè)定的溫度范圍相比較,若超出范圍,報警模塊將會進(jìn)行報警。否則,程序返回到按鍵掃描子程序處,循環(huán)執(zhí)行以上模塊。
2.1.2.1 按鍵掃描子程序
如圖7所示:程序開始先進(jìn)行按鍵掃描,如果沒有按鍵被按下,set_st等于0。當(dāng)確定有按鍵被按下時判斷被按下的是哪個按鍵,如果是S1被按下,再判斷S1被按下幾次。如果S1被按下一次,全局變量set_st等于1,則系統(tǒng)進(jìn)入報警溫度上限設(shè)置界面,這時再判斷按鍵S2和S3是否被按下,如果S2被按下,觸發(fā)單片機外部中斷0,那么報警溫度上限值加1;如果S3被按下,觸發(fā)單片機外部中斷1,則報警溫度上限值減1。如果S1被按下兩次,set_st等于2,則系統(tǒng)進(jìn)入報警溫度下限設(shè)置界面,這時再判斷S1和S2是否被按下,同上所述,對報警溫度下限進(jìn)行加減。如果S1被按下三次,set_st等于0,則液晶轉(zhuǎn)換到實時溫度顯示界面。
3 結(jié)論
經(jīng)過硬件和軟件調(diào)試,系統(tǒng)可完成對報警溫度上下限值的靈活設(shè)置,單片機分時采集8路溫度傳感器的數(shù)據(jù),并將實際溫度值與設(shè)定值進(jìn)行比較,可進(jìn)行溫度報警以便采集相應(yīng)的溫控措施。液晶顯示屏實時顯示8路溫度值,同時可在PC機上遠(yuǎn)程觀測溫室大棚各點溫度值和溫度曲線。
參考文獻(xiàn):
[1] 李中華,王國占,齊飛.我國設(shè)施農(nóng)業(yè)發(fā)展現(xiàn)狀及發(fā)展思路[J].中國農(nóng)機化,2012(1).
[2] 葛志軍,傅理.國內(nèi)外溫室產(chǎn)業(yè)發(fā)展現(xiàn)狀與研究進(jìn)展[J].安徽農(nóng)業(yè)科學(xué),2008,36(35).
[3] 劉篤仁,韓保君.傳感器原理及應(yīng)用技術(shù)[M].機械工業(yè)出版社,2003.
[4] 黃賢斌,鄭筱霞.傳感器原理與應(yīng)用[M].北京:高等教育出版社. 成都:電子科技大學(xué)出版社, 2009.
[5] 侯媛彬,袁益民,霍漢平,王勇等.凌陽單片機原理及其畢業(yè)設(shè)計精選[M].科學(xué)出版社,2006.
[6] 趙亮.液晶顯示模塊LCD1602應(yīng)用[J].電子制作,2007(3)
[7] 劉國勇.MAX232/MAX232A收發(fā)器及其應(yīng)用[J].國外電子元器件,1997(3).
[8] 譚浩強. C語言程序設(shè)計[M].北京:清華大學(xué)出版社,2005.
[9] 康華光. 電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998.
[10] 丁元杰. 單片微機原理及應(yīng)用 [M].北京:機械工業(yè)出版社,2004.