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

下載本文檔

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

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上山東科技大學(xué)第三屆學(xué)生電子設(shè)計(jì)大賽技術(shù)報(bào)告基于 Arduino 單片機(jī)的智能家居系統(tǒng)學(xué)院:電子通信與物理學(xué)院班級(jí):碩研 2015 級(jí)參賽者:張榮飛曹其棟侯煥存專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)摘要本文中我們基于 Arduino 單片機(jī)設(shè)計(jì)了一個(gè)模擬智能家居系統(tǒng)。該系統(tǒng)以ArduinoUNOR3 單片機(jī)為核心,外接光照檢測(cè)、溫濕度傳感器、 LED、風(fēng)扇和無(wú)線通信等模塊。 整個(gè)系統(tǒng)分為檢測(cè)端和控制端兩大部分, 檢測(cè)端由光敏電阻、 溫濕度傳感器、無(wú)線通信模塊和單片機(jī)組成??刂贫擞蔁o(wú)線接收、液晶顯示、電燈控制和風(fēng)扇控制四大模塊組成,包含單片機(jī)、無(wú)線通信模塊、 LCD 顯示屏、風(fēng)扇和 LED 等

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

3、 Arduino UNO 簡(jiǎn)介.4.3.1.2 Arduino 單片機(jī)特色 . .5.3.1.3 Arduino 單片機(jī)引腳簡(jiǎn)介 .5.3.1.4 Arduino 單片機(jī)編程軟件 .6.3.2 溫濕度檢測(cè)模塊設(shè)計(jì) .6.3.2.1 DHT11 概述.6.3.2.2 DHT11 引腳說(shuō)明 .7.3.2.3 電源引腳 .8.3.2.4 串行接口(單線雙向) .8.3.3 光照檢測(cè)模塊設(shè)計(jì) .8.3.4 無(wú)線通信模塊設(shè)計(jì) .9.3.5 液晶顯示模塊設(shè)計(jì) .9.3.5.1 液晶顯示模塊的選擇 .9.3.5.2 液晶顯示電路設(shè)計(jì) .1.03.6 其他模塊設(shè)計(jì) .1.1.3.6.1 電燈模塊設(shè)計(jì) .1.1

4、3.6.2 風(fēng)扇模塊設(shè)計(jì) .1.23.7 系統(tǒng)硬件實(shí)物圖 .1.2. 4 軟件系統(tǒng)設(shè)計(jì) .1.3.4.1 檢測(cè)端程序設(shè)計(jì) .1.3.4.2 控制端程序設(shè)計(jì) .1.3.5 總結(jié) .1.5.參考文獻(xiàn) .1.5.附錄:源程序 .1.6.基于 Arduino 單片機(jī)的智能家居系統(tǒng) 1 緒論1.3 智能家居簡(jiǎn)介智能家居很早就出現(xiàn)在人們的定義當(dāng)中, 但很長(zhǎng)時(shí)間以來(lái)都沒(méi)有真正意義上的智能家居成型,到了 1984 年美國(guó)聯(lián)合科技公司( United Technologies Building System)將智能信息融入建筑設(shè)備中, 在整合的基礎(chǔ)上應(yīng)用到了美國(guó)康乃迪克州哈特佛市的城市地標(biāo)性建筑中時(shí),出現(xiàn)了世界

5、上的首棟智能化建筑,也正是從那時(shí)開(kāi)始,智能化家居正式融入到現(xiàn)代生活中。智能家居控制的發(fā)展關(guān)鍵在于設(shè)計(jì)理念以及經(jīng)營(yíng)者的心態(tài), 市場(chǎng)目標(biāo)客戶真正需要什么東西,如果只注重簽單,不設(shè)身處地的為客戶著想,不兼顧智能解決未來(lái)的發(fā)展,提供片面的智能家居解決方案,而不考慮客戶的適用性,是不可取的,是急功近利的表現(xiàn),這不僅降低了智能家居的應(yīng)用效果,還不利于整個(gè)智能家居行業(yè)的發(fā)展。智能家居控制系統(tǒng)的市場(chǎng)不是一般普通的商品買(mǎi)賣(mài),而是一項(xiàng)系統(tǒng)性工程,它涉及到很多技術(shù),涉及到人們生活的方方面面,智能家居控制系統(tǒng)的終極目標(biāo)是一種理想,更是一種理念,要想智能家居控制系統(tǒng)有很好的發(fā)展,研發(fā)機(jī)構(gòu)必須本著長(zhǎng)遠(yuǎn)發(fā)展的心態(tài),本著簡(jiǎn)化

