梁成功 陳梓豪 魏 敏 胡亮亮 張麗紅
(1.晉中學(xué)院物理與電子工程系,山西 晉中 030600;2.山西省交控數(shù)字交通科技有限公司,山西 太原 030006)
溫室大棚快速發(fā)展,規(guī)模迅速擴大,但是傳統(tǒng)的溫室大棚控制系統(tǒng)卻沒有相應(yīng)的更新?lián)Q代,目前應(yīng)用到溫室大棚的監(jiān)測系統(tǒng)多采用由模擬溫度傳感器、多路模擬開關(guān)以及A/D 轉(zhuǎn)換器等組成的傳輸系統(tǒng)。這類傳輸系統(tǒng)成本高、易受外界干擾、損耗大且測量誤差大,無法有效控制溫度。 單片機因其優(yōu)良的性價比和可控性備受青睞。該文基于AT89C52單片機設(shè)計了一款智能溫室大棚控制系統(tǒng),真正意義上實現(xiàn)了無人化、智能化生產(chǎn),與目前常見的其他智能溫室大棚相比,其具有成本低廉、功能多樣以及可移植性強等優(yōu)點,能有效提高大棚種植的經(jīng)濟效益[1]。
根據(jù)預(yù)期所要實現(xiàn)的功能,按照模塊化設(shè)計的思想,初步確立智能溫室大棚系統(tǒng)由核心AT89C52單片機最小系統(tǒng)、實現(xiàn)溫度采集與控制功能的溫度采集模塊、電機驅(qū)動模塊、舵機驅(qū)動模塊、大棚增溫?zé)裟K、實現(xiàn)陰歷顯示與定時灌溉功能的實時時鐘模塊、液晶顯示模塊、獨立鍵盤模塊以及蜂鳴器模塊組成,系統(tǒng)模塊設(shè)計框圖如圖1所示。
系統(tǒng)具體運行流程如圖2所示,先初始化,刷新時間,刷新溫度顯示;執(zhí)行主循環(huán),進行按鍵檢測,如果有按鍵按下,就執(zhí)行按鍵功能,如果沒有按鍵按下,就每200 ms監(jiān)測系統(tǒng)狀態(tài)1次,判斷此時系統(tǒng)狀態(tài)處于陽歷模式還是陰歷模式,如果陽歷模式,就刷新時間、日期,如果為陰歷模式,就刷新陰歷[2];設(shè)定溫度閾值,同時每秒檢測溫度1次,如果溫度高于33 ℃ (設(shè)定閾值),就開啟降溫系統(tǒng)對大棚降溫,驅(qū)動舵機旋轉(zhuǎn)到-90 °方向,代表遮陽網(wǎng)開啟。如果溫度為25 ℃~33 ℃,就表示溫度適宜植物生長,降溫系統(tǒng)轉(zhuǎn)為關(guān)閉狀態(tài),舵機保持不動。如果溫度低于25 ℃,就打開增溫補光燈,給予植物充分的光照和溫度,同時舵機轉(zhuǎn)動到+90 °方向,代表遮陽網(wǎng)關(guān)閉。最后對時間進行監(jiān)測,當(dāng)定時灌溉系統(tǒng)處于開啟狀態(tài)且時間達到所設(shè)定的時間時,驅(qū)動電機開啟水泵,均勻澆灌植物,同時,還可以通過軟件及土壤濕度科學(xué)設(shè)置灌溉時長。

