基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計_第1頁
基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計_第2頁
基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計_第3頁
基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計_第4頁
基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學號:10417227常州大學畢業(yè)設計〔論文〕〔2023屆〕題目基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計學生楊達學院信息科學與工程學院專業(yè)班級自動化102校內(nèi)指導教師王雪專業(yè)技術(shù)職務講師校外指導老師專業(yè)技術(shù)職務二○一四年五月基于單片機和GSM的大棚溫濕度檢測系統(tǒng)的研究與設計摘要:隨著我國農(nóng)業(yè)的迅速開展與農(nóng)業(yè)現(xiàn)代化進程的逐步加快,大棚的應用也逐漸普及,然而這也帶來了新的問題。植物生長需要適宜的環(huán)境,需要在一定溫度與濕度范圍內(nèi)才能正常地生長,因晝夜變化或者天氣驟變導致的溫濕度的巨大變化,對植物的生長造成了不小的負面影響。而大棚無法解決由各種原因造成的溫濕度的變化,所以對大棚的溫濕度進行檢測與控制十分關鍵。因此為了讓大棚環(huán)境更適合植物的生長,提高大棚作物的產(chǎn)量和質(zhì)量,對大棚的溫濕度的監(jiān)測變得尤為重要。本文設計的基于單片機和GSM的大棚溫濕度檢測系統(tǒng),以STC89C52RC單片機為控制器,以數(shù)字式溫濕度傳感器DHT11作為溫濕度檢測模塊,與華為GSM通信模塊有機結(jié)合,構(gòu)成一個溫濕度實時檢測報警系統(tǒng)。本系統(tǒng)通過溫濕度檢測模塊實時檢測大棚的溫濕度,并通過LCD1602液晶屏顯示當前溫濕度。假設溫濕度超過設定范圍,系統(tǒng)進行聲光報警,同時通過GSM模塊將報警信息發(fā)至用戶的,實現(xiàn)遠程報警。本文通過四個獨立按鍵實現(xiàn)溫濕度的閾值設置等功能。本文為我國溫室大棚自動控制系統(tǒng)的研究與開發(fā)打下了良好的根底。關鍵詞:大棚溫濕度檢測系統(tǒng);單片機;GSM;ResearchandDesignofthetemperatureandhumiditydetectionsystemingreenhousebasedonmicrocontrollerandGSMAbstract:WiththerapiddevelopmentofChina'sagricultureandtheaccelerationofagriculturalmodernizationprocess,greenhousehasbeenpopularized,butitalsobringsnewproblems.Plantsneedrightgrowingenvironment,andtheycanonlygrownormallywithinacertainrangeoftemperatureandhumidity.Greatchangesintemperatureandhumidityduetodiurnalvariationorthesuddenchangeoftheweatherhassignificantnegativeimpactonplants.However,greenhousecan’tsolvethisproblemwhichiscausedbyreasons.Sothedetectionandcontroloftemperatureandhumidityinthegreenhouseisveryimportant.Inordertomaketheenvironmentmoresuitableforplantingreenhouse,andimprovetheyieldandqualityofgreenhousecrops,monitoringtemperatureandhumidityofthegreenhousehasbecomeespeciallyimportant.Inthisarticle,thedesignoftemperatureandhumiditydetectionsystemingreenhouseisbasedonMCUandGSM,usingSTC89C52RCascontroller,takedigitaltemperatureandhumiditysensorcalledDHT11asatemperatureandhumiditydetectionmodule,andthencombinedwithHuaweiGSMcommunicationmodule,atemperatureandhumidityrealtimedetectionsystemwithwarningfunctionisconstituted.Thesystemcandetectthetemperatureandhumiditytemperaturewithhumiditydetectionmodule,anddisplaythecurrenttemperatureandhumiditythroughtheLCD1602LCDscreen.Ifthetemperatureexceedsthesetrange,soundlightalarmsystemwillalarm.Atthesametime,alarminformationissenttothepersoninchargethroughtheGSMmodule.Inthisdesign,thethresholdvalueoftemperatureandhumiditywillbesetbyfourindependentbuttons.ThispassagehaslaidagoodfoundationfortheresearchanddevelopmentoftheautomaticcontrolsystemofgreenhouseinChina.Keywords:Greenhousetemperatureandhumiditydetectionsystem;MCU;GSM;目錄摘要I目錄III1緒論11.1概述11.2課題的國內(nèi)外研究現(xiàn)狀與開展趨勢11.2.1國外開展情況與開展趨勢11.2.2國內(nèi)開展情況與開展趨勢21.3本文主要研究內(nèi)容22系統(tǒng)的總體方案32.1功能概述32.2總體設計方案簡述32.3方案選型42.3.1控制器選型42.3.2溫濕度傳感器選型42.3.3通信模塊選型5顯示模塊選型53系統(tǒng)硬件局部設計73.1單片機模塊硬件電路設計73.1.1STC89C52RC單片機簡介7單片機模塊最小系統(tǒng)硬件電路的設計93.2溫濕度檢測模塊硬件電路設計113.2.1DHT11簡介113.2.2DHT11硬件電路設計113.3GSM通訊模塊硬件電路設計123.3.1GSM開發(fā)板簡介123.3.2HUAWEI_GTM900通信模塊簡介123.3.3GSM通信模塊硬件電路設計123.4LCD顯示模塊硬件電路設計133.4.1LCD1602簡介133.4.2LCD1602硬件電路設計143.5按鍵與報警硬件電路設計153.5.1按鍵硬件電路設計15報警硬件電路設計164系統(tǒng)軟件設計174.1程序設計語言與軟件開發(fā)環(huán)境簡介174.2系統(tǒng)軟件總體設計174.3溫濕度采集模塊軟件設計204.4GSM通訊模塊軟件設計244.5LCD1602顯示模塊軟件設計254.6鍵盤軟件設計284.7報警軟件設計305系統(tǒng)調(diào)試及運行325.1硬件調(diào)試325.2運行結(jié)果326結(jié)論37參考文獻39致謝40附錄原理圖411緒論1.1概述我國是一個農(nóng)業(yè)大國,有幾千年的農(nóng)業(yè)文明。隨著控制技術(shù)、移動通信技術(shù)的快速開展,設施農(nóng)業(yè)逐漸興起,反季節(jié)瓜果、蔬菜在人們消費水平提高的前提下迅速開展[1]。為使人們在不同的季節(jié)都可以食用其喜愛的作物,溫室大棚的作物栽培起到了很大的作用[2]。但是,瓜果蔬菜在大棚里的生長受到很多因素的影響,包括陽光、空氣中各種氣體的含量、溫度和濕度等等[3]。在溫室大棚控制系統(tǒng)中,溫室中的溫度和濕度對各種蔬菜、花卉、苗圃等作物的生長和發(fā)育起著關鍵性的作用,與大自然中的普通作物相比要求精度較高。在關鍵時期,參數(shù)的微小變化可能會影響大棚內(nèi)作物的生長,造成不可預計的經(jīng)濟損失[4]。傳統(tǒng)大棚由農(nóng)民依據(jù)自己的經(jīng)驗和簡單的溫度計進行監(jiān)測并手動進行管理控制,很難到達預期的效果。為了使作物獲得比室外生長更優(yōu)的環(huán)境條件,到達優(yōu)質(zhì)、高產(chǎn)、高效的目的,人們對溫室大棚的性能提出了更高的要求[5]。因此,如何方便有效地對溫室大棚環(huán)境進行檢測和控制,如何提高溫室大棚蔬果作物生產(chǎn)的產(chǎn)量與質(zhì)量水平是目前可控環(huán)境農(nóng)業(yè)研究的重點。由于不同蔬菜作物的適宜溫度和濕度不同,且需要穩(wěn)定在一定的范圍內(nèi)。僅僅依靠人工管理會出現(xiàn)調(diào)節(jié)不及時、不準確等問題,不僅影響蔬菜正常生長,同時也會造成人力資源的浪費。因此,需要一種能對大棚溫濕度檢測有足夠精度,并盡可能有效降低本錢的技術(shù)[6]。本文研究的蔬菜大棚溫度濕度監(jiān)測系統(tǒng)正是這種有效技術(shù),該系統(tǒng)旨在以更經(jīng)濟的方式實現(xiàn)對蔬菜大棚內(nèi)的溫度與濕度的監(jiān)測與控制,為蔬菜生長提供最有利的環(huán)境條件,從而保證蔬菜的健康生長。溫室大棚技術(shù)的開展帶來了良好的經(jīng)濟效益和社會效益,它可以提高農(nóng)民收入,提高產(chǎn)業(yè)化水平,提高抵御自然災害能力,延長作物生長時間,提高作物產(chǎn)量[7]。本文研究的大棚溫度濕度監(jiān)測系統(tǒng)利用信息傳感技術(shù)和數(shù)據(jù)采集技術(shù)獲得大棚內(nèi)的溫濕度信息并進行處理,有利于實現(xiàn)大棚溫濕度監(jiān)測的智能化與精確化,有助于提高農(nóng)業(yè)大棚的自動化程度和生產(chǎn)效率。1.2課題的國內(nèi)外研究現(xiàn)狀與開展趨勢1.2.1國外開展情況與開展趨勢國外興旺國家在20世紀50年代已經(jīng)開始建造并管理溫室大棚[8],上個世紀70年代末,美國、日本、荷蘭等興旺國家陸續(xù)開始應用計算機來控制溫濕度。1978年,國外已經(jīng)成功研制出溫室環(huán)境綜合控制微機系統(tǒng)。隨著計算機技術(shù)日新月異的開展,80年代末期出現(xiàn)了使用計算機進行數(shù)據(jù)采集的分布式溫濕度控制系統(tǒng)。美國是進行該項研究最早的國家之一,其開發(fā)的溫室計算機控制系統(tǒng)可以根據(jù)具體要求,對于溫度、濕度甚至光照度進行自動控制,該技術(shù)被廣泛運用到日常生活、食品行業(yè)、工農(nóng)業(yè)生產(chǎn)等各個領域。目前,美國等興旺國家已經(jīng)將計算機、遙感技術(shù)、GPS全球定位等高新技術(shù)應用到相應的研究中[9]。總體來說,國外興旺國家的溫室系統(tǒng)已經(jīng)形成規(guī)模,并具備一定的行業(yè)標準。絕大多數(shù)溫室大棚工廠均以計算機系統(tǒng)為核心控制,并輔助以各種各樣的傳感器,對溫室環(huán)境進行精確控制,并且根本完全取代人工勞作,直接基于智能化的控制系統(tǒng),已經(jīng)在向全自動化的方向進行開展。1.2.2國內(nèi)開展情況與開展趨勢最初,國內(nèi)對于溫濕度控制系統(tǒng)的研究也主要表達在溫室控制技術(shù)的研究上,總體來說起步較晚。自上世紀80年代以來,在引進國外先進溫濕度控制技術(shù)的根底上,我國開始著手研究溫室的溫度、濕度和二氧化碳等單項因子控制技術(shù)。但由于引進的技術(shù)并不適合我國的國情開展,因此,國內(nèi)先后出現(xiàn)多家公司及工程師,對國外大棚技術(shù)進行研究,并結(jié)合我國現(xiàn)狀,對大棚控制系統(tǒng)進行開發(fā),逐步推出適合我國國情,適宜我國農(nóng)業(yè)工作者操作控制的系統(tǒng)。2000年之后,我國加大了在溫濕度控制方面的研究力度。結(jié)合目前的技術(shù)現(xiàn)狀,總體來看,相關研究工作已經(jīng)逐步從簡單應用的階段向?qū)嵱眯浴⒕C合性、智能化的方向過渡與開展,研究的技術(shù)水平已經(jīng)相當高。1.3本文主要研究內(nèi)容系統(tǒng)完成后可以通過溫濕度傳感器對大棚溫室內(nèi)的溫濕度進行測量,通過單片機對采集到的數(shù)據(jù)進行處理,并用顯示模塊顯示出當前環(huán)境的溫濕度狀況,當環(huán)境溫濕度超出了設定范圍時,發(fā)出現(xiàn)場聲光報警,報警持續(xù)一段時間以后發(fā)送GSM短信報警。本文主要完成的任務為:〔1〕對現(xiàn)有的大棚溫濕度檢測系統(tǒng)進行調(diào)研,從而確定溫度和濕度的監(jiān)測范圍及精度,再根據(jù)調(diào)研情況設計系統(tǒng)總體功能方案;〔2〕根據(jù)總體功能設計方案設計溫濕度檢測模塊電路、GSM通信模塊電路與單片機模塊硬件電路及其相應的軟件;〔3〕制作設備,進行調(diào)試。本文將要利用單片機及GSM通訊模塊、溫濕度傳感器,對大棚及溫室的溫濕度進行監(jiān)控,并且將會根據(jù)溫濕度傳感器的工作原理,進行硬件和軟件的方案設計。本文將進行基于單片機與GSM通信模塊的大棚溫濕度監(jiān)控的設計,利用溫濕度檢測模塊對大棚內(nèi)的溫度與濕度進行實時監(jiān)測,制作出精度高、體積小、系統(tǒng)穩(wěn)定、價格低廉、功能強大的溫濕度檢測控制系統(tǒng),實現(xiàn)穩(wěn)定、精確的溫濕度檢測和控制,使之能很好的應用于當代的大棚生產(chǎn)活動,使得人們可以更好地控制大棚的溫濕度。希望能從一定程度上解決大棚溫濕度檢測不便的現(xiàn)狀,普及大棚溫濕度檢測,增加大棚的產(chǎn)出,進而提高農(nóng)民的收益。2系統(tǒng)的總體方案2.1功能概述在大棚種植過程中,溫濕度對作物的生長起到了至關重要的作用,因此大棚溫濕度的控制是國內(nèi)外的研究熱點之一。國內(nèi)外已有相領先進的環(huán)境監(jiān)測控制系統(tǒng),而且成熟應用于大型農(nóng)場。然而,這類工業(yè)級的控制系統(tǒng)大都比擬昂貴,而且不夠簡單易用,雖然性能非常好,但卻不一定適應國內(nèi)一些散戶農(nóng)民的大棚種植。而本文研究的方向那么是為散戶農(nóng)民提供針對小面積大棚的較為廉價高效的的溫濕度監(jiān)測系統(tǒng),以填補這一市場空缺。本文研究的主要內(nèi)容是運用單片機和溫濕度采集模塊等等,對溫室內(nèi)的溫度和濕度進行實時監(jiān)測與顯示,當溫濕度處于警報范圍內(nèi)時進行聲光警報,并輔以GSM通信模塊,在聲光報警一段時間后仍未解除報警,通過GSM通信模塊將溫濕度相關信息發(fā)送到指定號碼,以此通知相關人員進行相應的控制,使得作物得以在適宜的環(huán)境中生長。本系統(tǒng)所具備的功能如下:〔1〕溫濕度實時采集并準確顯示。通過溫濕度采集模塊進行溫濕度的實時采集,并通過單片機對采集到的數(shù)據(jù)進行處理,最后由顯示模塊顯示當前的溫度值和濕度值。使得用戶可以實時查看當時的溫濕度。〔2〕通過按鍵更改溫濕度的上下限。用戶可根據(jù)不同作物在不同時期的最適宜生長環(huán)境,通過按鍵輸入溫度值和濕度值的范圍并由顯示器實時顯示。由于作物在不同生長期所適宜的溫濕度是變化的,此時調(diào)節(jié)溫濕度范圍可以使作物長時間處于較為理想的環(huán)境中,同時也滿足了不同作物的環(huán)境需求?!?〕將測得的值與溫濕度范圍進行比擬,超限時進行報警。報警模塊具有兩項功能,即為聲光報警和GSM短信信息報警。當采集到的溫度、濕度值超出設定范圍時,啟動報警裝置進行報警,并通過發(fā)送GSM短信通知用戶采取相應的措施。2.2總體設計方案簡述本文的大棚溫濕度監(jiān)測系統(tǒng)是由溫濕度傳感器、單片機最小系統(tǒng)、GSM通信模塊、顯示模塊、報警模塊等等組成,通過大棚溫濕度信號的采集與分析,進行聲光警報及GSM短信警報,使得人們可以及時發(fā)現(xiàn)大棚溫濕度的異狀。圖2.1系統(tǒng)設計整體框圖如圖2.1系統(tǒng)設計整體框圖所示,本系統(tǒng)以單片機與GSM模塊、溫濕度傳感器為核心,主要由溫濕度信號采集電路、GSM通信模塊、LCD顯示電路、時鐘復位電路、電源電路、按鍵電路、報警電路組成。系統(tǒng)通過溫濕度傳感器采集大棚的溫度與濕度,然后單片機對數(shù)據(jù)進行處理,將實時測得的數(shù)據(jù)顯示在顯示模塊上,并將采集的數(shù)據(jù)與預先設置的適宜溫濕度的范圍進行比照,假設不在范圍內(nèi),那么啟動報警模塊,進行聲光警報,持續(xù)報警一段時間,當系統(tǒng)處于報警狀態(tài)一定時間后仍未解除報警,通過GSM通信模塊將當時的溫濕度發(fā)送到指定號碼,從而實現(xiàn)了大棚溫濕度的檢測,顯示與報警。2.3方案選型2.3.1控制器選型〔1〕8051單片機8051是一種由英特爾公司制造的8位元的單芯片微控制器,屬于MCS-51單芯片的一種。8051單芯片是同步式的順序邏輯系統(tǒng),整個系統(tǒng)的工作完全是依賴系統(tǒng)內(nèi)部的時脈信號,用以來產(chǎn)生各種動作周期及同步信號。在8051單片機中已內(nèi)建時鐘產(chǎn)生器,在使用時只需接上石英晶體諧振器〔或其它振蕩子〕及電容,就可以讓系統(tǒng)產(chǎn)生正確的時鐘信號。〔2〕STC89C52RC單片機STC89C52是由宏晶公司生產(chǎn)的一種低功耗高性能的8位微控制器,指令代碼完全兼容傳統(tǒng)的8051,存儲器為8KFlash存儲器,內(nèi)核為MCS-51,擁有許多傳統(tǒng)51單片機所不具備的功能,是一款增強型的8051單片機。它的標準功能有:8KFlashROM,512ByteRAM,內(nèi)置4KBEEPROM,以及32位I/O口線,看門狗定時器,MAX810復位電路,3個16位定時器/計數(shù)器,4個外部中斷,一個7向量4級中斷結(jié)構(gòu)等等,而且具有ISP〔在系統(tǒng)可編程〕/IAP〔在應用可編程〕功能,可極大的方便下載程序。另外STC89C52可降至0HZ靜態(tài)邏輯操作,支持2種節(jié)電模式??臻e模式下,CPU停止工作,但是允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復位為止。結(jié)合本系統(tǒng)的需求,與8051單片機相比,STC89C52RC功能更強大,下載程序更為方便,價格也相當廉價。由于該芯片應用廣泛,學習資料也可以更容易地獲得,所以本文選用的STC89C52RC芯片。溫濕度傳感器選型〔1〕方案一采用獨立溫度傳感器與濕度傳感器常用的溫度傳感器有熱電偶與熱電阻,常用的濕度傳感器有氯化鋰濕度傳感器、碳濕敏元件、氧化鋁濕度計、陶瓷濕度傳感器等等,采用這些傳感器時,通常是將4-20mA模擬信號通過AD轉(zhuǎn)換電路轉(zhuǎn)換為數(shù)字信號進行溫濕度的采集與處理,再通過單片機進行判斷與相關的動作。然而,這些傳感器價格較高,接線復雜,對環(huán)境要求也較高。譬如常用的溫度傳感器,熱電偶精度不高,而熱電阻雖然精度高,體積小,但是容易造成熱負載造成測量不準;濕敏傳感器那么對供電電壓要求很高,供電電壓假設有偏差,對濕度的檢測會造成很大的影響?!?〕方案二采用單片智能化濕度/溫度傳感器常用的單片智能化溫濕度傳感器有DHT11及SHT11等等,由于本系統(tǒng)的目的為監(jiān)測大棚的溫濕度,精度無需太高,因而DHT11數(shù)字溫濕度傳感器就足夠本系統(tǒng)的使用。DHT11內(nèi)含一個電阻式濕度傳感器、一個NTC溫度傳感器以及一個8位單片機,采用專用的數(shù)字模塊進行溫濕度采集,相對采用獨立的溫濕度傳感器而言,具有極高的可靠性與穩(wěn)定性。每一只DHT11在出廠前都經(jīng)過了精確的校準,而校準系數(shù)會被編成相應的程序存入校準存儲器OTP中,從而在測量過程中傳感器會利用校準系數(shù)進行自動校準。DHT11采用單線制串行接口,使得系統(tǒng)集成更為便捷,同時它具有反響快、抗干擾能力強、性價比高的特點,使得它更適合本系統(tǒng)使用,超小的體積與極低的功耗,更是獨立傳感器所無法相比的。由于本文采用單片機為控制器,為了節(jié)約本錢,選用單片智能化溫濕度傳感器DHT11可以省去溫度、濕度兩個傳感器及相應的AD轉(zhuǎn)換電路,使系統(tǒng)更為簡單穩(wěn)定高效,所以本文選用DHT11溫濕度傳感器采集溫濕度信號。2.3.3通信模塊選型〔1〕SIEMENSTC35I通信模塊TC35I是德國西門子公司的一款支持900/1800MHZ雙頻的高度集成的GSM模塊。TC35IGSM模塊通過接口連接器和天線連接器分別連接SIM卡讀卡器和天線,是一種支持中文短信息的工業(yè)級GSM模塊,支持EGSM900和GSM1800雙頻段,可傳輸語音及數(shù)據(jù)信號。TC35I的數(shù)據(jù)接口通過AT命令可雙向傳輸指令和數(shù)據(jù),可選波特率為300b/s~115kb/s,自動波特率為1.2kb/s~115kb/s。它支持Text和PDU格式的SMS,支持通過AT命令或關斷信號實現(xiàn)重啟和故障恢復?!?〕HUAWEIGTM900B通信模塊華為GTM900B是GTM900C模塊的老版本,廣泛應用于遠程監(jiān)控、無線公共、無線POS終端等領域,是一款雙頻、高集成度的GSM/GPRS模塊。該模塊體積小,重量輕,功耗低,使用簡單,易于集成。同時GTM900B軟件、硬件兼容TC35I、MC39I,用戶可以花更短的時間更少的本錢開發(fā)新的產(chǎn)品。本文僅使用GSM通信模塊發(fā)送短信,華為GTM900B比TC35I價格低很多,在這兩種通信模塊都能滿足本系統(tǒng)的情況下,為了使系統(tǒng)更為經(jīng)濟,本文采用華為GTM900B。顯示模塊選型〔1〕采用LED數(shù)碼管顯示。LED數(shù)碼管是由多個發(fā)光二極管封裝在一起“8〞字型的器件,通過對這七個條形發(fā)光二極管通以高/低電平使得相應的發(fā)光二極管暗滅,顯示出相應的字形。LED數(shù)碼管擁有兩種驅(qū)動方式,靜態(tài)驅(qū)動時編程簡單,LED亮度高,但是需要占用大量I/O口,動態(tài)顯示應用廣泛,但一般需用驅(qū)動芯片進行驅(qū)動顯示?!?〕采用LCD液晶顯示器顯示。LCD1602是指可以顯示兩行,每行16個字符的液晶模塊。常用在袖珍式儀表和低功耗應用系統(tǒng)中,它具有功耗低、體積小、可視面積大、畫面好、抗干擾能力強、顯示內(nèi)容豐富且美觀的特點,可以節(jié)省軟件中斷資源。相比以上兩種方案,由于本系統(tǒng)顯示模塊需要使用的字符較多,假設用LED數(shù)碼管需要較多I/O口,且電路較為復雜,所以本文使用LCD1602顯示器,相比于采用LED數(shù)碼管,具有電路簡單,畫面清晰易懂的優(yōu)點。3系統(tǒng)硬件局部設計如圖3.1所示,本文設計的大棚溫濕度檢測系統(tǒng),以STC89C52RC單片機為控制器,以數(shù)字式溫濕度傳感器DHT11作為溫濕度檢測模塊,與華為GSM通信模塊有機結(jié)合,構(gòu)成一個溫濕度實時檢測報警系統(tǒng)。本系統(tǒng)使用四個獨立按鍵實現(xiàn)溫濕度的閾值設置等功能,再通過溫濕度檢測模塊〔DHT11〕實時檢測大棚內(nèi)的溫濕度,并由LCD1602液晶屏實時顯示當前溫濕度。當溫濕度超過設定范圍時,系統(tǒng)進行聲光報警。當系統(tǒng)處于報警狀態(tài)一定時間后仍未解除報警,那么通過GSM模塊將報警信息發(fā)至負責人,實現(xiàn)遠程報警。圖3.1系統(tǒng)詳細功能框圖3.1單片機模塊硬件電路設計3.1.1STC89C52RC單片機簡介單片機是一種具有強大數(shù)據(jù)處理能力的超大規(guī)模的集成電路芯片,其內(nèi)部是由中央處理器〔CPU〕、隨機存儲器〔RAM〕、只讀存儲器〔ROM〕、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等等組成,局部功能強大的單片機可能還具有顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器電路等。由于其強大的計算能力、較好的穩(wěn)定性、較低的價格,在工業(yè)控制領域得到了廣泛應用。國內(nèi)使用最多的單片機是INTEL公司的51系列的單片機,它是一種最為根底的單片機,它具有品種齊全、兼容性強、軟件資源豐富、性價比擬高的特點,在國內(nèi)得到了最為廣泛的應用。本系統(tǒng)使用的STC89C52RC單片機是宏晶科技推出的新一代高速/低功耗/超強抗干擾的單片機,它完全兼容8051單片機的代碼,可將8051的代碼直接應用與該芯片。它擁有8K字節(jié)的用戶應用程序空間,512字節(jié)片內(nèi)RAM,32個通用I/O口,看門狗定時器,內(nèi)置4KBEEPROM,3個16位定時器/計數(shù)器,4個外部中斷,此外,它無需專用編程器,無需專用仿真器,可通過串口〔RxD/P3.0,TxD/P3.1〕直接下載用戶程序,為本系統(tǒng)的設計與調(diào)試提供了巨大的方便。圖3.2STC89C52RC引腳圖圖3.2為STC89C52RC引腳圖,其功能說明如下:引腳40為VCC電源正腳,引腳20為電源電壓接地腳VSS。P0端口〔P0.0~P0.7,39~32引腳〕:P0口是一個漏極開路的8位雙向I/O口。P0口作為I/O口輸出的時候,輸出低電平為0,輸出高電平為高組態(tài)而非5V,相當于懸空狀態(tài)。也就是說P0口不能真正的輸出高電平,給所接的負載提供電流,因此必須接上拉電阻〔一電阻連接到VCC〕,由電源通過這個上拉電阻給負載提供電流。P1端口〔P1.0~P1.7,1~8引腳〕:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口。此外,P1.0和P1.1還可以作為定時器/計數(shù)器2的外部技術(shù)輸入〔P1.0/T2〕和定時器/計數(shù)器2的觸發(fā)輸入〔P1.1/T2EX〕。P2端口〔P2.0~P2.7,21~28引腳〕:P2口是一個帶內(nèi)部上拉電阻的8位雙向I/O端口。3.1.2單片機模塊最小系統(tǒng)硬件電路的設計圖3.3最小系統(tǒng)硬件電路最小系統(tǒng)如圖3.3所示,其中復位電路與晶振電路的硬件設計詳細介紹如下所示?!?〕復位電路的硬件設計單片機運行程序時,都是從地址0000H開始的,所以進入系統(tǒng)時必須對CPU進行復位,此外,當程序運行時由于程序錯誤或者操作失誤導致系統(tǒng)進入死鎖狀態(tài),也需要通過復位使系統(tǒng)恢復正常。在RST引腳上〔第9引腳〕加一個持續(xù)時間為24個振蕩周期的高電平,便可使單片機成功復位,本文采用按鍵復位,復位電路如圖3.4所示。當電源剛接通時,由于電容兩端電壓不能突變,所以RST端維持高電平一段時間,只要電容充電時間不超過1ms,就可以對單片機進行通電自動復位,即一接通電源便復位。同時,在正常使用過程中,需要復位時按下按鈕,那么VCC的+5V電平就會直接加到RST端。由于正常按下按鈕時會保持接通達數(shù)十毫秒,完全能夠滿足復位的時間要求的24個機器周期,所以便能直接復位。圖3.4復位電路〔2〕晶振電路的硬件設計圖3.5晶振電路STC89C52RC單片機工作時需要時鐘電路產(chǎn)生控制信號,單片機內(nèi)部的各個功能部件的運行都是以時鐘控制信號為基準,來有序工作的。因此時鐘頻率直接影響單片機的速度,本系統(tǒng)采用內(nèi)部時鐘方式,如圖3.5所示,將XTAL1與XTAL2跨接石英晶體和微調(diào)電容,構(gòu)成了一個穩(wěn)定的自激振蕩器。3.2溫濕度檢測模塊硬件電路設計3.2.1DHT11簡介DHT11數(shù)字溫濕度傳感器是一款擁有數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù)的溫濕度復合傳感器,可靠且穩(wěn)定。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。每個傳感器都經(jīng)過極為精確地校準。因此該產(chǎn)品具有品質(zhì)卓越、超快響應、抗干擾能力強、性價比高等優(yōu)點。產(chǎn)品為4針單排引腳封裝,單線制串行接口,使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達20米以上,使其在各類領域中都得到了廣泛的應用。它的技術(shù)參數(shù)為:供電電壓范圍為3.3~5.5VDC,輸出信號為單總線數(shù)字信號,濕度測量范圍為20-90%RH,精度±5%RH,溫度測量范圍為0~50℃,精度±2℃,濕度分辨率為1%,溫度分辨率為1℃,長期穩(wěn)定性為<±1%RH/年。DHT11溫濕度傳感器引腳說明如下所示:腳1為電源正腳〔VDD〕;腳4為接地腳〔GND〕。腳2為單總線形式串行數(shù)據(jù)線腳;腳3為空腳,懸空即可。由于連接線長度短于20米時需要用5K上拉電阻,大于20米時根據(jù)實際情況使用適宜的上拉電阻,而在本系統(tǒng)連線長度僅為幾厘米,所以采用連接5k上拉電阻的方案。DHT11的供電電壓為3~5.5V。傳感器上電后,需要等待1s,來越過不穩(wěn)定狀態(tài)。在此期間無需發(fā)送任何指令。電源引腳〔VDD,GND〕之間可增加一個100nF的電容,到達去耦濾波的目的。3.2.2DHT11硬件電路設計DHT11與單片機接線圖如圖3.6所示,DHT11腳1連接電源正腳VCC。腳2為穿心數(shù)據(jù)線腳,本文中,DHT11通訊口為P2.2,所以DHT11腳2連接P2.2口。腳3為空腳,無需連接懸空即可。腳4為接地腳,所以連接地。查DHT11產(chǎn)品說明書,查得DHT11連接線短于20m時,需要用5K的上拉電阻,由于本系統(tǒng)中DHT11與單片機距離短于20m,所以按要求安裝5K的上拉電阻。按圖3.6連接,單片機便能與DHT11成功連接通訊。圖3.6DHT11硬件電路3.3GSM通訊模塊硬件電路設計3.3.1GSM開發(fā)板簡介SUNRISINGGSM/GPRS開發(fā)板是一款內(nèi)嵌TCP/IP協(xié)議的GPRS模塊,使用方便,簡單易學。單片機接口電平自動適應,無需設置,解決了5v單片機和3.3v單片機等的連接問題,兼容性極好;同時,使用單片機調(diào)試的時候可以同時連接電腦,無需跳線設置,便可使用電腦的串口調(diào)試助手實時的監(jiān)測單片機和模塊通信的數(shù)據(jù),可以很方便地進行調(diào)試;其GPRS內(nèi)嵌TCP/IP協(xié)議,GPRS上網(wǎng)只需幾條簡單指令;它使用了插拔式SIM卡座,帶SIM卡保護電路,同時支持單片機控制啟動和關機,支持單片機檢測在線狀態(tài);GSM開發(fā)板有電源指示燈、信號指示燈,并留有語音接口,有音頻處理電路,可以后期進行功能擴展;它采用工業(yè)級低壓差芯片,大容量電容和合理的布線,擁有較高的可靠性。3.3.2HUAWEI_GTM900通信模塊簡介華為GTM900B是GTM900C模塊的老版本,廣泛應用于遠程監(jiān)控、無線公話、無線POS終端等領域,是一款900/1800MHZ雙頻、高集成度的GSM/GPRS模塊。該模塊體積小、重量輕、功耗低、使用簡單、易于集成。同時GTM900B支持標準的AT命令及增強AT命令,軟件、硬件兼容TC35I、MC39I,用戶可以花更短的時間更少的本錢開發(fā)新的產(chǎn)品。GTM900-B使用AT命令集,通過UART接口與外部MCU通信,主要實現(xiàn)無線發(fā)送和接收、基帶處理、音頻處理等功能。鍵盤、LCD等外部設備由外部MCU進行控制,具有接口簡單的特點,使得用戶能利用各種鍵盤和LCD開發(fā)各種類型的終端產(chǎn)品。GSM開發(fā)板引腳說明如下所示:〔1〕單片機通信只需要鏈接GND/TXD/RXD,其中電平自適應?!?〕+引腳為電平匹配引腳,根據(jù)使用單片機引腳是否有上拉來選擇使用,一般不連接?!?〕其中IGT是啟動控制腳?!?〕RESET是復位腳?!?〕RI是來電信號引腳。3.3.3GSM通信模塊硬件電路設計華為GTM900-B無線模塊采用串口與單片機進行通信(可以采用全功能串口也可以采用三線制:TXD,RXD和GND),接上1張SIM卡,通過AT指令集,就可以撥、聽,收發(fā)送短信。如圖3.7所示,將單片機的串口與開發(fā)板的串口相連接,便可使單片機與GSM開發(fā)板建立通信。開發(fā)板尾部有八根排針,在其旁邊絲印了一個小表格,上面標注著TXD、RXD、GND,用杜邦線將其與單片機相應的TXD、RXD、GND連接,便可建立通信。圖3.7GSM通信電路硬件設計3.4LCD顯示模塊硬件電路設計3.4.1LCD1602簡介LCD1602是指可以顯示兩行,每行16個字符的液晶模塊。它由假設干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。常用在袖珍式儀表和低功耗應用系統(tǒng)中,它具有功耗低、體積小、可視面積大,畫面好,抗干擾能力強、顯示內(nèi)容豐富且美觀的特點。圖3.8LCD1602引腳圖如圖3.8所示,LCD1602引腳接口說明如下:第1腳:VSS為電源地。第2腳:VDD為電源正。第3腳:VL為LCD1602的比照度調(diào)整端,接正電源時比照度最弱,接地時比照度最高,比照度過高時會產(chǎn)生影子,使用時可以通過一個10K的電位器調(diào)整比照度。第4腳:RS為存放器選擇,高電平1時選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第5腳:R/W為讀寫信號線,高電平1時進行讀操作,低電平0時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:背光源正極。第16腳:背光源負極。3.4.2LCD1602硬件電路設計圖3.9LCD1602硬件電路設計如圖3.9所示,P0口接上拉電阻,第1腳接地,第二腳接電源正,第三腳串接2K電阻接電源正,第四腳接P2.7,第5腳接地,第六腳接P2.6,P0.0~P0.7接LCD16028位雙向數(shù)據(jù)線第7~14腳,第15腳接電源正,第16腳接電源負,LCD1602便能正常工作。3.5按鍵與報警硬件電路設計3.5.1按鍵硬件電路設計〔1〕按鍵原理鍵盤從結(jié)構(gòu)上分為獨立式鍵盤與矩陣式鍵盤。一般按鍵較少時采用獨立式鍵盤,按鍵較多時采用矩陣式鍵盤。在由單片機組成的測控系統(tǒng)及智能化儀器中,用的最多的是獨立式鍵盤。這種鍵盤具有硬件與軟件相對簡單的特點,其缺點是按鍵數(shù)量較多時,要占用大量I/O口。當按鍵沒按下時,CPU對應的I/O接口由于內(nèi)部有上拉電阻,其輸入為高電平;當某鍵被按下后,對應的I/O接口變?yōu)榈碗娖?。只要在程序中判斷I/O接口的狀態(tài),即可知道哪個鍵處于閉合狀態(tài)。由于本系統(tǒng)只需要用到4個按鍵,按鍵數(shù)量少,為了更方便地編程與更簡單有效的電路,本文采用獨立按鍵方案,即將四個按鈕連接四個I/O口,按鈕的另一端接地。圖3.10按鍵電路硬件設計如圖3.10所示,按鍵S1,S2,S3,S4一端接地,另一端分別接單片機STC89C52RC的P1.0,P1.2,P1.3,P1.4口。其中,S1為菜單及切換鍵,S2為數(shù)值加鍵,S3為返回鍵,S4為數(shù)值減鍵。當系統(tǒng)運行時按下S1,那么進入設置溫濕度閾值狀態(tài),此時假設繼續(xù)按S1,那么光標會在4個限值之間循環(huán)切換,當光標移動到一個限值上時,按下S2那么該限值加一,按下S4那么該限值減一,繼續(xù)按S1可更改光標位置,全部設置完成后按下S3可退出設置,此時進入運行狀態(tài)。3.5.2報警硬件電路設計當溫濕度超過所設定溫濕度閾值范圍時,系統(tǒng)進行聲光報警,同時相應的指示燈指示出四種不同的報警原因,以便用戶迅速發(fā)現(xiàn)問題。本系統(tǒng)有四種報警狀態(tài),分別為溫度低于溫度下限,溫度高于溫度上限,濕度低于濕度下限,濕度高于濕度上限,報警時,設置四盞不同的LED燈代表四種報警狀態(tài),因此需要四個I/O口來分別控制四盞燈,以及兩個個I/O口來控制蜂鳴器與報警燈。圖3.11報警電路硬件設計如圖3.11所示,四個LED〔LED1,LED2,LED3,LED4〕陽極接電源,陰極分別連接1K限流電阻后連接單片機的P3.4,P3.2,P3.7,P3.6。通過軟件實現(xiàn)報警功能,設定溫度范圍為溫度下限~溫度上限,濕度范圍為濕度下限~濕度上限。當溫度低于溫度下限時,P3.4=0,LED1點亮;當溫度高于溫度上限時,P3.7=0,LED3點亮;當濕度低于濕度下限時,P3.2=0,LED2點亮;當濕度高于濕度上限時,P3.6=0,LED4點亮。而不管何種情況,只要溫濕度不在設定范圍內(nèi),都會進行聲光報警,蜂鳴器發(fā)出滴滴聲,報警燈會閃爍,即P2.0=0,8550PNP三極管接通,蜂鳴器接通發(fā)出聲音,可通過軟件間斷使P2.0=0,使蜂鳴器發(fā)出滴滴聲,間斷使P1.1=0,使報警燈閃爍。4系統(tǒng)軟件設計4.1程序設計語言與軟件開發(fā)環(huán)境簡介由于使用匯編語言編本系統(tǒng)程序較為繁雜,且不易移植可讀性差,所以使用KeilμVision4進行編程,編程語言為C語言。KeilC51是美國KeilSoftware公司出品的兼容51系列單片機的C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C語言編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境〔uVision〕將這些局部組合在一起。運行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。如果使用C語言編程,那么Keil幾乎就是不二之選,即使不使用C語言而僅用匯編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會事半功倍,Keil的優(yōu)點如下所示:〔1〕KeilC51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能表達高級語言的優(yōu)勢?!?〕與匯編相比,C語言具有可讀性強、結(jié)構(gòu)性強、可維護性強、更易學的特點,因而應用更為廣泛。使用過匯編語言后再使用C來開發(fā),對此體會更加深刻。4.2系統(tǒng)軟件總體設計本系統(tǒng)主要功能為:

