【基于自動控制系統(tǒng)的智能溫室設(shè)計10000字(論文)】_第1頁
【基于自動控制系統(tǒng)的智能溫室設(shè)計10000字(論文)】_第2頁
【基于自動控制系統(tǒng)的智能溫室設(shè)計10000字(論文)】_第3頁
【基于自動控制系統(tǒng)的智能溫室設(shè)計10000字(論文)】_第4頁
【基于自動控制系統(tǒng)的智能溫室設(shè)計10000字(論文)】_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于自動控制系統(tǒng)的智能溫室設(shè)計目錄1前言 I1前言1.1溫室的發(fā)展溫室具有透光以及保溫的功能,在環(huán)境惡劣的情況下,可以保障溫室內(nèi)作物的生育期并提高作物產(chǎn)量,非常有利于冬季對需要適宜溫度才能生長的蔬菜、花卉等植物栽育使用[1]。為了給這些特殊的蔬菜、花卉等植物提供生長的最佳條件,溫室控制技術(shù)可以針對溫室作物生長必須的外在物理要素,譬如濕度、光照度、溫度等條件進(jìn)行調(diào)節(jié)。而現(xiàn)代溫室控制技術(shù)更是不滿足于這些功能,為了實時監(jiān)控溫室植物的生長環(huán)境,該技術(shù)主要通過系統(tǒng)實時記錄溫室環(huán)境的溫濕度以及光照度來達(dá)到監(jiān)測的目的。為此,我國也一直致力于溫室控制技術(shù)方面的相關(guān)研究,也成功獲得了溫室栽培等許多方面的成效[2]。但是,由于我國研究溫室控制技術(shù)的時間相對較短,技術(shù)與設(shè)備的配套也并不完善,對環(huán)境的監(jiān)控能力并不突出,生產(chǎn)力也相對不足,能夠完成全年生產(chǎn)的大型現(xiàn)代化溫室數(shù)量并不多。并且進(jìn)口溫室設(shè)備價格較高,對技術(shù)操作人員的綜合素質(zhì)要求也很高,目前改善與加大對溫室環(huán)境控制迫在眉睫。1.2課題研究意義近些年來,我國的溫室大棚種植技術(shù)開始被農(nóng)村使用,特別是塑料薄膜的蔬菜大棚居多,其體積小占地面積少,投入少,但有的人用了不久就丟棄了,其中最主要的因素就是對蔬菜大棚內(nèi)的環(huán)境因素控制精度不高。我國的國土資源雖然整體是比較多的,但由于我國總?cè)丝跀?shù)目過大,每個家庭所享有的耕地面積相對較少,且人們對于反季節(jié)蔬菜的需求也逐漸上升,怎么在有限的土地上種植出我們所需求的蔬菜是值得我們?nèi)タ紤]和研究的,溫室大棚種植技術(shù)由此產(chǎn)生。溫室大棚種類很多,下面章節(jié)會詳細(xì)介紹到,總的來說,是利用塑料薄膜等覆蓋物以及鋼結(jié)構(gòu)框架搭建適合蔬菜進(jìn)行生長的環(huán)境,然后以人工控制或自動控制的方式對蔬菜大棚內(nèi)的環(huán)境進(jìn)行干預(yù),讓蔬菜可以不因外界環(huán)境情況的變化而進(jìn)行正常生長,可以讓我們種植的蔬菜擺脫溫度和氣候以及自然條件的影響。雖然溫室大棚能使蔬菜在反季節(jié)進(jìn)行種植,但溫室大棚內(nèi)溫度和濕度的控制是溫室大棚內(nèi)最核心的環(huán)境因素,這兩個因素往往決定著棚里蔬菜生長的好壞。以往我們對于蔬菜大棚內(nèi)的溫度和濕度的檢測通常是由相應(yīng)的溫度或濕度計進(jìn)行測量采集,且由人工進(jìn)行讀數(shù),根據(jù)采集到的信息再進(jìn)行相應(yīng)的升溫或降溫操作。這種控制方式讓棚內(nèi)升溫或降溫都不能及時達(dá)到我們的要求,而且該方式浪費大量人力以及物力。隨著我國社會的不斷發(fā)展,科學(xué)技術(shù)的不斷引進(jìn)創(chuàng)新,我國現(xiàn)代控制系統(tǒng)技術(shù)已經(jīng)普及到我們?nèi)粘I畹母鱾€腳落。我們?nèi)绾卫矛F(xiàn)有的自動控制技術(shù)來實現(xiàn)對蔬菜大棚內(nèi)的溫度和濕度進(jìn)行實時檢測,再根據(jù)監(jiān)測到的數(shù)值自動控制相應(yīng)的設(shè)備進(jìn)行升溫或降溫操作。這對提高大棚內(nèi)蔬菜等農(nóng)作物產(chǎn)量和節(jié)約人力資源具有重要的意義。2系統(tǒng)總體方案設(shè)計2.1系統(tǒng)設(shè)計方案方案一:可以采用比較傳統(tǒng)的二位模擬控制方法,該方法就是在采用比較適合的模擬電路的基礎(chǔ)之上,采用電位器的方法來設(shè)置我們的額定值,設(shè)置我們所需要的上下限值,將采集到的信息與給定值進(jìn)行比較,然后控制相應(yīng)設(shè)備啟動。如果采用此模擬控制方法,本系統(tǒng)受外界因素影響較大,會導(dǎo)致系統(tǒng)的有關(guān)精度也會下降,而且采用此設(shè)計的話,在數(shù)據(jù)顯示方面我們不能使用數(shù)碼顯示,不能讓我們更簡便的去觀察和控制。方案二:此方案計劃采用AT89C52單片機為核心,采用溫度傳感器DS18B20進(jìn)行溫度采集,采用HS1101電容式濕度傳感器進(jìn)行濕度采集,其中HS1101可測量的濕度范圍為55.5℃~125.5℃。采用繼電器控制外接口設(shè)備,使其達(dá)到電路簡單、可靠的目的。使用單片機具有編程靈活,控制簡單的優(yōu)點,使系統(tǒng)能簡單的實現(xiàn)溫度的控制及顯示,并且通過軟件編程能實現(xiàn)各種控制算法使系統(tǒng)還具有控制精度高的特點。方案三:第三種以STC89C52芯片為核心,DHT11作為溫室溫濕度的傳感器,LCD1602顯示屏顯示數(shù)據(jù),通過使用弱電控制強電來控制繼電器對溫濕度進(jìn)行調(diào)節(jié)。在對上述三種方案進(jìn)行比較,在結(jié)合實際的資源情況,所需工作電壓,以及程序燒寫所需存儲空間,中斷復(fù)位以及時鐘等因素。通過以上分析最終決定采用方案二,方案中電子器件的選型下章將會詳細(xì)介紹。本課題主要是基于單片機的智能溫室系統(tǒng)的設(shè)計,系統(tǒng)可以劃分為主控模塊、溫度監(jiān)測模塊、濕度監(jiān)測模塊、降溫模塊、升溫模塊、顯示模塊和按鍵模塊等。系統(tǒng)需要完成的工作是利用溫濕度傳感器對大棚內(nèi)溫度和濕度數(shù)據(jù)進(jìn)行測量,并將獲取到的數(shù)據(jù)發(fā)送給單片機進(jìn)行處理,單片機將溫濕度傳感器傳送過來的數(shù)據(jù)進(jìn)行處理,當(dāng)輸入進(jìn)來的數(shù)據(jù)處于設(shè)定的閾值范圍內(nèi)時,系統(tǒng)無需進(jìn)行任何操作,當(dāng)輸入進(jìn)來的數(shù)據(jù)超出設(shè)定閾值范圍時驅(qū)動相應(yīng)的繼電器模塊模擬加溫和降溫功能。系統(tǒng)設(shè)計框圖如圖2-1所示。圖2-1系統(tǒng)設(shè)計框圖2.2主控模塊選型在本系統(tǒng)的設(shè)計與實驗中,主控模塊作為核心器件相當(dāng)于人類的大腦一樣負(fù)責(zé)指令的發(fā)出與轉(zhuǎn)發(fā)功能,所以主控芯片的選型尤為重要,既要考慮到資源夠用又要考慮到控制精度。在本次設(shè)計中我選擇采用AT89C52作為主控芯片。本設(shè)計選擇使用的單片機是AT89C52單片機,相較于其他同類型單片機,它的軟件資料比較完整,數(shù)量多,同時編程也與51兼容,對于學(xué)生或者初學(xué)者來說較為友好,簡單方便;支持ISP下載,使用起來較方便;FLASHROM可下載10000次以上;可靠性較好。AT89C52是Atmel公司研發(fā)的一款低功耗、高性能CMOS8位微控制器,采用高密度非易失性存儲器技術(shù)進(jìn)行制造,兼容80C51產(chǎn)品的所有指令和引腳。它具有兩種低功耗的工作方式:休閑ID方式和掉電PD方式;有8K字節(jié)系統(tǒng)可編程的閃存,同時也允許常規(guī)編程器和程序存儲器在線對系統(tǒng)進(jìn)行編程;有一個全雙工的異步串行通信接口,可用作通用異步接收和發(fā)送器或同步移位寄存器。而這些特點為AT89C52能夠為許多嵌入式控制應(yīng)用系統(tǒng)提供具有高靈活度和高有效性的解決方案打下了堅實的基礎(chǔ)。AT89C52單片機有多種不同類型的封裝形式,本設(shè)計中選用的是DIP封裝,其管腳圖如圖2-2所示。圖2-2AT89C52管腳圖2.3傳感器選型(1)DHT11DHT11是一種可以同時對溫度和濕度進(jìn)行檢測的復(fù)合型傳感器,該傳感器采用簡化的單線雙向的串行接口技術(shù),通迅時間約為4ms,傳輸?shù)臄?shù)據(jù)分為小數(shù)和整數(shù)兩部分,傳送一次完整的數(shù)據(jù)是40位數(shù)據(jù),遵循先高位后低位的順序,先是濕度整數(shù)數(shù)據(jù)和濕度小數(shù)數(shù)據(jù),然后是溫度整數(shù)數(shù)據(jù)和溫度小數(shù)數(shù)據(jù),最后一個是校驗位,且都是8bit。比如接收到的40位數(shù)據(jù)為:0011010100000000000110000000000001001101分別對應(yīng)濕度高8位、濕度低8位、溫度高8位、溫度低8位校驗位計算:00110101+00000000+00011000+00000000=01001101則接收數(shù)據(jù)正確為:濕度:00110101=35H=53%RH溫度:00011000=18H=24C,如果接收到的40位數(shù)據(jù)為:0011010100000000000110000000000001001001,分別對應(yīng)濕度高8位、濕度低8位、溫度高8位溫度低8位、校驗位,計算00110101+00000000+00011000+00000000=01001101,因為01001101不等于01001001,故本次接收的數(shù)據(jù)不正確,放棄,重新接收數(shù)據(jù)。該傳感器同時結(jié)合了數(shù)字采集技術(shù)和溫濕度檢測技術(shù),既能保障檢測的精度還提供了較長的使用壽命。該傳感器能夠同時對溫度和濕度進(jìn)行檢測主要是因為該器件內(nèi)部包含了感濕元件和測溫元件,通過這兩個元件的配合實現(xiàn)對于溫濕度的監(jiān)測,該傳感器由于具有較低的價格和功耗并且傳輸距離最遠(yuǎn)可達(dá)20m所以經(jīng)常在很多需要對溫濕度檢測的系統(tǒng)中使用,本文需對溫度及濕度進(jìn)行測試。該模塊實物圖如圖2-3所示。圖2-3DHT11溫濕度傳感器實物圖(2)DS18B20和HS1101HS1101是電容式濕度傳感器,可測量的濕度范圍為55.5℃~125.5℃。DS18B20是一款單總線接口的溫度傳感器,其體積微小,性能強大,抗干擾能力強,其溫度測量范圍比其傳感器要寬一些,為負(fù)55度到正125度,該傳感器使用的是DALLAS的單總線控制協(xié)議。該器件的使用非常簡單,可直接與單片機進(jìn)行相連無需添加A/D轉(zhuǎn)換模塊。在使用時可直接將檢測到的溫度信息變?yōu)閿?shù)字信號傳送給單片機,該傳感器實物如圖2-4所示。圖2-4DS18B20實物圖(3)AHT10AHT10檢測探頭采用CMOSES專利技術(shù)將AD轉(zhuǎn)換電路和數(shù)字接口相結(jié)合。AHT10體積小且采用簡單的接口電路,在性價比方面,該傳感器適用在需要大批量使用的地萬,其采用雙線數(shù)字輸出的模式,且功耗偏低低。其測量量程偏大一些,溫度測量范圍從-40到+120度之間,其濕度測量的量程為滿量程測量。即便是零下的冬天也能滿足環(huán)境監(jiān)測的需求。該模組使用的時候信號端口直接和終端主控制器相連并進(jìn)行共地。本文通過傳感器主要對智能溫室的溫濕度進(jìn)行檢測,通過對比以上三種測量方法,DS18B20是一種具有體積小、電壓寬、經(jīng)濟、數(shù)字化的基礎(chǔ)設(shè)備產(chǎn)品。測算的范圍為零下55度至125度之間。DS18B20適用于各種現(xiàn)場溫度測量環(huán)境,具有更廣泛的電壓和封裝選擇,因此選擇DS18B20傳感器來構(gòu)建溫度測量系統(tǒng)。2.4顯示模塊選型為了滿足系統(tǒng)設(shè)計要求且能夠直觀看到系統(tǒng)運行的當(dāng)前狀態(tài),需要通過顯示裝置來對數(shù)據(jù)進(jìn)行顯示。如我們通過顯示器可以操作電腦一樣,在電子設(shè)計中,我們常用的顯示設(shè)備主要有LED、OLED、LCD、數(shù)碼管四種,每種顯示設(shè)備的優(yōu)缺點以及設(shè)計難度各有不同,下面針對這四種顯示設(shè)備進(jìn)行簡單描述。(1)LED可以實現(xiàn)對多種信息的不同形式進(jìn)行轉(zhuǎn)化,其功耗低,工作電壓需求低,使用年限長且驅(qū)動簡單。伴隨著單片機性能的發(fā)展和人們需求的增加,LED燈也開始朝著顯示的方向發(fā)展,我們可以利用許多個小的LED燈珠組成一個大型LED矩陣面板,通過控制這個LED矩陣面板里面的LED燈的亮滅和顏色來實現(xiàn)顯示屏的效果,利用現(xiàn)實生活中拍照像素的基本原理,矩陣面板里面的每一個LED燈都可以作為一個像素點。實現(xiàn)單個LED燈驅(qū)動簡單,但我們組成的矩陣?yán)锩鍸ED數(shù)量很大,不但要控制它們的亮滅,還要控制亮的顏色,難度可想而知,并且我們?nèi)绻胍肔ED矩陣來顯示數(shù)據(jù),其體積也過大。(2)OLED液晶顯示屏是近幾年在電子設(shè)計上流行起來的一種顯示方式。OLED(OrganicLight-EmittingDiode)又稱是激光顯示或發(fā)光半導(dǎo)體顯示,通過給顯示屏注入不同的載流子,在相關(guān)的控制之下互相結(jié)合產(chǎn)生發(fā)光的現(xiàn)象。該類型的顯示屏優(yōu)點主要有:顯示屏顯示的內(nèi)容多而且比較豐富,其顯示畫質(zhì)比其它顯示屏更加細(xì)致,所以在很多設(shè)計中都有使用到該類型的顯示器。(3)LCD液晶顯示屏,這種顯示屏又常常被稱為LCD1602,其功能如名字一樣,是LCD的顯示方式,每行也顯示16個字符,可顯示兩行,最多可顯示32個字符,該產(chǎn)品應(yīng)用較久,技術(shù)也已經(jīng)熟練,在質(zhì)量上是可以保證的,所以使用上較容易上手,最主要的優(yōu)點在該顯示屏生產(chǎn)技術(shù)成熟,生產(chǎn)成本低,價格低廉,且該顯示屏對數(shù)據(jù)的顯示比其它的顯示器要清晰一點,如果進(jìn)展的話該顯示屏占用較少的單片機I/O口。(4)LED數(shù)碼管,該類型顯示器也經(jīng)常被我們所熟悉以及廣泛使用,它還有一個較為形象的名字,通常叫做八段管,通過這個名字我們可以很容易的聯(lián)想出來,該八段管是利用八段的發(fā)光二極管燈組合形成的,我們可以通過控制八個發(fā)光二極管的亮與滅來顯示出我們所指定的數(shù)字,把若干個數(shù)碼管拼接起來可以顯示更多的數(shù)字。在組合時,把各個數(shù)碼管的陰極和陽極分開,分成共陰極和共陽極,將所有數(shù)碼管的陰極接到一起構(gòu)成共陰極,共陰極低電平有效,把組合數(shù)碼管的陽極連接起來構(gòu)成共陽極,共陽極高電平有效。復(fù)用引腳可大大節(jié)約單片機I/O口的使用。通過對幾種顯示器件的分析,結(jié)合本設(shè)計中僅需要對溫度值以及濕度值進(jìn)行顯示,顯示界面需要兩行,并且LCD1602是一種工業(yè)字符型液晶,專門用來顯示字母,數(shù)字,符號的點陣型液晶模塊,其由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間都有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,綜上所述所以選擇LCD1602顯示屏作為本設(shè)計的顯示設(shè)備。3系統(tǒng)硬件設(shè)計3.1單片機電路單片機最小系統(tǒng)是指單片機可以正常執(zhí)行程序指令的最簡電路組成?;緱l件如下:(1)電源:驅(qū)動電子電路正常進(jìn)行工作,選用的AT89C52需要5V的供電,所以40腳接+5V,20腳接地。在一個完整的單片機應(yīng)用系統(tǒng)中,為了避免各模塊之間相互干擾,可分模塊供電。(2):接高電平,表示此時執(zhí)行片內(nèi)程序存儲器指令。(3)振蕩電路:為單片機提供一個頻率和幅值穩(wěn)定的脈沖序列,單片機通過此脈沖序列將內(nèi)部電路協(xié)調(diào)一致,同步工作。AT89C52的18引腳和19引腳為晶振引腳,接入一個11.0592 MHz的晶振,為了保證晶振起振,維持震蕩信號的穩(wěn)定,需要外加兩個30pF的電容REF_Ref10692\r\h[15]。(4)復(fù)位電路:作為從外部將單片機重新啟動的輔助電路,可以在單片機上電時自動完成復(fù)位,也可以在單片機出現(xiàn)死機或程序跑飛時,手動復(fù)位重新啟動REF_Ref12628\r\h[16]。大多采用電容和電阻搭建的RC充放電路,在上電階段,在單片機復(fù)位端口產(chǎn)生一個幾十毫秒的復(fù)位電平。最小系統(tǒng)電路如圖3-1所示。圖3-1最小系統(tǒng)電路圖3.2傳感器電路在課題中,使用了一個集成溫度傳感器,而DS18B20使用到的AT89C51微控制器可以作為集成溫度傳感測量系統(tǒng)的內(nèi)部電路過程控制設(shè)計核心。而在圖3-2中,DS18B20的內(nèi)部電源電路提供為外部接口電源,i/o數(shù)據(jù)線為1和P3.4。在將DS18B20連接到系統(tǒng)之前,必須從一個鍵的ROM值中讀取溫度序列號,其次在系統(tǒng)溫度查看器收到時輸出一個溫度序列號,從1至n為n,系統(tǒng)可能要求你利用鍵盤自動設(shè)定一個溫度傳感警報信號閾下的值,以及LED屏幕來體現(xiàn)DS18B20和溫度測量。DS18B20用于室內(nèi)當(dāng)下測量溫度,將其與i/o微控制器的端口、采用溫度測量值和設(shè)定值進(jìn)行對比,最后利用系統(tǒng)控制電路進(jìn)行工作。一般說明在CPU中對程序DS18B20的管理操作過程access操作過程中的方法一般是:初始化DS18B20,然后針對程序執(zhí)行ROM主機程序管理操作命令,最后對虛擬主機程序存儲器和虛擬主機程序數(shù)據(jù)管理接口分別進(jìn)行主機程序管理操作。DS18B20的每一步主機程序運行操作都必須要得到響應(yīng),必須同時遵循嚴(yán)格的主機程序運行工作先后順序和通信協(xié)議,如程序使用虛擬主機運行溫度控制器的命令執(zhí)行DS18B20完成程序工作主機溫度。根據(jù)DS18B20的通信協(xié)議,轉(zhuǎn)換過程分為三個階段,DS18B20在讀寫之前必須初始化,DS18B20以ROM命令和RAM命令復(fù)位后定時器的形式運行。晶體管PN結(jié)的部分特征,集成了溫度傳感器,通過利用感應(yīng)元件、放大電路及補償電路合并一起組成一個集成的溫度測量組件。有著高靈敏、高效率、低廉價位等優(yōu)點外。DS18B20是一種具有體積小、電壓寬、經(jīng)濟、數(shù)字化的基礎(chǔ)設(shè)備產(chǎn)品。測算的范圍為零下55度至125度之間。DS18B20適用于各種現(xiàn)場溫度測量環(huán)境,具有更廣泛的電壓和封裝選擇,因此我們可以使用方便的電路設(shè)計,來構(gòu)建我們經(jīng)濟的溫度測量系統(tǒng)。圖3-2溫度采集模塊3.3電源模塊設(shè)計本設(shè)計輸入電源電壓為直流(DC)9V,經(jīng)三端穩(wěn)壓器7805穩(wěn)壓后輸出5V電源,作為系統(tǒng)的工作電源。電源電路如圖3-3所示,D2為保護二極管電源接反是可以保護系統(tǒng)不燒毀,C4~C7為濾波電容,通過濾波電容濾除雜波使得電源更加純凈,D3為系統(tǒng)電源指示燈。圖3-3電源模塊3.4驅(qū)動電路模塊設(shè)計驅(qū)動電路的主要作用就是,當(dāng)環(huán)境溫度高于所設(shè)置溫度時,單片機通過驅(qū)動電路控制降溫設(shè)備進(jìn)行降溫[7]。驅(qū)動電路如圖3-4,當(dāng)環(huán)境溫度高于所設(shè)置溫度時,單片機將F_CTR置為低電平,PNP三極管S8550導(dǎo)通,繼電器吸合,降溫模塊得電開始降溫。當(dāng)環(huán)境溫度小于所設(shè)溫度時,F(xiàn)_CTR置為高電平,三極管S8550截止,繼電器放開,降溫設(shè)備得電停止降溫。二極管D1,為續(xù)流二極管,起保護作用,繼電器是電感性負(fù)載,當(dāng)驅(qū)動電路關(guān)斷線圈電流時,電感中貯存的能量通過感應(yīng)產(chǎn)生很高的電壓,對系統(tǒng)產(chǎn)生干擾,嚴(yán)重時會損壞繼電器輸出端。續(xù)流二極管能夠提供電流回路并將感應(yīng)電壓限制在電源電壓+二極管正向壓降的范圍內(nèi),從而減少了繼電器關(guān)斷線圈對系統(tǒng)的干擾,并保護了線圈驅(qū)動電路[6]。圖3-4驅(qū)動電路3.5LCD顯示模塊設(shè)計LCD模塊采用點陣字符型液晶屏1602,該模塊采用5V供電,顯示內(nèi)容16字符x2行,字符點陣5x8點,工作電流2ma。如圖3-5所示,1602有16個引腳,1腳為電源地。2腳接電源正極。3腳接液晶顯示偏壓信號[7]。4腳接51單片機的P2.0/A8端,是液晶屏的數(shù)據(jù)或命令選擇端。5腳接51單片機的P2.1/A9端,是液晶屏的讀寫選擇端。6腳接51單片機的P2.2/A10端,是液晶屏的使能信號端。7至14腳為數(shù)據(jù)輸入輸出腳,接單片機的P0.0/AD0至P0.7/AD7輸入輸出數(shù)據(jù)。圖中沒有標(biāo)出的15、16腳分別為背光源正極和背光源負(fù)極,是為實現(xiàn)液晶屏背光時必須接入的。圖3-5LCD引腳3.6鍵盤模塊設(shè)計鍵盤模塊由四組按鍵組成,分別為時間調(diào)整、時間增、時間減和開關(guān)。鏈接單片機的P1.0~P1.3。圖3-6鍵盤引腳4系統(tǒng)軟件的設(shè)計硬件平臺結(jié)構(gòu)一旦確定,大的功能框架即形成。軟件在硬件平臺上構(gòu)筑,完成各部分硬件的控制和協(xié)調(diào)。系統(tǒng)功能是由軟硬件共同實現(xiàn)的,由于軟件的可伸縮性,最終實現(xiàn)的系統(tǒng)功能可強可弱,差別可能很大。因此,軟件是本系統(tǒng)的靈魂。軟件采用模塊化設(shè)計方法[8],不僅易于編程和調(diào)試,也可減小軟件故障率和提高軟件的可靠性。這里我們選用了移值性好、結(jié)構(gòu)清晰、能進(jìn)行復(fù)雜運算的C語言來實現(xiàn)編程。4.1系統(tǒng)軟件整體程序流程設(shè)計框圖系統(tǒng)的總體程序流程如圖下所示:初始化初始化顯示時間時修改分修改顯示實際溫度與設(shè)定溫度實際溫度大于設(shè)定溫度實際溫度小于設(shè)定溫度按下啟動開關(guān)啟動電機待機實際溫度等于設(shè)定溫度待機實際溫度大于設(shè)定溫度按下關(guān)閉開關(guān),關(guān)閉系統(tǒng)開始圖4-1系統(tǒng)程序流程圖4.2系統(tǒng)軟件各個模塊設(shè)計打開主開關(guān),初始化整個系統(tǒng)后,液晶屏上半部分顯示時間和電機開關(guān)說明,下半部分顯示實際溫度和預(yù)定溫度,按按鍵MS選擇按鈕,依次可以切換為時修改、分修改、設(shè)定溫度修改。當(dāng)設(shè)定溫度低于實際溫度時,打開啟動開關(guān)燈泡亮,表示電機工作,當(dāng)設(shè)定溫度高于實際溫度時,打開啟動開關(guān)系統(tǒng)待機,如果開始時設(shè)定溫度高于實際溫度,但通過對溫度采集DS18B20溫度控制器加溫,當(dāng)實際溫度高于設(shè)定溫度時,在開關(guān)打開的情況下燈泡自動點亮,表示電機開始工作。如果實際溫度高于設(shè)定溫度但電機開關(guān)沒開[9],小燈泡依然不會亮,系統(tǒng)待機。系統(tǒng)整體運行情況就是這樣的,原理圖可以參照上圖。當(dāng)按下總關(guān)閉開關(guān)時,關(guān)閉系統(tǒng)。整個基于單片機的智能溫度控制系統(tǒng)的軟件采用C語言編程,在主程序中主要是對單片機、LCM(液晶顯示模塊)、寄存器、DS18B20溫度控制器進(jìn)行分塊編程。詳細(xì)的程序見附錄二,具體的分步過程如下[10]:(1)在程序的開始部分是對各個端口下定義確定各個端口的地址,之后是對LCM的延時進(jìn)行定義,具體程序如下:voiddelay_LCM(uintk){uinti,j;for(i=0;i<k;i++){for(j=0;j<60;j++) {;}}因為在液晶屏顯示出結(jié)果之前要先通過單片機處理[11],存儲器讀取,這些都需要時間,所以對LCM的延時進(jìn)行定義是很重要的,否則容易使數(shù)據(jù)產(chǎn)生沖突讓系統(tǒng)死機。接下來是對LCM的定義,其中包括寫指令到LCM函數(shù)、寫數(shù)據(jù)到LCM函數(shù)、LCM內(nèi)部等待函數(shù)、LCM初始化子函數(shù)、LCM定坐標(biāo)的一個字符子函數(shù)和LCM顯示指定坐標(biāo)的一串字符子函數(shù)。在對LCM的整個編程過程中,先確定LCM的指令和數(shù)據(jù)可以寫入,然后利用等待函數(shù)是程序運行有短暫的停頓,這段時間被安排來讀取寄存器中記錄的數(shù)據(jù),當(dāng)寄存器的數(shù)據(jù)被讀出后運行LCM初始化子函數(shù)、LCM定坐標(biāo)的一個字符子函數(shù)和LCM顯示指定坐標(biāo)的一串字符子函數(shù)用來確定液晶屏上具體位置的具體顯示。(2)對DS18B20溫度控制器進(jìn)行的編程,其中包含ds18b20延遲子函數(shù)(晶振12MHz)、ds18b20初始化函數(shù)、ds18b20讀一個字節(jié)、ds18b20寫一個字節(jié)、讀取ds18b20當(dāng)前溫度。ds18b20延遲子函數(shù)是為了保證ds18b20的讀數(shù)準(zhǔn)確性而做的延遲,在初始化ds18b20后先給ds18b20一個脈沖試讀取一個字節(jié),后在試寫入一個字節(jié)以確保ds18b20工作正常,在ds18b20工作正常的前提下對ds18b20進(jìn)行溫度的讀取[12]。(3)是對液晶顯示子函數(shù)一、二、三、四。四種情況的具體編程,這四種情況在實物中的具體表現(xiàn)為:液晶顯示子函數(shù)一顯示正常的顯示,液晶顯示子函數(shù)二顯示調(diào)整小時時的液晶板的顯示,液晶顯示子函數(shù)三顯示調(diào)整分鐘時的液晶板的顯示[13],液晶顯示子函數(shù)四顯示設(shè)定溫度時的液晶板的顯示。在這一段的程序編寫中要注意液晶板上只能示ASCII,對于數(shù)字的顯示要在原來的基礎(chǔ)上加48,程序中是以16進(jìn)制編寫的,所以在程序中具體顯示為“+0x30”。具體程序如下:voiddisplayfun1(void){ WriteCommandLCM(0x0c,1); //光標(biāo)不顯示,檢測忙信號 DisplayListChar(0,0,str0); DisplayListChar(0,1,str1); DisplayOneChar(3,0,hour/10+0x30); //液晶上顯示小時 DisplayOneChar(4,0,hour%10+0x30); DisplayOneChar(6,0,minite/10+0x30); //液晶上顯示分 DisplayOneChar(7,0,minite%10+0x30); DisplayOneChar(9,0,seconde/10+0x30); //液晶上顯示秒 DisplayOneChar(10,0,seconde%10+0x30); DisplayOneChar(4,1,K/10+0x30); //液晶上顯示設(shè)定的溫度 DisplayOneChar(5,1,K%10+0x30); DisplayOneChar(12,1,temp1/10+0x30);//液晶上顯示測得的溫度 DisplayOneChar(13,1,temp1%10+0x30); if(ON_OFF==0) //若溫控標(biāo)志為0 { DisplayOneChar(14,0,0x4f); //液晶上顯示不控溫的標(biāo)志OF DisplayOneChar(15,0,0x46); } else { DisplayOneChar(14,0,0x4f); //液晶上顯示控溫的標(biāo)志ON DisplayOneChar(15,0,0x4e); } }這部分程序是對液晶顯示中的正常顯示的編寫,時修改、分修改、設(shè)定溫度修改這三個分步顯示可以參考這部分程序完成編寫。(4)對鍵盤的編程,包括鍵盤掃描子函數(shù)、設(shè)定工作模式子函數(shù)、按鍵加法子函數(shù)、按鍵減法子函數(shù)。對鍵盤的編程是先對鍵盤的掃描,掃描后通過設(shè)定工作模式子函數(shù)來確定鍵盤上選擇鍵的功能以及LCM上通過鍵盤能顯示的四種狀態(tài)[14],最后通過按鍵加法子函數(shù)和按鍵減法子函數(shù)來定義加和減按鈕的具體功能。之后是對24C02寄存器的編程,具體包括24C02讀寫驅(qū)動程序、從24c02的地址address中讀取一個字節(jié)數(shù)據(jù)和24c02的address地址中寫入一字節(jié)數(shù)據(jù),24C02讀寫驅(qū)動程序使24C02寄存器正常工作,從24c02的地址address中讀取一個字節(jié)數(shù)據(jù)和24c02的address地址中寫入一字節(jié)數(shù)據(jù)是在使用24C02寄存器前對其能否正常工作的測試。(5)對51單片機中的定時器進(jìn)行編程,使液晶屏上的時鐘能正常計數(shù),有了時鐘功能也使這個基于單片機的智能溫度控制器更加的人性化。這段定時器的編寫具有代表性,我采用的是51單片機中內(nèi)部計數(shù)器timer0的編寫,具體程序如下:voidtimer0(void)interrupt1using0//定時器0方式1,50ms中斷一次{TH0=0x3c;TL0=0xb0;mstcnt++;if(mstcnt>=20){seconde++;write=1;mstcnt=0;} //50*20=1s秒加1 if(seconde>=60){minite++;seconde=0;} if(minite>=60){hour++;minite=0;} if(hour>=24){hour=0;} keyscan();//按鍵掃描}(6)最后是主程序部分,主程序是對上面各個分程序的統(tǒng)一調(diào)用,使整個系統(tǒng)能正常的運行,在主程序中利用循環(huán)語句使對溫度的采集每秒采集一次,同時每秒也向寄存器寫入當(dāng)前的小時、分鐘、秒以及設(shè)定溫度的信息,這樣再關(guān)閉整個系統(tǒng)再次開機時,系統(tǒng)就可以從寄存器中讀取小時、分鐘、秒以及設(shè)定溫度的信息顯示在液晶屏上,這也體現(xiàn)了這個溫度控制器在智能上的特點。5溫室系統(tǒng)的測試5.1系統(tǒng)硬件平臺搭建本文測試中搭建的網(wǎng)絡(luò)在結(jié)構(gòu)上包括一個協(xié)調(diào)器節(jié)點,一個路由節(jié)點和兩個終端節(jié)點。圖中最上方兩個設(shè)備是終端節(jié)點,負(fù)責(zé)對溫室內(nèi)的環(huán)境數(shù)據(jù)進(jìn)行采集工作并通過網(wǎng)絡(luò)發(fā)送到路由器節(jié)點,同時接受下發(fā)的控制命令控制執(zhí)行機構(gòu)運作;位于下圖中間位置的是路由節(jié)點,負(fù)責(zé)將采集的數(shù)據(jù)進(jìn)行匯聚并傳送給協(xié)調(diào)器節(jié)點;圖中最下方的是協(xié)調(diào)器節(jié)點,負(fù)責(zé)整體網(wǎng)絡(luò)的組建工作,并將環(huán)境數(shù)據(jù)通過Internet發(fā)送給上位機部分。圖5-1硬件搭建實物圖在設(shè)備上電后,各節(jié)點紅燈亮代表電源接通,設(shè)備進(jìn)入工作狀態(tài)。協(xié)調(diào)器節(jié)點設(shè)備上藍(lán)色LED燈常亮代表網(wǎng)絡(luò)組建成功;路由節(jié)點和終端節(jié)點在上電后,藍(lán)色LED燈會進(jìn)行閃爍,開始網(wǎng)絡(luò)搜索并在找到網(wǎng)絡(luò)信號后發(fā)出入網(wǎng)申請;當(dāng)成功加入網(wǎng)絡(luò)后,藍(lán)燈會進(jìn)入常亮狀態(tài)。由圖中各設(shè)備狀態(tài)可知,協(xié)調(diào)器節(jié)點組網(wǎng)成功,同時終端節(jié)點和路由節(jié)點成功加入網(wǎng)絡(luò)。5.2系統(tǒng)測試結(jié)果本設(shè)計是基于單片機的智能溫室系統(tǒng)的設(shè)計,系統(tǒng)采用UN0主控開發(fā)板作為系統(tǒng)的主控模塊。系統(tǒng)的主要功能是對系統(tǒng)所處環(huán)境的溫度進(jìn)行測量,并將測量得到的溫度與系統(tǒng)設(shè)定的閾值進(jìn)行對比,若環(huán)境溫度大于設(shè)定溫度則啟動圖通風(fēng)進(jìn)行降溫,系統(tǒng)溫度可通過顯示屏實時觀看。整個系統(tǒng)的硬件電路如圖5-2所示。圖5-2整體系統(tǒng)硬件系統(tǒng)通電后狀態(tài)如圖5-2所示,從圖中可以看到LCD顯示屏上顯示當(dāng)前的溫度以及手動和自動模式,其中當(dāng)前溫度為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論