基于Arduino單片機(jī)的智能家居設(shè)計_第1頁
基于Arduino單片機(jī)的智能家居設(shè)計_第2頁
基于Arduino單片機(jī)的智能家居設(shè)計_第3頁
基于Arduino單片機(jī)的智能家居設(shè)計_第4頁
基于Arduino單片機(jī)的智能家居設(shè)計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、山東科技大學(xué)第三屆學(xué)生電子設(shè)計大賽技術(shù)報告基于Arduino單片機(jī)的智能家居系統(tǒng)學(xué)院: 電子通信與物理學(xué)院班級: 碩研2015級 參賽者:張榮飛 曹其棟 侯煥存摘要本文中我們基于Arduino單片機(jī)設(shè)計了一個模擬智能家居系統(tǒng)。該系統(tǒng)以Arduino UNO R3單片機(jī)為核心,外接光照檢測、溫濕度傳感器、LED、風(fēng)扇和無線通信等模塊。整個系統(tǒng)分為檢測端和控制端兩大部分,檢測端由光敏電阻、溫濕度傳感器、無線通信模塊和單片機(jī)組成??刂贫擞蔁o線接收、液晶顯示、電燈控制和風(fēng)扇控制四大模塊組成,包含單片機(jī)、無線通信模塊、LCD顯示屏、風(fēng)扇和LED等。檢測端和控制端之間借助無線通信模塊進(jìn)行無線通信,控制端內(nèi)

2、部的無線接收和液晶顯示兩個模塊之間則采用串口通信。該系統(tǒng)能夠?qū)崿F(xiàn)對室內(nèi)溫度、濕度和光照強(qiáng)度等參數(shù)的實時檢測,并借助LCD顯示溫濕度值,還可以根據(jù)檢測端探測到的光照強(qiáng)度和溫度值以及預(yù)先設(shè)定的參數(shù)對室內(nèi)的電燈和風(fēng)扇進(jìn)行智能控制。關(guān)鍵詞:智能家居;Arduino單片機(jī);自動控制;無線通信;液晶顯示目錄§1緒論11.1智能家居簡介11.2智能家居的研究意義2§2系統(tǒng)總體設(shè)計方案32.1系統(tǒng)框圖32.2系統(tǒng)工作原理簡介3§3 系統(tǒng)硬件設(shè)計43.1單片機(jī)的選擇43.1.1 Arduino UNO簡介43.1.2 Arduino單片機(jī)特色53.1.3 Arduino單片機(jī)引腳簡

3、介53.1.4 Arduino單片機(jī)編程軟件63.2溫濕度檢測模塊設(shè)計63.2.1 DHT11概述63.2.2 DHT11引腳說明73.2.3 電源引腳83.2.4 串行接口(單線雙向)83.3光照檢測模塊設(shè)計83.4無線通信模塊設(shè)計93.5液晶顯示模塊設(shè)計93.5.1液晶顯示模塊的選擇93.5.2 液晶顯示電路設(shè)計103.6其他模塊設(shè)計113.6.1電燈模塊設(shè)計113.6.2風(fēng)扇模塊設(shè)計123.7系統(tǒng)硬件實物圖12§4軟件系統(tǒng)設(shè)計134.1檢測端程序設(shè)計134.2 控制端程序設(shè)計13§5總結(jié)15參考文獻(xiàn)15附錄:源程序16基于Arduino單片機(jī)的智能家居系統(tǒng)§

4、1緒論1.1智能家居簡介智能家居很早就出現(xiàn)在人們的定義當(dāng)中,但很長時間以來都沒有真正意義上的智能家居成型,到了1984年美國聯(lián)合科技公司(United Technologies Building System)將智能信息融入建筑設(shè)備中,在整合的基礎(chǔ)上應(yīng)用到了美國康乃迪克州哈特佛市的城市地標(biāo)性建筑中時,出現(xiàn)了世界上的首棟智能化建筑,也正是從那時開始,智能化家居正式融入到現(xiàn)代生活中。智能家居控制的發(fā)展關(guān)鍵在于設(shè)計理念以及經(jīng)營者的心態(tài),市場目標(biāo)客戶真正需要什么東西,如果只注重簽單,不設(shè)身處地的為客戶著想,不兼顧智能解決未來的發(fā)展,提供片面的智能家居解決方案,而不考慮客戶的適用性,是不可取的,是急功近