6、、實(shí)用、性價(jià)比高、適合市場(chǎng)的理念,虔誠(chéng)研究人們的生活、習(xí)慣、精神文化等需要,并把它看最高目標(biāo),運(yùn)用各種技術(shù)手段實(shí)現(xiàn)它。在國(guó)內(nèi),智能家居不是單純意義上的智能產(chǎn)品, 也不能被狹義的理解為小區(qū)智能化,而是基于小區(qū)的多層次家居智能化解決方案。它綜合利用主控平臺(tái)、無(wú)線連接及通信、設(shè)備管理、整體布局布線等手段,將住戶智能化管理、交互共享及消費(fèi)服務(wù)、小區(qū)安防監(jiān)控等常見(jiàn)家居因素協(xié)調(diào)配合并最終整合為整體, 在原有小區(qū)智能化的大面上延伸到小區(qū)內(nèi)部室內(nèi)家居的具體環(huán)節(jié),構(gòu)建出高效、舒適、安全、便捷的個(gè)性化住宅空間。近幾年,很多研發(fā)機(jī)構(gòu)和廠商已經(jīng)意識(shí)到家庭安全的重要性,把智能家居作為一個(gè)重要的方向和項(xiàng)目來(lái)研究, 并紛紛

7、投入大量人力財(cái)力, 使智能家居真正的走向市場(chǎng)和產(chǎn)業(yè)化生產(chǎn)。智能家居是一個(gè)具有交互能力的平臺(tái), 并且通過(guò)平臺(tái)能夠把各種不同的系統(tǒng)、 協(xié)議、信息和內(nèi)容控制在相對(duì)獨(dú)立的模塊單元中進(jìn)行傳輸、交換。1基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.4 智能家居的研究意義隨著人們生活水平的不斷提高,生活節(jié)奏的加快,人們不斷的對(duì)居住環(huán)境提出更高的要求,越來(lái)越注重家庭生活中每個(gè)成員的舒適、安全和便利,因此從市場(chǎng)需求的角度來(lái)說(shuō),智能家居必然是前景廣闊。因此設(shè)計(jì)一個(gè)符合國(guó)家國(guó)情和規(guī)范的集遠(yuǎn)程控制和本地控制為一體的智能家居控制系統(tǒng)是非常具有現(xiàn)實(shí)意義的,且勢(shì)在必行。作為智能家居的核心系統(tǒng)的智能家居的控制系統(tǒng), 它的設(shè)計(jì)

8、功能的完善必將推動(dòng)住宅智能化的發(fā)展。而系統(tǒng)功能的集成化、用戶使用的傻瓜化以及市場(chǎng)的平民化將是智能家居控制器的發(fā)展趨勢(shì),系統(tǒng)也將逐步邁向綠色化。最終,我想全人類(lèi)的夢(mèng)想是智能家居控制系統(tǒng)將囊括所有的家事雜物,讓我們真正的享受舒適溫馨的家庭生活。雖然智能家居經(jīng)過(guò)十幾年的蓬勃發(fā)展,很多功能已趨于完善和成熟,智能化家居系統(tǒng)的應(yīng)用也越來(lái)越廣泛,然而生活中的智能家居所展現(xiàn)出的智能化,與業(yè)主所理想的智能化還存在較大差距。而這也推動(dòng)了智能化技術(shù)在家居領(lǐng)域的縱深發(fā)展,并為各類(lèi)智能化家居新產(chǎn)品的設(shè)計(jì)和研發(fā)增加了動(dòng)力,同時(shí)新產(chǎn)品的出現(xiàn),也大大豐富了智能家居系統(tǒng)的厚度。因此,將智能家居作為這次研究的主要內(nèi)容具有很大的現(xiàn)

9、實(shí)指導(dǎo)意義。本文的目的就是設(shè)計(jì)一個(gè)簡(jiǎn)捷有效智能家居控制系統(tǒng),從溫度、濕度、光照強(qiáng)度的采集,到 LCD 實(shí)時(shí)顯示,并根據(jù)采集的信號(hào)不同采取相應(yīng)的應(yīng)對(duì)機(jī)制,智能控制家中的電燈、風(fēng)扇等電器設(shè)備,從而實(shí)現(xiàn)基本的智能家居功能。2基于 Arduino 單片機(jī)的智能家居系統(tǒng) 2 系統(tǒng)總體設(shè)計(jì)方案1.5 系統(tǒng)框圖智能家居控制系統(tǒng)對(duì)整個(gè)家庭內(nèi)部環(huán)境進(jìn)行監(jiān)測(cè)和及時(shí)應(yīng)對(duì)的系統(tǒng), 核心部分是單片機(jī),通過(guò)與其他各監(jiān)測(cè)模塊和執(zhí)行模塊的連接,實(shí)現(xiàn)對(duì)室內(nèi)環(huán)境的整體改變和各元件的控制。首先,主控元件對(duì)接收到的數(shù)據(jù)(如光線強(qiáng)暗,溫度高低)通過(guò) LCD 顯示模塊進(jìn)行實(shí)時(shí)顯示, 使室內(nèi)情況一目了然。 然后根據(jù)各信號(hào)采集模塊傳送給單片

