基于Android的智能家居系統(tǒng)設(shè)計畢業(yè)論文.doc_第1頁
基于Android的智能家居系統(tǒng)設(shè)計畢業(yè)論文.doc_第2頁
基于Android的智能家居系統(tǒng)設(shè)計畢業(yè)論文.doc_第3頁
基于Android的智能家居系統(tǒng)設(shè)計畢業(yè)論文.doc_第4頁
基于Android的智能家居系統(tǒng)設(shè)計畢業(yè)論文.doc_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

東莞理工學院畢業(yè)論文(設(shè)計)題 目 基于android的智能家居系統(tǒng)設(shè)計 c語言功能模塊及部分驅(qū)動 基于android的智能家居系統(tǒng)設(shè)計c語言功能模塊及驅(qū)動部分摘要:我們最早可以追溯到1994年,智能家居已經(jīng)進入中國市場,但是由于經(jīng)濟和技術(shù)的成本原因尚未普及。今年與人民生活水平的逐步提高,特別是嵌入式設(shè)備的快速發(fā)展,使智能家居不再像以前那么高不可攀了。智能家居項目,寫這篇文章是基于安卓界面,通過c控制硬件。控制常見的家用電器如空調(diào)電燈,并通過一系列的室內(nèi)溫度和濕度自動監(jiān)測以及實現(xiàn)安全的影響。由于這個項目的內(nèi)容較多,所以是兩種方式的分工來完成設(shè)計。詳細摘要,基于智能家居通過jni接受從java數(shù)據(jù),然后由c語言在各種硬件的行動以實現(xiàn)用戶的需求,和硬件驅(qū)動程序編程的一部分。關(guān)鍵字:智能家居,jni,c語言smart home system design based on androidc language function module and drive sectionabstract: in early 1994, smart home has entered china market, but wasnt popular because the high cost of economy and technology . recently, with the gradual improvement of living standards, especially the rapid development of embedded devices, the smart home is more and more acceptable than before.smart home project in this paper, is written in android based interface, through the c to control the hardware. to achieve control of common household appliances such as electric air conditioning, temperature and humidity and through the acquisition of a series of control room and protection.owing to the very big project , it is finish by twp peoples teamwork. and in this paper, smart home in an data came from the java by jni based on c language, and then by the various hardware action has reached the demand of the user, and the hardware drive program.keywords: smart home, jni, c language目 錄1 緒 論11.1研究背景和意義11.2本設(shè)計所完成的工作22 總括42.1 硬件42.1.1 cortex-a842.1.2 拓展板52.2 jni53 功能設(shè)計73.1 主界面73.1.1 溫濕度監(jiān)控顯示73.1.2 在家模式和外出模式的切換83.1.3 進入安防界面93.2 鬧 鐘103.3 燈 光113.4 窗 簾123.4.1 光感監(jiān)控123.4.2 控制窗簾123.5 空調(diào)及排氣扇133.5.1 空調(diào)和排氣扇的直接控制133.5.2 溫度控制空調(diào)143.5.3 短信控制空調(diào)143.6 安 防153.6.1 警報153.6.2 切換識別id卡以及電話號碼154.驅(qū)動及界面包裝174.1 led174.2 gprs174.3 直流電機174.4 蜂鳴器194.5 rfid195. 總結(jié)19致謝2021 緒 論1.1研究背景和意義智能家居(英文:smart home, home automation)是以住宅為平臺,利用綜合布線技術(shù)、網(wǎng)絡(luò)通信技術(shù)、 安全防范技術(shù)、自動控制技術(shù)、音視頻技術(shù)將家居生活有關(guān)的設(shè)施集成,構(gòu)建高效的住宅設(shè)施與家庭日程事務的管理系統(tǒng),提升家居安全性、便利性、舒適性、藝術(shù)性,并實現(xiàn)環(huán)保節(jié)能的居住環(huán)境。智能家居是在互聯(lián)網(wǎng)的影響之下物聯(lián)化體現(xiàn)。智能家居通過物聯(lián)網(wǎng)技術(shù)將家中的各種設(shè)備(如音視頻設(shè)備、照明系統(tǒng)、窗簾控制、空調(diào)控制、安防系統(tǒng)、數(shù)字影院系統(tǒng)、影音服務器、影柜系統(tǒng)、網(wǎng)絡(luò)家電等)連接到一起,提供家電控制、照明控制、電話遠程控制、室內(nèi)外遙控、防盜報警、環(huán)境監(jiān)測、暖通控制、紅外轉(zhuǎn)發(fā)以及可編程定時控制等多種功能和手段。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,兼?zhèn)浣ㄖ⒕W(wǎng)絡(luò)通信、信息家電、設(shè)備自動化,提供全方位的信息交互功能,甚至為各種能源費用節(jié)約資金。智能家居的概念起源很早,但一直未有具體的建筑案例出現(xiàn),直到1984年美國聯(lián)合科技公司(united technologies building system)將建筑設(shè)備信息化、整合化概念應用于美國康涅狄格州(connecticut)哈特佛市(hartford)的cityplacebuilding時,才出現(xiàn)了首棟的“智能型建筑”,從此揭開了全世界爭相建造智能家居派的序幕。國內(nèi)現(xiàn)狀智能家居作為一個新生產(chǎn)業(yè),處于一個導入期與成長期的臨界點,市場消費觀念還未形成,但隨著智能家居市場推廣普及的進一步落實,培育起消費者的使用習慣,智能家居市場的消費潛力必然是巨大的,產(chǎn)業(yè)前景光明。 正因為如此,國內(nèi)優(yōu)秀的智能家居生產(chǎn)企業(yè)愈來愈重視對行業(yè)市場的研究,特別是對企業(yè)發(fā)展環(huán)境和客戶需求趨勢變化的深入研究,一大批國內(nèi)優(yōu)秀的智能家居品牌迅速崛起,逐漸成為智能家居產(chǎn)業(yè)中的翹楚!智能家居至今在中國已經(jīng)歷了近12年的發(fā)展,從人們最初的夢想,到今天真實的走進我們的生活,經(jīng)歷了一個艱難的過程。2 智能家居在中國的發(fā)展經(jīng)歷的四個階段,分別是萌芽期/智能小區(qū)期、開創(chuàng)期、徘徊期、融合演變期。萌芽期/智能小區(qū)期(1994年-1999年)這是智能家居在中國的第一個發(fā)展階段,整個行業(yè)還處在一個概念熟悉、產(chǎn)品認知的階段,這時沒有出現(xiàn)專業(yè)的智能家居生產(chǎn)廠商,只有深圳有一兩家從事美國x-10智能家居代理銷售的公司從事進口零售業(yè)務,產(chǎn)品多銷售給居住國內(nèi)的歐美用戶。開創(chuàng)期(2000年-2005年)國內(nèi)先后成立了五十多家智能家居研發(fā)生產(chǎn)企業(yè),主要集中在深圳、上海、天津、北京、杭州、廈門等地。智能家居的市場營銷、技術(shù)培訓體系逐漸完善起來,此階段,國外智能家居產(chǎn)品基本沒有進入國內(nèi)市場。徘徊期(2006-2010年)2005年以后,由于上一階段智能家居企業(yè)的野蠻成長和惡性競爭,給智能家居行業(yè)帶來了極大的負面影響:包括過分夸大智能家居的功能而實際上無法達到這個效果、廠商只顧發(fā)展代理商卻忽略了對代理商的培訓和扶持導致代理商經(jīng)營困難、產(chǎn)品不穩(wěn)定導致用戶高投訴率。行業(yè)用戶、媒體開始質(zhì)疑智能家居的實際效果,由原來的鼓吹變得謹慎,市場銷售也幾年出來增長減緩甚至部分區(qū)域出現(xiàn)了銷售額下降的現(xiàn)象。2005年-2007年,大約有20多家智能家居生產(chǎn)企業(yè)退出了這一市場,各地代理商結(jié)業(yè)轉(zhuǎn)行的也不在少數(shù)。許多堅持下來的智能家居企業(yè),在這幾年也經(jīng)歷了縮減規(guī)模的痛苦。正在這一時期,國外的智能家居品牌卻暗中布局進入了中國市場,而活躍在市場上的國外主要智能家居品牌都是這一時期進入中國市場的,如羅格朗、霍尼韋爾、施耐德、control4等。國內(nèi)部分存活下來的企業(yè)也逐漸找到自己的發(fā)展方向,例如天津瑞朗,青島愛爾豪斯,海爾,科道等,用x10,深圳索科特做了空調(diào)遠程控制,成為工業(yè)智控的廠家。融合演變期(2011-2020年)進入2011年以來,市場明顯看到了增長的勢頭,而且大的行業(yè)背景是房地產(chǎn)受到調(diào)控。智能家居的放量增長說明智能家居行業(yè)進入了一個拐點,由徘徊期進入了新一輪的融合演變期。接下來的三到五年,智能家居一方面進入一個相對快速的發(fā)展階段,另一方面協(xié)議與技術(shù)標準開始主動互通和融合,行業(yè)并購現(xiàn)象開始出來甚至成為主流。接下來的五到十年,將是智能家居行業(yè)發(fā)展極為快速,但也是最不可琢磨的時期,由于住宅家庭成為各行業(yè)爭奪的焦點市場,智能家居作為一個承接平臺成為各方力量首先爭奪的目標。誰能最終勝出,我們可以作種種分析,但最終結(jié)果,也許只有到時才知。但不管如何發(fā)展,這個階段國內(nèi)將誕生多家年銷售額上百億元的智能家居企業(yè)。5、爆發(fā)期進入到2014年以來,各大廠商已開始密集布局智能家居,盡管從產(chǎn)業(yè)來看,業(yè)內(nèi)還沒有特別成功的案例顯現(xiàn),這預示著行業(yè)發(fā)展仍處于探索階段,但越來越多的廠商開始介入和參與已使得外界意識到,智能家居未來已不可逆轉(zhuǎn)。目前來看,智能家居經(jīng)過一年多產(chǎn)業(yè)磨合,已正處爆發(fā)前夜。業(yè)內(nèi)人士認為,2015年隨著合作企業(yè)已普遍進入到出成果時刻,智能家居新品將會層出不窮,業(yè)內(nèi)涌現(xiàn)的新案例也會越來越多。1 國內(nèi)相關(guān)政策截止2013年,全球范圍內(nèi)信息技術(shù)創(chuàng)新不斷加快,信息領(lǐng)域新產(chǎn)品、新服務、新業(yè)態(tài)大量涌現(xiàn),不斷激發(fā)新的消費需求,成為日益活躍的消費熱點。我國市場規(guī)模龐大,正處于居民消費升級和信息化、工業(yè)化、城鎮(zhèn)化、農(nóng)業(yè)現(xiàn)代化加快融合發(fā)展的階段,信息消費具有良好發(fā)展基礎(chǔ)和巨大發(fā)展?jié)摿?。我國政府為了推動信息化、智能化城市發(fā)展也在2013年8月14日發(fā)表了關(guān)于促進信息消費擴大內(nèi)需的若干意見,大力測發(fā)展寬帶普及、寬帶提速,加快推動信息消費持續(xù)增長,這都為智能家居、物聯(lián)網(wǎng)行業(yè)的發(fā)展打下了堅實的基礎(chǔ)。政策摘要:增強信息產(chǎn)品供給能力鼓勵智能終端產(chǎn)品創(chuàng)新發(fā)展。面向移動互聯(lián)網(wǎng)、云計算、大數(shù)據(jù)等熱點,加快實施智能終端產(chǎn)業(yè)化工程,支持研發(fā)智能手機、智能電視等終端產(chǎn)品,促進終端與服務一體化發(fā)展。支持數(shù)字家庭智能終端研發(fā)及產(chǎn)業(yè)化,大力推進數(shù)字家庭示范應用和數(shù)字家庭產(chǎn)業(yè)基地建設(shè)。鼓勵整機企業(yè)與芯片、器件、軟件企業(yè)協(xié)作,研發(fā)各類新型信息消費電子產(chǎn)品。支持電信、廣電運營單位和制造企業(yè)通過定制、集中采購等方式開展合作,帶動智能終端產(chǎn)品競爭力提升,夯實信息消費的產(chǎn)業(yè)基礎(chǔ)。3 國外現(xiàn)狀自從世界上第一幢智能建筑1984年在美國出現(xiàn)后,美國、加拿大、歐洲、澳大利亞和東南亞等經(jīng)濟比較發(fā)達的國家先后提出了各種智能家居的方案。智能家居在美國、德國、新加坡、日本等國都有廣泛應用。1998年5月新加坡舉辦的“98亞洲家庭電器與電子消費品國際展覽會”上,通過在場內(nèi)模擬“未來之家”,推出了新加坡模式的家庭智能化系統(tǒng)。它的系統(tǒng)功能包括三表抄送功能、安防報警功能、可視對講功能、監(jiān)控中心功能、家電控制功能、有線電視接入、電話接入、住戶信息留言功能、家庭智能控制面板、智能布線箱、寬帶網(wǎng)接入和統(tǒng)軟件配置等。根據(jù)美國該行業(yè)之專業(yè)顧問公司parks的統(tǒng)計資料顯示:1995年,美國一個家庭要安裝家庭自動化設(shè)備的平均費用在7000至9000美元之間。1995年美國家庭已使用先進家庭自動化設(shè)備的比率為0.33%,看來市場真正啟動尚需時日。預計這五年內(nèi),家庭自動化的市場年平均增長率為8%。parks公司的資料亦顯示:到2004年,家庭網(wǎng)絡(luò)市場總額可達57億美元。據(jù)國際專家預測,到2000年底國際智能家居的產(chǎn)品銷售額可達24億美元。2004年可達148億美元。發(fā)展機遇智慧家居是今后家居領(lǐng)域發(fā)展的必然趨勢,雖然市場推廣才剛剛開始,但行業(yè)的競爭已經(jīng)很激烈,光是寧波就有不下5家企業(yè)專門從事這方面開發(fā)。制造企業(yè)在產(chǎn)業(yè)調(diào)整和轉(zhuǎn)型中,都需要運用到大數(shù)據(jù)。今后,數(shù)據(jù)將成為推進社會進步的第四生產(chǎn)力。市場潛力巨大,同時,智慧家居所依托的大數(shù)據(jù)分析,也是傳統(tǒng)制造企業(yè)轉(zhuǎn)型升級的重要途徑??傉摚罕葼柹w茨是國外第一個使用智能家居的家庭,至今快有三十年的歷史了,智能家居控制系統(tǒng)也逐漸走進大家的視野。這兩年隨著wifi的普及,無線智能家居逐漸取代了有線產(chǎn)品,在無線領(lǐng)域國內(nèi)并不落后于國外,同樣使用最新zigbee智能家居,但目前國內(nèi)智能家居雖有潛力但發(fā)展緩慢,人們的消費觀和消費能力并不充分。根據(jù)中國智能家居設(shè)備行業(yè)發(fā)展環(huán)境與市場需求預測分析報告前瞻分析,目前我國智能家居產(chǎn)品與技術(shù)的百花齊放,市場開始明顯出現(xiàn)低、中、高不同產(chǎn)品檔次的分水嶺,行業(yè)進入快速成長期。面對中國龐大的需求市場,預計該行業(yè)將以年均19.8%的速率增長,在2015年產(chǎn)值達1240億元。4 發(fā)展智能家居最初的發(fā)展主要以燈光遙控控制、電器遠程控制和電動窗簾控制為主,隨著行業(yè)的發(fā)展,智能控制的功能越來越多,控制的對象不斷擴展,控制的聯(lián)動場景要求更高,其不斷延伸到家庭安防報警、背景音樂、可視對講、門禁指紋控制等領(lǐng)域,可以說智能家居幾乎可以涵蓋所有傳統(tǒng)的弱電行業(yè),市場發(fā)展前景誘人,因此和其產(chǎn)業(yè)相關(guān)的各路品牌不約而同加大力度爭奪智能家居業(yè)務,市場漸成春秋爭霸之勢。(以上圖片來自百度的搜索)1.2本設(shè)計所完成的工作本文根據(jù)系統(tǒng)分為6個界面,包括主界面、燈光界面、鬧鐘界面、窗簾界面、空調(diào)及排氣界面、安防界面,其中用戶最先能看到的是主界面,從主界面可以進入其他的5個二級界面。如圖1.1所示圖1-1主界面除了作為其他界面的入口,還包括當前的溫濕度顯示,選擇在家和外出模式的切換。其中當外出模式切換到在家模式和進入安防設(shè)置的時候需要用到rfid認證。在燈光界面中的按鈕是能夠判斷燈光的狀態(tài)的,因此在燈光界面中會不斷刷新并上傳燈光的狀態(tài)以便led燈和按鍵的狀態(tài)保持一致。鬧鐘界面中我們提供一個定時鬧鐘可以設(shè)定在24小時內(nèi)使蜂鳴器動作一次。并且可以再鬧鐘發(fā)出聲響之前取消。在空調(diào)界面中由于也需要用到顯示溫度,可以通過溫度控制空調(diào)的開啟,另外由于硬件上的限制,空調(diào)在演示中也是以led燈的形式演示。窗簾界面可以提供兩種控制窗簾的方法,包括手動直接控制窗簾和通過光照值控制窗簾的開關(guān),為了方便用戶設(shè)定合適的光照值,界面中有對當前光感的監(jiān)控。安防系統(tǒng)需要通過rfid的認證才能進入,此界面主要提高的安防功能是紅外和煙霧警報,警報的方式都分別分為蜂鳴器警報和短信警報,而且此界面也可以對已綁定的手機號碼和rfid卡進行更換。本系統(tǒng)的界面使用android寫成,把用戶需要求的數(shù)據(jù)傳到c語言層,最后由c語言層操控硬件。而c語言和java之間的通信側(cè)是通過jni來完成的。(如圖1-2)圖 1-22 總括2.1 硬件本文所用到的主要硬件有:搭載cortex-a8的gec210嵌入式開發(fā)板,7英寸電阻屏,以及一塊硬件拓展版。下面是智能家居系統(tǒng)原理圖。2.1.1 cortex-a8本開發(fā)板gec210搭載的主芯片為cortex-a8,又名“蜂鳥”,是三星推出的一款適用于智能手機和平板計算機等多媒體設(shè)備的應用處理器,cortex-a8和s5pc110功能一樣,110小封裝適用于智能手機,210封裝較大,主要用于平板計算機和上網(wǎng)本。圖2-1cortex-a8采用了arm cortextm-a8內(nèi)核,arm v7指令集,主頻可達1ghz,64/32位內(nèi)部總線結(jié)構(gòu),32/32kb的數(shù)據(jù)/指令一級緩存,512kb的二級緩存,可以實現(xiàn)2000dmips(每秒運算2億條指令集)的高性能運算能力。arm cortex-a8 cpu原理如圖2-1所示。2.1.2 拓展板拓展版主要是為了拓展在gec210上所沒有的硬件需求,以滿足智能家居的實驗需要。具體包括:紅外模塊、繼電器模塊、步進電機、直流電機、氣體傳感器、溫濕度傳感器、光敏感測器、gprs模塊和rfid模塊。原理圖及io引腳分配如圖2-2所示:圖2-22.1.3 rfid模塊芯片拓展版所用的rfid具體型號為mf rc522 ,是應用于13.56mhz 非接觸式通信中高集成度讀寫卡系列芯片中的一員。是nxp 公司針對“三表”應用推出的一款低 電壓、低成本、體積小的非接觸式讀寫卡芯片,是智能儀表和便攜 式手持設(shè)備研發(fā)的較好選擇。mf rc522 利用了先進的調(diào)制和解調(diào)概念,完全集成了在13.56mhz 下所有類型的被動非接觸式通信方式和協(xié)議。支持 iso14443a 的多層應用。其內(nèi)部發(fā)送器部分可驅(qū)動讀寫器天線與iso 14443a/mifare卡和應答機的通信,無需其它的電路。接收器部分提供一個堅固而有效的解調(diào)和解碼電路,用于處理iso14443a 兼容的應答器信號。數(shù)字部分處理iso14443a 幀和錯誤檢測(奇偶 &crc)。此外,它還支持快速crypto1 加密算法,用于驗證mifare 系列產(chǎn)品。mfrc522 支持mifare?更高速的非接觸式通信,雙向數(shù)據(jù)傳輸速率高達424kbit/s。2.2 jnijni是java native interface的縮寫,中文名java的本地調(diào)用。從java1.1開始,java native interface(jni)標準成為java平臺的一部分,它允許java代碼和其他語言寫的代碼進行交互。jni一開始是為了本地已編譯語言,尤其是c和c+而設(shè)計的,只要調(diào)用約定受支持就可以了。使用java與本地已編譯的代碼交互,通常會喪失平臺可移植性。但是,有些情況下這樣做是可以接受的,甚至是必須的,比如,使用一些舊的庫,與硬件、操作系統(tǒng)進行交互,或者為了提高程序的性能。jni標準至少保證本地代碼能工作在任何java虛擬機實現(xiàn)。jni在程序中作用的是java和c的翻譯,在本設(shè)計中起到的作用是,讓c語言層得知java的調(diào)用,以及把各種硬件信息通過實時刷新的方式不斷反饋到j(luò)ava中。關(guān)系如圖2-3示:圖2-33 功能設(shè)計3.1 主界面3.1.1 溫濕度監(jiān)控顯示顯示溫濕度是智能家居的最基本功能,通過熒幕用戶可以隨時從中獲知當前的溫度和濕度。由于溫濕度顯示并不需要觸發(fā)事件,因此打開程序的時候就會自動觸發(fā)。溫濕度的顯示需要不斷地刷新,也為了方便其他數(shù)值的傳遞,我們定義了一個叫cflags的數(shù)組,定義clags的12是用于存放溫濕度的數(shù)值。另外光感應驅(qū)動也在這里打開,方便在同一個地方把需要隨時刷新的值都得到并及時更新到cflags里面去。在監(jiān)控溫濕度的線程中,首先根據(jù)驅(qū)動給的借口,取得溫濕度傳感器的檔描述符fdtemperature,通過io控制函數(shù)temperature_ioctl(fdtemperature , &cflags1);還有emperature_ioctl(fdtemperature , &cflags0);不斷循環(huán)并取得當前的溫濕度數(shù)值。在取得數(shù)值之后,通過安卓里面的handler隨時刷新數(shù)值,而c層需要做的就是不斷更新數(shù)組里面的所有數(shù)據(jù)并通過jni傳到上層以達到界面層和運算層的實時通信。首先需要在初始化時把handler的屬性對象保存起來,先定義兩個全局變量jobject g_obj = null;和javavm *g_vm = null;然后在jni執(zhí)行初始化是進行環(huán)境變量的保存(*env)-getjavavm(env,&g_vm);和g_obj= (*env)-newglobalref(env,obj);在更新線程中釋放之前保存的全局變量以便找到j(luò)ava中的對象即對應的java數(shù)組并轉(zhuǎn)換上傳,具體操作是:jclass gasdevclazz = (*g_env)-getobjectclass(g_env, g_obj);jfieldid fieldid = (*g_env)-getfieldid(g_env, gasdevclazz, flags, i);jflags = (*g_env)-getobjectfield(g_env, g_obj,fieldid);jclass iclass = (*g_env)-getobjectclass(g_env, g_obj);jmethodid methodid = (*g_env)-getmethodid(g_env, iclass,handlerarray, (i)v);3.1.2 在家模式和外出模式的切換由于在出門的時候用戶經(jīng)常需要關(guān)閉很多的用電器,整合一個外出模式就能為用戶提供極大的便利。外出系統(tǒng)的主要功能是在用戶切換到外出功能的10秒后,關(guān)閉室內(nèi)的所有可控制用電器并打開所有可用警報的短信通知。在家模式和外出模式,根據(jù)界面需求,只設(shè)置一個觸發(fā)動作的界面,具體操作是當用戶按下外出模式按鈕c語言層接受到觸發(fā)命令,在c語言層通過利用pthread_create創(chuàng)建兩個線程:第一個線程首先利用線程分離函數(shù)pthread_detach(pthread_self()進行線程的分離,使用sleep(10)等待10秒后,若10秒之內(nèi)判斷到外出模式的標志位cflags3依然是1,就通過包裝過的驅(qū)動界面把用電器關(guān)閉,把標志紅外入侵警報的cflags4和標志有毒氣體警報的clags5都設(shè)置成短信通知,并把所有存儲用電器狀態(tài)值的cflags中的相關(guān)數(shù)值進行刷新,最后關(guān)閉線程;另一個線程則是負責不斷監(jiān)聽rfid,也是先通過分離線程,然后使用while(1)不斷循環(huán),在循環(huán)體內(nèi)打開rfid驅(qū)動,每0.5秒啟動一次,用if判斷語句當識別到用戶綁定的id卡時切換為在家模式把紅外警報和氣體警報標志位置成關(guān)閉狀態(tài),并關(guān)閉線程。工作原理流程圖如3-1所示。等待10秒用戶點擊切換成外出模式關(guān)閉用電器并打開警報是否刷正確的id卡切換成在家模式ny圖3-1圖3-13.1.3 進入安防界面在進入安防界面的時候需要用到rfid卡的認證,為上層界面提供了一個觸發(fā)界面,具體操作是當接收到界面?zhèn)鱽淼倪M入安防界面動作時,在c語言層開辟一個安防進入的線程,利用for循環(huán)輪詢,每次循環(huán)相隔0.5秒,然后用if語句把存儲有綁定的有效rfid卡id的cfags17與rfid識別到的卡號進行比對,當一致時把cfags6置成id卡號表示進入安防界面成功,如果在5秒內(nèi)未能識別正確的id卡號,就把cfags6置成1表示進入安防界面失敗。如流程圖3-2所示。nyyn點擊進入安防界面彈出刷卡提示是否超過10秒是否識別正確id卡進入安防界面失敗成功進入安防界面圖3-23.2 鬧 鐘鬧鐘是智能家居中一個重要的功能,此鬧鐘可以設(shè)定在24小時內(nèi)使蜂鳴器發(fā)出一次聲響,并且能夠隨時取消并重新設(shè)置。此界面給上層提供的界面是傳遞一個字符串,通過算法把字符串提取成數(shù)字并作為設(shè)定時間。若當前時間和設(shè)定時間一致則蜂鳴器動作。每次判斷蜂鳴器是否動作之前都需要先判斷標志位,看看用戶是否取消鬧鐘。是的話就停止減少時間并跳出該段程序。 具體操作是在初始化的時候先建立好鬧鐘線程(后面會說到鬧鐘線程還整合了其他功能),然后分離線程,通過time_t tp;和struct tm *s_tm;定義時間結(jié)構(gòu)體并且通過tp = time(null);和s_tm = localtime(&tp);兩個函數(shù)取得當前時間,同時通過以下if語句判斷:if(cflags16/10000)=1)&(s_tm-tm_hour)=(cflags16%10000/100)&(s_tm-tm_min)=(cflags16%100)其中cflags16中,后面四位是表示用戶設(shè)定的時間和分鐘,第一位是指是否設(shè)定鬧鐘的標志位,如果標志鬧鐘的clags16不為0而當前的時分與用戶設(shè)定的時分又是一致的話,就直接通過蜂鳴器的包裝驅(qū)動設(shè)置蜂鳴器的合適占空比和周期,并持續(xù)動作10秒,之后則把鬧鐘標志位clags16置0。該流程如圖3-3所示:nyyn用戶輸入一個字符串串轉(zhuǎn)換成設(shè)定時間是否取消鬧鐘是否到達設(shè)定時間鬧鐘取消蜂鳴器動作圖3-33.3 燈 光燈光的直接控制就是通過用戶直接點擊上層按鈕,傳到下層直接打開驅(qū)動進行操作,操作完成后刷新標志位??梢悦看慰刂埔粋€led燈或者是一次控制所有的led燈,方便用戶控制。在燈光界面我們給上層界面只需要提供一個界面,傳進來一個int型數(shù),就可以知道用戶的意圖,通過if語句判斷,當傳進來的數(shù)是13或者14,我們就把對應的房間或者客廳led燈取反,如果傳進來的數(shù)是0,就把所有l(wèi)ed燈關(guān)掉,1則是打開所有的led燈,在開關(guān)后必須把標志燈光狀態(tài)的標志位更新。另外,出于環(huán)保的考慮,我們默認設(shè)置了,當光照值大于4000的時候,燈光會自動關(guān)閉。3.4 窗 簾3.4.1 光感監(jiān)控用戶在燈光界面可以看到當前的光照值,以便對光感控制窗簾中的光感強度有更具體的概念。由于這個監(jiān)控也是不需要任何的觸發(fā)動作,當用戶切換到此頁面是就會不斷刷新數(shù)值,因此也不提供任何界面,而刷新光感的具體動作也是通過同一個handler不斷地取得在驅(qū)動中獲取的當前光照值并上傳到上層界面。3.4.2 控制窗簾在窗簾界面提供直接窗簾的界面,只需要傳遞一個整數(shù),0的時候打開,1的時候關(guān)閉,用戶可以根據(jù)當前的光照值設(shè)定當光照值大于某設(shè)定值時,窗簾進行關(guān)閉動作,以及當前光照值少于設(shè)定值時,窗簾開啟并屋內(nèi)的燈光。具體操作也是在初始化的時候就建立并分離線程,用while(1)每隔兩秒判斷一次,我們把預設(shè)光感值cflags9初始值設(shè)為最大值5000,低于設(shè)定值開用語句if(cflags7=2)&(cflags8=0)&(cflags9cflags10)進行判斷,高于設(shè)定值關(guān)則用也是用一個類似的語句來判斷,具體是:if(cflags7=1)&(cflags8=1)&(cflags9cflags10),然后通過描述符操作步進電機的動作完成用戶的指令。而直接操作窗簾的線程只在用戶層有指令傳送下來的時候存在,通過一個if語句判斷是開還是關(guān),然后直接操作驅(qū)動,最后刷新標志位并關(guān)閉線程。需要注意的是,由于步進電機的特性問題,而打開和關(guān)閉的動作也需要轉(zhuǎn)動一定的步數(shù),因此在短時間內(nèi)進行打開和關(guān)閉,會導致步進電機的停止動作,為了防止這一情況的發(fā)生,我們規(guī)定,用信號量去加鎖,當完成打開或者關(guān)閉動作時,再執(zhí)行下一個動作,避免了錯誤的發(fā)生。實際操作是我們在當接收到用戶需要操作窗簾時會新建并分離一個線程,用if語句判斷如果進行動作與窗簾當前狀態(tài)一致則不動作,或者當信號量小于0時,利用sem_trywait()函數(shù)阻塞,直到上一個動作完成為止。光感控制窗簾開關(guān)原理流程圖如圖3-4所示。用戶設(shè)定光照值和動作是否大于/小于設(shè)定值取得當前光照值關(guān)閉/打開窗簾圖3-4yny3.5 空調(diào)及排氣扇3.5.1 空調(diào)和排氣扇的直接控制空調(diào)和排氣扇的直接控制是用戶對界面進行操作對空調(diào)和排氣扇直接進行直接的操作。界面?zhèn)鬟f一個整形數(shù),分別直接控制空調(diào)和排氣扇的開關(guān)。具體操作是在借口程序里面打開驅(qū)動取得表示空調(diào)的led燈和直流電機的描述符,然后通過一個switch語句判斷用戶動作并執(zhí)行,最后回收描述符。3.5.2 溫度控制空調(diào)用戶通過設(shè)定一個溫度,當當前溫度高于用戶所設(shè)溫度的時候空調(diào)自動打開。監(jiān)控程序依附在handler刷新上傳flags的線程中,而設(shè)定的值則在接口程序里面通過cflags15來設(shè)定,然后不斷用if(cflags15/100 !=0)& (cflags15%100 =3000)|(j=0)這一判斷語句判斷是否打開了蜂鳴器警報并打開蜂鳴器的驅(qū)動接口,在其中又有兩個判斷語句if(j=0)&(cflags4!=0)和if(k=3000)&(cflags5!=0)分別用來判斷硬件的狀態(tài),當接受到信號時蜂鳴器動作。而短信警報則需要用if(k=3000)&(cflags5=2)&(cflags18/10000)=3600 )和if(j=0)&(cflags4=2)&(cflags18%10000)=3600 )來分別判斷是否觸發(fā)短信警報,而每兩次相同類型的短息警報,我們也有兩個判斷體去控制最少間隔10分鐘才會再次觸發(fā)警報以免短信的費用過高。3.6.2 切換識別id卡以及電話號碼切換綁定號碼會把原來保存的電話號碼清除并更新為用戶輸入的新號碼,以在需要發(fā)短信的時候使用。提供的界面會在上層界面接受一個字符串,只需通過memset()清空字符串和strcpy()復制字符串兩個函數(shù)就可以直接把電話號碼的字符串內(nèi)容替換掉。rfid卡的切換,需要在10秒內(nèi)將有效的新卡放到rfid傳感器上,當切換成功時會有文字框提示。操作是首先在接口程序創(chuàng)建一個換卡的線程,打開rfid驅(qū)動用dowhile循環(huán)5次,當識別到有效的新id卡替換掉掉舊的cflags17儲存的id卡號,并把標志換卡狀態(tài)的cflags19置位成表示成功的2,失敗的話就把cflags19置位成表示失敗的1。4.驅(qū)動及界面包裝我們?nèi)框?qū)動采用的驅(qū)動模型是字符驅(qū)動。字符驅(qū)動是linux里面最為簡單的一種驅(qū)動模型。這里為了使用縮短開發(fā)周期,我們注冊了比較方便的雜項設(shè)備驅(qū)動的寫法來寫led燈的驅(qū)動。雜項設(shè)備(misc)是linux里面已經(jīng)寫好的一個設(shè)備,我們只要把驅(qū)動注冊到該設(shè)備中,那么不用多余的語句,linux就會幫我們掛在驅(qū)動,創(chuàng)建驅(qū)動設(shè)備節(jié)點。4.1 led粗略介紹下led燈設(shè)備驅(qū)動的編寫流程:1.在把led_ini和led_exit兩個函數(shù)設(shè)定位驅(qū)動初始化函數(shù)和驅(qū)動卸載函數(shù)。 2.在led_init函數(shù)中,我們要申請led的gpio口并注冊, 最后我們需要把定義好的雜項設(shè)備的結(jié)構(gòu)體(my_misc)注冊到雜項設(shè)備。 3.定義用界面(用戶程控led亮滅),這里我們使用了ioctl函數(shù)控制led燈.用戶使用ioctl函數(shù)講需要的操作的燈和熄滅信息傳進來就能控制led了。4.定義卸載函數(shù)led_exit釋放剛剛申請了的gpio,最后我們?nèi)∠?qū)動與雜項設(shè)備取消關(guān)聯(lián)狀態(tài)。4.2 gprsgprs是一個sim卡通信模塊,同過它我們可以發(fā)短信,打電話。開發(fā)板與gprs模塊通信使用的是串口2.同樣在使用串口2時,我們需要按需求利用ioctl改變串口2的工作方式和串列傳輸速率。然后利用writer函數(shù)向串口2寫入相關(guān)命令就可以使用gprs模塊了。例如“at+cmgs=目的手機號碼n短信內(nèi)容+”為向某手機發(fā)送短信。4.3 直流電機直流電機驅(qū)動也是使用字符設(shè)備,并且注冊的是雜項設(shè)備,所以這里就不再累述驅(qū)動的編寫流程。這里主要敘述直流電機的驅(qū)動控制流程直流電機使用了兩個gpio。這里命名為gpio1,gpio2.當gpio1,gpio2都為低電平時或都為高電平時直流電機停轉(zhuǎn)。當gpio1高電平,gpio2低電平直流電機正轉(zhuǎn),當gpio1低電平,gpio2高電平直流電機反轉(zhuǎn)所以我們只需要利用ioctl控制兩個gpio口的電平轉(zhuǎn)換就能控制直流電機的運行狀態(tài)。步進電機步進電機驅(qū)動同樣步進電機驅(qū)動使用字符設(shè)備中的砸向設(shè)備。步進電機控制流程如下:這里我們需要使用到4個gpio口。我們定義為gpio1,gpio2,gpio3,gpio4。開始時,開關(guān)gpio2接通電源,gpio1、gpio3、gpio4斷開,b相磁極和轉(zhuǎn)子0、3號齒對齊,同時,轉(zhuǎn)子的1、4號齒就和c、d相 繞組磁極產(chǎn)生錯齒,2、5號齒就和d、a相繞組磁極產(chǎn)生錯齒。當開關(guān)gpio3接通電源,gpio2、gpio1、gpio4斷開時,由于c相繞組的磁力線和1、4號齒之間磁力線的作用,使轉(zhuǎn)子轉(zhuǎn)動,1、4號齒和c相繞組的磁極對齊。而0、3號齒和a、b相繞組產(chǎn)生錯齒,2、5號齒就和a、d相繞組磁極產(chǎn)生錯齒。依次類推,a、b、c、d四相繞組輪流供電,則轉(zhuǎn)子會沿著a、b、c、d方向轉(zhuǎn)動。所以按順序通過ioctl每隔一段時間給一個gpio口高電平,其他低電平,這樣就可以使步進電機順轉(zhuǎn)或反轉(zhuǎn)了。4.4 蜂鳴器蜂鳴器驅(qū)動使用的也是字符設(shè)備中的雜項設(shè)備模型。以下為蜂鳴器的控制流程:首先蜂鳴器使用了一個gpio口控制他的開關(guān),然后使用到了pwm的技術(shù),那么pwm最為關(guān)鍵的就是它的周期與占空比,在a8中有專門的設(shè)置周期與占空比的寄存器。那么我們只需要通過writer函數(shù)改寫周期與占空比,然后使用ioctl函數(shù)打開關(guān)閉蜂鳴器。就可以讓蜂鳴器響起我們需要的響聲效果。4.5 rfidrfid就是現(xiàn)在市面上比較流行的刷卡門禁。我們使用rfid是同過串口讀取rfid模塊中的數(shù)據(jù)的,因為linux內(nèi)核已近寫好串口驅(qū)動,我們這里就不用再寫一遍,我們只需要按需求通過ioctl改變串口的串列傳輸速率和工作方式,然后利用read函數(shù)讀取數(shù)據(jù)就行了。rfid使用的是串口1。rfid原理簡易圖5. 總結(jié)智能家居是系統(tǒng)性的產(chǎn)品,主要有控制器和執(zhí)行器組成。其中該系統(tǒng)的通訊模式、系統(tǒng)構(gòu)架、系統(tǒng)功能等是關(guān)鍵的。市場主流智能家居產(chǎn)品的通訊模式大概有10多種。其中不乏各種國際標準和國家標準的。所以,你斷難取舍源自你題目太大而無法落地。用zigbee方式做家居內(nèi)的i/o控制,有成熟的250kzigbee解決方案,如果你水平高,可以嘗試做1mzigbee的i/o+簡單音視頻智能家居系統(tǒng)。論文好辦,解決了物理模型后,直接把解決方案中的芯片介紹60%+你的開發(fā)感受40%寫進去即可。補充說明:簡易智能聯(lián)動控制產(chǎn)品設(shè)計,也可以考慮“人體紅外感應”,可廣泛應用于走道、玄關(guān)、衛(wèi)廚、衣柜等處燈光甚至設(shè)備開關(guān)控制。資料、ic、方法等可以百度“電子設(shè)計 kt-0003”,20塊錢1個。 如果能將433mhz的無線收發(fā)(市面很多解決方案,關(guān)鍵是這種融合的思路是一種創(chuàng)新)做進去,還能實現(xiàn)邏輯聯(lián)動。致謝 經(jīng)過長期的忙碌和工作,本次畢業(yè)設(shè)計已經(jīng)接近尾聲,作為一個本科生的畢業(yè)設(shè)計,由于經(jīng)驗的匱乏,難免有許多考慮不周全的地方,如果沒有導師的督促指導,以及一起工作的同學們的支持,想要完成這個設(shè)計是難以想象的。 在這里首先要感謝我的指導黃景旺老師。黃老師平日里工作繁多,但在我做畢業(yè)設(shè)計的每個階段,從查閱資料到設(shè)計草案的確定和修改,中期檢查,后期詳細設(shè)計,裝配草圖等整個過程中都給予了我悉心的指導。我的設(shè)計較為復雜煩瑣,但是黃老師仍然細心地糾正圖紙中的錯誤。除了敬佩黃老師的專業(yè)水平外,他的治學嚴謹和科學研究的精神也是我永遠學習的榜樣,并將積極影響我今后的學習和工作。 其次要感謝我的同學對我無私的幫助,特別是在軟件的使用方面,正因為如此我才能順利的完成設(shè)計,我要感謝我的母校東莞理工學院,是母校給我們提供了優(yōu)良的學習環(huán)境;另外,我還要感謝那些曾給我授過課的每一位老師,是你們教會我專業(yè)知識。在此,我再說一次謝謝!謝謝大家!。參考文獻:1 智能家居控制系統(tǒng) 周洪、胡文山、張立明、盧亦焱 中國電力出版社(2006-01出版)2 智能家居設(shè)計與施工 顧牧君 同濟大學出版社(2004-10出版)3 妙妍;智能家居家庭自動化n;中國建設(shè)報;2003年4 陳培料;智能家居控制系統(tǒng)d;華東師范大學;2010年5 趙舒迪;徐熙平;王維;基于arm嵌入式技術(shù)和模糊控制的光學調(diào)制系統(tǒng)設(shè)計j;長春理 工大學學報(自然科學版);2010年03期6 李建勇;杜清珍;任獻偉;吳金濤;基于arm的智能家居安防監(jiān)控報警系統(tǒng)的設(shè)計j;機械與電子;2008年10期7文全剛.嵌入式linux操作系統(tǒng)原理與應用. 北京:北京航空航天大學出版社2011.66-249.8譚浩強.c程序設(shè)計m.北京:清華大學出版社.2010.16-354.9borkoh,bernierc.l.indexingconceptsandmethodsm.newyork:academicpr.,1978.167-168.10sajal k. das. mobility and resource management in smart home environments.lecture notes in computer secience.2004,1109-1111附j(luò)ni源代碼:#include #include myhead.h#include #include #include #include #include #include #include #include #include #include #include #include volatile int cflags30 = 0,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17;jintarray jflags;char shoujihaoma20=0;jobject g_obj = null;javavm *g_vm = null;sem_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論