5、利的表現(xiàn),這不僅降低了智能家居的應(yīng)用效果,還不利于整個智能家居行業(yè)的發(fā)展。智能家居控制系統(tǒng)的市場不是一般普通的商品買賣,而是一項系統(tǒng)性工程,它涉及到很多技術(shù),涉及到人們生活的方方面面,智能家居控制系統(tǒng)的終極目標(biāo)是一種理想,更是一種理念,要想智能家居控制系統(tǒng)有很好的發(fā)展,研發(fā)機(jī)構(gòu)必須本著長遠(yuǎn)發(fā)展的心態(tài),本著簡化、實用、性價比高、適合市場的理念,虔誠研究人們的生活、習(xí)慣、精神文化等需要,并把它看最高目標(biāo),運(yùn)用各種技術(shù)手段實現(xiàn)它。在國內(nèi),智能家居不是單純意義上的智能產(chǎn)品,也不能被狹義的理解為小區(qū)智能化,而是基于小區(qū)的多層次家居智能化解決方案。它綜合利用主控平臺、無線連接及通信、設(shè)備管理、整體布局布線

6、等手段,將住戶智能化管理、交互共享及消費(fèi)服務(wù)、小區(qū)安防監(jiān)控等常見家居因素協(xié)調(diào)配合并最終整合為整體,在原有小區(qū)智能化的大面上延伸到小區(qū)內(nèi)部室內(nèi)家居的具體環(huán)節(jié),構(gòu)建出高效、舒適、安全、便捷的個性化住宅空間。近幾年,很多研發(fā)機(jī)構(gòu)和廠商已經(jīng)意識到家庭安全的重要性,把智能家居作為一個重要的方向和項目來研究,并紛紛投入大量人力財力,使智能家居真正的走向市場和產(chǎn)業(yè)化生產(chǎn)。智能家居是一個具有交互能力的平臺,并且通過平臺能夠把各種不同的系統(tǒng)、協(xié)議、信息和內(nèi)容控制在相對獨立的模塊單元中進(jìn)行傳輸、交換。1.2智能家居的研究意義隨著人們生活水平的不斷提高,生活節(jié)奏的加快,人們不斷的對居住環(huán)境提出更高的要求,越來越注重

7、家庭生活中每個成員的舒適、安全和便利,因此從市場需求的角度來說,智能家居必然是前景廣闊。因此設(shè)計一個符合國家國情和規(guī)范的集遠(yuǎn)程控制和本地控制為一體的智能家居控制系統(tǒng)是非常具有現(xiàn)實意義的,且勢在必行。作為智能家居的核心系統(tǒng)的智能家居的控制系統(tǒng),它的設(shè)計功能的完善必將推動住宅智能化的發(fā)展。而系統(tǒng)功能的集成化、用戶使用的傻瓜化以及市場的平民化將是智能家居控制器的發(fā)展趨勢,系統(tǒng)也將逐步邁向綠色化。最終,我想全人類的夢想是智能家居控制系統(tǒng)將囊括所有的家事雜物,讓我們真正的享受舒適溫馨的家庭生活。雖然智能家居經(jīng)過十幾年的蓬勃發(fā)展,很多功能已趨于完善和成熟,智能化家居系統(tǒng)的應(yīng)用也越來越廣泛,然而生活中的智能

8、家居所展現(xiàn)出的智能化,與業(yè)主所理想的智能化還存在較大差距。而這也推動了智能化技術(shù)在家居領(lǐng)域的縱深發(fā)展,并為各類智能化家居新產(chǎn)品的設(shè)計和研發(fā)增加了動力,同時新產(chǎn)品的出現(xiàn),也大大豐富了智能家居系統(tǒng)的厚度。因此,將智能家居作為這次研究的主要內(nèi)容具有很大的現(xiàn)實指導(dǎo)意義。 本文的目的就是設(shè)計一個簡捷有效智能家居控制系統(tǒng),從溫度、濕度、光照強(qiáng)度的采集,到LCD實時顯示,并根據(jù)采集的信號不同采取相應(yīng)的應(yīng)對機(jī)制,智能控制家中的電燈、風(fēng)扇等電器設(shè)備,從而實現(xiàn)基本的智能家居功能。§2系統(tǒng)總體設(shè)計方案2.1系統(tǒng)框圖智能家居控制系統(tǒng)對整個家庭內(nèi)部環(huán)境進(jìn)行監(jiān)測和及時應(yīng)對的系統(tǒng),核心部分是單片機(jī),通過與其他各監(jiān)

9、測模塊和執(zhí)行模塊的連接,實現(xiàn)對室內(nèi)環(huán)境的整體改變和各元件的控制。首先,主控元件對接收到的數(shù)據(jù)(如光線強(qiáng)暗,溫度高低)通過LCD顯示模塊進(jìn)行實時顯示,使室內(nèi)情況一目了然。然后根據(jù)各信號采集模塊傳送給單片機(jī)的數(shù)據(jù),做出應(yīng)對執(zhí)行,實現(xiàn)家居系統(tǒng)的智能控制。系統(tǒng)總體框圖如下:圖2.1 系統(tǒng)總體框圖2.2系統(tǒng)工作原理簡介本系統(tǒng)工作可以分為四個部分:第一部分是傳感器數(shù)據(jù)采集,將溫度傳感器、濕度傳感器以及光敏電阻分別連接到單片機(jī)上,單片機(jī)會將傳感器采集到的實時數(shù)據(jù)進(jìn)行處理;第二部分是數(shù)據(jù)傳輸,有兩個無線模塊,一個連接到單片機(jī)上作為發(fā)射端,一個連接到單片機(jī)上作為接收端,單片機(jī)將處理過的數(shù)據(jù)通過發(fā)射端發(fā)送出去,單