10、機(jī)的數(shù)據(jù),做出應(yīng)對(duì)執(zhí)行,實(shí)現(xiàn)家居系統(tǒng)的智能控制。系統(tǒng)總體框圖如下:圖 2.1 系統(tǒng)總體框圖1.6 系統(tǒng)工作原理簡(jiǎn)介本系統(tǒng)工作可以分為四個(gè)部分:第一部分是傳感器數(shù)據(jù)采集,將溫度傳感器、濕度傳感器以及光敏電阻分別連接到單片機(jī)上,單片機(jī)會(huì)將傳感器采集到的實(shí)時(shí)數(shù)據(jù)進(jìn)行處理;第二部分是數(shù)據(jù)傳輸,有兩個(gè)無(wú)線模塊,一個(gè)連接到單片機(jī)上作為發(fā)射端,一個(gè)連接到單片機(jī)上作為接收端,單片機(jī)將處理過(guò)的數(shù)據(jù)通過(guò)發(fā)射端發(fā)送出去,單片機(jī)通過(guò)接收端將數(shù)據(jù)接收進(jìn)來(lái),再次進(jìn)行處理;第三部分是控制功能,單片機(jī)將接收到的數(shù)據(jù)與設(shè)定的閾值進(jìn)行比較,當(dāng)達(dá)到閾值條件時(shí),可以啟動(dòng)風(fēng)扇或者電燈,另外,溫度和光敏設(shè)定了幾個(gè)不同的閾值,當(dāng)達(dá)到某一閾

11、值會(huì)有相應(yīng)的風(fēng)扇轉(zhuǎn)速或者電燈亮度;第四部分,溫濕度顯示,單片機(jī)將通過(guò)無(wú)線方式接收到的數(shù)據(jù)采用串口通信的方3基于 Arduino 單片機(jī)的智能家居系統(tǒng)式傳給單片機(jī),單片機(jī)是專(zhuān)門(mén)用來(lái)控制 LCD1602 液晶顯示屏的,得到數(shù)據(jù)后單片機(jī)將數(shù)據(jù)傳到液晶屏進(jìn)行顯示。 3 系統(tǒng)硬件設(shè)計(jì)1.7 單片機(jī)的選擇首先將所需器件羅列,根據(jù)與單片機(jī)相連的各器件,確定整個(gè)系統(tǒng)所需與單片機(jī)連接的管腳數(shù),通過(guò)查資料,選定 Arduino 單片機(jī)作為該系統(tǒng)的微控制器,因?yàn)樗鼛в心M I/O 口,在外接各類(lèi)傳感器方面比普通的 51 系列單片機(jī)更為方便。 Arduino 單片機(jī)的模擬 I/O 口可以很方便地將光敏電阻和溫濕度傳感

12、器等模塊采集到的模擬量經(jīng) A/D 轉(zhuǎn)換后送給單片機(jī)進(jìn)行處理,而對(duì)數(shù)字信號(hào)的識(shí)別和處理正是 Arduino 的優(yōu)勢(shì)所在。2.3 Arduino UNO 簡(jiǎn)介Arduino UNO 是Arduino USB 接口系列的最新版本,作為 Arduino 平臺(tái)的參考標(biāo)準(zhǔn)模板。UNO 的處理器核心是 ATmega328,同時(shí)具有 14 路數(shù)字輸入 /輸出口(其中 6 路可作為 PWM 輸出),6 路模擬輸入,一個(gè) 16MHz 晶體振蕩器,一個(gè) USB 口,一個(gè)電源插座,一個(gè) ICSP header和一個(gè)復(fù)位按鈕。 UNO 已經(jīng)發(fā)布到第三版,與前兩版相比有以下新的特點(diǎn):在AREF 處增加了兩個(gè)管腳 SDA

13、和 SCL,支持 I2C 接口;增加 IOREF 和一個(gè)預(yù)留管腳,將來(lái)擴(kuò)展板將能兼容 5V 和 3.3V 核心板。這樣改進(jìn)了復(fù)位電路設(shè)計(jì), USB 接口芯片由 ATmega16U2替代了 ATmega8U2 。圖 2.2 為改進(jìn)后的 Arduino UNO 。圖 2.2Arduino UNO R34基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.8 Arduino 單片機(jī)特色1、開(kāi)放源代碼的電路圖設(shè)計(jì),程序開(kāi)發(fā)接口免費(fèi)下載,也可依需求自己修改。2、使用低價(jià)格的微處理控制器 (ATMEGA8 或 ATmega128)??梢圆捎?USB 接口供電,不需外接電源,也可以使用外部 9VDC 輸入。3、A

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

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

