張儷亭 楊習(xí)偉
摘 要:文章主要研究了基于STC89C52單片機(jī)的溫室大棚溫濕度控制系統(tǒng)的設(shè)計(jì)原理、硬件電路設(shè)計(jì)及軟件設(shè)計(jì)等。溫室大棚溫度濕度自動控制系統(tǒng)由主控制器STC89C52單片機(jī)、濕度檢測傳感器、溫度檢測傳感器DS18B20和調(diào)節(jié)控制等電路構(gòu)成,該系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)值顯示等功能,能實(shí)現(xiàn)對溫室內(nèi)溫濕度的自動調(diào)節(jié)。
關(guān)鍵詞:蔬菜大棚;STC89C52單片機(jī);溫濕度控制;自動控制
蔬菜大棚技術(shù)的普及能夠更好地滿足人民對于生活水平日益提高的需要。蔬菜大棚管理中最重要的一個(gè)因素是溫濕度控制。溫度和濕度是農(nóng)業(yè)生產(chǎn)中的基本因素之一,對于農(nóng)業(yè)生產(chǎn)至關(guān)重要,運(yùn)用現(xiàn)代化的高科技手段,對農(nóng)業(yè)生產(chǎn)環(huán)境的溫濕度作出一定的調(diào)整,提高農(nóng)產(chǎn)品的質(zhì)量以及農(nóng)業(yè)生產(chǎn)的效率非常重要。目前普遍采用溫室大棚保證植物生長所需的適宜環(huán)境,為了對大棚的溫濕度按照不同作物不同季節(jié)作出一定的不規(guī)則調(diào)節(jié)。該系統(tǒng)由STC89C52單片機(jī)作為主控制系統(tǒng),使用濕度傳感器和溫度傳感器DS18B20來采集溫濕度信號,此外,還由固態(tài)繼電器、LED顯示器和報(bào)警電路等構(gòu)成,實(shí)現(xiàn)對蔬菜大棚溫濕度的檢測與控制,從而有效提高蔬菜的產(chǎn)量,該系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)值顯示等功能,該系統(tǒng)性能可靠,結(jié)構(gòu)簡單,能實(shí)現(xiàn)對溫室內(nèi)溫濕度、光照的自動調(diào)節(jié)[1]。
1 系統(tǒng)硬件設(shè)計(jì)
由于溫室大棚的內(nèi)部環(huán)境比較潮濕,而且晝夜間的溫度差異較大,因此,溫室大棚的控制環(huán)境較為復(fù)雜,而集成芯片相比一些大型的設(shè)備來說比較穩(wěn)定,易控制,而且功耗較低。由于在溫室大棚環(huán)境中,溫室大棚溫濕度控制系統(tǒng)幾乎都要晝夜不停地運(yùn)行,因此要考慮功耗,功耗越小,成本就越低,低功耗的系統(tǒng)可以節(jié)約成本和維持系統(tǒng)穩(wěn)定。另一方面,系統(tǒng)越穩(wěn)定則性能越好,軟件良好運(yùn)行需要一個(gè)穩(wěn)定的系統(tǒng)。由于整個(gè)系統(tǒng)較為復(fù)雜,硬件設(shè)備的元器件較多,因此需要合理的總線系統(tǒng)和網(wǎng)絡(luò)系統(tǒng)進(jìn)行串接,所以如何選擇功能強(qiáng)大、擴(kuò)展性能好的控制芯片以及如何選擇最優(yōu)的網(wǎng)絡(luò)設(shè)計(jì)方案顯得尤為重要。另外,系統(tǒng)的數(shù)據(jù)存儲性能要好,例如溫室和濕度的控制閾值、植物的周期生長環(huán)境參數(shù)等都需要進(jìn)行儲存,一旦數(shù)據(jù)因系統(tǒng)異常導(dǎo)致丟失或者不可恢復(fù),將會直接導(dǎo)致系統(tǒng)的控制效果欠佳。本文設(shè)計(jì)的溫濕度控制系統(tǒng)的傳感器都采用的是數(shù)據(jù)原件,而一些輔助的設(shè)備則是我們很少使用的,基于這樣的設(shè)計(jì)原則,整個(gè)系統(tǒng)的穩(wěn)定性還有可靠性都得到了極大限度的提升,從某個(gè)程度上來說,這樣做也讓系統(tǒng)的可擴(kuò)展性變得更加優(yōu)秀了,同時(shí)還提升了系統(tǒng)的性價(jià)比。具有可擴(kuò)展性是遴選器件的一個(gè)重要考慮點(diǎn),只有具備非常好的可擴(kuò)展性的模塊才有利于后期整個(gè)系統(tǒng)的升級和改造,并且不需要太大的資金和人力投入[2]。
對于溫室大棚溫濕度控制系統(tǒng)而言,系統(tǒng)的精度越高,則需要投入的成本就越多。因此在進(jìn)行系統(tǒng)設(shè)計(jì)的時(shí)候,要考慮成本和精度之間的關(guān)系,從中選擇最優(yōu),使得在可接受的成本下達(dá)到需要的精度。本文設(shè)計(jì)的溫室大棚溫濕度控制系統(tǒng)主要分為以下3個(gè)主要功能模塊[3]。
(1)CPU核心模塊:較快的處理速度是CPU所必須具備的特點(diǎn)。只有具備一定的處理能力,才能同時(shí)檢測多路傳感信號,同時(shí)轉(zhuǎn)換、處理、控制多種信號,以及保障實(shí)時(shí)通信的目的。檢測報(bào)警以及整個(gè)中央系統(tǒng)進(jìn)行監(jiān)控一系列操作需要處理的數(shù)據(jù)是很大的,而且它的運(yùn)算量是極大的,所以這就要求CPU一定要有較快的處理速度才能處理這些問題。此部分主要由主控器件STC89C52單片機(jī)完成,完成數(shù)據(jù)處理、儲存、通信等功能。
(2)外圍電路:此部分主要包括溫濕度數(shù)據(jù)采集電路和控制電路。其中溫度傳感器、濕度傳感器分別負(fù)責(zé)對溫度和濕度數(shù)據(jù)的感應(yīng)采集。通過對溫濕度信號的分析,控制部分電路完成升降溫、加除濕等過程。
(3)通信模塊:通信模塊主要負(fù)責(zé)整個(gè)系統(tǒng)的數(shù)據(jù)和信令在控制節(jié)點(diǎn)和被控節(jié)點(diǎn)之間進(jìn)行可靠的傳輸,從而實(shí)現(xiàn)對溫室大棚的監(jiān)控。
依照系統(tǒng)硬件設(shè)計(jì)要求,系統(tǒng)硬件的總體框圖如圖1所示。
2 系統(tǒng)軟件設(shè)計(jì)
STC89C52單片機(jī)是可編程微控制器,適合采用C語言來完成程序設(shè)計(jì)。本系統(tǒng)設(shè)計(jì)中STC89C52單片機(jī)的軟件編程與開發(fā)是在uVision2集成開發(fā)的。C語言易于開發(fā)應(yīng)用軟件,提高開發(fā)效率,并且易于程序移植。根據(jù)前面的分析可知,在軟件開發(fā)語言選擇上本文主要采用C語言和編匯語言。C語言是一種通用的計(jì)算機(jī)程序設(shè)計(jì)語言。為了能夠提高單片機(jī)應(yīng)用程序的效率,改善程序的可移植性和可讀性,一種最好的選擇無疑就是采用高級語言的方法。C語言不僅具有一般高級語言的一些特點(diǎn),又可以在寄存器讀寫時(shí)直接進(jìn)行操作計(jì)算機(jī)的硬件,并且其表達(dá)和運(yùn)算能力也特別強(qiáng),之前必須采用匯編語言才能解決的問題如今C語言都可以解決。整個(gè)測控系統(tǒng)中最重要的環(huán)節(jié)就是對主程序模塊的設(shè)計(jì)和處理,它的主要任務(wù)是對各個(gè)子程序通過任務(wù)驅(qū)動完成調(diào)用[4]。主程序是軟件系統(tǒng)的核心,它主要是實(shí)現(xiàn)結(jié)構(gòu)化的功能設(shè)計(jì),還有多個(gè)輪詢處理,各個(gè)參數(shù)和控制都是在程序的子程序中實(shí)現(xiàn)傳遞和轉(zhuǎn)化的。主程序完成各種數(shù)據(jù)的處理都是依靠子程序的處理來實(shí)現(xiàn)的,子程序?qū)崿F(xiàn)了數(shù)碼管的溫度采集,以及通過設(shè)定閾值對環(huán)境參數(shù)進(jìn)行控制。主程序可以完成對子程序的處理和控制。主程序在編寫時(shí)消除了許多誤差,可以對子程序的錯誤返回進(jìn)行集中處理。主程序的控制更多的是對指令識別的轉(zhuǎn)發(fā)。各個(gè)子程序之間需要進(jìn)行完善的解耦設(shè)計(jì),尤其牽涉到對邊界值的訪問,需要采用一定的并發(fā)訪問控制設(shè)計(jì)思想來避免數(shù)據(jù)的讀寫沖突。另外,各個(gè)接口的設(shè)計(jì)需要遵循高內(nèi)聚的原則,即一個(gè)接口只通過參數(shù)傳遞完成某一個(gè)獨(dú)立的抽象功能。這樣方便在后續(xù)程序升級或軟件拓展需要復(fù)用的時(shí)候,就能夠很直接地調(diào)用此單元功能模塊的入口函數(shù)[5]。本系統(tǒng)設(shè)計(jì)的主程序流程如圖2所示。
3 結(jié)語
本文使用單片機(jī)進(jìn)行溫室大棚監(jiān)控系統(tǒng)的主要目的是實(shí)現(xiàn)對溫室大棚室內(nèi)環(huán)境的參數(shù)設(shè)定和檢測,例如溫度數(shù)據(jù)、濕度數(shù)據(jù)等都是通過相應(yīng)的數(shù)據(jù)傳感器完成的,我們可以通過使用RS-232,讓單片機(jī)接收到PC上的數(shù)據(jù),然后通過單片機(jī)里面的運(yùn)算器還有控制器將具體得到的數(shù)據(jù)同系統(tǒng)原來設(shè)置的植物生長環(huán)境的參數(shù)閾值進(jìn)行比對,最后將比對的結(jié)果進(jìn)行處理或者儲存。單片機(jī)在將處理后的數(shù)據(jù)通過I/0接口和RS-232傳遞給執(zhí)行的繼電器、電機(jī)以及電磁閥等,對處理后的結(jié)果進(jìn)行修改,當(dāng)發(fā)現(xiàn)數(shù)據(jù)不在設(shè)置的閾值之內(nèi)時(shí),及時(shí)進(jìn)行更改,如果在合理的閾值之內(nèi)對數(shù)據(jù)進(jìn)行儲存,這樣就能實(shí)現(xiàn)對溫室大棚控制環(huán)境的總體進(jìn)行控制的目的。我們可以使用相應(yīng)的傳感器來實(shí)現(xiàn)對大棚溫濕度控制系統(tǒng)的溫度和濕度數(shù)據(jù)的采集,DS18B20是本篇論文所設(shè)計(jì)的溫度傳感器主要采用的器件,濕度傳感器主要采用的是SHT11。
[參考文獻(xiàn)]
[1]余錫存.曹國華.單片機(jī)原理及接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,2011.
[2]楊居義.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:清華大學(xué)出版社,2009.
[3]肖紅兵.跟我學(xué)用單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2006.
[4]康華光.電子技術(shù)基礎(chǔ)模擬部分[M].北京:高等教育出版社,2009.
[5]鄭建光,李永.基于AT89C51單片機(jī)的交通燈系統(tǒng)設(shè)計(jì)[J].自動化與儀器儀表,2008(6):30-33.