10、片機(jī)通過接收端將數(shù)據(jù)接收進(jìn)來,再次進(jìn)行處理;第三部分是控制功能,單片機(jī)將接收到的數(shù)據(jù)與設(shè)定的閾值進(jìn)行比較,當(dāng)達(dá)到閾值條件時,可以啟動風(fēng)扇或者電燈,另外,溫度和光敏設(shè)定了幾個不同的閾值,當(dāng)達(dá)到某一閾值會有相應(yīng)的風(fēng)扇轉(zhuǎn)速或者電燈亮度;第四部分,溫濕度顯示,單片機(jī)將通過無線方式接收到的數(shù)據(jù)采用串口通信的方式傳給單片機(jī),單片機(jī)是專門用來控制LCD 1602液晶顯示屏的,得到數(shù)據(jù)后單片機(jī)將數(shù)據(jù)傳到液晶屏進(jìn)行顯示。§3 系統(tǒng)硬件設(shè)計3.1單片機(jī)的選擇首先將所需器件羅列,根據(jù)與單片機(jī)相連的各器件,確定整個系統(tǒng)所需與單片機(jī)連接的管腳數(shù),通過查資料,選定Arduino單片機(jī)作為該系統(tǒng)的微控制器,因為它

11、帶有模擬I/O口,在外接各類傳感器方面比普通的51系列單片機(jī)更為方便。Arduino單片機(jī)的模擬I/O口可以很方便地將光敏電阻和溫濕度傳感器等模塊采集到的模擬量經(jīng)A/D轉(zhuǎn)換后送給單片機(jī)進(jìn)行處理,而對數(shù)字信號的識別和處理正是Arduino的優(yōu)勢所在。3.1.1 Arduino UNO簡介Arduino UNO是Arduino USB接口系列的最新版本,作為Arduino平臺的參考標(biāo)準(zhǔn)模板。UNO的處理器核心是ATmega328,同時具有14路數(shù)字輸入/輸出口(其中6路可作為PWM輸出),6路模擬輸入,一個16MHz晶體振蕩器,一個USB口,一個電源插座,一個ICSP header和一個復(fù)位按鈕。

12、UNO已經(jīng)發(fā)布到第三版,與前兩版相比有以下新的特點:在AREF處增加了兩個管腳SDA和SCL,支持I2C接口;增加IOREF和一個預(yù)留管腳,將來擴(kuò)展板將能兼容5V和3.3V核心板。 這樣改進(jìn)了復(fù)位電路設(shè)計 ,USB接口芯片由ATmega16U2替代了ATmega8U2 。圖2.2為改進(jìn)后的Arduino UNO。圖2.2 Arduino UNO R33.1.2 Arduino單片機(jī)特色1、開放源代碼的電路圖設(shè)計,程序開發(fā)接口免費(fèi)下載,也可依需求自己修改。2、使用低價格的微處理控制器(ATMEGA8或ATmega128)??梢圆捎肬SB接口供電,不需外接電源,也可以使用外部9VDC輸入。3、Ar

13、duino支持ISP在線燒,可以將新的“bootloader”固件燒入ATmega8或ATmega128芯片。有了bootloader之后,可以通過串口或者USB to Rs232線更新固件。4、可依據(jù)官方提供的Eagle格式PCB和SCH電路圖,簡化Arduino模組,完成獨立運(yùn)作的微處理控制。可簡單地與傳感器,各式各樣的電子元件連接(如:紅外線、超聲波、熱敏電阻、光敏電阻、伺服馬達(dá)等)。5、支持多種互動程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。6、應(yīng)用方面,利用Arduino,突破以往只能使用鼠標(biāo)、鍵盤、CCD等輸入的裝置的互動內(nèi)容,可以更簡單地達(dá)成

14、單人或多人游戲互動。3.1.3 Arduino單片機(jī)引腳簡介Arduino單片機(jī)的數(shù)字I/O被分成兩個部分,其中每個部分都包含有6個可用的I/O管腳,即管腳2到管腳7和管腳8到管腳13。在數(shù)字電路中開關(guān)(switch)是一種基本的輸入形式,它的作用是保持電路的連接或者斷開。Arduino從數(shù)字I/O管腳上只能讀出高電平(5V)或者低電平(0V),因此我們首先面臨到的一個問題就是如何將開關(guān)的開/斷狀態(tài)轉(zhuǎn)變成Arduino能夠讀取的高/低電平。解決的辦法是通過上/下拉電阻,按照電路的不同通常又可以分為正邏輯(Positive Logic)和負(fù)邏輯(Inverted Logic)兩種。Arduino