16、( Positive Logic)和負(fù)邏輯( Inverted Logic)兩種。Arduino 的優(yōu)勢(shì)在于對(duì)數(shù)字信號(hào)的識(shí)別和處理,但我們所生活的真實(shí)世界并不是數(shù)字(digital)化的,簡(jiǎn)單到只要用 0 和 1 就能夠表示所有的現(xiàn)象。例如溫度這一我們已經(jīng)司空見(jiàn)慣的概念,它只能在一個(gè)范圍之內(nèi)連續(xù)變化,而不可能發(fā)生像從 0 到 1 這樣的瞬時(shí)跳變,類(lèi)似這樣的物理量被人們稱(chēng)為是模擬( analog)的。Arduino 是無(wú)法理解這些模擬量的,它們必須在經(jīng)過(guò)模數(shù)轉(zhuǎn)換后變成數(shù)字量后,才能被 Arduino 進(jìn)一步處理。5基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.10 Arduino 單片機(jī)編程軟件

17、Arduino 語(yǔ)言是建立在 C/C+基礎(chǔ)上的,其實(shí)也就是基礎(chǔ)的 C 語(yǔ)言,Arduino 語(yǔ)言只不過(guò)把 AVR 單片機(jī)(微控制器)相關(guān)的一些寄存器參數(shù)設(shè)置等都函數(shù)化了,不用我們?nèi)チ私馑牡讓?,讓不太了?AVR 單片機(jī)(微控制器)的朋友也能輕松上手。圖 2.3 Arduino 編程界面Arduino 語(yǔ)言是以 setup()開(kāi)頭,loop()作為主體的一個(gè)程序構(gòu)架。官方網(wǎng)站是這樣描述 setup()的:用來(lái)初始化變量, 管腳模式,調(diào)用庫(kù)函數(shù)等等, 此函數(shù)只運(yùn)行一次。loop()函數(shù)是一個(gè)循環(huán)函數(shù),函數(shù)內(nèi)的語(yǔ)句周而復(fù)始的循環(huán)執(zhí)行,功能類(lèi)似 c 語(yǔ)言中的“main();”。2.4 溫濕度檢測(cè)模塊

18、設(shè)計(jì)智能家居的一個(gè)主要控制對(duì)象就是住戶室內(nèi)溫濕度, 適宜的溫濕度為主人提供良好的家居環(huán)境,這樣一來(lái),溫濕度檢測(cè)與控制模塊就變得尤為重要??紤]到硬件電路的復(fù)雜性,本設(shè)計(jì)中選擇 DHT11 數(shù)字溫濕度傳感器來(lái)檢測(cè)室內(nèi)的溫度和濕度,這樣可以用一個(gè)傳感器檢測(cè)兩個(gè)指標(biāo),使硬件電路得以簡(jiǎn)化。3.8 DHT11 概述DHT11 數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。 它應(yīng)用專(zhuān)用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù), 確保產(chǎn)品具有極高的可靠性與卓越的6基于 Arduino 單片機(jī)的智能家居系統(tǒng)長(zhǎng)期穩(wěn)定性。 傳感器包括一個(gè)電阻式感濕元件和一個(gè) NTC 測(cè)溫元件, 并與一個(gè)高性能 8位單片

19、機(jī)相連接。因此該產(chǎn)品具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強(qiáng)、性價(jià)比極高等優(yōu)點(diǎn)。每個(gè) DHT11 傳感器都在極為精確的濕度校驗(yàn)室中進(jìn)行校準(zhǔn)。校準(zhǔn)系數(shù)以程序的形式儲(chǔ)存在 OTP 內(nèi)存中,傳感器內(nèi)部在檢測(cè)信號(hào)的處理過(guò)程中要調(diào)用這些校準(zhǔn)系數(shù)。單線制串行接口,使系統(tǒng)集成變得簡(jiǎn)易快捷。超小的體積、極低的功耗,信號(hào)傳輸距離可達(dá) 20 米以上,使其成為各類(lèi)應(yīng)用甚至最為苛刻的應(yīng)用場(chǎng)合的最佳選則。產(chǎn)品為 4 針單排引腳封裝。連接方便,特殊封裝形式可根據(jù)用戶需求而提供。圖 3.1 DHT11 實(shí)物圖1.11 DHT11 引腳說(shuō)明引腳號(hào)引腳名稱(chēng)類(lèi)型引腳說(shuō)明1 VCC 電源正電源輸入, 3V-5.5V DC2 Dout

