基于單片機(jī)的模擬智能灌溉控制系統(tǒng)畢業(yè)論文.doc
I 基于單片機(jī)的模擬智能灌溉控制系統(tǒng) 摘 要 隨著農(nóng)業(yè)生產(chǎn)水平的不斷發(fā)展以及全球水資源的日趨緊張,世界各國都在 積極探索行之有效的節(jié)水途徑和措施。智能灌溉控制系統(tǒng)就是為了解決水資源 不足、提高灌溉效率而發(fā)展起來的。本文研究的單片機(jī)智能灌溉控制系統(tǒng),是 對(duì)土壤的溫濕度進(jìn)行實(shí)時(shí)監(jiān)控,參考實(shí)際溫度值設(shè)定適宜的濕度下限值,并按 照設(shè)定的濕度值進(jìn)行相應(yīng)的灌溉。 該智能灌溉控制系統(tǒng)以 STC89C52 單片機(jī)為核心,主要由溫濕度傳感器 DHT11 模塊、按鍵輸入模塊、顯示模塊、水泵模塊等組成;軟件選用 C 語言編 程。該系統(tǒng)的功能是:根據(jù)土壤濕度傳感器檢測到的土壤濕度,若檢測到的土 壤濕度值低于系統(tǒng)所設(shè)定的最低濕度值,系統(tǒng)則自動(dòng)啟動(dòng)系統(tǒng),進(jìn)行灌溉。通 過對(duì)硬件實(shí)物的測試,系統(tǒng)能夠比較成功的實(shí)現(xiàn)目標(biāo)功能。 【關(guān)鍵詞】單片機(jī);傳感器;LED 顯示;水泵;灌溉 II Simulator smart irrigation control system based on single chip microcomputer Abstract As the level of agricultural production and the continuous development of global shortage of water resources, countries in the world are actively explorin g effective ways and measures for water conservation. Intelligent irrigation cont rol system in order to solve the problem of water resources,improve the efficie ncy of irrigation and developed. This paper studies theintelligent irrigation contr ol system, temperature and humidity in the soil was monitored in real time, re fer to the actual temperature value setting and humidity limit appropriate value, according to the set humidity value for the corresponding irrigation. The intelligent irrigation control system based on STC89C52 single chip m icrocomputer as the core, mainly by the temperature and humidity sensor DHT 11 module, key input module, display module, pump module; softwareused C l anguage programming. The function of this system is: according to thesoil moi sture, soil moisture sensor to detect soil humidity, if the detected valueis lower than the lowest humidity system setting, automatic starting system,irrigation. B y physical testing, system can realize the function of relatively successful. 【Key words】 Single-chip Microcomputer;Sensor;LED Display;Water Pump; Lrrigation III 目錄目錄 1 緒論.1 1.1 課題研究背景.1 1.2 課題研究的目的和意義.1 1.3 國內(nèi)外現(xiàn)狀 2 1.3.1 國內(nèi)研究現(xiàn)狀 .2 1.3.2 國外研究現(xiàn)狀 .2 1.4 本文主要工作 3 2 系統(tǒng)總體設(shè)計(jì).4 2.1 系統(tǒng)功能要求.4 2.2 系統(tǒng)總體設(shè)計(jì)方案.4 3 系統(tǒng)硬件設(shè)計(jì).5 3.1 硬件電路總原理圖5 3.2 STC89C51 單片機(jī)的硬件結(jié)構(gòu) .5 3.2.1 單片機(jī)的結(jié)構(gòu)及信號(hào)引腳 .6 3.3 電源供電模塊7 3.4 單片機(jī)控制模塊8 3.4.1 單片機(jī)的最小系統(tǒng) .8 3.4.2 單片機(jī)控制的電路設(shè)計(jì)8 3.5 濕度采集模塊.9 3.5.1 溫濕度傳感器 DHT11 的原理 .9 3.6 液晶顯示模塊 .10 3.6.1 LCD1602 液晶模塊簡介 .10 3.6.2 LCD1602 的引腳及電路設(shè)計(jì) .11 3.7 按鍵輸入模塊.12 3.8 水泵增濕模塊.12 4 系統(tǒng)軟件設(shè)計(jì)13 IV 4.1 程序設(shè)計(jì)13 4.1.1 主程序流程及相關(guān)說明 13 4.2 主程序代碼14 5 測試結(jié)果與分析17 5.1 測試環(huán)境.17 5.2 測試結(jié)果.17 6 調(diào)試與使用說明.20 7 結(jié)論21 參考文獻(xiàn).22 致 謝.23 附錄 1 元器件清單 .24 附錄 2 基于 STC89C52 單片機(jī)的智能灌溉控制系統(tǒng) PCB 圖 25 附錄 3 DHT11 模塊代碼26 附錄 4 液晶顯示模塊代碼 .28 1 1緒論 1.1課題研究背景 水資源是人類生產(chǎn)生活最關(guān)鍵的自然資本,亦是貫穿社會(huì)發(fā)展和國民經(jīng)濟(jì) 的最首要的基礎(chǔ)資源。但我國當(dāng)今水資源存在著兩個(gè)方面的主要問題:第一個(gè) 問題是水資源貧乏。雖然我國水資源的總量居全球第六位,可人均占有量卻只 有 2500 立方米,僅僅只達(dá)到了世界人均水量的四分之一,是全世界人均水資源 最貧乏的國家之一。第二個(gè)問題是水資源的嚴(yán)重污染和浪費(fèi)。就全中國而言, 我們對(duì)水資源的利用率僅為 45%,而那些水資源利用率高的國家已經(jīng)達(dá)到了 70%- -80%,因此,提高水資源的利用率,對(duì)于解決我國的農(nóng)業(yè)灌溉用水和緩解水資 源緊缺非常重要1。 經(jīng)過幾十年的快速發(fā)展,我國的節(jié)水智能灌溉技術(shù)初步形成了其技術(shù)體系, 并且在某些方面已經(jīng)達(dá)到或接近了國際先進(jìn)水平,但由于受到我國經(jīng)濟(jì)發(fā)展水 平及科研體制的限制,我國的智能控制灌溉技術(shù)與一些發(fā)達(dá)國家仍然存在著相 當(dāng)大的差距。隨著我國水資源供需矛盾的日益加劇,農(nóng)業(yè)用水分配額減少的問 題勢(shì)必日益突出,同時(shí)為了緩解我國水資源短缺對(duì)我國農(nóng)業(yè)發(fā)展造成的壓力, 如何快速發(fā)展我國的節(jié)水智能控制灌溉技術(shù)及其配套設(shè)施,從而緩解我國農(nóng)業(yè) 用水壓力已經(jīng)成為一個(gè)不容忽視的問題1。 1.2 課題研究的目的和意義 農(nóng)業(yè)是人類社會(huì)賴以生存的最古老也是最重要的行業(yè),農(nóng)業(yè)的發(fā)展從長遠(yuǎn) 來打算主要存在著兩個(gè)方面的問題。一個(gè)是水資源的問題、另一個(gè)是科技發(fā)展 方面的問題。而現(xiàn)階段我國包括灌溉用水和降水在內(nèi)的農(nóng)田利用率很低,單位 立方水生產(chǎn)糧食的能力大約為 0.84kg,而以色列等一些發(fā)達(dá)國家大多數(shù)都在 2kg 以上,差距很大。為了提高灌溉水的利用率,為了保證全中國人口的糧食 安全,使單位立方水生產(chǎn)糧食的能力得到提高,依靠傳統(tǒng)的灌溉方式是很難達(dá) 到的,必須從高新技術(shù)入手,在管理上下功夫,從過去的“澆地”思想觀念轉(zhuǎn)變 為“澆植物”的思想觀念。做到作物生長需要多少水,灌溉系統(tǒng)就能及時(shí)而準(zhǔn)確 地提供多少水。要實(shí)現(xiàn)這一目標(biāo),只有發(fā)展先進(jìn)的灌溉系統(tǒng),使灌溉過程達(dá)到 自動(dòng)控制才有可能。因此實(shí)現(xiàn)灌溉系統(tǒng)的智能控制,對(duì)節(jié)水、提高灌溉水的利 用率以及對(duì)我國的糧食安全將起到極為重要的作用,具有重要的實(shí)現(xiàn)意義3。 2 1.3 國內(nèi)外現(xiàn)狀 1.3.1 國內(nèi)研究現(xiàn)狀 我國一直以來都非常重視灌溉設(shè)備的研制,但由于自主開發(fā)程度低,且有 影響的成果較少,所以我國的灌溉設(shè)備大多數(shù)都是通過引進(jìn)國外的成果,可以 說我國對(duì)于智能灌溉控制技術(shù)的研制真正開始于“九五”期間。目前我國在智能 灌溉控制系統(tǒng)方面還處于研制、試用階段,能真正投入應(yīng)用,并且應(yīng)用廣泛的 智能灌溉控制器還不多見5。 節(jié)水農(nóng)業(yè)的核心就是節(jié)約用水和提高農(nóng)業(yè)用水率,是現(xiàn)代化農(nóng)業(yè)的重要內(nèi) 涵,其核心是在有限水資源的條件下,通過采用先進(jìn)的工程技術(shù)、適宜的農(nóng)業(yè) 技術(shù)和用水管理等綜合技術(shù)措施,充分提高農(nóng)業(yè)用水利用率和水的生產(chǎn)效率及 效益,保證農(nóng)業(yè)持續(xù)穩(wěn)定發(fā)展。面對(duì) World Trade Organization 的挑戰(zhàn),節(jié)水農(nóng) 業(yè)更應(yīng)該賦予其新的內(nèi)涵,其內(nèi)涵應(yīng)擴(kuò)展為節(jié)水、高產(chǎn)、高效、優(yōu)質(zhì)的農(nóng)業(yè)5。 要發(fā)展節(jié)水農(nóng)業(yè)最基本的工作就是要有先進(jìn)的節(jié)水灌溉技術(shù),適當(dāng)?shù)募夹g(shù) 是節(jié)水農(nóng)業(yè)發(fā)展的前提條件,研究和開發(fā)節(jié)水灌溉技術(shù),對(duì)提高節(jié)水農(nóng)業(yè)的效 益有很大的幫助。因此,我們非常有必要對(duì)現(xiàn)狀節(jié)水灌溉技術(shù),節(jié)水的水平以 及技術(shù)的適應(yīng)性,發(fā)展現(xiàn)狀及存在問題做認(rèn)真分析,為真正實(shí)現(xiàn)提高農(nóng)業(yè)用水 效率和水的生產(chǎn)效率打好基礎(chǔ)5。 結(jié)合我國各地區(qū)特點(diǎn),認(rèn)為適宜各地區(qū)推廣應(yīng)用的節(jié)水農(nóng)業(yè)技術(shù)主要有, 渠道防滲技術(shù)、低壓管道輸水技術(shù)、地面灌水技術(shù)、雨水利用技術(shù)、農(nóng)業(yè)節(jié)水 配套技術(shù)、劣質(zhì)水利用技術(shù)及農(nóng)業(yè)節(jié)水管理等技術(shù)5。 1.3.2 國外研究現(xiàn)狀 西方的一些先進(jìn)國家,運(yùn)用先進(jìn)的電子技術(shù)、計(jì)算機(jī)和控制技術(shù),在節(jié)水 灌溉技術(shù)方面起步較早,并日趨成熟。這些國家從最早的水力控制、機(jī)械控制, 到后來的機(jī)械電子混合協(xié)調(diào)模式控制,到當(dāng)前應(yīng)用廣泛的計(jì)算機(jī)控制、模糊控 制和神經(jīng)網(wǎng)絡(luò)控制等,控制精度和智能化程度越來越高,可靠性越來越好,操 作也越來越簡單5。 在美國,早在 1984 年,Benami 和 Offen 公司就開發(fā)了一套節(jié)水灌溉控制 器,通過監(jiān)測土壤水分來確定是否打開灌水閥門,Phene 和 Howell 分別在灌溉 系統(tǒng)的控制中使用了土壤濕度傳感器,通過土壤水分傳感器把濕度反饋給控制 系統(tǒng),根據(jù)傳感器獲得的數(shù)據(jù)決定是否灌溉,是作物根部總跟保持一定的濕度5。 加拿大、澳大利亞和韓國等國家和地區(qū)都有發(fā)開成功并形成系列的灌溉控 3 制器產(chǎn)品,其中比較有代表性的如澳大利亞的 HARDIE IR-RGATION 公司的灌 溉控制器,已形成了 MICRO-MASTER、RAINJET 等多個(gè)系列幾十種型號(hào)的產(chǎn) 品5。 1.4 本文主要工作 經(jīng)過對(duì)大量關(guān)于智能灌溉系統(tǒng)、單片機(jī)、傳感器等文獻(xiàn)的學(xué)習(xí)與研究,本 文對(duì)基于單片機(jī)的智能灌溉控制系統(tǒng)的設(shè)計(jì)作出了較為詳細(xì)的介紹,并且還做 出了硬件實(shí)物,經(jīng)操作測試,符合目標(biāo)要求 。本論文的內(nèi)容安排如下: 第一章,主要介紹了智能灌溉控制系統(tǒng)的研究背景、目的與意義以及國內(nèi) 外智能灌溉系統(tǒng)的發(fā)展現(xiàn)狀。對(duì)整個(gè)論文的書寫以及畢業(yè)設(shè)計(jì)的方向起引導(dǎo)作 用。 第二章,對(duì)整個(gè)系統(tǒng)設(shè)計(jì)做了一個(gè)規(guī)劃。系統(tǒng)需要實(shí)現(xiàn)什么樣的功能?怎 樣設(shè)計(jì)才能實(shí)現(xiàn)這樣的功能? 第三章,對(duì)整個(gè)灌溉系統(tǒng)的硬件部分進(jìn)行一個(gè)設(shè)計(jì),先介紹了系統(tǒng)工作的 總原理、總電路,然后再是一一對(duì)每個(gè)模塊進(jìn)行介紹,將每個(gè)模塊的電路設(shè)計(jì)、 功能以及一些引腳的特性加以介紹。 第四章,對(duì)系統(tǒng)的軟件部分進(jìn)行設(shè)計(jì),根據(jù)系統(tǒng)需要實(shí)現(xiàn)的功能以及各元 件的特性,設(shè)計(jì)出一個(gè)總的程序流程圖,然后再編寫出能夠?qū)崿F(xiàn)此功能的源程 序和主要功能模塊的程序。 第五章,對(duì)硬件實(shí)物進(jìn)行測試并對(duì)測試的結(jié)果進(jìn)行分析,并介紹一下測試 的環(huán)境,然后附上各個(gè)階段的狀態(tài)圖,并加以相應(yīng)的解釋。 第六章,介紹程序的調(diào)試過程以及將編寫好的程序錄入到單片機(jī)中的過程。 第七章,結(jié)論。介紹了在畢業(yè)設(shè)計(jì)的整個(gè)過程中,我所做的準(zhǔn)備工作、碰 到的困難、學(xué)到的東西以及自己的感想。 最后,在論文的末尾,我介紹了整個(gè)設(shè)計(jì)過程中所參考的文獻(xiàn),對(duì)老師、 同學(xué)、父母的致謝和一些程序、元件清單等的附錄。 4 2 系統(tǒng)總體設(shè)計(jì) 2.1 系統(tǒng)功能要求 自動(dòng)灌溉控制系統(tǒng)要實(shí)現(xiàn)的具體任務(wù): 1)本設(shè)計(jì)采用 STC89C52RC 單片機(jī)為灌溉系統(tǒng)的主控芯片,外接土壤溫濕 度傳感器模塊、電源模塊、水泵驅(qū)動(dòng)模塊、LCD1602 液晶顯示模塊和按鍵模塊。 2)使溫濕度傳感器對(duì)土壤的實(shí)際溫濕度進(jìn)行實(shí)時(shí)監(jiān)測,并且把檢測到的實(shí) 際溫濕度值的數(shù)字信號(hào)傳送給單片機(jī),單片機(jī)對(duì)其進(jìn)行處理之后再將實(shí)際溫濕 度值顯示在液晶顯示屏上。 3)使用者可以通過按鍵自行調(diào)節(jié)溫濕度的下限值,當(dāng)傳感器檢測到的濕度 值低于設(shè)定濕度值的 10%時(shí),啟動(dòng)繼電器,開啟水泵,進(jìn)行灌溉,當(dāng)檢測到的 濕度值達(dá)到設(shè)定值時(shí),繼續(xù)灌溉直至濕度值高于設(shè)定值 10%再停止灌溉。本系 統(tǒng)的溫度值僅僅是一個(gè)參考值,用戶可以根據(jù)液晶顯示屏上顯示的實(shí)際溫度來 設(shè)定相應(yīng)而合理的濕度下限值。 4)本設(shè)計(jì)用一個(gè)綠色指示燈代表水泵模塊,當(dāng)指示燈亮起時(shí),表示正在進(jìn) 行灌溉,當(dāng)指示燈熄滅時(shí),表示停止灌溉。 2.2 系統(tǒng)總體設(shè)計(jì)方案 本設(shè)計(jì)利用 STC89C52 單片機(jī)設(shè)計(jì)了自動(dòng)灌溉系統(tǒng),利用溫濕度傳感器檢 測土壤的溫濕度,將采集到的溫濕度傳送到單片機(jī)芯片,單片機(jī)根據(jù)溫濕度控 制是否進(jìn)行灌溉,如果需要灌溉,那么單片機(jī)的一個(gè)引腳將置高電平,給水泵 驅(qū)動(dòng)芯片信號(hào),打開水泵抽水,實(shí)現(xiàn)自動(dòng)灌溉(即綠色指示燈亮起) 。設(shè)計(jì)還配 有一塊 LCD1602 液晶顯示器,用于顯示土壤溫濕度實(shí)際數(shù)值和設(shè)定用戶溫濕度 值。系統(tǒng)還配有 4 個(gè)獨(dú)立按鍵輔助設(shè)定溫濕度值。自動(dòng)灌溉系統(tǒng)方框圖如圖 2- 1 所示。 5 圖 2-1 自動(dòng)灌溉系統(tǒng)整體設(shè)計(jì)框圖 3系統(tǒng)硬件設(shè)計(jì) 3.1 硬件電路總原理圖 系統(tǒng)硬件部分由單片機(jī)核心控制模塊、溫濕度采集模塊、按鍵輸入模塊、 水泵驅(qū)動(dòng)模塊、液晶顯示模塊、供電模塊等組成,硬件系統(tǒng)的總電路圖如圖 3- 1 所示。核心控制模塊由 STC89C52RC 芯片、排阻、復(fù)位和晶振電路組成;按 鍵輸入模塊由 4 個(gè)獨(dú)立按鍵組成;水泵驅(qū)動(dòng)模塊由二極管和綠色指示燈組成, 顯示模塊由 LCD1602 顯示屏完成,溫濕度數(shù)據(jù)采集和轉(zhuǎn)換由 DHT11 芯片完成。 6 圖 3-1 系統(tǒng)總電路圖 3.2 STC89C51 單片機(jī)的硬件結(jié)構(gòu) STC89C52RC 是 STC 公司出產(chǎn)的一種低功耗、高性能 CMOS8 位微控制器, 具備 8K 在系統(tǒng)可編程 Flash 存儲(chǔ)器。STC89C52 使用經(jīng)典的 MCS-51 內(nèi)核,但 做了很多的改進(jìn)使得芯片具有傳統(tǒng) 51 單片機(jī)不具備的功能。在單芯片上,擁有 靈巧的 8 位 CPU 和在系統(tǒng)可編程 Flash,使得 STC89C52 為眾多嵌入式控制應(yīng) 用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) Flash,512 字節(jié) RAM, 32 位 I/O 口線,看門狗定時(shí)器,內(nèi)置 4KB EEPROM, MAX810 復(fù)位電路,3 個(gè) 16 位定時(shí)器/計(jì)數(shù)器,4 個(gè)外部中斷,一 個(gè) 7 向量 4 級(jí)中斷結(jié)構(gòu)(兼容傳統(tǒng) 51 的 5 向量 2 級(jí)中斷結(jié)構(gòu)) ,全雙工串行口。 另外 STC89C52 可降至 0Hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模式。 空閑模式下,CPU 停止工作,允許 RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下,RAM 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止, 直到下一個(gè)中斷或硬件復(fù)位為止,最高運(yùn)作頻率 35MHz,6T/12T 可選10。 3.2.1 單片機(jī)的結(jié)構(gòu)及信號(hào)引腳 1)STC89C52RC 單片機(jī)的特性(如表 3.1 所示) 表 3.1 STC89C52RC 單片機(jī)的特性 2)芯片引腳介紹: 圖 3-2 為 STC89C52 單片機(jī)的引腳封裝圖。 7 圖 3-2 STC89C52 引腳封裝圖 表 3.2 為單片機(jī)的引腳功能說明。 表 3.2 STC8C52 引腳功能說明 3.3 電源供電模塊 8 為整個(gè)系統(tǒng)的各個(gè)模塊供電是對(duì)于一個(gè)完整的電路來講的首要問題,為了 克服 STC89C51 單片機(jī)在實(shí)際的操作過程中因容易受到外來因素的干擾而出現(xiàn) 程序跑飛或陷入死循環(huán)等現(xiàn)象,這就需要為 STC89C52RC 單片機(jī)系統(tǒng)配置一個(gè) 穩(wěn)定可靠的電源模塊。本設(shè)計(jì)采用的是兩個(gè)電源接口,連接外部電源,圖 3-3 是電源模塊原理圖。 圖 3-3 電源模塊原理圖 3.4 單片機(jī)控制模塊 3.4.1 單片機(jī)的最小系統(tǒng) 單片機(jī)是一個(gè)完整電路系統(tǒng)的核心控制部分,控制著整個(gè)系統(tǒng)是否能成功 運(yùn)行并達(dá)到設(shè)定的目標(biāo)。單片機(jī)的最小系統(tǒng)由晶振電路和復(fù)位電路組成,如圖 3-4 是復(fù)位和晶振部分的原理圖。 圖 3-4 復(fù)位和晶振部分原理圖 9 (1)復(fù)位電路 在系統(tǒng)開始運(yùn)行的時(shí)候,都需要對(duì)系統(tǒng)進(jìn)行一個(gè)初始化,而在單片機(jī)的最 小系統(tǒng)中,復(fù)位電路就是為了把電路系統(tǒng)初始化而存在的,復(fù)位電路的原理就 是在將單片機(jī)的電阻和電容接在單片機(jī)的復(fù)位引腳 RST 上,實(shí)現(xiàn)一個(gè)上電復(fù)位, 只有當(dāng)復(fù)位電平持續(xù)兩個(gè)機(jī)器周期以上時(shí)復(fù)位才有效。具體的數(shù)值可以由 RC 電路計(jì)算出來。 (2)晶振電路(時(shí)鐘電路) 只要是一個(gè)完整的單片機(jī)系統(tǒng),就一定會(huì)有晶振,晶振是通過一種能把機(jī) 械能和電能進(jìn)行相互轉(zhuǎn)化的晶體在共振的狀態(tài)下進(jìn)行工作,從而提供穩(wěn)定而精 確的單頻振蕩。晶振在整個(gè)單片機(jī)系統(tǒng)里的作用是不可或缺的,它與單片機(jī)的 內(nèi)部電路相結(jié)合,產(chǎn)生一個(gè)單片機(jī)所需要的時(shí)鐘頻率,晶振提供的時(shí)鐘頻率越 高,單片機(jī)的運(yùn)行速度就會(huì)越快,單片對(duì)整個(gè)系統(tǒng)所執(zhí)行的一切指令都是建立 在晶振提供的這個(gè)時(shí)鐘頻率之上的。 3.4.2 單片機(jī)控制的電路設(shè)計(jì) 在整個(gè)系統(tǒng)中,單片機(jī)外接電源供電模塊、溫濕度采集模塊、按鍵輸入模 塊、顯示模塊和水泵驅(qū)動(dòng)模塊(此系統(tǒng)用一個(gè)綠色的指示燈來代替) 。當(dāng)電源為 整個(gè)系統(tǒng)供電后,溫濕度采集模塊和按鍵輸入模塊對(duì)單片機(jī)提供數(shù)字信號(hào),單 片機(jī)再依據(jù)編寫的程序指令來控制顯示屏的顯示結(jié)果以及水泵是否啟動(dòng)繼電器 進(jìn)行灌溉(綠色指示燈是否亮) 。圖 3-5 是單片機(jī)控制模塊(MCU)原理圖。 圖 3-5 MCU 原理圖 3.5 濕度采集模塊 3.5.1 溫濕度傳感器 DHT11 的原理 1)DHT11 的概述 10 DHT11 傳感器是一款溫濕度復(fù)合傳感器,它和單片機(jī)之間工作時(shí)不需要進(jìn) 行 A/D 模數(shù)轉(zhuǎn)換,直接輸送給單片機(jī)的信號(hào)就是已校準(zhǔn)的數(shù)字信號(hào),由于它的 這一性能,所以專用于溫濕度傳感技術(shù)和數(shù)字模塊采集技術(shù)方面,以確保產(chǎn)品 有極高的穩(wěn)定性與可靠性。傳感器的內(nèi)部結(jié)構(gòu)由一個(gè)電阻式感濕原件和一個(gè) NTC 測溫元件組成,同時(shí)還與一個(gè)高性能的 8 位單片機(jī)相連接。因此,該產(chǎn)品 具有體積小、接口簡單、品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等 特點(diǎn),性價(jià)比極高。也正是由于 DHT11 傳感器的這些優(yōu)勢(shì),使它在自動(dòng)控制和 家電品領(lǐng)域中擁有較高的應(yīng)用價(jià)值。圖 3-6 為溫濕度采集模塊系統(tǒng)原理圖。 圖 3-6 溫濕度模塊系統(tǒng)原理圖 2)DHT11 的引腳及硬件電路設(shè)計(jì) DHT11 傳感器采用的是 4 針單排引腳封裝。引腳說明如表 3.4 所示 表 3.4 DHT11 引腳說明 DHT11 溫濕度傳感器有 4 個(gè)引腳,其中第一和第四個(gè)引腳分別接電源正極 和接地,第三個(gè)引腳置空,第二個(gè)引腳和 STC89C52 單片機(jī)的 p2.4 引腳連接, 當(dāng)接通電源后,主機(jī)(微處理器)發(fā)送一次開始信號(hào),DHT11 從低功耗模式轉(zhuǎn) 換到高速模式,等待主機(jī)的開始信號(hào)結(jié)束后,DHT11 發(fā)送響應(yīng)信號(hào),送出 40 位的測量數(shù)據(jù),并觸發(fā)一次信號(hào)采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。當(dāng) DHT11 接 收到開始信號(hào)后觸發(fā)一次溫濕度采集,如果沒有接收到 mcu 發(fā)送的開始信號(hào), DHT11 不會(huì)主動(dòng)對(duì)溫濕度進(jìn)行采集。采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。 3)DHT11 特性(如表 3.5 所示) 11 表 3.5 DHT11 特性 3.6 液晶顯示模塊 3.6.1 LCD1602 液晶模塊簡介 本系統(tǒng)的顯示器采用的是 LCD1602 液晶顯示器,它專門用于數(shù)字、字母、 符號(hào)等的顯示。同時(shí)它也是一個(gè) 2 行16 個(gè)字符的字符型液晶顯示器。它是由 32 個(gè)字符點(diǎn)陣塊組成的,而每個(gè)字符點(diǎn)陣塊又由 57 或 511 個(gè)點(diǎn)陣組成, 每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間 也有間隔,起到了字符間距和行間距的作用,可以顯示 ASCII 碼表中的所有可 視的字符。圖 3-7 為液晶顯示模塊系統(tǒng)原理圖。 液晶顯示模塊和單片機(jī)的 p0 端口連接,單片機(jī)會(huì)把傳感器傳送給它的數(shù)字 信號(hào)進(jìn)行處理后把實(shí)際溫濕度值和設(shè)定的溫濕度下限值顯示在顯示屏上。 圖 3-7 液晶顯示模塊系統(tǒng)原理圖 3.6.2 LCD1602 的引腳及電路設(shè)計(jì) LCD1602 采用標(biāo)準(zhǔn)的 16 腳接口,其中各引腳的功能如下(表 3.3): 表 3.3 LCD1602 各引腳的功能 12 LCD1602 的第 1 和第 2 號(hào)引腳分別接 GND 和 VCC,第 3 引腳 VEE 沒有 接,這個(gè)腳是控制屏幕對(duì)比度的??梢詫㈦娢黄鞯膬啥朔謩e接 VCC 和 GND, 中間端接 LCD1602 的第 3 腳。第 4 號(hào)腳與單片機(jī)的 P1.0 端口連接,第 5 號(hào)引 腳接地,第 6 號(hào)引腳與單片機(jī)的 p1.1 端口連接,第 714 號(hào)引腳與單片機(jī)的 p0.0p0.7 端口連接,第 15 和 16 號(hào)引腳分別接 VCC 和 GND。當(dāng)單片機(jī)與 LCD1602 顯示屏電路連接好后,只要把控制液晶顯示模塊的程序下載到單片機(jī) 中,單片機(jī)就能控制顯示屏的顯示結(jié)果。本設(shè)計(jì)顯示屏能夠分別顯示溫濕度的 實(shí)際值和設(shè)定值。 3.7 按鍵輸入模塊 本設(shè)計(jì)的按鍵輸入模塊是由 4 個(gè)規(guī)格為 6*6*5 的四腳按鍵構(gòu)成的,S1 接單 片機(jī)的 p2.3,具有增加設(shè)定溫度值的功能;S2 接單片機(jī)的 p2.2,具有降低設(shè)定 溫度值的功能;S3 接單片機(jī)的 p2.1,具有提高設(shè)定濕度值的功能;S4 接單片 機(jī)的 p2.0,具有降低設(shè)定濕度值的功能(每次按鍵后增減的幅度值為 1) 。用戶 可以根據(jù)植物生長適宜的濕度環(huán)境來設(shè)定相應(yīng)的溫濕度值。圖 3-8 是按鍵輸入 模塊的系統(tǒng)原理圖。 13 圖 3-8 按鍵輸入模塊系統(tǒng)原理圖 3.8 水泵增濕模塊 水泵增濕模塊與單片機(jī)的 p1.5 連接,當(dāng)傳感器檢測的濕度值低于設(shè)定值 10%時(shí), 單片機(jī)給 IN4148 開關(guān)二極管一個(gè)正向電壓,這是二極管的電阻很小,電路處于 導(dǎo)通狀態(tài),相當(dāng)于接通一個(gè)開關(guān),使水泵進(jìn)行灌溉(綠色指示燈亮) ,在灌溉的 過程中,當(dāng)傳感器檢測到的濕度值高于設(shè)定值 10%時(shí),單片機(jī)又給二極管一個(gè) 反向電壓,這是二極管的電阻值就會(huì)很大,相當(dāng)于一只斷開的開關(guān),使水泵停 止灌溉(綠色指示燈滅) ,將程序錄入單片機(jī)后,通過單片機(jī)對(duì)二極管的控制便 能控制水泵是否進(jìn)行灌溉。圖 3-9 是水泵模塊的系統(tǒng)原理圖。 圖 3-9 水泵模塊系統(tǒng)原理圖 4 4 系統(tǒng)軟件設(shè)計(jì)系統(tǒng)軟件設(shè)計(jì) 4.1 程序設(shè)計(jì) 4.1.1 主程序流程及相關(guān)說明 首先依照系統(tǒng)所要實(shí)現(xiàn)的功能和實(shí)現(xiàn)這個(gè)功能的原理,設(shè)計(jì)一個(gè)主程序流 程圖,智能灌溉控制系統(tǒng)工作流程圖如圖 4-1 所示。然后按照這個(gè)流程圖在 14 Keil Vision3 軟件中進(jìn)行程序的開發(fā)(設(shè)計(jì)與編譯) 。接通電源后開始,進(jìn)行單 片機(jī)數(shù)據(jù)初始化、顯示器初始化、傳感器采集數(shù)據(jù)并顯示到顯示器上,接著判 斷是否處于灌溉狀態(tài)和按鍵掃描。程序循環(huán)掃描設(shè)定按鍵是否被按下,當(dāng)按鍵 按下時(shí),進(jìn)入設(shè)定模式,設(shè)定溫濕度值下限,若沒有按下按鍵則繼續(xù)采集溫濕 度值。接著返回到測量程序,若處于灌溉狀態(tài),則當(dāng)檢測到的濕度值高于設(shè)定 值 10%時(shí)停止灌溉,若處于非灌溉狀態(tài),則判斷檢測到的濕度值是否小于設(shè)定 值的 10%,若小于,則啟動(dòng)水泵灌溉,若不小于,則繼續(xù)采集溫濕度,如此循 環(huán)進(jìn)行下去 圖 4-1 智能灌溉控制系統(tǒng)的主程序流程圖 4.2 主程序代碼 1)主程序: void main() uchar i,j=100; init_1602();/初始化 1602 15 while(1) j+; /利用 j 的累加刷新顯示 1206 的頻率, if(j250) / j=0; display(); /調(diào)用溫度濕度讀取函數(shù) 顯示實(shí)際溫度濕度 /檢測按鍵 S1 按下,溫度值加 1 k0=k1; k1=s4;/溫度加 if(k0 /檢測按鍵 S2 按下,溫度值減 1 k2=k3; k3=s3;/溫度減 if(k2 /檢測按鍵 S3 按下,濕度值加 1 k4=k5; k5=s2; /濕度加 if(k4 /檢測按鍵 S4 按下,濕度值減 1 k6=k7; k7=s1; /濕度減 if(k6 2)讀取溫度與濕度值代碼如下: void RH() /主機(jī)拉低 18ms DS=0; delay_ms(18); DS=1; /主機(jī)拉高 20-40us delay_us(10); if(!DS) /T ! sum=2; while(!DS) sum=2; while(DS) rh_h_temp=COM(); rh_l_temp=COM(); temp_h_temp=COM(); temp_l_temp=COM(); check_temp=COM(); DS=1; sum_temp=(temp_h_temp+temp_l_temp+rh_h_temp+rh_l_temp); if(sum_temp=check_temp) rh_h=rh_h_temp; rh_l=rh_l_temp; temp_h=temp_h_temp; temp_l=temp_l_temp; check=check_temp; /fi 17 /fi 3)顯示實(shí)現(xiàn)溫濕度的程序: void display(void) RH(); /讀 DH113 函數(shù) write_com(0XC8); /發(fā)送顯示指令 write_date(temp_h/10%10+48); /顯示溫度的十位 write_date(temp_h%10+48); /顯示溫度的個(gè)位 write_date(C); /顯示溫度的字符 C write_com(0X88); / write_date(rh_h/10%10+48); write_date(rh_h%10+48); write_date(%); /顯示濕度的表示比例的字符% /顯示設(shè)定溫度濕度 write_com(0XCD); write_date(set_temp/10%10+48); write_date(set_temp%10+48); write_date(C); write_com(0X8D); write_date(set_rh/10%10+48); write_date(set_rh%10+48); write_date(%); if(rh_h(set_rh+10) kk=1 5 測試結(jié)果與分析 5.1 測試環(huán)境 本設(shè)計(jì)的測試是在我自己的寢室完成的。接通外接電源后, 對(duì)主控板實(shí)物 18 進(jìn)行測試,當(dāng)達(dá)到灌溉的條件時(shí),使用水噴壺對(duì)傳感器噴水,使檢測到的實(shí)際 濕度不斷提高,再達(dá)到停止灌溉的條件時(shí),使用電吹風(fēng)對(duì)傳感器進(jìn)行吹風(fēng)處理, 相當(dāng)于水分的蒸發(fā)和土壤的吸收導(dǎo)致實(shí)際濕度降低。 5.2 測試結(jié)果 圖 5-1 至 5-6 為自動(dòng)灌溉控制系統(tǒng)的主控板實(shí)物圖的測試過程及結(jié)果,單 片機(jī)放在 LCD1602 液晶顯示器的下面,左側(cè)下方接口為電源接口,右側(cè)上方接 口為溫濕度傳感器接口,左側(cè)紅色指示燈為電源指示燈,右側(cè)綠色指示燈代表 水泵驅(qū)動(dòng)系統(tǒng),當(dāng)濕度低于設(shè)定值 10%時(shí)綠色指示燈亮起(代表灌溉) ,一直灌 溉到濕度高于設(shè)定值 10%時(shí)綠色指示燈熄滅(停止灌溉) ,當(dāng)水分由于蒸發(fā)、吸 收等使?jié)穸戎翟俅蔚陀谠O(shè)定值的 10%時(shí),指示燈又亮起,如此循環(huán)進(jìn)行。經(jīng)實(shí) 際操作測試,符合目標(biāo)要求 。 圖 5-1 實(shí)際濕度低于設(shè)定值 10%進(jìn)行灌溉(綠色指示燈亮) 19 圖 5-2 灌溉后濕度達(dá)到設(shè)定值繼續(xù)灌溉(綠色指示燈亮) 圖 5-3 灌溉后濕度值高于設(shè)定值 10%停止灌溉(綠色指示燈滅) 圖 5-4 濕度降至高于設(shè)定值 10%以內(nèi)不灌溉(綠色指示燈滅) 20 圖 5-5 濕度降至低于設(shè)定值 10%以內(nèi)不灌溉(綠色指示燈滅) 圖 5-6 濕度降至低于設(shè)定值 10%后進(jìn)行灌溉(綠色指示燈亮) 21 6 調(diào)試與使用說明 調(diào)試過程如下: (1) 、在 Keil 軟件中設(shè)置產(chǎn)生 HEX 文件,并將晶振頻率設(shè)為 12MHZ,如圖 6-1 所示,然后進(jìn)行編譯。 圖 6-1 KEIL3 設(shè)置截圖 (2) 、利用 STC-ISP(v6.67c)軟件將程序下載到 STC89C52 單片機(jī)里面,如 圖 6-2 所示,使實(shí)物圖能夠進(jìn)行演示。 圖 6-2 下載程序截圖 使用說明:先將傳感器、電源接入到主系統(tǒng)板上,將傳感器插入到土壤中, 插上電源,系統(tǒng)供電正常時(shí),液晶顯示器會(huì)顯示當(dāng)前測量的土壤濕度值和溫度 值,按設(shè)定鍵進(jìn)入設(shè)定模式,并在設(shè)定模式里按 3 鍵和 4 鍵進(jìn)行設(shè)定濕度下限 值的增減,待設(shè)定完成后,在測量模式中,判斷當(dāng)前測量濕度,如果小于設(shè)定 濕度值的 10%,則綠色指示燈亮起(即表示進(jìn)行灌溉) 。 22 7 結(jié)論 經(jīng)過了近一個(gè)學(xué)期的學(xué)習(xí)和努力,我終于完成了基于單片機(jī)的模擬智能 灌溉控制系統(tǒng)的設(shè)計(jì)。從剛開始接到這個(gè)論文(設(shè)計(jì))題目到電路的設(shè)計(jì), 到硬件實(shí)物的完成,然后到程序的一步步調(diào)試實(shí)現(xiàn)整個(gè)系統(tǒng)所需的功能,再到 論文文本的初步完成,最后再到定稿對(duì)我來說每走一步艱難的,同時(shí)每一步也 都是新的嘗試與挑戰(zhàn)。在這近一個(gè)學(xué)期的時(shí)間里,我學(xué)到了很多有關(guān)單片機(jī)方 面的知識(shí),也有很多感受,通過自己獨(dú)立學(xué)習(xí)、思考和實(shí)驗(yàn),并查看了許多相 關(guān)的資料和書籍,不懂的地方也會(huì)主動(dòng)的請(qǐng)教老師和其他會(huì)的人,使自己頭腦 中一些模糊的概念逐步清晰,使設(shè)計(jì)一步一步完善,每一次的改進(jìn)都是我學(xué)習(xí) 的收獲,每一次實(shí)驗(yàn)的成功都會(huì)讓我有很大的成就感,會(huì)讓我更加自信,更有 激情和動(dòng)力。 雖然我的畢業(yè)設(shè)計(jì)作品不是很成熟,也存在很多的不足之處,其中缺少了 光照模塊和水泵電路,而且溫度值也只起到了參考作用,這個(gè)是非常遺憾的。 但值得我高興的是,本次設(shè)計(jì)里的硬件實(shí)物制作和軟件的編寫。當(dāng)看著電路的 完成,硬件實(shí)物的完成,程序的一步步成功的運(yùn)行,讓我越來越有自信能很好 的完成本次設(shè)計(jì),我相信在整個(gè)系統(tǒng)設(shè)計(jì)和論文編寫過程中碰到的困難與挫折, 最終都會(huì)化成幸福的笑臉。 完成這次畢業(yè)設(shè)計(jì)的經(jīng)歷讓我收獲頗多,讓我感受到做任何事情要想完成 好它就必須踏實(shí)認(rèn)真、努力用心去做的,是一個(gè)自己親自學(xué)習(xí)和研究的過程, 沒有認(rèn)真仔細(xì)的去學(xué)習(xí)就不可能獲得較為全面的知識(shí),而沒有獲得全面的知識(shí) 也就不可能有研究的能力,如果自己不去親自實(shí)驗(yàn)研究,就不會(huì)有所突破和創(chuàng) 新,如果沒有突破和創(chuàng)新,那就失去了畢業(yè)設(shè)計(jì)的初衷和意義。通過這次畢設(shè), 我相信在以后當(dāng)我碰到困難和挫折時(shí)一定能堅(jiān)韌的去克服它,勇往直前,在以 后的學(xué)習(xí)和生活中一定能更上一層樓。 23 參考文獻(xiàn) 1 王友貞節(jié)水灌溉與農(nóng)業(yè)可持續(xù)發(fā)展M 中國機(jī)械出版社,2005:15 23 2 劉建輝單片機(jī)智能控制技術(shù)M國防工業(yè)出版社,2007 3 吳普特,牛文全,郝宏科現(xiàn)代化高效節(jié)水灌溉設(shè)施M化學(xué)工業(yè)出版 社,2002:1237 4 涂安富,金誠謙,吳崇友,盧宴,鐘偉民幾種節(jié)水灌溉新技術(shù)分析 M中國農(nóng)機(jī)化出版社,2005 5 劉明真,陳鴻基于單片機(jī)智能節(jié)水灌溉系統(tǒng)的設(shè)計(jì)J學(xué)術(shù)問題研 究,2010-06-15:0815 6 宮建華,徐志祥,袁虎成,張家桂基于單片機(jī)技術(shù)的灌溉控制系統(tǒng)的設(shè) 計(jì)與實(shí)現(xiàn)J機(jī)械研究與應(yīng)用,2004-04-30 7 劉瑞新單片機(jī)原理及應(yīng)用教程M機(jī)械工業(yè)出版社,2003-07 8 鄭毛祥單片機(jī)應(yīng)用基礎(chǔ)M人民郵電出版社,2009-02 9 鄭鋒51 單片機(jī)典型應(yīng)用開發(fā)范例大全M中國鐵道出版社,2011 10 張連華單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)方法J科學(xué)之友,2010-04 11 范風(fēng)強(qiáng),蘭嬋麗單片機(jī)語言 C51 應(yīng)用實(shí)戰(zhàn)集錦M電子工業(yè)出版社, 2003-03-01 12 譚浩強(qiáng)C 程序設(shè)計(jì)M清華大學(xué)出版社,2006 13 趙負(fù)圖傳感器集成電路手冊(cè)M化學(xué)工業(yè)出版社,2004 14 趙燕傳感器原理及應(yīng)用M北京大學(xué)出版,2010-02-01 15 蔡自興智能控制M電子工業(yè)出版社,2004 16 吳景社,李久生21 世紀(jì)節(jié)水農(nóng)業(yè)中的高新技術(shù)重點(diǎn)研究領(lǐng)域M 農(nóng) 業(yè)工程出版社,2003 17 李泉溪 單片機(jī)原理與應(yīng)用實(shí)例仿真M 北京:北京航空航天大學(xué)出 版 社,2009:3845. 24 附錄 1 元器件清單: 序號(hào)名稱型號(hào)數(shù)量 1單片機(jī)ATS89C521 2傳感器DHT111 3電位器5K1 4繼電器5V1 5顯示屏LCD16021 6RR 排阻10K1 7二極管IN41481 8三極管85501 9電容30PF2 10電阻1K3 11按鍵開關(guān)6*6*54 12晶振12MHZ1 13指示燈3MM2 14接口3 25 附錄 2 基于 STC89C52 單片機(jī)的智能灌溉控制系統(tǒng) PCB 圖: 26 附錄 3 DHT11 模塊代碼: #include #include “DHT11.H“ sbit DS=P24; uchar sum=0,sum_temp=0; uchar temp_h,temp_l,rh_h,rh_l,check; uchar temp_h_temp,temp_l_temp,rh_h_temp,rh_l_temp,check_temp; void delay_ms(uint i) uint j; for(i;i;i-) for(j=123;j;j-); void delay_us(uchar i) while(-i); uchar COM(void) uchar i,value; for(i=8;i;i-) sum=2; while(!DS) delay_us(10); value #include“l(fā)cd1602B.h“ void delay(uint i) uint j; for(i;i;i-) for(j=123;j;j-); void write_com(uchar com) RS = 0; P0 = com; delay(1); EN = 1; delay(1); EN = 0; void write_date(uchar date) RS = 1; P0 = date; delay(1); EN = 1; delay(1); EN = 0; 29 void init_1602() /RW = 0; / 0X38 基本指令集 write_com(0X38); / 0X0C 開顯示,關(guān)游標(biāo),不反白,0X0E 開游標(biāo),0X0F 開游標(biāo),反白 write_com(0X0C); / 0X06 寫一個(gè)地址和光標(biāo)+1 write_com(0X06); write_com(0X01); write_com(0X80); / 0X10 光標(biāo)左移 / write_1602(0,0X10); / 0X14 光標(biāo)右移 / write_1602(0,0X14); / 0X18 整屏左移 / write_1602(0,0X18); / 0X1C 整屏右移 / write_1602(0,0X1C);