15、的優(yōu)勢在于對數(shù)字信號的識別和處理,但我們所生活的真實世界并不是數(shù)字(digital)化的,簡單到只要用0和1就能夠表示所有的現(xiàn)象。例如溫度這一我們已經(jīng)司空見慣的概念,它只能在一個范圍之內(nèi)連續(xù)變化,而不可能發(fā)生像從0到1這樣的瞬時跳變,類似這樣的物理量被人們稱為是模擬(analog)的。Arduino是無法理解這些模擬量的,它們必須在經(jīng)過模數(shù)轉(zhuǎn)換后變成數(shù)字量后,才能被Arduino進(jìn)一步處理。3.1.4 Arduino單片機(jī)編程軟件Arduino 語言是建立在 C/C+基礎(chǔ)上的,其實也就是基礎(chǔ)的 C 語言,Arduino 語言只不過把 AVR 單片機(jī)(微控制器)相關(guān)的一些寄存器參數(shù)設(shè)置等都函數(shù)化

16、了,不用我們?nèi)チ私馑牡讓?,讓不太了?AVR 單片機(jī)(微控制器)的朋友也能輕松上手。圖2.3 Arduino編程界面Arduino 語言是以 setup()開頭,loop()作為主體的一個程序構(gòu)架。官方網(wǎng)站是這樣描述 setup()的:用來初始化變量,管腳模式,調(diào)用庫函數(shù)等等,此函數(shù)只運(yùn)行一次。loop()函數(shù)是一個循環(huán)函數(shù),函數(shù)內(nèi)的語句周而復(fù)始的循環(huán)執(zhí)行,功能類似 c 語言中的“main();”。3.2溫濕度檢測模塊設(shè)計智能家居的一個主要控制對象就是住戶室內(nèi)溫濕度,適宜的溫濕度為主人提供良好的家居環(huán)境,這樣一來,溫濕度檢測與控制模塊就變得尤為重要??紤]到硬件電路的復(fù)雜性,本設(shè)計中選擇DHT

17、11數(shù)字溫濕度傳感器來檢測室內(nèi)的溫度和濕度,這樣可以用一個傳感器檢測兩個指標(biāo),使硬件電路得以簡化。3.2.1 DHT11概述DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長期穩(wěn)定性。傳感器包括一個電阻式感濕元件和一個NTC測溫元件,并與一個高性能8位單片機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價比極高等優(yōu)點。每個DHT11傳感器都在極為精確的濕度校驗室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲存在OTP內(nèi)存中,傳感器內(nèi)部在檢測信號的處理過程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,

18、使系統(tǒng)集成變得簡易快捷。超小的體積、極低的功耗,信號傳輸距離可達(dá)20米以上,使其成為各類應(yīng)用甚至最為苛刻的應(yīng)用場合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。圖3.1 DHT11實物圖3.2.2 DHT11引腳說明引腳號 引腳名稱 類型 引腳說明1 VCC 電源 正電源輸入,3V-5.5V DC2 Dout 輸出 單總線,數(shù)據(jù)輸入/輸出引腳3 NC 空 空腳,擴(kuò)展未用4 GND 地 電源地圖3.2 DHT11典型應(yīng)用電路3.2.3 電源引腳DHT11的供電電壓為 35.5V。傳感器上電后,要等待 1s 以越過不穩(wěn)定狀態(tài)在此期間無需發(fā)送任何指令。電源引腳(

19、VDD,GND)之間可增加一個100nF 的電容,用以去耦濾波。3.2.4 串行接口(單線雙向)DATA 用于微處理器與DHT11之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時間4ms左右,用戶MCU發(fā)送一次開始信號后,,DHT11從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開始信號結(jié)束后,DHT11發(fā)送響應(yīng)信號,送出40bit的數(shù)據(jù),并觸發(fā)一次信號采集,用戶可選擇讀取部分?jǐn)?shù)據(jù)。從模式下,DHT11接收到開始信號觸發(fā)一次溫濕度采集,如果沒有接收到主機(jī)發(fā)送開始信號,DHT11不會主動進(jìn)行溫濕度采集,采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。3.3光照檢測模塊設(shè)計光敏電阻特性是在不同光照強(qiáng)度下,其阻值發(fā)生變化(只要是人

20、眼可感受的光,都會引起它的阻值變化)。利用這一特性,我們把光敏電阻接入電路實現(xiàn)光照強(qiáng)度檢測。圖3.3 光照檢測電路示意圖亮度檢測電路工作原理:我們把光敏電阻接入電路后,光敏電阻置于窗口處,由于光線的變化,其阻值也在一定時間內(nèi)不斷變化,從而產(chǎn)生連續(xù)的電信號,通過模擬I/O口進(jìn)入單片機(jī)。由于單片機(jī)內(nèi)部自帶A/D轉(zhuǎn)換電路,通過相應(yīng)程序,能使模擬I/O口傳來的電信號轉(zhuǎn)換成數(shù)字信號,單片機(jī)讀取這些數(shù)字信號,就能得出相應(yīng)的光照強(qiáng)度,并決定是否啟動其他應(yīng)對措施。3.4無線通信模塊設(shè)計考慮到系統(tǒng)的普遍適用性和硬件電路實現(xiàn)的難易程度,本次設(shè)計中選取NRF24L01無線模塊作為系統(tǒng)的無線通信模塊,該模塊既可以用于