20、輸出單總線,數(shù)據(jù)輸入 /輸出引腳3 NC 空空腳,擴(kuò)展未用4 GND 地電源地圖 3.2 DHT11 典型應(yīng)用電路7基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.12 電源引腳DHT11 的供電電壓為 35.5V。傳感器上電后, 要等待 1s 以越過(guò)不穩(wěn)定狀態(tài)在此期間無(wú)需發(fā)送任何指令。電源引腳( VDD ,GND)之間可增加一個(gè) 100nF 的電容,用以去耦濾波。1.13 串行接口(單線雙向)DATA 用于微處理器與 DHT11 之間的通訊和同步,采用單總線數(shù)據(jù)格式,一次通訊時(shí)間 4ms左右,用戶 MCU 發(fā)送一次開(kāi)始信號(hào)后 ,,DHT11 從低功耗模式轉(zhuǎn)換到高速模式,等待主機(jī)開(kāi)始信號(hào)結(jié)束后,

21、 DHT11 發(fā)送響應(yīng)信號(hào),送出 40bit 的數(shù)據(jù),并觸發(fā)一次信號(hào)采集, 用戶可選擇讀取部分?jǐn)?shù)據(jù)。 從模式下,DHT11 接收到開(kāi)始信號(hào)觸發(fā)一次溫濕度采集,如果沒(méi)有接收到主機(jī)發(fā)送開(kāi)始信號(hào), DHT11 不會(huì)主動(dòng)進(jìn)行溫濕度采集, 采集數(shù)據(jù)后轉(zhuǎn)換到低速模式。2.5 光照檢測(cè)模塊設(shè)計(jì)光敏電阻特性是在不同光照強(qiáng)度下,其阻值發(fā)生變化(只要是人眼可感受的光,都會(huì)引起它的阻值變化) 。利用這一特性,我們把光敏電阻接入電路實(shí)現(xiàn)光照強(qiáng)度檢測(cè)。圖 3.3 光照檢測(cè)電路示意圖亮度檢測(cè)電路工作原理:我們把光敏電阻接入電路后,光敏電阻置于窗口處,由于光線的變化,其阻值也在一定時(shí)間內(nèi)不斷變化,從而產(chǎn)生連續(xù)的電信號(hào),通過(guò)

22、模擬 I/O口進(jìn)入單片機(jī)。由于單片機(jī)內(nèi)部自帶 A/D 轉(zhuǎn)換電路,通過(guò)相應(yīng)程序,能使模擬 I/O 口傳來(lái)的電信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),單片機(jī)讀取這些數(shù)字信號(hào),就能得出相應(yīng)的光照強(qiáng)度,并決定是否啟動(dòng)其他應(yīng)對(duì)措施。8基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.14 無(wú)線通信模塊設(shè)計(jì)考慮到系統(tǒng)的普遍適用性和硬件電路實(shí)現(xiàn)的難易程度,本次設(shè)計(jì)中選取 NRF24L01無(wú)線模塊作為系統(tǒng)的無(wú)線通信模塊, 該模塊既可以用于發(fā)送數(shù)據(jù), 也可以用于接收數(shù)據(jù),且易于編程操作。 NRF24L01 無(wú)線模塊主要特點(diǎn)如下:(1) 2.4Ghz 全球開(kāi)放 ISM 頻段免許可證使用;(2) 最高工作速率 2Mbps,高效 GFSK

23、調(diào)制,抗干擾能力強(qiáng),特別適合工業(yè)控制場(chǎng)合;(3) 126 頻道,滿足多點(diǎn)通信和跳頻通信需要;(4) 內(nèi)置硬件 CRC 檢錯(cuò)和點(diǎn)對(duì)多點(diǎn)通信地址控制;(5) 低功耗 1.9 - 3.6V 工作,待機(jī)模式下?tīng)顟B(tài)為 22uA;掉電模式下為 900nA;(6) 內(nèi)置 2.4Ghz 天線,體積種類(lèi)多樣;(7) 模塊可軟件設(shè)地址,只有收到本機(jī)地址時(shí)才會(huì)輸出數(shù)據(jù)(提供中斷指示 ),可直接接各種單片機(jī)使用,軟件編程非常方便;(8) 內(nèi)置專(zhuān)門(mén)穩(wěn)壓電路, 使用各種電源包括 DC/DC 開(kāi)關(guān)電源均有很好的通信效果;(9) 2.54MM 間距接口, DIP 封裝;(10)工作于 Enhanced ShockBurst