〔1〕溫濕度實時、準確的顯示。通過單總線數(shù)字式溫濕度傳感器進行溫濕度采集,再通過單片機對采集到的數(shù)據(jù)進行處理,由液晶顯示屏對當前的溫度值和濕度值進行顯示?!?〕鍵盤輸入。操作人員可根據(jù)不同作物在不同時期的最適宜生長環(huán)境,將溫度范圍和濕度范圍由鍵盤輸入,使得系統(tǒng)更靈活,同時也滿足了不同用戶的需求?!?〕超限報警功能。報警模塊具有兩項功能,即為聲光報警和GSM短信信息報警。當采集到的溫度、濕度值超過設定范圍時,立即啟動聲光報警?!?〕溫濕度控制功能。通過將測得的溫濕度與設定的范圍進行比擬,當溫濕度值某一值超出范圍時,相應的LED燈亮,可同時通過并接繼電器,可以控制其它設備進而控制溫濕度。系統(tǒng)總流程圖如圖4.1所示,當系統(tǒng)通電后,先將LCD1602等初始化,然后與GSM模塊進行聯(lián)機,屢次嘗試聯(lián)機,直到握手成功。然后再設置文本短信通信方式,設置成功后進入主循環(huán)。主循環(huán)第一步為讀取DHT11的溫濕度數(shù)值并顯示,再檢測按鍵,假設按鍵1按下那么進入設置模式,來進行對溫濕度閾值的修改。假設未進入設置或者設置成功后,那么將測得的溫濕度與閾值相比擬,假設超出范圍那么進行聲光警報,聲光警報后一段時間仍未解除報警那么發(fā)送GSM短信警報。圖4.1系統(tǒng)總流程圖voidsystem() //系統(tǒng)功能實現(xiàn)函數(shù){ dht11_got(); //從DHT11中讀取數(shù)據(jù) tmp_do(); //數(shù)據(jù)處理 tmprh_display(); //LCD1602顯示}主函數(shù)如下所示intmain(void){ uint8aj=0; //按鍵檢測uint8wz=0; //光標位置uint8js1=0,js2=0; //超限計數(shù) RW=0;lcd_ini(); Serial_Init();//初始化串口 CLR_Buf();//去除緩存內(nèi)容 Delay_ms(Delay_Time); Send_ASCII("AT");//發(fā)送聯(lián)機指令 while(!Hand("OK"))//判斷是否握手成功,如果不成功延時一會,再發(fā)送AT握手指令 { Send_ASCII("AT");//發(fā)送聯(lián)機指令 lcd_str(0,0,"initgsm"); Delay_ms(Delay_Time);//延時 lcd_str(0,0,"initgsm*"); Delay_ms(Delay_Time);//延時 } CLR_Buf();//去除緩存內(nèi)容 Delay_ms(Delay_Time);//延時 Send_ASCII("AT+CMGF=1");//文本(TEXT)模式 while(!Hand("OK")) //等待設置成功 { Send_ASCII("AT+CMGF=1");//文本(TEXT)模式 lcd_str(0,0,"initgsm*"); Delay_ms(Delay_Time);//延時 lcd_str(0,0,"initgsm**"); Delay_ms(Delay_Time);//延時 } CLR_Buf();//去除緩存內(nèi)容 Delay_ms(Delay_Time);//延時 Delay_ms(Delay_Time);//延時 lcd_order(0x01);while(1) { system();delay(12000); aj=keyscan(); if(aj==1) //按鍵1按下時,進入設置狀態(tài),此時可以更改溫濕度范圍 { …… }if(TH_TMP>w2)//當溫濕度超限時,啟動聲光報警,此處四種超限對應四種led指示燈{d3=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}elseif(TH_TMP<w1) {d1=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d1=d3=1;js1=0;}if(TH_RH>s2) {d4=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}elseif(TH_RH<s1) {d2=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d2=d4=1;js2=0;} js1++;js2++; if(js1>50||js2>50) //溫濕度長時間超限時,啟動GSM報警 { js1=0; js2=0; if(TH_TMP>w2||TH_TMP<w1||TH_RH>s2||TH_RH<s1) { ……………… ……………… } } } }4.3溫濕度采集模塊軟件設計DHT11數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器,具有極高的可靠性與穩(wěn)定性。傳感器擁有一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機相連接。產(chǎn)品為4針單排引腳封裝,單線制串行接口,使系統(tǒng)集成變得簡易快捷。它的串行接口〔單線雙向〕用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,數(shù)據(jù)分小數(shù)局部和整數(shù)局部,一次完整的數(shù)據(jù)傳輸為40bit,高位先出。它的數(shù)據(jù)格式為8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗。其中數(shù)據(jù)傳送正確時校驗數(shù)據(jù)為“8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bi溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)〞所得結(jié)果的末8位[10]。用戶MCU發(fā)送一次開始信號后,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機開始信號結(jié)束后,DHT11發(fā)送響應信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取局部數(shù)據(jù)。從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機發(fā)送開始信號,DHT11不會主動進行溫濕度采集。采集數(shù)據(jù)后換到低速模式。通信過程如圖4.2示。圖4.2DHT11通信過程總時序圖如圖4.3所示,總線空閑狀態(tài)為高電平,主機把總線拉低等待DHT11響應,主機把總線拉低必須大于18毫秒,保證DHT11能檢測到起始信號。DHT11接收到主機的開始信號后,等待主機開始信號結(jié)束,然后發(fā)送80us低電平響應信號。主機發(fā)送開始信號結(jié)束后,延時等待20-40us后,讀取DHT11的響應信號,主機發(fā)送開始信號后,可以切換到輸入模式,或者輸出高電平均可,總線由上拉電阻拉高。流程圖如圖4.4所示。圖4.3DHT11通信過程詳細時序圖圖4.4DHT11通信過程流程圖總線為低電平,說明DHT11發(fā)送響應信號,DHT11發(fā)送響應信號后,再把總線拉高80us,準備發(fā)送數(shù)據(jù),每一bit數(shù)據(jù)都以50us低電平時隙開始,高電平的長短定了數(shù)據(jù)位是0還是1。格式見下列圖4.4示。如果讀取響應信號為高電平,那么DHT11沒有響應,請檢查線路是否連接正常。當最后1bit數(shù)據(jù)傳送完畢后,DHT11拉低總線50us,隨后總線由上拉電阻拉高進入空閑狀態(tài)。數(shù)字0信號表示方法如圖4.5所示。圖4.5DHT11傳輸信號時數(shù)字0表示方法數(shù)字1信號表示方法如圖4.6所示。圖4.6DHT11傳輸信號時數(shù)字1表示方法函數(shù)名:dht11_ini。返回值:ans,為1時是指收到DHT11的應答信號,為0時是指未收到DHT11的應答信號。功能:向溫濕度傳感器發(fā)送開始信號。uint8dht11_ini(){bitans;DHT11=1; //主機拉高電平delay(1);DHT11=0; //主機發(fā)送開始信號delay(1000);DHT11=1; //拉高并延時等待delay(3);if(!DHT11)//接收應答信號 ans=1; //接收到應答信號時為1elseans=0;while(!DHT11); //等待應答完成returnans;}函數(shù)名:dht11_read返回值:date,從DHT11中讀出的數(shù)據(jù)功能:從DHT11中讀一個字節(jié)的數(shù)據(jù)uint8dht11_read(){uint8i,date=0;DHT11=1;TMOD=0X01;TH0=0X00;while(DHT11);//等待從機發(fā)送80us的高電平完成for(i=0;i<8;i++){ TL0=0X00; //定時器初使化 while(!DHT11);//等待從機發(fā)送50us的低電平完成 TR0=1; //開啟定時器 while(DHT11); //等待從機發(fā)送的高電平完成 TR0=0; //關啟定時器 date<<=1; //數(shù)據(jù)左移以便接收數(shù)據(jù) if(TL0>35) //拫據(jù)高電平的時間來判斷從機發(fā)送的是0還是1 date|=0x01;//接收數(shù)據(jù) }returndate;}函數(shù)名:dht11_got功能:從DHT11中讀溫度的整小數(shù),濕度的整小數(shù),校驗碼voiddht11_got(){if(dht11_ini()) //發(fā)送開始信號 { TH_RH=dht11_read(); //濕度的整數(shù) TL_RH=dht11_read(); //濕度的小數(shù) TH_TMP=dht11_read(); //溫度的整數(shù) TL_TMP=dht11_read(); //溫度的小數(shù) CRC=dht11_read(); //讀較驗碼 }}4.4GSM通訊模塊軟件設計華為GTM900-B無線模塊是一款兩頻段900/1800MHZ高度集成的GSM/GPRS無線模塊,內(nèi)嵌TCP/IP協(xié)議模塊,使用簡單,易于集成。它支持標準的AT命令及增強AT命令,提供豐富的語音和數(shù)據(jù)業(yè)務等功能,是高速數(shù)據(jù)傳輸?shù)雀鞣N應用的理想解決方案,在遠程監(jiān)控和無線公話以及無線POS終端等領域您都能看到GTM900B無線模塊在發(fā)揮作用。AT指令集是從終端設備〔TerminalEquipment,TE)或數(shù)據(jù)終端設備〔DataTerminalEquipment,DTE)向終端適配器(TerminalAdapter,TA)或數(shù)據(jù)電路終端設備(DataCircuitTerminalEquipment,DCE)發(fā)送的。其對所傳輸?shù)臄?shù)據(jù)包大小有定義:即對于AT指令的發(fā)送,除AT兩個字符外,最多可以接收1056個字符的長度〔包括最后的空字符〕。每個AT命令行中只能包含一條AT指令;對于由終端設備主動向PC端報告的URC指示或者response響應,也要求一行最多有一個,不允許上報的一行中有多條指示或者響應。AT指令以回車作為結(jié)尾,響應或上報以回車換行為結(jié)尾。標準AT命令如表1所示。表1常用AT命令[11]AT命令功能AT+CMGC發(fā)出一條短消息命令AT+CMGD刪除SIM卡內(nèi)存的短消息AT+CMGF選擇短消息信息格式:0-PDU;1-文本AT+CMGL列出SIM卡中的短消息AT+CMGR讀取短消息AT+CMGS發(fā)送短消息AT+CMGW向SIM內(nèi)存中寫入待發(fā)的短消息AT+CMSS發(fā)送存儲的消息AT+CNMI顯示新收到的短消息AT+CPMS選擇短消息內(nèi)存AT+CSCA短消息中心地址AT+CSCB選擇蜂窩播送消息AT+CSMP設置短消息文本模式參數(shù)AT+CSMS選擇短消息效勞其中對短消息的控制共有三種模式:BlockMode,基于AT命令的PDUMode,基于AT命令的TextMode。由于本系統(tǒng)采用短信通知的方式,僅僅使用了發(fā)短信通知,所以本文著重介紹一下發(fā)送消息:AT+CMGSif(TH_TMP>w2||TH_TMP<w1||TH_RH>s2||TH_RH<s1) { fm=1;d0=1; lcd_order(0x01); Serial_Init();//初始化串口 CLR_Buf();//去除緩存內(nèi)容 Delay_ms(Delay_Time);//延時 while(!Hand(">")) { Delay_ms(Delay_Time);//延時 } CLR_Buf();//去除緩存內(nèi)容 Delay_ms(Delay_Time);//延時 lcd_str(0,0,"Sending..."); neirong(); while(!Hand("OK")) { Delay_ms(Delay_Time);//延時 } CLR_Buf();//去除緩存內(nèi)容 lcd_order(0x01); lcd_str(0,0,"SendingOK"); fm=0;Delay_ms(20);fm=1;Delay_ms(20); Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20);Delay_ms(20); }4.5LCD1602顯示模塊軟件設計LCD1602是指可以顯示兩行,每行16個字符的液晶模塊。它具有功耗低、體積小、可視面積大,畫面好,抗干擾能力強,顯示內(nèi)容豐富且美觀的特點。1602液晶模塊內(nèi)部的控制器共有11條控制指令,1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現(xiàn)的。常用的LCD1602指令有清顯示、顯示開關控制,光標返回及光標或字符移位等等的命令LCD1602控制指令如表2所示,其中,1代表高電平,0代表低電平:表2LCD1602控制指令序號指令RSR/WD7D6D5D4D3D2D1D01清顯示00000000012光標返回000000001*3置輸入模式00000001I/DS4顯示開/關控制0000001DCB5光標或字符移位000001S/CR/L**6置功能00001DLNF**7置字符發(fā)生存貯器地址0001字符發(fā)生存貯器地址8置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址9讀忙標志或地址01BF計數(shù)器地址10寫數(shù)到CGRAM或DDRAM〕10要寫的數(shù)據(jù)內(nèi)容11從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)內(nèi)容指令1:清顯示,指令碼01H,光標復位到地址00H位置。指令2:光標復位,光標返回到地址00H。指令3:光標和顯示模式設置I/D:光標移動方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平那么無效。指令4:顯示開關控制。D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示C:控制光標的開與關,高電平表示有光標,低電平表示無光標B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。指令5:光標或顯示移位S/C:高電平時移動顯示的文字,低電平時移動光標。指令6:功能設置命令DL:高電平時為4位總線,低電平時為8位總線N:低電平時為單行顯示,高電平時雙行顯示F:低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。指令7:字符發(fā)生器RAM地址設置。指令8:DDRAM地址設置。指令9:讀忙信號和光標地址BF為忙標志位,高電平表示忙,低電平表示不忙。指令10:寫數(shù)據(jù)。指令11:讀數(shù)據(jù)。與HD44780相兼容的芯片時序表見表3:表3與HD44780相兼容的芯片時序表讀狀態(tài)輸入RS=L,R/W=H,E=H輸出D0—D7=狀態(tài)字寫指令輸入RS=L,R/W=L,D0—D7=指令碼,E=高脈沖輸出無讀數(shù)據(jù)輸入RS=H,R/W=H,E=H輸出D0—D7=數(shù)據(jù)寫數(shù)據(jù)輸入RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖輸出無1602LCD的一般初始化〔復位〕過程:延時15mS寫指令38H〔不檢測忙信號〕延時5mS寫指令38H〔不檢測忙信號〕延時5mS寫指令38H〔不檢測忙信號〕以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號寫指令38H:顯示模式設置寫指令08H:顯示關閉寫指令01H:顯示清屏寫指令06H:顯示光標移動設置寫指令0CH:顯示開及光標設置函數(shù)名:lcd_ini功能:LCD1602的初始化voidlcd_ini(){ lcd_order(0x38); //設置1602的顯示光標功能 delay(150); lcd_order(0x0c); //顯示開及光標設置 delay(150); lcd_order(0x06); //顯示光標移動設置 delay(150); lcd_order(0x01); //顯示清屏 delay(150);}函數(shù)名:lcd_order行參:date要定入的指令功能:向LCD1602的寫1個指令voidlcd_order(uint8date){RS=0; //選擇寫指令//RW=0;EN_LCD=0; //使能初使化P0=date; //發(fā)送指令EN_LCD=1; //開使能delay(300); //延時EN_LCD=0; //關使能}函數(shù)名:lcd_data行參:date要定入的數(shù)據(jù)功能:向LCD1602的寫1個數(shù)據(jù)voidlcd_data(uint8date){RS=1; //選擇寫數(shù)據(jù)//RW=0;EN_LCD=0; //使能初使化P0=date; //發(fā)送數(shù)據(jù)EN_LCD=1; //開使能delay(300); //延時EN_LCD=0; //關使能}函數(shù)名:tmprh_display()功能:溫濕度顯示處理voidtmprh_display(){ uint8i; lcd_order(0x80); for(i=0;i<16;i++) lcd_data(dis1[i]); lcd_order(0xc0); for(i=0;i<16;i++) lcd_data(dis2[i]);}voidlcd_str(uint8hang,uint8lie,uint8*s){ if(hang==0) { lcd_order(0x80+lie); } else { lcd_order(0xc0+lie); } while(*s) { lcd_data(*s); //寫入一個數(shù)據(jù) s++; //數(shù)據(jù)指針加1 }}4.6鍵盤軟件設計由于通常按鍵所用的開關是機械開關,當開關閉合、斷開時并不能馬上穩(wěn)定地接通和斷開,而是在閉合與斷開瞬間均伴隨有一連串的抖動。為了確保CPU對鍵的一次閉合僅做一次處理,必須要在程序或硬件上進行防抖處理。為節(jié)省硬件,通常在單片機系統(tǒng)中,一般不采用硬件方法消除鍵的抖動,而是用軟件消抖方法。常用的軟件消抖法一般為測得按鍵閉合后延時5-10ms,讓前延抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,那么確認真正有鍵按下。當測得按鍵釋放后,也要延時5-10ms,待后延抖動消失后才轉(zhuǎn)入該鍵處理程序。本文使用常用的軟件消抖法。例如按鍵1的檢測,進入按鍵檢測程序時,首先檢測按鍵1是否被按下,假設檢測到按鍵1已被按下,那么延時一定時間后再次檢測按鍵1是否被按下,假設檢測到按鍵1確實被按下時,那么等待按鍵1松開后,返回值1,即返回按鍵1被按下這一信息。按鍵1檢測流程圖請見圖4.7。圖4.7按鍵1檢測流程圖uint8keyscan() //按鍵掃描程序 { if(k1==0) //檢測按鍵1是否被按下 { Delay_ms(5); //延時 if(k1==0) //再次檢測按鍵1是否被按下{while(k1==0); //按鍵1松開后返回值1return1; }} elseif(k2==0) //檢測按鍵2是否被按下 {…………} elseif(k3==0) //檢測按鍵3是否被按下 {…………} elseif(k4==0) //檢測按鍵4是否被按下 {…………}elsereturn0;}4.7報警軟件設計當溫濕度超過設定的溫濕度閾值范圍時,系統(tǒng)進行聲光報警,同時相應的指示燈指示出四種不同的報警原因,以便用戶迅速發(fā)現(xiàn)問題。本系統(tǒng)有四種報警狀態(tài),分別為溫度低于溫度下限,溫度高于溫度上限,濕度低于濕度下限,濕度高于濕度上限,報警時,設置四盞不同的LED燈代表四種報警狀態(tài),因此需要四個I/O口來分別控制四盞燈,以及兩個I/O口來控制蜂鳴器與報警燈。如圖4.8所示,系統(tǒng)讀取DHT11傳感器的溫濕度數(shù)據(jù)后,將溫度與濕度與溫濕度的上下限進行比擬,當溫度低于溫度下限時,P3.4=0,LED1點亮;當溫度高于溫度上限時,P3.7=0,LED3點亮;當濕度低于濕度下限時,P3.2=0,LED2點亮;當濕度高于濕度上限時,P3.6=0,LED4點亮。而不管何種情況,只要溫濕度不在設定范圍內(nèi),系統(tǒng)都會進行聲光報警,即P2.0=0,蜂鳴器接通發(fā)出聲音,P1.1=0,LED0亮??赏ㄟ^軟件延時間斷使P2.0=0,P1.1=0,使蜂鳴器發(fā)出滴滴聲,LED0閃爍。〔LED1,LED2,LED3,LED4分別由P3.4,P3.2,P3.7,P3.6控制〕圖4.8聲光報警程序流程圖if(TH_TMP>w2) //溫度大于溫度上限時{ d3=0;d0=0; //LED3亮fm=0; //蜂鳴器響Delay_ms(20); //延時,蜂鳴器繼續(xù)響d0=1;fm=1; //蜂鳴器關Delay_ms(20);}elseif(TH_TMP<w1) {d1=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d1=d3=1;js1=0;//如果溫度在范圍內(nèi),那么LED1,LED3滅,報警計數(shù)js1清零if(TH_RH>s2) //濕度大于濕度上限{d4=0;d0=0;fm=0; //LED4亮,蜂鳴器響Delay_ms(20); //延時,蜂鳴器繼續(xù)響d0=1;fm=1; //關蜂鳴器Delay_ms(20);}elseif(TH_RH<s1) {d2=0;d0=0;fm=0;Delay_ms(20);d0=1;fm=1;Delay_ms(20);}else{d2=d4=1;js2=0;} //如果濕度在范圍內(nèi),那么LED2,LED4滅,報警計數(shù)js2清零5系統(tǒng)調(diào)試及運行5.1硬件調(diào)試在系統(tǒng)原理圖完成后,按原理圖焊接電路板,并連接GSM通信模塊。通電前認真檢查電路有無錯誤,對照電路圖,一個模塊一個模塊地檢查。由于之前焊接的時候一邊焊接一邊檢查,及時在焊接的時候糾正錯誤,所以此時硬件電路完全和原理圖一致,沒有發(fā)現(xiàn)任何錯誤。然后著重檢查三極管極性與二極管方向是否接反,芯片引腳是否接錯,輕輕拔一下器件看看是否牢固,沒有發(fā)現(xiàn)任何問題。然后用萬用表測量電源正與電源負是否短路,一切正常。但是最后在安裝銅柱的時候,發(fā)現(xiàn)由于板子較小,一開始布局的時候沒有考慮周全,發(fā)現(xiàn)有一個銅柱安裝時會與一個電阻擠到一起,無法很好地安裝,但此時電路已不方便修改,只能吸取教訓,以后焊接之前要考慮好布局。在確定電路不短路了以后,嘗試通電運行,沒有發(fā)現(xiàn)冒煙,聲光等等的異常問題,所有功能正常,未發(fā)現(xiàn)任何問題。但是在屢次測試運行之后,發(fā)現(xiàn)LCD1602經(jīng)常出現(xiàn)亮度忽明忽暗,整個系統(tǒng)會突然重啟的問題。于是我先檢查電路有無虛焊問題,有無元器件松動問題,有無銅絲相互短路的問題。最后發(fā)現(xiàn)這些都沒有問題,但是在一次偶然的調(diào)試過程中,發(fā)現(xiàn)扭動USB供電線的時候會直接造成LCD1602的通斷電,最后發(fā)現(xiàn)該USB供電線質(zhì)量問題,更換USB供電線即可。在最后進行GSM通信調(diào)試時,發(fā)現(xiàn)由于自己和周圍的同學都是小的SIM卡,無法將其安裝在GSM模塊上,于是在初期調(diào)試的時候只能用小卡直接按在SIM卡槽的金手指上,并且按住不動,再進行調(diào)試。但是為了能夠更好地演示,最后購置了一張大卡進行調(diào)試與演示。5.2運行結(jié)果〔1〕大棚溫濕度檢測系統(tǒng)溫濕度的采集與顯示展示如圖5.1所示,本系統(tǒng)主要硬件由主電路板、GSM模塊、USB電源線、DC直流電源線組成。其中主電路由單片機最小系統(tǒng)、DHT11溫濕度傳感器、LCD1602液晶顯示、聲光報警系統(tǒng)、按鍵等等組成。圖5.1大棚溫濕度監(jiān)測系統(tǒng)總體展示首先將SIM卡插入GSM模塊SIM卡槽中,然后接通GSM模塊電源,接通后GSM模塊紅色電源指示燈常亮,黃色信號指示燈滅。此時按下GSM模塊復位按鍵,GSM模塊重新啟動,此時黃色指示燈常亮。啟動完成后開始搜索信號,同時黃色指示燈每一秒閃一下,待GSM模塊成功搜到信號并成功接入GSM網(wǎng)絡后,黃色指示燈滅3s閃75ms,此時表示接入網(wǎng)絡成功。假設遇到黃色指示燈一直每一秒閃爍一次時,此時應檢查SIM卡是否接反。GSM模塊如圖5.2所示。圖5.2GSM模塊然后接通主電路板電源,接通后主電路板會與GSM模塊進行聯(lián)機,并設置GSM模塊為文本短信工作方式。聯(lián)機成功后會顯示“initgsm**〞,設置文本短信工作方式成功后會清屏進入溫濕度實時檢測與顯示階段。聯(lián)機成功畫面如圖5.3所示。圖5.3主電路與GSM模塊聯(lián)機成功時LCD1602顯示內(nèi)容進入溫濕度實時檢查與顯示階段時,DHT11會周期性檢測大棚的溫度與濕度,并由LCD1602實時顯示。如圖5.4所示,LCD1602顯示內(nèi)容的第一行為“#RH**:56./40-60〞,其中RH是指濕度,56為DHT11實時測得的濕度,40-60是指濕度的閾值。而“#TE**:31./20-35〞的TE是指溫度,31這一數(shù)值為DHT11實時測得的溫度,而20-35為溫度的閾值。此時可以通過按下菜單/切換按鍵進入溫濕度閾值的設置,按下菜單/切換按鍵可以更改溫濕度的上下限值,如圖5.4所示,此時按下數(shù)值加或數(shù)值減,可對濕度的上限進行更改,按下返回鍵可以退出更改。圖5.4溫濕度閾值設置界面〔2〕現(xiàn)場警報如圖5.5所示,此時溫度超過溫度上限,系統(tǒng)進入聲光報警狀態(tài)。LED0閃爍,蜂鳴器滴滴響,同時與溫度上限對應的LED3常亮,指出報警原因為溫度超過上限。圖5.5現(xiàn)場警報畫面〔3〕遠程報警當現(xiàn)場報警一段時間后,溫濕度仍然不在設置閾值內(nèi)時,啟動GSM報警。系統(tǒng)發(fā)送短信到指定號碼,首先LCD1602會顯示指定的號碼。如圖5.6所示。圖5.4系統(tǒng)準備發(fā)送短信時界面如

溫馨提示

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

評論

0/150

提交評論