21、發(fā)送數(shù)據(jù),也可以用于接收數(shù)據(jù),且易于編程操作。NRF24L01無線模塊主要特點如下:(1) 2.4Ghz 全球開放ISM 頻段免許可證使用;(2) 最高工作速率2Mbps,高效GFSK調(diào)制,抗干擾能力強(qiáng),特別適合工業(yè)控制場合;(3) 126 頻道,滿足多點通信和跳頻通信需要;(4) 內(nèi)置硬件CRC 檢錯和點對多點通信地址控制;(5) 低功耗1.9 - 3.6V 工作,待機(jī)模式下狀態(tài)為22uA;掉電模式下為900nA;(6) 內(nèi)置2.4Ghz 天線,體積種類多樣;(7) 模塊可軟件設(shè)地址,只有收到本機(jī)地址時才會輸出數(shù)據(jù)(提供中斷指示),可直接接各種單片機(jī)使用,軟件編程非常方便;(8) 內(nèi)置專門穩(wěn)

22、壓電路,使用各種電源包括DC/DC 開關(guān)電源均有很好的通信效果;(9) 2.54MM間距接口,DIP封裝;(10)工作于Enhanced ShockBurst 具有Automatic packethandling, Auto packet transaction handling,具有可選的內(nèi)置包應(yīng)答機(jī)制,極大的降低丟包率。3.5液晶顯示模塊設(shè)計3.5.1液晶顯示模塊的選擇LCD1602屏幕為2行,每行顯示16個字符,為字符型顯示器,只能顯示數(shù)字和字符,不可以顯示漢字。 LCD12864屏幕為64行,每行顯示128個字符,為點陣型顯示器,可根據(jù)需求任意顯示字符,數(shù)字,漢字和圖形。綜合價格因素和

23、實際應(yīng)用的需要,選用LCD1602為改家居系統(tǒng)的顯示器。下面詳細(xì)介紹一下LCD1602的功能實現(xiàn)和各項參數(shù)。Ø LCD1602主要技術(shù)參數(shù): 顯示容量:16×2個字符芯片工作電壓:4.55.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mmØ LCD1602相比傳統(tǒng)顯示器的幾個突出優(yōu)點:(1)顯示質(zhì)量高 由于液晶顯示器收到信號后的每一個點都會一直保持原有亮度和顏色,恒定發(fā)光。而不像陰極射線管顯示器(CRT)那樣需要不斷刷新新亮點。因此,液晶顯示器既不會閃爍,又保證了畫質(zhì)高。(2)數(shù)字式接口

24、液晶顯示器的輸入輸出采用數(shù)字量,和主控芯片(SCM)的接口連接更加簡單可靠,操作也更為簡便。(3)重量輕,體積小 液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。(4)功耗低 相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其他顯示器要少得多。LCD1602分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別。3.5.2 液晶顯示電路設(shè)計圖3.4 液晶顯示電路示意圖液晶顯示電路工作原理:液晶顯示器LCD1602通過714管腳的數(shù)據(jù)總線與單片機(jī)進(jìn)行數(shù)據(jù)傳送,

25、單片機(jī)通過輸出高地電平來控制液晶顯示器LCD1602的46管腳配合傳送的數(shù)據(jù)決定讀/寫數(shù)據(jù),并通過LCD顯示屏顯示出來。期間單片機(jī)是控制元件,而LCD1602為顯示和執(zhí)行元件。3.6其他模塊設(shè)計3.6.1電燈模塊設(shè)計本次系統(tǒng)設(shè)計中用發(fā)光二極管LED來替代實際場景中的電燈。Ø LED發(fā)光原理發(fā)光二極管是由-族化合物,如GaAs(砷化鎵)、GaP(磷化鎵)、GaAsP(磷砷化鎵)等半導(dǎo)體制成的,其核心是PN結(jié)。因此它具有一般P-N結(jié)的I-N特性,即正向?qū)?,反向截止、擊穿特性。此外,在一定條件下,它還具有發(fā)光特性。在正向電壓下,電子由N區(qū)注入P區(qū),空穴由P區(qū)注入N區(qū)。進(jìn)入對方區(qū)域的少數(shù)載