24、具有 Automatic packethandling, Auto packettransaction handling,具有可選的內(nèi)置包應(yīng)答機(jī)制,極大的降低丟包率。1.15 液晶顯示模塊設(shè)計(jì)2.6 液晶顯示模塊的選擇LCD1602 屏幕為 2 行,每行顯示 16 個(gè)字符,為字符型顯示器,只能顯示數(shù)字和字符,不可以顯示漢字。 LCD12864 屏幕為 64 行,每行顯示 128 個(gè)字符,為點(diǎn)陣型顯示器,可根據(jù)需求任意顯示字符,數(shù)字,漢字和圖形。綜合價(jià)格因素和實(shí)際應(yīng)用的需要,選用 LCD1602 為改家居系統(tǒng)的顯示器。 下面詳細(xì)介紹一下 LCD1602 的功能實(shí)現(xiàn)和各項(xiàng)參數(shù)。LCD1602 主要

25、技術(shù)參數(shù):顯示容量:16 2 個(gè)字符芯片工作電壓 :4.55.5V工作電流:2.0mA(5.0V)9基于 Arduino 單片機(jī)的智能家居系統(tǒng)模塊最佳工作電壓 :5.0V字符尺寸:2.95 4.35(W H)mmLCD1602 相比傳統(tǒng)顯示器的幾個(gè)突出優(yōu)點(diǎn):(1)顯示質(zhì)量高由于液晶顯示器收到信號(hào)后的每一個(gè)點(diǎn)都會(huì)一直保持原有亮度和顏色,恒定發(fā)光。而不像陰極射線管顯示器( CRT)那樣需要不斷刷新新亮點(diǎn)。因此,液晶顯示器既不會(huì)閃爍,又保證了畫(huà)質(zhì)高。(2)數(shù)字式接口液晶顯示器的輸入輸出采用數(shù)字量,和主控芯片( SCM)的接口連接更加簡(jiǎn)單可靠,操作也更為簡(jiǎn)便。(3)重量輕,體積小液晶顯示器通過(guò)顯示屏上

26、的電極控制液晶分子狀態(tài)來(lái)達(dá)到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器要輕得多。(4)功耗低相對(duì)而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動(dòng) IC 上,因而耗電量比其他顯示器要少得多。LCD1602 分為帶背光和不帶背光兩種,基控制器大部分為 HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別。1.16 液晶顯示電路設(shè)計(jì)圖 3.4 液晶顯示電路示意圖液晶顯示電路工作原理: 液晶顯示器 LCD1602 通過(guò) 714 管腳的數(shù)據(jù)總線與單片機(jī)進(jìn)行數(shù)據(jù)傳送,單片機(jī)通過(guò)輸出高地電平來(lái)控制液晶顯示器 LCD1602 的 46 管腳配合傳送的數(shù)據(jù)決定讀 /寫(xiě)數(shù)據(jù),并通過(guò) LCD 顯

27、示屏顯示出來(lái)。期間單片機(jī)是控制元件,而LCD1602 為顯示和執(zhí)行元件。10基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.17 其他模塊設(shè)計(jì)2.7 電燈模塊設(shè)計(jì)本次系統(tǒng)設(shè)計(jì)中用發(fā)光二極管 LED 來(lái)替代實(shí)際場(chǎng)景中的電燈。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)入對(duì)方區(qū)域的少數(shù)載流子 (少子 )一部分與多數(shù)載流子

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

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

30、錄像機(jī)等的遙控器中。在連接電路時(shí),首先應(yīng)正確區(qū)分 LED 的正負(fù)極,避免正負(fù)極戒飯導(dǎo)致無(wú)法使用甚至燒壞元件。 LED 的兩只引腳中,長(zhǎng)的一根為正極,短的一根為負(fù)極,連接電路時(shí),正極接一個(gè) 220的電阻,電阻另一端接單片機(jī)的數(shù)字I/O 口,負(fù)極接地。11基于 Arduino 單片機(jī)的智能家居系統(tǒng)1.18 風(fēng)扇模塊設(shè)計(jì)本設(shè)計(jì)中,采用普通的直流電機(jī)帶動(dòng)扇葉來(lái)模擬實(shí)際場(chǎng)景中的風(fēng)扇。直流風(fēng)扇的兩個(gè)接線端不分正負(fù), 一端接地,另一端接單片機(jī)數(shù)字 I/O 口即可,根據(jù)系統(tǒng)設(shè)計(jì)的要求,通過(guò)程序控制輸出到電機(jī)的電壓不同來(lái)改變電機(jī)轉(zhuǎn)速, 從而實(shí)現(xiàn)根據(jù)溫度變化和預(yù)設(shè)參數(shù)改變風(fēng)扇轉(zhuǎn)速的目的。2.8 系統(tǒng)硬件實(shí)物圖根據(jù)