圖2 系統(tǒng)運行流程圖
最小系統(tǒng)包括單片機及其所需的必要的電源、時鐘以及復(fù)位等部件,能使單片機始終處于正常的運行狀態(tài)。將最小系統(tǒng)作為智能溫室大棚系統(tǒng)的核心部分,將其引腳外接不同的模塊,使單片機具備溫度監(jiān)測與控制、智能灌溉以及陰陽歷轉(zhuǎn)換等功能。 選用AT89C52單片機為核心,在XTAL1與XTAL2引腳外接11.059 2 MHz的晶振,使單片機有合理的運行速度。 RST引腳接復(fù)位電路,高電平復(fù)位[3]。
AT89C52單片機最小系統(tǒng)電路如圖3所示,在設(shè)計中,單片機P0.0~P0.7引腳接液晶顯示屏LCD1602的D0~D7引腳,作為數(shù)據(jù)傳輸引腳;P2.0引腳接蜂鳴器引腳,作為溫度閾值報警、定時灌溉驅(qū)動提示音引腳;P2.5引腳接LCD1602的RS引腳(寄存器選擇引腳),高電平時為數(shù)據(jù)寄存器,低電平時為指令寄存器;P2.6引腳接LCD1602的RW引腳(讀/寫控制引腳),因為只需要寫入數(shù)據(jù),所以可以只接低電平;P2.7引腳接LCD1602的E引腳,為使能端口,高電平有效;單片機對E引腳、RS引腳以及RW引腳輸入控制信號,便能與LCD1602建立數(shù)據(jù)通信,將時間、日期以及溫度等信息傳輸?shù)揭壕э@示屏上顯示;P3.0~P3.3引腳接獨立鍵盤的K1~K4引腳,具備時間調(diào)整、陰陽歷界面切換、設(shè)定灌溉時間以及開關(guān)狀態(tài)功能;P3.7引腳接溫度傳感器DS18B20的WD引腳,單片機通過P3.7引腳可以讀取DS18B20的溫度數(shù)據(jù);P1.0~P1.2引腳接時鐘芯片的SCLK串行時鐘引腳、I/O串行數(shù)據(jù)引腳與RST復(fù)位引腳;P1.3引腳和P1.5引腳接ULN2003A的4B口和6B口,當(dāng)單片機對這2個端口輸入高電平時,便可以驅(qū)動相應(yīng)的電機轉(zhuǎn)動,同時LCD1也與P1.5引腳相連,當(dāng)P1.5引腳輸入高電平時,LCD1被點亮,代表定時灌溉系統(tǒng)開啟;P1.4引腳接舵機SG90的DJ引腳,通過DJ引腳向舵機發(fā)送不同占空比的脈沖信號,可以使舵機轉(zhuǎn)動到不同方向[4];P1.7引腳接大棚增溫?zé)鬖ED2,當(dāng)P1.7引腳輸入低電平時,大棚增溫?zé)舯稽c亮。
溫度采集與控制功能由單片機最小系統(tǒng)與溫度采集模塊、舵機模塊、電機模塊以及大棚增溫?zé)裟K協(xié)作實現(xiàn)。其中,溫度采集模塊采用數(shù)字式溫度傳感器DS18B20,如圖4所示,DS18B20采用單總線設(shè)計,其DQ端與單片機P3.7引腳直接相連,單片機通過這一條總線便可以完成對DS18B20的復(fù)位操作、存在檢測以及讀寫等操作,從而完成溫度采集工作[5]。

圖4 溫度采集與控制電路設(shè)計圖
先啟動DS18B20溫度轉(zhuǎn)換,執(zhí)行總線復(fù)位,單片機通過拉低總線499.45 μs來發(fā)送復(fù)位脈沖,掛接在總線上的溫度傳感器將會被復(fù)位,之后單片機釋放總線進入接收模式,總線被拉至高電平。當(dāng)DS18B20檢測到總線上升沿信號后,等待83.45 μs,將總線拉低發(fā)送一個存在脈沖,向主設(shè)備表明溫度傳感器在總線上,并且做好通信準(zhǔn)備。 接著,總線控制器產(chǎn)生讀寫時序,通過向總線發(fā)送由0與1組成的序列碼,完成忽略ROM指令操作以及溫度轉(zhuǎn)換指令操作,從而讀取溫度值。總線控制器產(chǎn)生寫0時序,將總線拉低最少1.00 μs,保持低電平76.95 μs,然后釋放總線;產(chǎn)生寫1時序,在產(chǎn)生寫時序的15.00 μs內(nèi)將總線拉高,再保持60.00 μs以上,以保證ds18b20采樣;同理,產(chǎn)生一個讀時序,必須先將總線拉低至少1.00 μs,在讀信號開始后的15.00 μs內(nèi)完成將總線拉高或者保持低電平的操作,同時將數(shù)據(jù)保持60.00 μs以上,保證總線控制器完成總線數(shù)據(jù)采樣工作[6]。
完成溫度采集工作后,根據(jù)所獲取的溫度數(shù)據(jù),設(shè)置溫度閾值(33 ℃),并通過判斷溫度是否超過相應(yīng)的閾值范圍,執(zhí)行相應(yīng)的增溫、降溫操作。
當(dāng)溫度高于33 ℃時,單片機通過P1.3引腳向ULN2003A中的4B口輸入高電平信號(圖5(a)電機),則4B口對應(yīng)的輸出口4C口會得到一個低電平信號,此時COM口為高電平,4C口為低電平,電機小電風(fēng)扇啟動,開始對大棚降溫,同時單片機通過P1.4引腳及DJ端口向舵機輸入占空比為1∶39的脈沖信號(圖5(a)舵機),舵機轉(zhuǎn)動到-90 °方向,代表遮陽網(wǎng)開啟。
當(dāng)溫度為25 ℃~33 ℃時,就表示溫度適宜植物生長,單片機通過P1.3引腳向ULN2003A中的4B口輸入低電平信號(圖5(b)電機),則4B口對應(yīng)的輸出口4C口會得到一個高電平信號,此時COM口為高電平,4C口為高電平,降溫電機停止轉(zhuǎn)動,同時單片機停止向P1.4口輸入脈沖信號(圖5(b)舵機),舵機保持不動。
當(dāng)溫度低于25 ℃時,單片機向P1.7口輸入高電平信號,開啟增溫補光燈,給予植物充分的光照與溫度,向P1.4引腳輸入占空比為5∶35的脈沖信號(圖5(c)舵機),舵機轉(zhuǎn)動到+90 °方向,表示遮陽網(wǎng)關(guān)閉,同時單片機向P1.3引腳輸入一個正脈沖信號(圖5(c)電機),確保電機處于關(guān)閉狀態(tài)[7]。