26、流子(少子)一部分與多數(shù)載流子(多子)復(fù)合而發(fā)光。假設(shè)發(fā)光是在P區(qū)中發(fā)生的,那么注入的電子與價帶空穴直接復(fù)合而發(fā)光,或者先被發(fā)光中心捕獲后,再與空穴復(fù)合發(fā)光。除了這種發(fā)光復(fù)合外,還有些電子被非發(fā)光中心(這個中心介于導(dǎo)帶、介帶中間附近)捕獲,而后再與空穴復(fù)合,每次釋放的能量不大,不能形成可見光。發(fā)光的復(fù)合量相對于非發(fā)光復(fù)合量的比例越大,光量子效率越高。由于復(fù)合是在少子擴(kuò)散區(qū)內(nèi)發(fā)光的,所以光僅在靠近PN結(jié)面數(shù)m以內(nèi)產(chǎn)生。 理論和實踐證明,光的峰值波長與發(fā)光區(qū)域的半導(dǎo)體材料禁帶寬度Eg有關(guān),即1240/Eg(mm)式中Eg的單位為電子伏特(eV)。若能產(chǎn)生可見光(波長在380nm紫光780nm紅光)

27、,半導(dǎo)體材料的Eg應(yīng)在3.261.63eV之間。比紅光波長長的光為紅外光?,F(xiàn)在已有紅外、紅、黃、綠及藍(lán)光發(fā)光二極管,但其中藍(lán)光二極管成本、價格很高,使用不普遍。Ø LED的應(yīng)用由于發(fā)光二極管的顏色、尺寸、形狀、發(fā)光強(qiáng)度及透明情況等不同,所以使用發(fā)光二極管時應(yīng)根據(jù)實際需要進(jìn)行恰當(dāng)選擇。由于發(fā)光二極管具有最大正向電流IFm、最大反向電壓VRm的限制,使用時,應(yīng)保證不超過此值。為安全起見,實際電流IF應(yīng)在0.6IFm以下;應(yīng)讓可能出現(xiàn)的反向電壓VR0。6VRm。LED被廣泛用于種電子儀器和電子設(shè)備中,可作為電源指示燈、電平指示或微光源之用。紅外發(fā)光管常被用于電視機(jī)、錄像機(jī)等的遙控器中。在連

28、接電路時,首先應(yīng)正確區(qū)分LED的正負(fù)極,避免正負(fù)極戒飯導(dǎo)致無法使用甚至燒壞元件。LED的兩只引腳中,長的一根為正極,短的一根為負(fù)極,連接電路時,正極接一個220的電阻,電阻另一端接單片機(jī)的數(shù)字I/O口,負(fù)極接地。3.6.2風(fēng)扇模塊設(shè)計本設(shè)計中,采用普通的直流電機(jī)帶動扇葉來模擬實際場景中的風(fēng)扇。直流風(fēng)扇的兩個接線端不分正負(fù),一端接地,另一端接單片機(jī)數(shù)字I/O口即可,根據(jù)系統(tǒng)設(shè)計的要求,通過程序控制輸出到電機(jī)的電壓不同來改變電機(jī)轉(zhuǎn)速,從而實現(xiàn)根據(jù)溫度變化和預(yù)設(shè)參數(shù)改變風(fēng)扇轉(zhuǎn)速的目的。3.7系統(tǒng)硬件實物圖根據(jù)上述各模塊的硬件設(shè)計,最后做出的實物圖如下:圖3.5 模擬智能家居硬件實物圖§4軟

29、件系統(tǒng)設(shè)計4.1檢測端程序設(shè)計檢測端由單片機(jī)、光照檢測模塊、溫濕度檢測模塊和無線通信模塊組成,相應(yīng)的程序包括光照檢測程序、溫濕度檢測程序和無線通信程序,部分程序如下圖所示,完整的程序在附錄中。圖4.1 檢測端部分程序4.2 控制端程序設(shè)計控制端由單片機(jī)、液晶顯示模塊、電燈模塊、風(fēng)扇模塊和無線通信模塊組成,相應(yīng)的程序包括無線接收程序、串口通信程序、顯示程序、風(fēng)扇和電燈控制程序,部分程序如下圖所示,完整的程序在附錄中。圖4.2無線接收部分程序圖4.3液晶顯示部分程序§5總結(jié)本次設(shè)計的模擬智能家居系統(tǒng)滿足了所有的系統(tǒng)設(shè)計要求,完成了對溫濕度的實時監(jiān)測和現(xiàn)實,得到的最終結(jié)果誤差也在要求的范圍