31、上述各模塊的硬件設(shè)計(jì),最后做出的實(shí)物圖如下:圖3.5 模擬智能家居硬件實(shí)物圖12基于 Arduino 單片機(jī)的智能家居系統(tǒng) 4 軟件系統(tǒng)設(shè)計(jì)1.19 檢測(cè)端程序設(shè)計(jì)檢測(cè)端由單片機(jī)、光照檢測(cè)模塊、溫濕度檢測(cè)模塊和無(wú)線通信模塊組成,相應(yīng)的程序包括光照檢測(cè)程序、溫濕度檢測(cè)程序和無(wú)線通信程序,部分程序如下圖所示,完整的程序在附錄中。圖 4.1 檢測(cè)端部分程序1.20 控制端程序設(shè)計(jì)控制端由單片機(jī)、液晶顯示模塊、電燈模塊、風(fēng)扇模塊和無(wú)線通信模塊組成,相應(yīng)的程序包括無(wú)線接收程序、串口通信程序、顯示程序、風(fēng)扇和電燈控制程序,部分程序如下圖所示,完整的程序在附錄中。13基于 Arduino 單片機(jī)的智能家居系

32、統(tǒng)圖4.2 無(wú)線接收部分程序圖4.3 液晶顯示部分程序14基于 Arduino 單片機(jī)的智能家居系統(tǒng) 5 總結(jié)本次設(shè)計(jì)的模擬智能家居系統(tǒng)滿足了所有的系統(tǒng)設(shè)計(jì)要求, 完成了對(duì)溫濕度的實(shí)時(shí)監(jiān)測(cè)和現(xiàn)實(shí),得到的最終結(jié)果誤差也在要求的范圍之內(nèi), 而且完成了根據(jù)光照強(qiáng)度變化、溫度變化和預(yù)設(shè)參數(shù)對(duì)電燈和風(fēng)扇進(jìn)行智能控制的任務(wù),取得了令人滿意的成果。通過(guò)本次設(shè)計(jì),使我對(duì)基于單片機(jī)的智能控制有了更多的了解和掌握,在科技飛速發(fā)展的今天,科技意味著第一生產(chǎn)力,機(jī)器智能正在越來(lái)越多的方面取代人工操作,作為智能控制在工業(yè)應(yīng)用的代表性成果, 它結(jié)合了程序調(diào)控, 提供了定時(shí)控制、 計(jì)數(shù)控制、步進(jìn)控制以及數(shù)據(jù)處理等多種功能,

33、具有人工作業(yè)無(wú)法比擬的優(yōu)越性和精確性。隨著科技的發(fā)展,基于單片機(jī)的智能控制功能也會(huì)不斷擴(kuò)大,各項(xiàng)性能也將不斷提高。參考文獻(xiàn)1張?chǎng)?單片機(jī)原理及應(yīng)用 M. 北京:電子工業(yè)出版社, 20082童詩(shī)白,華成英.模擬電子技術(shù)基礎(chǔ) M. 北京:高等教育出版社, 20013王港元.電工電子實(shí)踐指導(dǎo) M. 南昌:江西科學(xué)技術(shù)出版社, 20064李朝青.PC機(jī)及單片機(jī)數(shù)據(jù)通信技術(shù),北京,北京航空航天大學(xué)出版社, 20005藍(lán)宇電子研發(fā)團(tuán)隊(duì) .Arduino 設(shè)計(jì)M.6湯凱,劉洋,續(xù)欣.Arduino 程序設(shè)計(jì)指南 M. 北京:電子工業(yè)出版社, 20157趙光宙.信號(hào)分析與處理 M. 北京:機(jī)械工業(yè)出版社, 2

34、0108張國(guó)雄.測(cè)控電路(第四版) M. 北京:機(jī)械工業(yè)出版社, 201115基于 Arduino 單片機(jī)的智能家居系統(tǒng)附錄:源程序檢測(cè)端發(fā)送程序:#include #include #include #include #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 50usdelayMicroseconds(30);if (PINC & _BV(DHT