圖5 電路波形圖
陰歷顯示通過單片機向SCLK端輸入低電平,向RST端輸入高電平,進行初始化,對I/O口輸入寫控制指令,當(dāng)下一個SCLK時鐘脈沖的上升沿來臨時,將數(shù)據(jù)寫入DS1302;對I/O口輸入讀控制指令,當(dāng)下一個SCLK時鐘脈沖的上升沿來臨時,將數(shù)據(jù)讀出DS1302,這樣通過SCLK與I/O口的配合將精確的時刻數(shù)據(jù)傳輸?shù)絾纹瑱C中。單片機接收到時鐘數(shù)據(jù)與從天文臺得到的陰歷數(shù)據(jù)進行對比,就可以得到當(dāng)年的春節(jié)日期,以計算公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減一月天數(shù),調(diào)整一月農(nóng)歷月份,即可推算公歷日所對應(yīng)的農(nóng)歷日期[8]。
在得到時間數(shù)據(jù)后,通過if語句判斷時間與所設(shè)定時間是否相等,如果相等,那么單片機通過P1.5口輸入高電平,LED1被點亮,同時ULN2003A中6C口位置的電機啟動,蜂鳴器發(fā)出滴滴提示音,代表定時灌溉功能開啟(圖5(d)蜂鳴器與定時灌溉);再通過if語句判斷時間與所設(shè)定時間加灑水時長是否相等,如果相等,就給P1.5口輸入低電平,LED1與電機均關(guān)閉,系統(tǒng)通過2個if語句便完成了定時灌溉功能的設(shè)計。

圖6 陰歷顯示與定時灌溉功能設(shè)計圖
該文基于AT89C52智能溫室大棚溫度監(jiān)測與控制系統(tǒng),采用模塊式設(shè)計與軟硬件結(jié)合的方法,將單片機與溫度采集、電機驅(qū)動等8個外部擴展模塊連接,在硬件上,采用數(shù)字式溫度采集,將溫度誤差縮小至±0.5 ℃;同時,設(shè)計了升溫補光、電機降溫等溫控功能,使溫室大棚內(nèi)農(nóng)作物即使在外界環(huán)境溫度大幅度變化的情況下,仍可以正常生長。在軟件上,通過應(yīng)用流程代碼,實現(xiàn)了對各個模塊的調(diào)用以及各個模塊功能的相互配合,不但全面、實時且準(zhǔn)確地完成了對溫室大棚溫度實時監(jiān)測與控制,而且額外增添了符合農(nóng)業(yè)生產(chǎn)節(jié)氣的陰歷顯示功能與定時灌溉功能,從而實現(xiàn)溫室大棚的智能化生產(chǎn)。通過模塊化設(shè)計的方法,電路可移植性強,可以根據(jù)不同環(huán)境的需求增添外部擴展模塊,例如可以加入藍牙模塊,與手機相連,操作更便捷,管理更精準(zhǔn);也可以加入濕度檢測模塊監(jiān)測土壤濕度,更有效、科學(xué)地管理灌溉時長。綜上所述,基于AT89C52的智能溫室大棚系統(tǒng)比傳統(tǒng)智能控制系統(tǒng)更智能化、人性化,性價比更高,更符合市場需求。