30、之內(nèi),而且完成了根據(jù)光照強(qiáng)度變化、溫度變化和預(yù)設(shè)參數(shù)對電燈和風(fēng)扇進(jìn)行智能控制的任務(wù),取得了令人滿意的成果。通過本次設(shè)計,使我對基于單片機(jī)的智能控制有了更多的了解和掌握,在科技飛速發(fā)展的今天,科技意味著第一生產(chǎn)力,機(jī)器智能正在越來越多的方面取代人工操作,作為智能控制在工業(yè)應(yīng)用的代表性成果,它結(jié)合了程序調(diào)控,提供了定時控制、計數(shù)控制、步進(jìn)控制以及數(shù)據(jù)處理等多種功能,具有人工作業(yè)無法比擬的優(yōu)越性和精確性。隨著科技的發(fā)展,基于單片機(jī)的智能控制功能也會不斷擴(kuò)大,各項性能也將不斷提高。參考文獻(xiàn)1張鑫.單片機(jī)原理及應(yīng)用M.北京:電子工業(yè)出版社,20082童詩白,華成英.模擬電子技術(shù)基礎(chǔ)M.北京:高等教育出版

31、社,20013王港元.電工電子實踐指導(dǎo)M.南昌:江西科學(xué)技術(shù)出版社,20064李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù),北京,北京航空航天大學(xué)出版社,20005藍(lán)宇電子研發(fā)團(tuán)隊.Arduino設(shè)計M. 6湯凱,劉洋,續(xù)欣.Arduino程序設(shè)計指南M.北京:電子工業(yè)出版社,20157趙光宙.信號分析與處理M.北京:機(jī)械工業(yè)出版社,20108張國雄.測控電路(第四版)M.北京:機(jī)械工業(yè)出版社,2011附錄:源程序檢測端發(fā)送程序:#include <SPI.h>#include <Mirf.h>#include <nRF24L01.h>#include <Mir

32、fHardwareSpiDriver.h>#define DHT11_PIN 0 / ADC0 接到模擬口0byte read_dht11_dat() byte i = 0; byte result = 0; for (i = 0; i < 8; i+) while (!(PINC & _BV(DHT11_PIN); / wait for 50us delayMicroseconds(30); if (PINC & _BV(DHT11_PIN) result |= (1 << (7 - i); while (PINC & _BV(DHT11_PI

33、N); / wait '1' finish return result;void setup() DDRC |= _BV(DHT11_PIN); PORTC |= _BV(DHT11_PIN); Serial.begin(9600); Mirf.cePin = 9; /設(shè)置CE引腳為D9 Mirf.csnPin = 10; /設(shè)置CE引腳為D10 Mirf.spi = &MirfHardwareSpi; Mirf.init(); /初始化nRF24L01 /設(shè)置接收標(biāo)識符"Sen01" Mirf.setRADDR(byte *)"Sen01

34、"); /設(shè)置一次收發(fā)的字節(jié)數(shù),這里發(fā)一個整數(shù),寫sizeof(unsigned int),實際等于2字節(jié) Mirf.payload = sizeof(unsigned int); /發(fā)送通道,可以填0128,收發(fā)必須一致。 Mirf.channel = 5; Mirf.config(); Serial.println("I'm Sender.");void loop() byte dht11_dat5; byte dht11_in; byte i; unsigned int Guangmin,WenDu,ShiDu; / start condition

35、/ 1. pull-down i/o pin from 18ms PORTC &= _BV(DHT11_PIN); delay(18); PORTC |= _BV(DHT11_PIN); delayMicroseconds(40); DDRC &= _BV(DHT11_PIN); delayMicroseconds(40); dht11_in = PINC & _BV(DHT11_PIN); if (dht11_in) Serial.println("dht11 start condition 1 not met"); return; delayMi

36、croseconds(80); dht11_in = PINC & _BV(DHT11_PIN); if (!dht11_in) Serial.println("dht11 start condition 2 not met"); return; delayMicroseconds(80); / now ready for data reception for (i = 0; i < 5; i+) dht11_dati = read_dht11_dat(); DDRC |= _BV(DHT11_PIN); PORTC |= _BV(DHT11_PIN); by

37、te dht11_check_sum = dht11_dat0 + dht11_dat1 + dht11_dat2 + dht11_dat3; / check check_sum if (dht11_dat4 != dht11_check_sum) Serial.println("DHT11 checksum error"); WenDu = (unsigned int)(dht11_dat2); ShiDu = (unsigned int)(dht11_dat0); Guangmin = analogRead(A2); /Guangmin=(unsigned int)20

38、; Serial.println(WenDu); Serial.println(ShiDu); Serial.println(Guangmin); fasong(WenDu); fasong(ShiDu); fasong(Guangmin); delay(1000);void fasong(unsigned int adata) byte dataMirf.payload; data0 = adata & 0xFF; /低八位給data0, data1 = adata >> 8; /高八位給data1。 /設(shè)置向"serv1"發(fā)送數(shù)據(jù) Mirf.setT