35、11_PIN)result |= (1 (7 - i);while (PINC & _BV(DHT11_PIN); / wait 1 finishreturn result;void setup()DDRC |= _BV(DHT11_PIN);PORTC |= _BV(DHT11_PIN);Serial.begin(9600);Mirf.cePin = 9; /設(shè)置 CE 引腳為 D9Mirf.csnPin = 10; /設(shè)置 CE 引腳為 D10Mirf.spi = &MirfHardwareSpi;Mirf.init(); /初始化 nRF24L01/設(shè)置接收標(biāo)識(shí)符 Sen01Mirf.s

36、etRADDR(byte *)Sen01);/設(shè)置一次收發(fā)的字節(jié)數(shù),這里發(fā)一個(gè)整數(shù),寫(xiě) sizeof(unsigned int) ,實(shí)際等于 2 字節(jié)Mirf.payload = sizeof(unsigned int);/發(fā)送通道,可以填 0128,收發(fā)必須一致。Mirf.channel = 5;Mirf.config();Serial.println(Im Sender.);16基于 Arduino 單片機(jī)的智能家居系統(tǒng)void loop() byte dht11_dat5;byte dht11_in;byte i;unsigned intGuangmin,WenDu,ShiDu;/ st

37、art condition/ 1. pull-down i/o pin from 18msPORTC &= _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;delayMicroseconds(80);dht11_

38、in = PINC & _BV(DHT11_PIN);if (!dht11_in) Serial.println(dht11 start condition 2 not met);return;delayMicroseconds(80);/ now ready for data receptionfor (i = 0; i 8; /高八位給 data1。/設(shè)置向 serv1 發(fā)送數(shù)據(jù)Mirf.setTADDR(byte *)Rec01);Mirf.send(data);/while 死循環(huán)等待發(fā)送完畢,才能進(jìn)行下一步操作。while (Mirf.isSending() 控制端無(wú)線接收程序:#i

39、nclude #include #include #include int fengshan = 6;int led = 5;/定義一個(gè)變量 adata存儲(chǔ)最終結(jié)果 ,oldadata 存儲(chǔ)舊結(jié)果,防止相同結(jié)果刷屏。unsigned int WenDu = 0, ShiDu = 0, Guangmin = 0;void setup()pinMode(fengshan, OUTPUT);pinMode(led, OUTPUT);Serial.begin(9600);Mirf.cePin = 9; / 設(shè)置 CE 引腳為 D9Mirf.csnPin = 10; / 設(shè)置 CE 引腳為 D10/-

40、初始化部分,不可隨時(shí)修改 -Mirf.spi = &MirfHardwareSpi;Mirf.init(); / 初始化 nRF24L01/- 配置部分,可以隨時(shí)修改 -/設(shè)置接收標(biāo)識(shí)符 Rev01Mirf.setRADDR(byte *)Rec01);/設(shè)置一次收發(fā)的字節(jié)數(shù),這里發(fā)一個(gè)整數(shù),/寫(xiě) sizeof(unsigned int) ,實(shí)際等于 2 字節(jié)Mirf.payload = sizeof(unsigned int);/發(fā)送通道,可以填 0128,收發(fā)必須一致。18基于 Arduino 單片機(jī)的智能家居系統(tǒng)Mirf.channel = 5;Mirf.config();void lo

41、op()/定義一個(gè)暫存數(shù)組,大小為 Mirf.payload 。byte dataMirf.payload;if (Mirf.dataReady() / 等待接收數(shù)據(jù)準(zhǔn)備好Mirf.getData(data); / 接收數(shù)據(jù)到 data 數(shù)組WenDu = (unsigned int)(data1 8) | data0);Mirf.getData(data); / 接收數(shù)據(jù)到 data 數(shù)組ShiDu = (unsigned int)(data1 8) | data0);Mirf.getData(data); / 接收數(shù)據(jù)到 data 數(shù)組Guangmin = (unsigned int)(d

42、ata1 8) | data0);sender(WenDu);sender(ShiDu);delay(1050);if (25 = WenDu = 28)analogWrite(fengshan, 51);else if (29 = WenDu = 33)analogWrite(fengshan, 255);elseanalogWrite(fengshan, 0);if (0 = Guangmin = 60)analogWrite(led, 255);else if (61= Guangmin = 120)analogWrite(led, 153);else if (121 = Guangmi

43、n = 180)analogWrite(led, 51);elsedigitalWrite(led, LOW);void sender(unsigned int x) unsigned int c, d, j ;unsigned int SHU2;c = x/10;d = x-c * 10;SHU0 = c;19基于 Arduino 單片機(jī)的智能家居系統(tǒng)SHU1 = d;for (j = 0; j 2; j+) switch (SHUj) case 0:Serial.print(0);break;case 1:Serial.print(1);break;case 2:Serial.print(2);break;case 3:Serial.print(3);break;case 4:Serial.print(4);break;case 5:Serial.print(5);break;case 6:Serial.print(6);break;case 7:Serial.print(7);break;case 8:

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論