【文章內(nèi)容簡介】
下是詳細(xì)的工作原理:溫濕度傳感器DHT11對當(dāng)前的溫濕度進行采集,測量發(fā)射子系統(tǒng)的控制芯片SAT89C51對采集溫度數(shù)據(jù)進行處理,將有用數(shù)據(jù)送給無線發(fā)射模塊NRF24L01,控制顯示子系統(tǒng)的無線接受模塊NRF24L01接受數(shù)據(jù)送給控制芯片SAT89C51,由SAT89C51對數(shù)據(jù)進行分析處理,然后對當(dāng)前實際溫濕度進行顯示;如果有需要,可以通過獨立鍵盤對溫濕度的報警上下限進行設(shè)置,當(dāng)獲取的溫濕度超過設(shè)置的上下限時,控制繼電器導(dǎo)通,蜂鳴器響,同時點亮發(fā)光二極管;當(dāng)檢測到的溫濕度在報警的上下限范圍內(nèi),則系統(tǒng)正常運行。 該系統(tǒng)分為控制顯示子系統(tǒng),測量發(fā)射子系統(tǒng);控制顯示子系統(tǒng)主要包括主程序、無線接受程序、LCD顯示程序、聲光報警程序、按鍵控制程序;測量發(fā)射子系統(tǒng)主要分為主程序、溫濕度測量程序、無線發(fā)送程序。 控制顯示子系統(tǒng)程序流程圖、。首先,對NRF24L01進行初始化,將其調(diào)整為接受模式,并打開接受數(shù)據(jù)的指示燈,讀取狀態(tài)寄存器,開辟接受數(shù)據(jù)存放空間,然后對LCD1602進行初始化,準(zhǔn)備工作完畢。從NRF24L01得到數(shù)據(jù)后,經(jīng)過處理顯示到LCD1602上,同時還有3個按鍵分別為設(shè)置(確定)鍵,+鍵和—鍵,能夠分別設(shè)置溫度和濕度的上限和下限判斷當(dāng)前溫濕度是否超過設(shè)置的上下限,超過則通過給繼電器一個低電平,使繼電器導(dǎo)通,蜂鳴器響,并點亮二極管。開始是否報警NRF24L01初始化 是 否本地報警LCD1602初始化顯示溫濕度接收溫濕度數(shù)據(jù)鍵盤掃描溫濕度數(shù)據(jù)處理 首先,初始化NRF24L01,調(diào)整到發(fā)送模式,并打開接受指示燈,讀取狀態(tài)寄存器,開辟接受數(shù)據(jù)存放空間,讀取由溫濕度傳感器DHT11采集當(dāng)前的溫濕度,經(jīng)過處理,關(guān)閉接受指示燈,打開發(fā)送指示燈,發(fā)送到控制顯示子系統(tǒng)。關(guān)閉發(fā)送指示燈,并調(diào)整到接受狀態(tài)。 測量發(fā)射子系統(tǒng)程序流程圖 發(fā)射數(shù)據(jù)時,首先將nRF24L01配置為發(fā)射模式:接著把接收節(jié)點地址TX_ADDR和有效數(shù)據(jù)TX_PLD按照時序由SPI口寫入nRF24L01緩存區(qū),TX_PLD必須在CSN為低時連續(xù)寫入,而TX_ADDR在發(fā)射時寫入一次即可,然后CE置為高電平并保持至少10μs,延遲130μs后發(fā)射數(shù)據(jù)。若自動應(yīng)答開啟,那么nRF24L01在發(fā)射數(shù)據(jù)后立即進入接收模式,接收應(yīng)答信號(自動應(yīng)答接收地址應(yīng)該與接收節(jié)點地址TX_ADDR一致)。如果收到應(yīng)答,則認(rèn)為此次通信成功,TX_DS置高,同時TX_PLD從TX FIFO中清除。若未收到應(yīng)答,則自動重新發(fā)射該數(shù)據(jù)(自動重發(fā)已開啟),若重發(fā)次數(shù)(ARC)達到上限,MAX_RT置高,TX FIFO中數(shù)據(jù)保留以便在次重發(fā)。MAX_RT或TX_DS置高時,使IRQ變低,產(chǎn)生中斷,通知MCU。最后發(fā)射成功時,若CE為低則nRF24L01進入空閑模式1。若發(fā)送堆棧中有數(shù)據(jù)且CE為高,則進入下一次發(fā)射。若發(fā)送堆棧中無數(shù)據(jù)且CE為高,則進入空閑模式2。接收數(shù)據(jù)時,首先將nRF24L01配置為接收模式,接著延遲130μs進入接收狀態(tài)等待數(shù)據(jù)的到來。當(dāng)接收方檢測到有效的地址和CRC時,就將數(shù)據(jù)包存儲在RX FIFO中,同時中斷標(biāo)志位RX_DR置高,IRQ變低,產(chǎn)生中斷,通知MCU去取數(shù)據(jù)。若此時自動應(yīng)答開啟,接收方則同時進入發(fā)射狀態(tài)回傳應(yīng)答信號。接收成功時,若CE變低,則nRF24L01進入空閑模式1,[9]。 無線發(fā)送程序流程圖 無線接受程序流程圖 LCD顯示程序 顯示數(shù)據(jù)時,屏幕初始化,待機開始尋找溫濕度傳感器,判斷是否收到數(shù)據(jù),如果收到數(shù)據(jù)則進入顯示頁面,讀取收到的數(shù)據(jù),并進行顯示,如果沒有收到數(shù)據(jù),則留在待機頁面。開始屏幕初始化 待機畫面N尋找溫濕度傳感器顯示數(shù)據(jù) 結(jié)束 圖 LCD顯示程序 溫濕度采集程序 開始采集當(dāng)前溫濕度時,先設(shè)置延時,然后初始化DHT11,判斷從機是否有低電平響應(yīng)信號 如不響應(yīng)則跳出,響應(yīng)則向下運行,若從機發(fā)出 80us 的低電平響應(yīng)信號,則繼續(xù)向下運行,讀取溫濕度數(shù)據(jù),顯示溫濕度的顯示地址,經(jīng)過轉(zhuǎn)化,傳送出當(dāng)前的溫濕度,若從機發(fā)出 80us 的高電平,如發(fā)出則進入數(shù)據(jù)接收狀態(tài)。開始設(shè)置延時數(shù)據(jù)接受狀態(tài)初始化DHT11響應(yīng)信號 讀取溫濕度 DHT11流程圖 軟件仿真采用Proteus7仿真,Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調(diào)試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。是目前世界上唯一將電路仿真軟件、PCB設(shè)計軟件和虛擬模型仿真軟件三合一的設(shè)計平臺[1]。由于無線模塊NRF24L01在模擬仿真中無法實現(xiàn),所以采用的是雙機通信原理實現(xiàn)部分仿真。在上面的控制顯示子系統(tǒng),在下面的是測量顯示子系統(tǒng)??刂骑@示子系統(tǒng)的單片機的x1,x2為晶振電路,負(fù)責(zé)給單片機一個波信號。Restet管腳負(fù)責(zé)鏈接復(fù)位電路,還有兩個發(fā)射接受信號的指示燈,3管腳鏈接蜂鳴器報警器,當(dāng)單片機給一個低電壓時,蜂鳴器報警。四個狀態(tài)輸出管腳鏈接四個繼電器驅(qū)動,當(dāng)單片機給一個低電平時,繼電器導(dǎo)通,點亮二極管,達到聲光報警的目的。P0P7鏈接一個上拉電阻,負(fù)責(zé)液晶顯示屏顯示, V,所以要加一個穩(wěn)壓電路。當(dāng)溫度低于最低門限值時,紅燈亮,報警器報警,LCD顯示當(dāng)前溫度;當(dāng)溫度在設(shè)置范圍類時,LCD顯示當(dāng)前溫度;當(dāng)溫度超過最高門限時,黃燈亮,報警器報警。 硬件仿真原理圖軟件采用Keil uVision4進行編寫和調(diào)試,其功能和界面都有很大的改變。Keil4軟件調(diào)試是非常有用的,能夠減少開發(fā)時間,其能夠?qū)崿F(xiàn)單步,全速,在線仿真。并且其編譯器、調(diào)試工具實現(xiàn)與ARM器件的最完美匹配??刂骑@示子系統(tǒng)的程序包括主程序,以及主程序中調(diào)用的NRF24L01函數(shù),以及1602液晶顯示函數(shù),按鍵KEY函數(shù),測量發(fā)射子系統(tǒng)包括主程序,以及主程序中調(diào)用的DHT11函數(shù),NRF24L01函數(shù)。 軟件調(diào)試圖當(dāng)開啟控制顯示子系統(tǒng),開始接受數(shù)據(jù),若無法接受數(shù)據(jù),接受信號指示燈常亮,如圖 ,屏幕顯示無設(shè)備。圖 打開測量顯示子系統(tǒng),控制顯示子系統(tǒng)接受到數(shù)據(jù),收發(fā)數(shù)據(jù)指示燈閃爍正常,在1602上顯示當(dāng)前溫濕度。圖 按下設(shè)置限制按鍵,屏幕顯示所要設(shè)置的溫濕度限值。圖 將溫度下限設(shè)置高于當(dāng)前溫度,繼電器導(dǎo)通,代表低溫報警的二極管點亮,蜂鳴器報警正常。 本系統(tǒng)主要指標(biāo)就在于所實現(xiàn)的功能是否達到了任務(wù)書要求,本系統(tǒng)通過NRF24L01無線模塊傳送數(shù)據(jù),并集中顯示其溫度和濕度,測量范圍為1050℃,濕度為0100%;℃,濕度測量誤差為2%;當(dāng)溫濕度超過所設(shè)置的上下限時,可實現(xiàn)聲光報警。 通過仿真測試,測試溫度與普通溫度計和濕度計測試數(shù)據(jù)基本一致,顯示精度提高。在30米的范圍內(nèi)傳送數(shù)據(jù)基本正常。聲光報警工作正常,基本實現(xiàn)了任務(wù)書要求。 本設(shè)計以單片機STC89C51為開發(fā)平臺,根據(jù)NRF24L01無線收發(fā)模塊,DHT11溫濕度傳感器及LCD1602的特性及工作原理構(gòu)想出來的,通過軟件硬件相結(jié)合而設(shè)計成功的無線溫濕度監(jiān)控系統(tǒng)。已基本完成基于單片機STC89C51的無線溫度監(jiān)控系統(tǒng)的整體方案的設(shè)計,以及無線收發(fā)模塊的選型和硬件電路和供電系統(tǒng)的設(shè)計。在設(shè)計制作過程中,也遇到很多問題,在無線傳輸部分,因為仿真軟件OPNET中沒有NRF24L01模塊,導(dǎo)致仿真一度無法顯示結(jié)果,最后,采用的是雙機通信原理實現(xiàn)部分仿真,才實現(xiàn)仿真結(jié)果。在顯示模塊,給系統(tǒng)上電后,液晶屏初始化失敗,經(jīng)檢查發(fā)現(xiàn),設(shè)計電路中液晶屏的8個數(shù)據(jù)端口少接了上拉電阻,并且主芯片的31(_EA)管腳沒有接電源,導(dǎo)致無法訪問片內(nèi)存儲器,經(jīng)過修改后,再次上電后,初始化成功。在軟件編寫的時候,經(jīng)常無法正常工作,后來請教很多同學(xué),終于找到問題所在,順利解決了問題。在經(jīng)過認(rèn)真的模擬仿真調(diào)試后,各項性能指標(biāo)基本達到要求,基本功能都已實現(xiàn)。本次設(shè)計,無線溫濕度監(jiān)控系統(tǒng)可被廣泛應(yīng)用于溫度測量或相應(yīng)的可轉(zhuǎn)換為溫度量或供電故障監(jiān)控的工業(yè)、農(nóng)業(yè)、環(huán)保、服務(wù)業(yè)、安全監(jiān)控等工程中,讓工人與惡劣的工作環(huán)境分離開,實現(xiàn)生產(chǎn)種植的智能化,科技化。雖然這個設(shè)計做的比較簡單,很多東西都考慮的不是很細(xì),也有一些特別情況沒有做,但是用了很多精力用來完成這個論文,鑒于個人水平和時間的關(guān)系所以并沒有把自己當(dāng)初設(shè)想的所有情況都考慮進去,本系統(tǒng)還是一個不完善的系統(tǒng),還有許多需要改進的地方。設(shè)計中當(dāng)溫濕度超出所設(shè)置的限值后,只出現(xiàn)聲光報警而沒有進行進一步操作,比如加一個小風(fēng)扇,降低濕度什么的。還有各種不足之處有待將來改進。這兩個月的畢業(yè)設(shè)計讓我學(xué)會的很多,覺得自己學(xué)的太少還有很多需要認(rèn)真學(xué)習(xí),學(xué)無止境,我必須更加努力學(xué)習(xí)才能適應(yīng)越來越激烈的社會競爭。第 17 頁 共 48 頁致謝本次畢業(yè)論文設(shè)計已經(jīng)告一段落,回首這幾個月的辛苦,有汗水也有歡笑。感謝我的學(xué)校,給了我這次機會,讓我把大學(xué)四年來學(xué)到的東西全部付諸實踐。在這幾個月的時間里,我不但要找工作,還要學(xué)習(xí)新的知識,所以在學(xué)校的時間不是很多,因為有了同學(xué)們和老師的幫助,我才能順利完成本次畢業(yè)設(shè)計。魏老師從選題指導(dǎo)、開題報告的撰寫、論文框架到細(xì)節(jié)修改,都給予了細(xì)致的指導(dǎo)和幫助,提出了很多寶貴的意見與建議。硬件設(shè)計過程中也遇到一些問題,第一次給系統(tǒng)上電后,液晶屏略微發(fā)暗,經(jīng)檢查發(fā)現(xiàn),是設(shè)計電路控制LCD顯示屏的兩個電阻沒有選擇正確,后來經(jīng)過老師的指導(dǎo),我順利完成了硬件部分的設(shè)計,在此要對老師說聲謝謝。魏老師以其嚴(yán)謹(jǐn)求實的治學(xué)態(tài)度、高度的敬業(yè)精神、兢兢業(yè)業(yè)、孜孜以求的工作作風(fēng)和大膽創(chuàng)新的進取精神對我產(chǎn)生重要影響。她淵博的知識、開闊的視野和敏銳的維給了我很大的觸動。感謝所有給我傳道授業(yè)解惑的老師,沒有這些年你們的諄諄教誨,我沒有這么大的動力和信心完成這篇論文。感恩之余,誠懇地請各位老師對我的論文多加批評指正,使我及時完善論文的不足之處。大學(xué)四年,陜西理工學(xué)院給我留下了美好的回憶。特別是在我即將走上社會的同時,學(xué)校的畢業(yè)設(shè)計給了我這樣一個鍛煉的機會,使我加深了對以前知識的理解和鞏固,拓寬了知識面,提高了我處理事物的能力。 謹(jǐn)以此致謝最后,我要向百忙之中抽時間對本文進行審閱的各位老師表示衷心的感謝。參考文獻[1] James S. Control UMicrocontroller[M].Trinity .[2] Edword J. of temperature control system[M].Washington .2007.[3] [M].北京:清華大學(xué)出版社,北方交通大學(xué)出版社,2010.[4] 李斯偉,[M].北京:人民郵電出版社,2009.[5] [M].武漢:華中科技大學(xué)出版社,2010.[6] [M].北京:科學(xué)技術(shù)文獻出版社,2011.[7] 黃賢武,[M].成都:電子科技大學(xué)出版社, 2010.[8] [M].北京:清華大學(xué)出版社,2010.[9] 夏路易,[M].北京:北京希望電子出版社,2009.[10][M].重慶:重慶大學(xué)出版社,2010.[11][J].北京:科學(xué)出版社,2011.[12][M].北京:高等教育出版社,2010. [13][M].北京:高等教育出版社,2010.[14][M].北京:北京航空航天大學(xué)出版社,2010.[15][M].北京:人民郵電出版社,2010.[16]姜志海,[M].北京:電子工業(yè)出版社,2008.[17]鄭鋒,王巧芝,[M].北京:中國鐵道工業(yè)出版社,2011[18][M].北京:人民郵電出版社,2011.第 19 頁 共 48 頁附錄A Ⅰ外文文獻A Microcontroller based Room Temperature Monitoring System [Abstract] Monitoring the temperature of a puter server room is a critical task to ensure the performance of the server is not disturbed by excessive room temperature. In this paper, we designed and implemented a microcontrollerbased room temperature monitoring system using Atmel ATmega8535 microcontroller and National Semiconductor39。s LM35 temperature sensor. The system is equipped with a Wave GSM modem to send and receive text message (SMS) and relay board to control electronic equipment. The experiment results show that