39、ADDR(byte *)"Rec01"); Mirf.send(data); /while死循環(huán)等待發(fā)送完畢,才能進(jìn)行下一步操作。 while (Mirf.isSending() 控制端無線接收程序:#include <SPI.h>#include <Mirf.h>#include <nRF24L01.h>#include <MirfHardwareSpiDriver.h>int fengshan = 6;int led = 5

40、;/定義一個變量adata存儲最終結(jié)果,oldadata存儲舊結(jié)果,防止相同結(jié)果刷屏。unsigned int WenDu = 0, ShiDu = 0, Guangmin = 0;void setup()  pinMode(fengshan, OUTPUT);  pinMode(led, OUTPUT);  Serial.begin(9600);  Mirf.cePin =&

41、#160;9;                /設(shè)置CE引腳為D9  Mirf.csnPin = 10;        /設(shè)置CE引腳為D10  /-初始化部分,不可隨時修改-  Mirf.spi = &MirfHardwareSpi; &#

42、160;Mirf.init();  /初始化nRF24L01  /-配置部分,可以隨時修改-  /設(shè)置接收標(biāo)識符"Rev01"  Mirf.setRADDR(byte *)"Rec01");  /設(shè)置一次收發(fā)的字節(jié)數(shù),這里發(fā)一個整數(shù),  /寫sizeof(unsigned int),實際等于2字節(jié)  Mirf.payload = sizeof(unsigned int

43、);  /發(fā)送通道,可以填0128,收發(fā)必須一致。  Mirf.channel = 5;  Mirf.config();void loop()  /定義一個暫存數(shù)組,大小為Mirf.payload。  byte dataMirf.payload;  if (Mirf.dataReady()   /等待接收數(shù)據(jù)準(zhǔn)備好      Mirf.g

44、etData(data);    /接收數(shù)據(jù)到data數(shù)組    WenDu = (unsigned int)(data1 << 8) | data0);    Mirf.getData(data);    /接收數(shù)據(jù)到data數(shù)組    ShiDu = (unsigned int)(d

45、ata1 << 8) | data0);    Mirf.getData(data);    /接收數(shù)據(jù)到data數(shù)組    Guangmin = (unsigned int)(data1 << 8) | data0);   sender(WenDu);    sender(

46、ShiDu);    delay(1050);      if (25 <= WenDu <= 28)      analogWrite(fengshan, 51);    else if (29 <= WenDu <= 32)  &#

47、160;   analogWrite(fengshan, 153);    else if (WenDu >= 33)      analogWrite(fengshan, 255);    else      analogWrite(fengshan, 0);  

48、0; if (0 <= Guangmin <= 60)      analogWrite(led, 255);    else if (61<= Guangmin <= 120)      analogWrite(led, 153);    el

49、se if (121 <= Guangmin <= 180)      analogWrite(led, 51);    else      digitalWrite(led, LOW);void sender(unsigned int x)   unsigned int

50、60;c, d, j   unsigned int SHU2;  c = x/10;  d = x-c * 10;  SHU0 = c;  SHU1 = d;  for (j = 0; j < 2; j+)    

51、 switch (SHUj)       case 0:        Serial.print('0');        break;      case 1:       

52、0;Serial.print('1');        break;      case 2:        Serial.print('2');        break;      case&#

53、160;3:        Serial.print('3');        break;      case 4:        Serial.print('4');       &#

54、160;break;      case 5:        Serial.print('5');        break;      case 6:        Serial.print('

55、6');        break;      case 7:        Serial.print('7');        break;      case 8:  &#

56、160;     Serial.print('8');        break;      default:        Serial.print('9');        break;  &#

57、160;   控制端串口通信及液晶顯示程序:int DI = 12;int RW = 11;int DB = 3, 4, 5, 6, 7, 8, 9, 10;int Enable = 2;int Echo = 13;int Trig = A0;void LcdCommandWrite(int val

58、ue)   int i = 0;  for (i = DB0; i <= DI; i+)     digitalWrite(i, value & 01);    value >>= 1;    digitalWrite(Enable, 

59、;LOW);  delayMicroseconds(1);  digitalWrite(Enable, HIGH);  delayMicroseconds(1);  digitalWrite(Enable, LOW);  delayMicroseconds(1);void LcdDataWrite(int value)   int i = 0;  digitalWrite(DI

60、, HIGH);  digitalWrite(RW, LOW);  for (i = DB0; i <= DB7; i+)     digitalWrite(i, value & 01);    value >>= 1;    digitalWrite(Enabl

61、e, LOW);  delayMicroseconds(1);  digitalWrite(Enable, HIGH);  delayMicroseconds(1);  digitalWrite(Enable, LOW);  delayMicroseconds(1);void setup()   Serial.begin(9600);  int i = 0; 

62、0;for (i = Enable; i <= DI; i+)     pinMode(i, OUTPUT);    pinMode(13, INPUT);  pinMode(Trig, OUTPUT);  delay(100);  LcdCommandWrite(0x38);  delay(64);  LcdCommandWrite(0x38);  delay(50);  LcdCommandWrite

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論