版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄II頁(yè)共32頁(yè)摘要溫度和濕度對(duì)農(nóng)業(yè)的發(fā)展至關(guān)重要,我國(guó)是一個(gè)農(nóng)業(yè)大國(guó),但對(duì)于農(nóng)作物現(xiàn)代化管理的程度很低,國(guó)家大部分地區(qū)的耕種方式效率和產(chǎn)量仍然不高。提升農(nóng)作物科學(xué)化和信息化的管理,對(duì)國(guó)家農(nóng)業(yè)生產(chǎn)有著不可忽略的積極作用和意義。因此本論文決定設(shè)計(jì)一個(gè)具有便利性、可適用性、同時(shí)也要具有一定的精確度的基于單片機(jī)的溫濕度智能澆灌系統(tǒng)。本設(shè)計(jì)可以提供智能化、便捷化的功能;使用硬件技術(shù)和軟件設(shè)計(jì)將整個(gè)系統(tǒng)完善,以及應(yīng)用Android開(kāi)發(fā)平臺(tái)來(lái)完成手機(jī)APP的設(shè)計(jì)。硬件設(shè)計(jì)實(shí)現(xiàn)溫濕度測(cè)量、溫度濕度時(shí)間顯示、報(bào)警、灌溉;軟件設(shè)計(jì)根據(jù)系統(tǒng)的設(shè)計(jì)內(nèi)容和要求設(shè)計(jì)出主程序;手機(jī)APP設(shè)計(jì)實(shí)現(xiàn)溫濕度顯示、溫濕度閾值設(shè)置、更新時(shí)間、灌溉控制、報(bào)警顯示的功能。關(guān)鍵字:溫濕度;智能;手機(jī)APP1.緒論1.1研究意義和目的溫濕度在很大程度上決定著各種作物的成長(zhǎng)以及最終的產(chǎn)量。我國(guó)人口眾多,雖然國(guó)家領(lǐng)土面積很大,但是存在著大量的戈壁、高原、鹽堿地等不適合或者無(wú)法種植農(nóng)作物的土地REF_Ref20703\r\h[1]。因此不斷提升技術(shù)對(duì)有限土地科學(xué)化、合理化地管理利用土地變得日益重要。以色列甚至可以通過(guò)電腦監(jiān)測(cè)溫度和濕度并控制對(duì)每一株農(nóng)作物做到精確的灌溉和施肥REF_Ref21412\r\h[2]。1.2研究發(fā)展和現(xiàn)狀國(guó)外對(duì)農(nóng)業(yè)和溫室自動(dòng)化控制非常的重視,已經(jīng)開(kāi)發(fā)出來(lái)了一系列計(jì)算機(jī)軟件、硬件控制的溫度、濕度檢測(cè)、施肥、澆灌的自動(dòng)控制系統(tǒng)REF_Ref21618\r\h[3]。英國(guó)、美國(guó)一直致力于高科技、智能化系統(tǒng)發(fā)展,遙感技術(shù)、網(wǎng)絡(luò)技術(shù)、自動(dòng)控制等尖端技術(shù)已經(jīng)逐步應(yīng)用在溫濕度檢測(cè)自動(dòng)控制系統(tǒng)上REF_Ref21889\r\h[4]。我國(guó)現(xiàn)今還沒(méi)有像國(guó)外制定完整的溫室結(jié)構(gòu)標(biāo)準(zhǔn)。對(duì)于大型多功能先進(jìn)的控制系統(tǒng),還在起步階段;盡管花費(fèi)高昂的價(jià)錢對(duì)設(shè)備進(jìn)行投資,但仍因?yàn)槲覈?guó)地理環(huán)境復(fù)雜,運(yùn)行參數(shù)相差巨大,因而運(yùn)行成本很高且容易發(fā)生故障。對(duì)于簡(jiǎn)單的控制系統(tǒng),投入在這方面的資源并不多,不僅僅系統(tǒng)類型不足、信息化程度不夠,而且還存在著性能不可靠、使用壽命端短等問(wèn)題。同時(shí)我國(guó)農(nóng)業(yè)耕作方式不夠先進(jìn)且個(gè)體承包的面積也不大。因此設(shè)計(jì)一款適合多數(shù)耕作者的溫濕度智能澆灌系統(tǒng)便顯得非常重要。1.3本論文研究?jī)?nèi)容先前的溫濕度測(cè)試系統(tǒng)僅僅是對(duì)溫濕度進(jìn)行測(cè)量,設(shè)置溫濕度閾值,當(dāng)溫濕度超過(guò)設(shè)定閾值時(shí),就會(huì)發(fā)出警報(bào)REF_Ref21716\r\h[5]。這些系統(tǒng)功能單一,本系統(tǒng)加入了移動(dòng)端控制和顯示,通過(guò)WIFI模塊將硬件部分測(cè)量到的信息和移動(dòng)端設(shè)置及獲取的信息相互傳遞。本論文以單片機(jī)為基礎(chǔ),各個(gè)功能模塊的使用以及移動(dòng)端的交互,來(lái)實(shí)現(xiàn)溫濕度實(shí)時(shí)反饋和顯示以及在移動(dòng)端控制澆灌、設(shè)置閾值等功能。2.系統(tǒng)總體方案2.1智能澆灌系統(tǒng)功能測(cè)量當(dāng)前溫度和濕度,并將測(cè)量數(shù)據(jù)的數(shù)據(jù)傳輸給移動(dòng)端;移動(dòng)端可以顯示溫度和濕度,設(shè)定溫濕度閾值,了解是否報(bào)警,控制灌溉以及向單片機(jī)傳輸時(shí)間;單片機(jī)接收到當(dāng)前的時(shí)間和溫濕度閾值數(shù)據(jù),可以將其顯示在液晶屏上。當(dāng)溫濕度超過(guò)設(shè)定閾值時(shí),會(huì)發(fā)出警報(bào)并根據(jù)超出設(shè)定閾值的不同情況判斷是否灌溉。2.2設(shè)計(jì)方案2.2.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)方案手機(jī)APP手機(jī)APP(時(shí)間、閾值、開(kāi)關(guān))單片機(jī)單片機(jī)控制模塊數(shù)據(jù)交互部分LED屏幕溫濕度傳感器WiFi模塊電機(jī)、報(bào)警器圖2.1系統(tǒng)硬件結(jié)構(gòu)框圖2.系統(tǒng)總體方案圖2.2系統(tǒng)硬件連接電路圖如圖2.1所示,該系統(tǒng)是以單片機(jī)STC89C52RC作為基礎(chǔ),來(lái)實(shí)現(xiàn)溫度智能灌溉系統(tǒng)的設(shè)計(jì)。本系統(tǒng)包括STC89C52RC、溫濕度傳感器、1602液晶顯示模塊、ESP8266模塊、蜂鳴器、電機(jī)、DS1302時(shí)鐘模塊,還有移動(dòng)端的手機(jī)APP。ESP8266模塊作用是讓手機(jī)APP和硬件部分連接,完成兩者信息的傳遞。溫濕度傳感器是測(cè)量當(dāng)前的溫度和濕度;1602液晶顯示模塊是將時(shí)間、閾值、測(cè)量的溫濕度顯示出來(lái);DS1302是對(duì)時(shí)間進(jìn)行計(jì)算;蜂鳴器是當(dāng)溫濕度超過(guò)設(shè)定閾值時(shí)報(bào)警;電機(jī)是模擬灌溉。2.2.2移動(dòng)端設(shè)計(jì)方案手機(jī)APP存在兩個(gè)界面,第一個(gè)界面分為7個(gè)部分:當(dāng)前的溫濕度、是否報(bào)警、溫度的設(shè)定范圍、濕度的設(shè)定范圍、電機(jī)的控制、單片機(jī)與手機(jī)的連接、更新時(shí)間。第二個(gè)界面是當(dāng)點(diǎn)擊設(shè)定的溫濕度閾值Imagebutton時(shí),出現(xiàn)的輸入界面。對(duì)于當(dāng)時(shí)所在時(shí)間測(cè)量的溫度和濕度的展示,通過(guò)WiFi模塊將溫度和濕度的數(shù)值傳遞給移動(dòng)端,接收后設(shè)置文本框便可。單片機(jī)與手機(jī)的連接、更新時(shí)間均為按鈕,點(diǎn)擊之后便會(huì)進(jìn)行兩者間的連接和當(dāng)前時(shí)間的發(fā)送。是否報(bào)警通過(guò)判斷是否超過(guò)設(shè)置閾值來(lái)設(shè)置文本框。電機(jī)的控制通過(guò)設(shè)置開(kāi)關(guān)來(lái)實(shí)現(xiàn);閾值的設(shè)定通過(guò)圖片按鈕和輸入文本框來(lái)實(shí)現(xiàn)。圖2.3移動(dòng)端框圖3.系統(tǒng)設(shè)計(jì)3.系統(tǒng)設(shè)計(jì)3.1單片機(jī)3.1.1單片機(jī)STC90C52RC介紹本系統(tǒng)設(shè)計(jì)選擇的是51單片機(jī)中的STC89C52RC,因?yàn)樾阅芸煽壳掖笠?guī)模生產(chǎn),且被應(yīng)用在生活中的許多地方;同時(shí)相關(guān)教學(xué)資料以及相關(guān)項(xiàng)目開(kāi)發(fā)在網(wǎng)絡(luò)上有許多,使用和設(shè)計(jì)非常便利REF_Ref22023\r\h[6]。該芯片如圖3.1所示,圖3.1STC89C52RC3.1.2單片機(jī)最小系統(tǒng)如下圖3.12所示,此為單片機(jī)最小系統(tǒng),總共是4部分:電源、單片機(jī)、晶振電路和復(fù)位電路。電源為單片機(jī)供電,40腳接5V正源,20腳接地REF_Ref24044\r\h[7]。復(fù)位電路是在單片機(jī)連接電源之后,會(huì)出現(xiàn)一個(gè)短暫的時(shí)間來(lái)對(duì)參數(shù)進(jìn)行初始化;上電初始化的步驟就被稱為復(fù)位。晶振電路是時(shí)序電路,通過(guò)晶振來(lái)提供頻率。如圖3.2單片機(jī)最小系統(tǒng)3.21602A液晶顯示3.2.11602A液晶顯示簡(jiǎn)介圖3.3模塊尺寸該模塊總共有十六個(gè)引腳是一種圖形點(diǎn)陣顯示器,能夠同時(shí)顯示32個(gè)字符REF_Ref22222\r\h[8]。顯示原理是因?yàn)橐壕Р牧媳旧砭哂泻芎玫牧鲃?dòng)性和黏性,當(dāng)施加一個(gè)電壓的時(shí)候,液晶就會(huì)在電場(chǎng)的作用下移動(dòng)和光軸重合,這時(shí)就會(huì)產(chǎn)生光學(xué)的視覺(jué)現(xiàn)象REF_Ref22271\r\h[9]。當(dāng)停止施加電壓后,其具有一定的黏性,就會(huì)迅速恢復(fù)到原先的狀態(tài)。寫入數(shù)據(jù)的時(shí)候,先需要確定地址然后需要將寫入的內(nèi)容和字庫(kù)中字進(jìn)行匹配,每個(gè)字都是由八位所決定,分為高四位和低四位。3.2.2模塊的連接如下圖3.41602A原理圖,可以了解到其各個(gè)引腳,接下來(lái)就介紹一下模塊的連接。1602的第7到14引腳連接39~32腳的P0.0~P0.7,這樣做是用來(lái)傳遞需要顯示的內(nèi)容數(shù)據(jù)。引腳1接地,引腳2接5V的正電源,目的是進(jìn)行供電。第三個(gè)引腳不接。第15引腳和第16引腳,分別去連接5V的正電源和接地。液晶顯示原理就是液晶分子在電場(chǎng)的作用下和光軸相互一致,產(chǎn)生視覺(jué)效果。引腳1、2是施加電場(chǎng)的,引腳15、16就是產(chǎn)生光軸的,只有這樣才可以顯示出我們需要的內(nèi)容。第3個(gè)引腳不連接,其作用主要是調(diào)節(jié)顯示器。第4、5、6引腳連接單片機(jī)的25、26、27引腳,這種連接是通過(guò)KEIL編程設(shè)定的;51單片機(jī)的40個(gè)I/O接口連接均能通過(guò)程序設(shè)定。圖3.41602A原理圖3.2.31602A液晶顯示模塊程序設(shè)計(jì)對(duì)于整個(gè)顯示模塊功能的實(shí)現(xiàn),核心和關(guān)鍵就是寫指令和寫內(nèi)容。在模塊使用時(shí),需要進(jìn)行初始化的操作,之后在按照時(shí)序圖去發(fā)送所需要顯示的內(nèi)容和地址。寫指令流程如下圖3.5寫指令流程圖,RS低電平、延遲、寫入數(shù)據(jù)、延遲、拉高使能端。這也是為什么初始時(shí)需要將使能端設(shè)為“0”的原因,只有將其拉高才能去執(zhí)行命令。寫入數(shù)據(jù)指令步驟也是一樣的,只是RS要設(shè)置為“1”,這是區(qū)分兩者的關(guān)鍵。整個(gè)過(guò)程入下圖3.6所示,首先是初始化的過(guò)程,延時(shí)、使能端設(shè)為“0”、設(shè)定為寫的狀態(tài)、顯示的模式、清屏、光標(biāo)的初始位置、以及如何移動(dòng),都有相應(yīng)的指令,填寫即可。之后就是顯示內(nèi)容,顯示內(nèi)容需要3個(gè)參數(shù),分別是行坐標(biāo)、列坐標(biāo)、需要顯示的數(shù)據(jù);根據(jù)參數(shù)確定是第幾行確定位置。最后在確定的位置上寫入顯示的內(nèi)容。圖3.5寫指令流程圖圖3.61602顯示流程圖3.3DHT11數(shù)字溫度傳感器3.3.1DHT11簡(jiǎn)介DHT11數(shù)字溫濕傳感器,模塊采用單總線控制,驅(qū)動(dòng)能力強(qiáng),模塊直接把采集到的模擬溫度與濕度信號(hào)通過(guò)內(nèi)部的ADC轉(zhuǎn)換成數(shù)字信號(hào)輸出REF_Ref22395\r\h[10]。DHT11體積不龐大,購(gòu)買的價(jià)格便宜,適合人們使用和學(xué)習(xí);總共有4個(gè)引腳。它的信號(hào)采集和輸出非常的穩(wěn)定和持續(xù),精度也較高同時(shí)錯(cuò)誤率很低,正確率高。圖3.7DHT11數(shù)字溫濕傳感器3.3.2DHT11連接圖3.8 DHT11原理圖DHT11該模塊總共有四個(gè)引腳;這四個(gè)引腳第1個(gè)引腳接電源,第2引腳接單片機(jī)的第5個(gè)引腳P1.4,引腳3不用接,引腳4接地REF_Ref22447\r\h[11]。該模塊和單片機(jī)的連接是單總線連接,所有的數(shù)據(jù)的互相傳遞都是通過(guò)總線來(lái)實(shí)現(xiàn)的。3.3.3DHT11模塊程序設(shè)計(jì)該模塊和單片機(jī)的連接是單向互聯(lián)的,所有信號(hào)發(fā)送都是這一根線。這個(gè)模塊正常工作供電的電壓是3到5.5伏,傳感器剛剛通電之后,會(huì)在一個(gè)不穩(wěn)定的狀態(tài),持續(xù)的時(shí)間大概是一秒鐘左右;故而指令不會(huì)在這一秒鐘左右的時(shí)間里去發(fā)送。對(duì)于數(shù)據(jù)的發(fā)送,該模塊是一次性發(fā)送40個(gè)bit。溫度和濕度分為整數(shù)位和小數(shù)位進(jìn)行,8溫度整數(shù)+8溫度小數(shù)+8濕度整數(shù)+8溫度小數(shù)+8校驗(yàn)位REF_Ref22512\r\h[12];效驗(yàn)過(guò)程如圖3.9。如果要該模塊去采集數(shù)據(jù)并發(fā)送數(shù)據(jù),需要單片機(jī)發(fā)出信號(hào);模塊收到后才會(huì)轉(zhuǎn)變模式,進(jìn)行執(zhí)行。在不進(jìn)行任何操作的時(shí)候,總線是空閑的高位;當(dāng)準(zhǔn)備發(fā)送信號(hào)時(shí),就會(huì)將總線拉低,拉低的時(shí)間務(wù)必大于等于18us。這樣做的目的是傳感器能接收信號(hào)到并進(jìn)行響應(yīng),之后單片機(jī)又會(huì)拉高,等待響應(yīng)信號(hào)。傳感器的響應(yīng)也是先是80us的低位,而后是在拉高80us。編寫程序時(shí),可以控制的是主機(jī)向該模塊發(fā)送信號(hào),并且當(dāng)響應(yīng)信號(hào)返回時(shí)進(jìn)行識(shí)別。后續(xù)就是對(duì)發(fā)送的溫度和濕度的值進(jìn)行接收。所有的數(shù)據(jù)都是用0和1表示的,兩者又是如何區(qū)分的呢?主要的區(qū)別就是在高電平時(shí)間??丛?0us+28us延遲后,是否還為高電平。如果是就為1,反之則為0。數(shù)據(jù)接收的流程如圖3.10所示,整個(gè)步驟首先主機(jī)拉低18us,之后再次拉高延遲40us,等待響應(yīng)看從機(jī)是否有低電平;如果有就接著下面的流程,如果沒(méi)有就跳出;之后判斷低電平持續(xù)80us是否結(jié)束;如若結(jié)束則判斷從機(jī)是否發(fā)出80us的高電平,如發(fā)出則進(jìn)入數(shù)據(jù)接收狀態(tài)。圖3.9數(shù)據(jù)接收有效性流程圖圖3.10數(shù)據(jù)接收流程圖3.4DS1302時(shí)鐘3.4.1時(shí)鐘模塊介紹該模塊是西方國(guó)家生產(chǎn)的用來(lái)計(jì)時(shí)的一款芯片,可以計(jì)年月日時(shí)分秒。并且其功率的消耗非常的低、計(jì)時(shí)的正確率也較高,本次設(shè)計(jì)選擇的帶電池的時(shí)鐘模塊。圖3.11時(shí)鐘模塊3.4.2時(shí)鐘模塊的連接該模塊是有兩個(gè)電源的,VCC1和VCC2兩者共同供電。目的是防止因?yàn)橐粋€(gè)電源供電取消而導(dǎo)致的已經(jīng)保存的日期和時(shí)間失效。需要提供一個(gè)時(shí)鐘源來(lái)保持計(jì)時(shí),所以2、3引腳連接一個(gè)晶振。因?yàn)槭沁x擇了帶電池的模塊,所以連接略微有些不同;引腳1接電源5V正極,引腳2接地,引腳3、4、5接入單片機(jī)的P3.5、P3.6、P3.7引腳,在程序設(shè)計(jì)時(shí)自行設(shè)置。圖3.12原理圖3.4.3時(shí)鐘模塊的程序設(shè)計(jì)時(shí)鐘模塊是一個(gè)雙向傳輸?shù)哪K,需要從外界獲取時(shí)間信息;將獲取的信息存儲(chǔ)并計(jì)時(shí)而后傳輸給單片機(jī)并顯示時(shí)間。其中的核心操作就是讀操作和寫操作以及初始化。根據(jù)時(shí)序圖可知,傳輸之前需要把復(fù)位端拉高,因?yàn)閺?fù)位端低電平是有效的。數(shù)據(jù)傳輸接口傳送命令字時(shí),無(wú)論是讀操作還是寫操作都是在上升沿時(shí)有效。在上升沿時(shí)便開(kāi)始傳輸數(shù)據(jù)。等到8個(gè)時(shí)鐘過(guò)去之后,才是我們需要讀或者是寫操作所需要的數(shù)據(jù)。這個(gè)時(shí)候兩者的區(qū)別就在于一個(gè)是下降沿讀取數(shù)據(jù),一個(gè)是上升沿寫入數(shù)據(jù)。這兩個(gè)操作執(zhí)行完成之后,就將復(fù)位端拉低。讀操作和寫操作的流程圖如下圖3.13所示,首先初始化然后將復(fù)位端拉高,寫入地址再延時(shí),最后再向該地址寫入數(shù)據(jù),寫入完畢后寫操作結(jié)束;對(duì)于讀操作也是類似,復(fù)位端高電平寫入讀取地址,其后延時(shí)將所需數(shù)據(jù)全部讀出,讀操作完畢。圖3.13操作流程圖發(fā)送的命令總共有8位,5至1位是傳入或者傳出的寄存器地址。第7位一般會(huì)設(shè)置成1,因?yàn)橹挥羞@樣才可以對(duì)寫入。第0位,當(dāng)為1時(shí),進(jìn)行讀操作;反之為0,進(jìn)行寫操作。數(shù)據(jù)會(huì)存儲(chǔ)于寄存器中,對(duì)于寄存器而言,每一個(gè)寄存器都有其地址以及寫入的值;比如0x82,指的就是分鐘寄存器的地址。0x是16進(jìn)制,82指的就是二進(jìn)制命令字節(jié)的16進(jìn)制數(shù)(就是做了一個(gè)轉(zhuǎn)化)。在獲取時(shí)間過(guò)程中,對(duì)最終時(shí)間的顯示時(shí)需要一些技巧。對(duì)于存儲(chǔ)時(shí)間的數(shù)組,移位4位再擴(kuò)大十倍,相當(dāng)于取高位;然后在&0x0f,這樣就可以取出低位數(shù)值。在此設(shè)計(jì)中,開(kāi)始獲取的值為手機(jī)APP通過(guò)ESP8266傳輸過(guò)來(lái)的時(shí)間。3.5ESP8266WiFi模塊3.5.1WiFi模塊介紹整個(gè)系統(tǒng)中起到舉足輕重的作用的就是該模塊了,它就像是運(yùn)輸貨物的飛機(jī)、輪船、車輛等運(yùn)輸工具一般,不可以缺失的。硬件和軟件部分的連接是需要一個(gè)中介的,而該模塊就是起到這個(gè)用途。它也像其他大多數(shù)芯片一樣,可以大量的生產(chǎn)因此購(gòu)買價(jià)格很便宜,而且執(zhí)行相應(yīng)功能時(shí)比較穩(wěn)定,出錯(cuò)率很低,芯片設(shè)置了TCP/IP協(xié)議。該模塊可以完成許多的功能,因此有著大量的指令集??偣泊嬖谌N工作模式,分別是Station、AP、Station+AP(混合模式),可以當(dāng)成一個(gè)設(shè)備(client)連接區(qū)域網(wǎng)內(nèi)的路由,也可以設(shè)置成是一個(gè)路由(sever),也可以既作為局域網(wǎng)里面的client同時(shí)又是其他client的severREF_Ref22917\r\h[13]。。圖3.14WiFi模塊3.5.2WiFi模塊連接REF_Ref22976\r\h[14]關(guān)于模塊和單片機(jī)的連接,GND接地線,VCC和CH_PD共同接3.3V的電源正極;然后將單片機(jī)和該模塊的RXD輸出端口以及TXD發(fā)送端口交叉相接。連接完畢模塊就可以正常使用并完成相應(yīng)的指令。圖3.15WiFi模塊原理圖3.5.3WiFi模塊程序設(shè)計(jì)下面就是進(jìn)行初始化的工作,我選擇的是AP模式。該模式的配置過(guò)程大致分為五個(gè)流程:1.設(shè)置AP模式:AT+CWMODE=2;2.重置:AT+RST(配置完AT+CWMODE要重啟以下模塊使配置生效)3.REF_Ref20177\r\h[15]AP參數(shù)設(shè)置:AT+CWSAP(WiFi名稱,密碼,通道號(hào),加密方式,允許接入Station的個(gè)數(shù)[0,8],還有一個(gè)默認(rèn)為0);4.設(shè)置多連接:AT+CIPMUX=1;5.建立服務(wù)器:AT+CIPSERVER=1,8080;(8080是端口號(hào))。經(jīng)過(guò)這5流程之后就可以進(jìn)行連接的步驟了,之后的流程就是數(shù)據(jù)的傳遞。如下圖3.16所示,發(fā)送數(shù)據(jù)使用的是“AT+CIPSEND”指令;接收數(shù)據(jù)是查詢“+IPD”,接收其后發(fā)送的數(shù)據(jù)。使用“AT+CIPSEND”指令時(shí),需要注意是單路連接還是多路連接;單路連接時(shí)只需要加數(shù)字參數(shù)的長(zhǎng)度即可,多路連接時(shí)還需要加傳輸連接的ID號(hào)。REF_Ref23051\r\h[16]接收到此指令之后,就會(huì)先換行返回一個(gè)”<”,之后才開(kāi)始接收串口的數(shù)據(jù),其接收長(zhǎng)度按照之前發(fā)送的長(zhǎng)度;接收完畢之后,如果成功了就會(huì)返回“SENDOK”,否則就返回“ERROR”。當(dāng)串口收到“+IPD”時(shí),該模塊就需準(zhǔn)備接收移動(dòng)端發(fā)送而來(lái)的數(shù)據(jù)。該模塊就是一個(gè)中間的媒介,用來(lái)進(jìn)行數(shù)據(jù)間的中轉(zhuǎn)。在傳遞過(guò)程中,只要是通過(guò)檢查返回的響應(yīng)來(lái)判斷操作成功與否。如果連接成功就會(huì)返回“CONNECT”,我們就可以通過(guò)strstr函數(shù)來(lái)判斷,再進(jìn)行其后的操作。如下圖3.17所示的硬件和手機(jī)APP的信息傳遞,硬件和手機(jī)就想像大陸和海島,無(wú)法通過(guò)陸地運(yùn)輸貨物(數(shù)據(jù)),只通過(guò)海運(yùn)。串口就是港口,貨物(數(shù)據(jù))也一定是在串口的,該模塊只是一種數(shù)據(jù)傳遞的媒介。通過(guò)檢查返回的指令來(lái)進(jìn)行接下來(lái)的步驟,用戶連接成功返回“CONNECT”;斷開(kāi)返回“CLOSERD”;數(shù)據(jù)發(fā)送成功返回“SENDOK”;就收數(shù)據(jù)是“+IPD”。如果收到“CONNECT”就連接成功,那就將會(huì)發(fā)檢測(cè)到的溫度以及濕度的值。如果是“+IPD”就接收數(shù)據(jù),比如:溫濕度上下限,時(shí)間、電機(jī)指令等。圖3.16ESP8266發(fā)送數(shù)據(jù)流程圖圖3.17ESP8266數(shù)據(jù)傳輸3.6電動(dòng)機(jī)L298N3.6.1L298N模塊介紹如圖3.20所示,電動(dòng)機(jī)模塊的目的是為了驅(qū)動(dòng)電機(jī)以此來(lái)模擬水泵的灌溉,一般這個(gè)模塊有兩種樣式,我們選用的是第一種。圖3.18L298模塊3.6.2L298N模塊連接看圖3.20的左側(cè),有+、—兩個(gè)接口,分別接電源和接地;作用是給該模塊提供電源。A1、A2接單片機(jī)的P1.0和P1.1;作用是接收單片機(jī)提供信號(hào)。圖3.20的右邊有電機(jī)A、B,可以控制兩個(gè)電機(jī)。我們使用電機(jī)來(lái)模擬灌溉,因此將電機(jī)連接電機(jī)A兩端就可以進(jìn)行控制了。下圖3.21是驅(qū)動(dòng)模塊原理圖,IN就是輸入信號(hào)端,CUTx端就是用來(lái)連接電機(jī)A、B。圖3.19驅(qū)動(dòng)模塊電路原理圖4.手機(jī)APP設(shè)計(jì)基于單片機(jī)的溫濕度智能澆灌設(shè)計(jì)4.手機(jī)APP設(shè)計(jì)4.1集成開(kāi)發(fā)環(huán)境REF_Ref20458\r\h[17]對(duì)于手機(jī)APP的開(kāi)發(fā)使用的AndroidStudio,它是目前最為主流的APP開(kāi)發(fā)軟件。4.2界面整個(gè)手機(jī)APP部分系統(tǒng)界面有兩個(gè)如下圖4.1,第一個(gè)界面分為七個(gè)模塊,當(dāng)前溫度和濕度、報(bào)警、溫度范圍、濕度范圍、電機(jī)狀態(tài)、連接、更新時(shí)間。第二個(gè)界面是點(diǎn)擊溫度和濕度的ImageButton按鈕來(lái)輸入溫度和濕度的上下限。圖4.1界面4.3界面設(shè)計(jì)整體的界面布局,主要是線性布局、文本框、按鈕、圖像按鈕、開(kāi)關(guān)控制、輸入框。這個(gè)兩個(gè)界面通過(guò)在layout中來(lái)進(jìn)行布局,對(duì)于溫度和濕度的部分,通過(guò)一個(gè)大的線性布局,在加3個(gè)小的線性布局,以及三個(gè)TextView;分別顯示當(dāng)前溫度、數(shù)值、℃。對(duì)于濕度而言也是同樣的操作。報(bào)警部分使用了2個(gè)LinearLayout,2個(gè)TextView;用來(lái)顯示“是否報(bào)警”和“是或否”。溫度和濕度范圍使用了2個(gè)LinearLayout,2個(gè)TextView,還有一個(gè)ImageButton;點(diǎn)擊這個(gè)俺就就可以進(jìn)行范圍的輸入。電機(jī)狀態(tài)使用2個(gè)LinearLayout,2個(gè)TextView,還有一個(gè)Switch開(kāi)關(guān)。剩下的連接和更新時(shí)間都是按鈕。對(duì)于輸入閾值的界面,3個(gè)LinearLayout,2個(gè)TextView,還有2個(gè)EditText。布局好之后,還要去調(diào)節(jié)每個(gè)組件的參數(shù)?,F(xiàn)在將這些控件和組件整體布局好,在去填寫其屬性。常見(jiàn)的一些屬性,width、height、margin、background、orientation、textSize、text、weight、inputType等。主要是對(duì)于控制布局的長(zhǎng)、寬、高、比重、顏色、文字內(nèi)容和大小、輸入的類型等等。需要注意的是Bottom和ImageButton是不同的,前者可以設(shè)置文本內(nèi)容,而后者是不可以設(shè)置文本內(nèi)容的,后者可以通過(guò)src來(lái)設(shè)置圖片。4.4功能的實(shí)現(xiàn)把界面的布局完成之后,就可以進(jìn)行界面控件功能的實(shí)現(xiàn)了。整體的設(shè)計(jì)思路是信息在移動(dòng)端和單片機(jī)之間的傳遞;接收到的數(shù)據(jù)是當(dāng)前的溫度和濕度,然后設(shè)置文本顯示出來(lái)就可以了。發(fā)送主要是發(fā)送當(dāng)時(shí)的時(shí)間、溫度和濕度的上下限、電機(jī)的控制。首先需要定義變量,根據(jù)不同的控件定義;之后就是初始化;其次最核心的就是控件點(diǎn)擊監(jiān)聽(tīng)設(shè)置。因?yàn)橹挥羞@樣我們才可以去編寫后面的操作。監(jiān)聽(tīng)事件本系統(tǒng)使用實(shí)現(xiàn)接口的方法來(lái)實(shí)現(xiàn)。設(shè)置了5個(gè)監(jiān)聽(tīng)器,分別是連接、更新時(shí)間、溫度閾值、濕度閾值、電機(jī)。4.4.1連接需要先連接模塊產(chǎn)生的WiFi,點(diǎn)擊連接按鈕后,才會(huì)進(jìn)行和單片機(jī)之間的連接。REF_Ref23280\r\h[18]這一過(guò)程是遵循TCP/IP協(xié)議,通過(guò)確定IP地址和端口號(hào),建立Socket進(jìn)行。Socket會(huì)調(diào)用connect()方法,兩者的數(shù)據(jù)通過(guò)輸入流和輸出流進(jìn)行傳輸。觸發(fā)這個(gè)監(jiān)聽(tīng)事件之后,就會(huì)進(jìn)入一個(gè)新的線程;設(shè)置socket、輸入輸出流,通過(guò)設(shè)置線程中斷標(biāo)志,來(lái)判斷是否發(fā)生中斷;如果沒(méi)有就會(huì)一直獲取單片機(jī)發(fā)來(lái)的信息。這個(gè)信息主要是溫度和濕度,模式信息通過(guò)判斷是否觸發(fā)線程監(jiān)聽(tīng),如果觸發(fā)就通過(guò)runOnUiThread()切換到主線程,獲取模式信息更新UI。連接成功后,線程在連接未斷開(kāi)前都沒(méi)有中斷;因此會(huì)一直去接受硬件模塊發(fā)送的信息,也會(huì)不斷的更新UI界面。上述過(guò)程主要是連接后信息的接收,數(shù)據(jù)發(fā)送會(huì)創(chuàng)建并使用一個(gè)新的線程,通過(guò)輸出流完成數(shù)據(jù)的發(fā)送。如果線程中斷,就會(huì)關(guān)閉輸入流和輸出流。4.4.2溫濕度閾值點(diǎn)擊溫濕度閾值圖像按鈕,進(jìn)入showInputDialog()顯示輸入框;首先會(huì)是標(biāo)題“請(qǐng)輸入范圍”,其后就會(huì)讀取輸入的數(shù)值,REF_Ref23446\r\h[19]通過(guò)函數(shù)et_up_limit.getText().toString().trim(),獲取之后需要轉(zhuǎn)換數(shù)據(jù)類型還有去除空格。讀取之后,先判斷有沒(méi)有輸入數(shù)字;如果沒(méi)有使用Toast.makeText提示;反之就進(jìn)行數(shù)據(jù)條件的判斷;如果在范圍之內(nèi)且上限大于下限那么將數(shù)據(jù)存入數(shù)組,發(fā)送給單片機(jī),反之就會(huì)提醒“范圍出錯(cuò)”,流程如下圖4.2所示。圖4.2設(shè)置溫濕度閾值流程4.4.3更新時(shí)間點(diǎn)擊更新時(shí)間的按鈕,之后便會(huì)獲取本時(shí)區(qū)的格林威治時(shí)間,最后將獲取的年、月、日、小時(shí)、分鐘、秒存入數(shù)組中發(fā)送給單片機(jī)。4.4.4警報(bào)設(shè)置警報(bào)就相對(duì)簡(jiǎn)單,根據(jù)從單片機(jī)接收的模式,如果是除正常的“0”模式以外的模式就會(huì)顯示報(bào)警,流程如下圖4.3所示。圖4.3模式判斷流程圖4.4.5電機(jī)控制關(guān)于電機(jī)的控制,通過(guò)兩個(gè)途徑進(jìn)行。第一個(gè)途徑是單片機(jī)的判斷,第二個(gè)途徑是移動(dòng)端的控制。對(duì)于第一個(gè)途徑,本系統(tǒng)在移動(dòng)端進(jìn)行溫濕度閾值的設(shè)定,然后將其傳遞給硬件部分。硬件部分會(huì)將設(shè)定的閾值與測(cè)量到的溫濕度數(shù)值進(jìn)行比較,以此來(lái)判斷模式。當(dāng)前模式會(huì)與先前模式進(jìn)行比較,如果發(fā)生便會(huì)就會(huì)執(zhí)行相應(yīng)的命令。如下圖4.4右邊流程所示。第二個(gè)途徑,通過(guò)移動(dòng)端認(rèn)為點(diǎn)擊按鈕來(lái)完成,點(diǎn)擊這個(gè)按鈕一定是在模式?jīng)]有改變的狀態(tài)下進(jìn)行的。點(diǎn)擊按鈕一定是要改變電機(jī)狀態(tài),即由開(kāi)到關(guān)或由關(guān)到開(kāi);將最終處于開(kāi)或者關(guān)的狀態(tài)發(fā)送給單片機(jī),來(lái)完成電機(jī)的啟動(dòng),如下圖4.4左邊流程。兩個(gè)途徑的操作分別是自動(dòng)的和人工的,判斷的依據(jù)就是模式是否發(fā)生了改變。第一種途徑電機(jī)狀態(tài)是隨著模式的改變而改變,第二種途徑電機(jī)狀態(tài)是隨著按鈕狀態(tài)的改變而改變。圖4.4電機(jī)控制流程圖5.系統(tǒng)調(diào)試5.系統(tǒng)調(diào)試5.1調(diào)試軟件5.1.1調(diào)試環(huán)境對(duì)于硬件部分的程序設(shè)計(jì),使用的是這個(gè)keiluVision4這個(gè)開(kāi)發(fā)平臺(tái)完成的,其與先前的版本而言,界面進(jìn)行了優(yōu)化,更加的高效和便捷REF_Ref23525\r\h[20]。5.1.2燒錄軟件的使用選擇燒錄軟件是STC-ISP,將可執(zhí)行文件HEX寫入單片機(jī),使用步驟如下REF_Ref23548\r\h[21]:1.打開(kāi)STC-ISP軟件,在單片機(jī)類型的選擇中選STC89C52RC,其中需要注意的是不要選錯(cuò)為STC89C52,一定選擇STC89C52RC;2.串口號(hào)選擇自己設(shè)定的(和自己設(shè)備管理器中的一致),波特率一般默認(rèn)值,不做更改;3.點(diǎn)擊打開(kāi)程序文件,選擇HEX文件;4.點(diǎn)擊下載/編程就可以了;程序就寫入到了單片機(jī)內(nèi)了。5.2系統(tǒng)初始未與移動(dòng)端連接如下圖5.1,這時(shí)的時(shí)間是正確的,在此之前有連接過(guò)移動(dòng)端,其發(fā)送了當(dāng)時(shí)正確的時(shí)間;DS1302會(huì)對(duì)時(shí)間進(jìn)行計(jì)算,再次打開(kāi)是就是當(dāng)前的時(shí)間。圖5.1開(kāi)機(jī)顯示動(dòng)態(tài)圖片5.3系統(tǒng)與移動(dòng)端相連5.3.1開(kāi)機(jī)后連接如下圖5.2,需要連接ESP8266產(chǎn)生的WiFi,連接完成之后還需要在軟件內(nèi)去點(diǎn)擊連接,連接上之后才能正常使用。如果單片機(jī)和移動(dòng)端連接完成且能正常使用,按鈕的文本就會(huì)顯示為已連接。單片機(jī)將把采集到當(dāng)前溫濕的數(shù)值給移動(dòng)端。圖5.2連接5.3.2設(shè)定正常溫濕度閾值圖5.3設(shè)置閾值顯示5.3.3超過(guò)溫濕度閾值如下圖5.3,此時(shí)會(huì)報(bào)警同時(shí)也會(huì)啟動(dòng)電機(jī)自動(dòng)灌溉。圖5.3高溫低濕如下圖5.4,此時(shí)只會(huì)報(bào)警,是否進(jìn)行灌溉有移動(dòng)端認(rèn)為控制,可以通過(guò)開(kāi)關(guān)來(lái)控制電機(jī)達(dá)到模擬澆灌的目的。圖5.3高溫高濕結(jié)論結(jié)論溫度和濕度對(duì)于種植的農(nóng)作物種類、生長(zhǎng)速度以及產(chǎn)量都至關(guān)重要,本論文設(shè)計(jì)的智能澆灌系統(tǒng)經(jīng)過(guò)測(cè)試基本達(dá)到設(shè)計(jì)要求。實(shí)現(xiàn)了測(cè)量當(dāng)前溫度和濕度,并將測(cè)量數(shù)據(jù)的數(shù)據(jù)傳輸給移動(dòng)端;移動(dòng)端可以顯示溫度和濕度,設(shè)定溫濕度閾值,了解是否報(bào)警,控制灌溉以及向單片機(jī)傳輸時(shí)間;單片機(jī)接收到當(dāng)前的時(shí)間和溫濕度閾值數(shù)據(jù),可以將其顯示在液晶屏上。當(dāng)溫濕度超過(guò)設(shè)定閾值時(shí),會(huì)發(fā)出警報(bào)并根據(jù)超出設(shè)定閾值的不同情況判斷是否灌溉。但系統(tǒng)仍然有著一些不足之處。按按鈕過(guò)快有時(shí)會(huì)出現(xiàn)混亂;移動(dòng)端在連接后,有時(shí)會(huì)出現(xiàn)卡頓的現(xiàn)象;沒(méi)有設(shè)置關(guān)閉報(bào)警的模塊,在設(shè)計(jì)時(shí)考慮只有當(dāng)恢復(fù)到正常模式時(shí)才會(huì)停止報(bào)警。LCD1602顯示字體的大小會(huì)有限制,因此不能顯示一些圖片或者是復(fù)雜的曲線。DHT11溫濕度傳感器部分的精度基本可以滿足本設(shè)計(jì),但仍然需要提高的。DS1302時(shí)鐘模塊存在著時(shí)間不準(zhǔn)確的問(wèn)題,精度不夠;還有就是有時(shí)不夠穩(wěn)定會(huì)出現(xiàn)跳躍的情況,具體說(shuō)秒分為的計(jì)算有時(shí)會(huì)4秒4秒的跳,或者連續(xù)計(jì)算兩位;其他位還存在著變化,比如14突然變成64。后面查閱資料發(fā)現(xiàn)是可能是選用的晶振易受環(huán)境影響,才會(huì)現(xiàn)在這樣的情況。時(shí)鐘的精度首先取決于晶振的精度,如果其不準(zhǔn)確那么時(shí)鐘的精度必然會(huì)收到較大的影響。它的特性會(huì)隨著外界環(huán)境尤其是溫度的變化而變化,精確程度也會(huì)受到影響。參考文獻(xiàn)基于單片機(jī)的溫濕度智能澆灌設(shè)計(jì)參考文獻(xiàn)張海礁.基于PLC的室內(nèi)濕度控制系統(tǒng)的設(shè)計(jì)與研究[D].江蘇:江蘇大學(xué),2016.9-11.Anonymous.AmericanThermalInstrumentsIntroducesTemperatureMonitoringAppforSmartphones[J].WirelessNews,2011.李萌.多目標(biāo)溫室自動(dòng)控制系統(tǒng)的研究與設(shè)計(jì)[D].江蘇:江蘇大學(xué),2012.1-3.XuYan,GuoTao(KeyLaboratoryofInstrumentationScience&DynamicMeasurement(NorthUniversityofChina),MinistryofEducation,DepartmentofElectronicScienceandtechnology,NorthUniversityofChina,Taiyuan,Shanxi030051,China).Basedonsingle-chipmicrocomputertemperatureandhumiditydataacquisitionsystemdesign[A].TheKoreanVacuumSociety、ChineseVacuumSociety、ChineseSocietyofTheoreticalandAppliedMechanics、TheKoreanSocietyofSemiconductor&DisplayTechnology、DivisionofPlasmaElectronicsofJapanSocietyofAppliedPhysics、DalianUniversityofTechnology.第三屆微電子及等離子體技術(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年一級(jí)造價(jià)師考試題庫(kù)300道及參考答案【研優(yōu)卷】
- 2026年一級(jí)造價(jià)師考試題庫(kù)300道【考點(diǎn)梳理】
- 2026年交管12123學(xué)法減分復(fù)習(xí)考試題庫(kù)附完整答案(名校卷)
- 焊接設(shè)備知識(shí)考試題集
- 2026年二級(jí)注冊(cè)建筑師之建筑結(jié)構(gòu)與設(shè)備考試題庫(kù)500道及參考答案【考試直接用】
- 標(biāo)準(zhǔn)材料采買合同范本
- 2026年一級(jí)注冊(cè)建筑師考試題庫(kù)300道附參考答案(鞏固)
- 隨縣教師遴選真題及答案
- 2025年一級(jí)注冊(cè)建筑師考試題庫(kù)500道含完整答案(全優(yōu))
- IT項(xiàng)目經(jīng)理面試題庫(kù)及答案
- 2025 年國(guó)家層面數(shù)據(jù)資產(chǎn)政策匯編(全景解讀版)
- 2025新疆交通投資(集團(tuán))有限責(zé)任公司所屬公司招聘26人筆試歷年典型考點(diǎn)題庫(kù)附帶答案詳解2套試卷
- 2025年成本會(huì)計(jì)考試題及答案6
- 全域土地綜合整治項(xiàng)目社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估報(bào)告
- 2024-2025學(xué)年廣東省深圳市福田區(qū)七年級(jí)(上)期末英語(yǔ)試卷
- 《證券投資學(xué)》吳曉求課后習(xí)題答案
- 消防員心理測(cè)試題目及答案大全2025
- 住院醫(yī)師規(guī)范化培訓(xùn)急診科模擬試題及答案
- 2025國(guó)考國(guó)資委申論高分筆記
- 2025年高級(jí)經(jīng)濟(jì)師《人力資源》考試真題及答案
- 礦山項(xiàng)目經(jīng)理崗位職責(zé)與考核標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論