物聯(lián)網(wǎng)智能家居系統(tǒng)_第1頁
物聯(lián)網(wǎng)智能家居系統(tǒng)_第2頁
物聯(lián)網(wǎng)智能家居系統(tǒng)_第3頁
物聯(lián)網(wǎng)智能家居系統(tǒng)_第4頁
物聯(lián)網(wǎng)智能家居系統(tǒng)_第5頁
已閱讀5頁,還剩72頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文物聯(lián)網(wǎng)智能家居系統(tǒng)畢業(yè)論文摘 要:隨著經(jīng)濟的高速增長。建立一個低成本、高效率的智能家居系統(tǒng)已成為當(dāng)今世界的一個熱點話題。目前越來越多的智能家居產(chǎn)品出現(xiàn)在市場上,其中以基于電話網(wǎng)的智能安防系統(tǒng)居多。目前在我國,使用家庭電話的用戶越來越少,而且電話線路受地域的影響嚴重容易損壞,所以這類產(chǎn)品局限性很大。隨著電信 GSM 網(wǎng)絡(luò)覆蓋范圍的無縫化、廣闊化以及手機的日益普及為基于 GSM 網(wǎng)絡(luò)的智能家居系統(tǒng)提供了巨大的應(yīng)用空間。本文設(shè)計了一種基于GSM 網(wǎng)絡(luò)的智能家居系統(tǒng)。本系統(tǒng)采用cortexA8 為系統(tǒng)控制核心, 對家庭中出現(xiàn)的意外情況使用各種傳感器進行采集,然后通過 GSM

2、 模塊把采集到的信息發(fā)送給管理人員,管理員根據(jù)收到的信息發(fā)送相關(guān)指令給 GSM 模塊來控制現(xiàn)場執(zhí)行機構(gòu),完成意外情況的排除。關(guān)鍵詞:智能家居GSM傳感器遠程控制物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文目錄一、 緒論1(一) 智能家居概述1(二) 智能家居網(wǎng)絡(luò)構(gòu)成2 1、家居網(wǎng)絡(luò)控制平臺22、智能家居子系統(tǒng)23、智能家居網(wǎng)絡(luò)的信號傳輸介質(zhì)34、 遠 程 控 制 技 術(shù) 概 括 4 5、智能家居控制系統(tǒng)的國內(nèi)外發(fā)展現(xiàn)狀5二、系統(tǒng)需求分析及方案6(一)應(yīng)用程序功能需求分析6(二)開發(fā)環(huán)境需求分析6 1、 硬件環(huán)境62、 軟件環(huán)境7三、硬件模塊及其驅(qū)動設(shè)計實現(xiàn)7(一) 主控模塊7(二) 通信模塊7 1、TC35

3、模塊簡介72、TC35 模塊與 cortexA8 連接方式73、傳感器模塊8四、系統(tǒng)軟件部分36(一)主程序及大致流程361、溫度監(jiān)測線程372、視頻監(jiān)測線程383、報警流程39(二)短消息程序設(shè)計40 1、AT 指令介紹402、PDU 編碼規(guī)則423、短信模式設(shè)置42物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文4、短信的發(fā)送方法43五、測試及結(jié)論43(一)測試原則43(二)測試方案43(三)結(jié)論44 參 考 文 獻45物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文1一、 緒論21 世紀是信息化的時代,物聯(lián)網(wǎng)新技術(shù)推動了人類文明的進步。隨著人們生活水平的提高以及科技的高速發(fā)展,智能化家居已成為一種必然趨勢而深入千家萬戶。智能化

4、家居是利用電力自動化、計算機、網(wǎng)絡(luò)通信、信息、結(jié)構(gòu)化布線、無線等技術(shù)將多種設(shè)備應(yīng)用和綜合功能組成一個強大的完善的系統(tǒng)。它以住房為平臺,同時兼?zhèn)渚W(wǎng)絡(luò)家電、家電設(shè)備自動化、建筑、通信、遠程醫(yī)療、家庭辦公、娛樂等功能,集結(jié)構(gòu)、服務(wù)、系統(tǒng)、管理為一體的舒適、節(jié)能、安全、便利、高效、娛樂、環(huán)保的居住環(huán)境。本文介紹的智能化家居控制系統(tǒng)可以使得人們通過手機在任何時候、任意地點對家中的任意電器(例如:熱水器、空調(diào)、電飯煲、燈光等)進行遠程控制。你可以在下班途中,預(yù)先將家中的空調(diào)打開、電飯煲煮好香噴噴的米飯、讓熱水器提前燒好熱水,而這一切的實現(xiàn)都僅僅是靠一條短信完成。本系統(tǒng)采用 cortexA8 作為主控器件,

5、遠程控制是基于 GSM 網(wǎng)絡(luò)短消息通信方式,AT 指令作為系統(tǒng)控制命令,cortexA8 通過對收到的信息進行解碼來識別控制信號,用戶只需向 TC35 模塊發(fā)送相應(yīng)指令即可實現(xiàn)遠程控制操作。溫度傳感器完成現(xiàn)場信息的采集,cortexA8 對數(shù)據(jù)進行及時的處理,實現(xiàn)實時測控; 短消息發(fā)送部分采用基于GSM 模塊TC35 和IT 公司的電平轉(zhuǎn)換芯片MAX232 等器件構(gòu)成的移動終端的硬件電路,完成短消息收發(fā)功能。(一) 智能家居概述進入 21 世紀,科學(xué)技術(shù)與生產(chǎn)力加速了社會的發(fā)展創(chuàng)造能力,隨之而來的也是人類對于物質(zhì)水平的大力需求,而居住的環(huán)境要求也成為了人們關(guān)注的領(lǐng)域,所以“智能化”這一概念也促

6、使科技工作者們將其引入智能家居民應(yīng)用方面的小區(qū)住宅以及小區(qū)建筑技術(shù)之中。由于計算機控制系統(tǒng)發(fā)展迅速,以及電子信息行業(yè)的發(fā)展成長快速,也大力促進了智能家居控制系統(tǒng)的產(chǎn)生。因為固定電話和互聯(lián)網(wǎng)技術(shù)基本上是傳統(tǒng)智能家居控制系統(tǒng)的技術(shù)核心,所以安裝固定電話以及互聯(lián)網(wǎng)成為了達到家庭用戶傳統(tǒng)智能家居控制系統(tǒng)的產(chǎn)生的根本硬件技術(shù)、以及硬件要求。但是隨著電子技術(shù)、智能通信技術(shù)以及網(wǎng)絡(luò)技術(shù)發(fā)展日新月異的今天,基于 GSM 網(wǎng)絡(luò)通訊體統(tǒng)的低成本無限制智能家居控制系統(tǒng)成為廣大居民以及中國居民享受新一代智能家居控制系統(tǒng)的變革捷徑。智能家居系統(tǒng)成為一種新興的綜合技術(shù)學(xué)科。智能家居系統(tǒng)也可被定義為物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)

7、論文 PAGE 4一個控制過程,或者控制系統(tǒng),利用現(xiàn)在被大多數(shù)科技人員已掌握的計算機技術(shù)、網(wǎng)絡(luò)布線技術(shù)、網(wǎng)絡(luò)通信系統(tǒng)將其糅合,使之成為融合在家居控制中的多個子系統(tǒng),并使其智能的結(jié)合在一起。目前相比較其他時分多址技術(shù)手段而言,更加完美、成熟、應(yīng)用更廣泛的一種普及率很高的系統(tǒng)是 GSM(Global System for Mobile communication)系統(tǒng)。在我國,已建成的基本覆蓋全國的 GSM 數(shù)字蜂窩移動技術(shù)信息網(wǎng),早已成為我國公眾移動生活密不可分的一種技術(shù)之一。在 GSM 短信服務(wù)的基礎(chǔ)上,智能家居控制系統(tǒng)是在移動網(wǎng)絡(luò)通訊技術(shù)的短信應(yīng)用功能的技術(shù)運用。由于 GSM 網(wǎng)絡(luò)通訊系統(tǒng)在

8、全國范圍實現(xiàn)了聯(lián)網(wǎng)以及漫游能力,所以它的網(wǎng)絡(luò)功能很強大,用戶無需另外搭建網(wǎng)絡(luò),因此,在 GSM 網(wǎng)絡(luò)覆蓋率達到全國范圍的情況下,為客戶省下了昂貴的網(wǎng)絡(luò)搭建費用以及維護網(wǎng)絡(luò)費用。同時,它對用戶數(shù)量的限制也十分少,也為客戶克服了一般智能家居控制系統(tǒng)中系統(tǒng)成本高、維護艱難、并且網(wǎng)絡(luò)覆蓋范圍小以及用戶組數(shù)量少的缺點。相比傳統(tǒng)網(wǎng)絡(luò)智能家居控制系統(tǒng)在網(wǎng)絡(luò)通信覆蓋率上具有較大的優(yōu)勢,加之 GSM 本身就具有數(shù)據(jù)的輸送功能,這也促成了 GSM 應(yīng)用在廣大生活中得到迅速普及?;?GSM 的無線通訊智能系統(tǒng)還具有雙線傳送數(shù)據(jù)的功能、性能穩(wěn)定。為客戶在遠程操控以及用戶控制設(shè)備提供了強大技術(shù)平臺。遠程操控系統(tǒng)應(yīng)用廣

9、泛,遍及中國經(jīng)濟生活發(fā)展的各大領(lǐng)域。而且目前人們正在使用中的操控系統(tǒng)從成本、性能、穩(wěn)定性、便捷性以及維護的難易方面基本都不能使人們最大程度的滿意。所以,GSM 網(wǎng)絡(luò)通信技術(shù)的提出大大的提升了智能家居控制系統(tǒng)的完善程度。(二) 智能家居網(wǎng)絡(luò)構(gòu)成1、家居網(wǎng)絡(luò)控制平臺智能家居主控制平臺是智能家居控制系統(tǒng)的“心臟”部分,等效的可以說是智能家居的核心。對方可以通過手機短信的方式接受用戶命令并實時操作,或者對對用戶手機發(fā)送控制電器運轉(zhuǎn)情況,對家庭總線和各個網(wǎng)絡(luò)子系統(tǒng)實施連接,完成智能家居控制系統(tǒng)平臺的鏈接構(gòu)成。2、智能家居子系統(tǒng)智能家居系統(tǒng)的連接一般均為家電網(wǎng)絡(luò)中的耗電類型的家電電器。例如冰箱、空調(diào)、電磁

10、爐、熱水器、電飯煲、電燈等家用電器。這些消耗電類型的家庭電器可以在現(xiàn)場立即布線互聯(lián)構(gòu)成智能家居系統(tǒng),與主控家居智能平臺相連接,再進行現(xiàn)場網(wǎng)絡(luò)綜合布線連接智能家居子系統(tǒng),就可以由用戶利用協(xié)議中的操作指令短信操作家庭中電器設(shè)備了。3、智能家居網(wǎng)絡(luò)的信號傳輸介質(zhì)智能家居網(wǎng)絡(luò)通訊形式多彩多樣,可以采用不同的傳輸介質(zhì)傳輸網(wǎng)絡(luò)通訊信號,大體上有電力線、電話線、雙絞線、無線方式。(1) 電力線基于電力線為傳輸介質(zhì)的通信網(wǎng)絡(luò)可以說是最方便的,因為現(xiàn)在家庭基本都已鋪設(shè)供電源的電源線而且家中的電源線已經(jīng)延伸到家庭生活的每個角落。而且,現(xiàn)在大部分家用電器設(shè)備都離不開電源。所以利用家中的電力線完成智能家居控制系統(tǒng)網(wǎng)絡(luò)

11、方案方便而且經(jīng)濟便宜。在國際上,首個實現(xiàn)家庭電器智能化的方案便是通過電力線作為信息傳輸載體的而達成的。電話線利用電話線作為網(wǎng)絡(luò)信息傳輸載體起步雖然相較于電力線稍微晚一些,但是因為它具有布局簡單、使用方便、安全性能好和易于大規(guī)模推廣等優(yōu)點,而且近期電話線的傳輸速率也完成了大幅度提升,所以它的應(yīng)用和發(fā)展非???, 在美國已有成熟的產(chǎn)品。其中包括:3COM、Advanced MicroDevices、AT&T、Compaq、HewlettPackard、Intel、IBM 和 Lucent Technologies 等發(fā)起成立了“電話線家居網(wǎng)絡(luò)協(xié)會”,至今己有 100 多個成員。雙絞線同軸電纜目前最通

12、用的傳輸介質(zhì)是用雙絞線同軸電纜??墒窃诨陔p絞線同軸電纜實際操作中最大的困難是需要另外鋪設(shè) 24 根專用的傳輸線。但是它擁有通信可靠性和總線接口相對簡單等優(yōu)點,其仍然可以受到廣泛用戶的大批量應(yīng)用。無線方式無線方式通過射頻載波或者紅外線等形式傳輸用戶信息,“藍牙技術(shù)”是最近發(fā)展最火熱的無線通信方式。音頻和視頻信號、計算機網(wǎng)絡(luò)信號、控制信號均可以利用藍牙技術(shù)傳輸家庭用戶信號。而且用無線方式傳輸信息時無需架設(shè)任何線路且實現(xiàn)極其方便靈活,非常適合在家庭網(wǎng)絡(luò)中應(yīng)用。由于無線方式簡單方便,易于架設(shè),所以本論文便是使用的 GSM 無線技術(shù)平臺操作的智能家居平臺系統(tǒng)。物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 6

13、4、遠程控制技術(shù)概括本論文研究立于一個對于家居電器進行遠程控制,以便于實現(xiàn)家居智能化的系統(tǒng)。遠程控制指的是遠端的家居控制者通過通信系統(tǒng)對現(xiàn)場的家居電器系統(tǒng)進行控制,其目的在于解除地域和環(huán)境對控制的限制,實現(xiàn)高集中的遠程控制,最終實現(xiàn)生產(chǎn)資料和社會資源與通訊資源的優(yōu)化配置?,F(xiàn)代遠程控制技術(shù)是計算機技術(shù)、通信技術(shù)、網(wǎng)絡(luò)技術(shù)的集合,也是信息技術(shù)和控制技術(shù)的結(jié)合。從用戶角度來講,需要的是一種方便、安全、可靠的一種傳輸方式??梢岳霉矓?shù)據(jù)網(wǎng)或者通過架設(shè)專線來實現(xiàn)有線傳輸,然而在大多數(shù)情況下,傳輸距離、架線環(huán)境等條件限制了有線傳輸2。無線傳輸也有很多途徑,如架設(shè)微波線路、(超)短波電臺等都是通過自建的無

14、線發(fā)射接收系統(tǒng)。然而無線傳輸架設(shè)成本高、頻率資源的限制、容易受到地形地貌的影響、系統(tǒng)的架設(shè)和維護工作繁重,在業(yè)務(wù)量小、用戶數(shù)量大、位置分散等應(yīng)用場合中也受到很大限制。目前,經(jīng)過三代發(fā)展的移動通信,移動通信體制中的時分多址技術(shù)中最完善、最成熟、應(yīng)用最廣的一種移動通信系統(tǒng)就是GSM系統(tǒng)2。在數(shù)據(jù)采集、遠距離監(jiān)控、GPS定位、繳費通知、無線報警等領(lǐng)域GMS都有著廣泛的應(yīng)用。在全國范圍內(nèi)GSM網(wǎng)絡(luò)實現(xiàn)了聯(lián)網(wǎng)和漫游,用戶無需另外組網(wǎng),GMS具有很強的網(wǎng)絡(luò)能力, 網(wǎng)絡(luò)覆蓋范圍廣闊,用戶不必再花費節(jié)昂貴的建網(wǎng)費用和維護費用2。比傳統(tǒng)的集群系統(tǒng)在無線網(wǎng)絡(luò)覆蓋上具有無法比擬的優(yōu)勢,加上GSM的SMS本身具備的數(shù)

15、據(jù)傳送功能,都使得這些應(yīng)用得到迅速的普及2。GSM短信息系統(tǒng)性能穩(wěn)定還可進行雙向數(shù)據(jù)傳輸,為監(jiān)控設(shè)備和遠程數(shù)據(jù)傳送通信提供了一個可靠、安全的支持平臺。短消息發(fā)送一般采用其專用控制信道(DCCH)來發(fā)送,短信息的服務(wù)端可以實時的了解到對方是否接收到短信息,一旦信息傳送失敗,短信中心實時得知被叫用戶沒有回復(fù)信息,網(wǎng)絡(luò)管理端則會繼續(xù)發(fā)送消息,以保證被叫方能收到短信息。所以,在GSM網(wǎng)絡(luò)的一些主要的電信業(yè)務(wù)當(dāng)中,此類短消息業(yè)務(wù)的信息傳遞是實時安全的2。每個短消息的信息量都是140個八位組(7比特編碼,160 個字符)不會超過140個字節(jié),絕對可以滿足單方面監(jiān)測用戶指標(biāo)的信息量。綜上所述,智能家居控制系

16、統(tǒng)選用GSM的短消息控制方式,來實現(xiàn)智能家居設(shè)備的遠程控制是可行的。物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 105、智能家居控制系統(tǒng)的國內(nèi)外發(fā)展現(xiàn)狀目前,我國每年竣工的建筑面積達到20億平米,智能家居/建筑的產(chǎn)值至少在1-2萬億元以上。智能家居的發(fā)展分為三個階段:首先是家庭電子化(Home Electronics)階段,這個時期主要是面向單個的電器,家庭電器之間并沒有形成網(wǎng)絡(luò),亦沒有大的聯(lián)系。其次是住宅自動化(Home Automation)階段,這個時期是面向功能的階段, 一部分的家庭電器之間形成了簡單的網(wǎng)絡(luò),主要是為了實現(xiàn)某個特定單一的功能,例如單一的自動抄表功能。最后是家居智能化(歐洲稱

17、為 Smart Home,美國稱為Wise House )階段, 這個時期是面向系統(tǒng)設(shè)計的階段,系統(tǒng)通過家庭分布總線把住宅內(nèi)各種與信息相關(guān)的通信設(shè)備、家用電器、報警裝置并到網(wǎng)絡(luò)節(jié)點中進行集中的監(jiān)控、管理, 保持家電與環(huán)境的協(xié)調(diào),提供生活、工作、學(xué)習(xí)以及娛樂的各種優(yōu)質(zhì)服務(wù),營造一種溫馨舒適的家庭氛圍。智能家居控制系統(tǒng)提供高效、舒適的家居環(huán)境,確保住戶的生命財產(chǎn)安全; 集中或遠程監(jiān)控家居環(huán)境的溫度、濕度以及風(fēng)速等,空氣中成分也可檢驗,為空氣質(zhì)量的提高提供依據(jù);電視機、CD 等娛樂設(shè)施也不再需要人們近距離調(diào)節(jié); 周圍環(huán)境以及太陽光的強弱變化都可以合理利用,使能耗降低,資源合理利用, 保護環(huán)境;提供現(xiàn)

18、代化的通信、信息服務(wù)12。在智能家居系統(tǒng)研發(fā)中,美國和歐洲一些發(fā)達國家一直處于領(lǐng)先地位。近年來,一大批國外知名企業(yè)先后擠身于智能家居的研發(fā)中尤其以美國微軟公司及摩托羅拉公司等為首12。摩托羅拉公司開發(fā)的“居所之門”、IBM 公司開發(fā)的“家庭主任”、微軟公司開發(fā)的“夢幻之家”等均已日趨成熟12。在亞洲,日本韓國新等一些經(jīng)濟發(fā)達國家的主要企業(yè)也進軍智能化家居系統(tǒng)的開發(fā),對家居市場更是躍躍欲試。經(jīng)過哥本哈根會議,我國更加明確了節(jié)能減排,綠色建筑的目標(biāo),這就使住宅智能化凸顯出了其合理規(guī)劃,最大限度的節(jié)約能源的優(yōu)勢。如果我國大力推廣綠色建筑,僅在鋪設(shè)智能化系統(tǒng)上所需的新設(shè)備的生產(chǎn)上就有 2000 億到3

19、000 億人民幣的新市場。而中國“智能家居網(wǎng)絡(luò)”必在“智能化住宅”的框架下形成一個新型 IT 產(chǎn)業(yè),而這一切必將對未來幾十年我國房地產(chǎn)的健康有效發(fā)展起著深遠的影響。由于智能家居系統(tǒng)還缺乏統(tǒng)一明確的國際標(biāo)準(zhǔn),許多公司開發(fā)出的產(chǎn)品都是基于自己組的網(wǎng)絡(luò)和信息交換協(xié)議,很多產(chǎn)品是針對特定的組網(wǎng)環(huán)境開發(fā)的, 部分核心技術(shù)沒有對外公布,技術(shù)復(fù)雜,直接導(dǎo)致了使用范圍的局限性。再者, 缺乏對應(yīng)的第三方產(chǎn)品,各個接入設(shè)備之間不能兼容、互操作性差、不利于產(chǎn)品的擴充,因而進一步局限了產(chǎn)品的發(fā)展。再加上,有的系統(tǒng)成本過高,嚴重影響了產(chǎn)品的普及。因此設(shè)計一個符合國家國情和規(guī)范的集遠程控制和本地控制為一體的智能家居控制系

20、統(tǒng)是非常具有現(xiàn)實意義的,且勢在必行。作為智能家居的核心系統(tǒng)的智能家居的控制系統(tǒng),它的設(shè)計功能的完善必將推動住宅智能化的發(fā)展。而系統(tǒng)功能的集成化、用戶使用的傻瓜化以及市場的平民化將是智能家居控制器的發(fā)展趨勢,系統(tǒng)也將逐步邁向綠色化。最終, 我想全人類的夢想是智能家居控制系統(tǒng)將囊括所有的家事雜物,讓我們真正的享受舒適溫馨的家庭生活。二、系統(tǒng)需求分析及方案物聯(lián)網(wǎng)智能家居要將各成體系、互不相連的子系統(tǒng)協(xié)調(diào)起來,就必須有一個兼容性強的中央家居處理平臺,接受并處理控制設(shè)施發(fā)出的信息,然后傳送信號給你希望控制的家電或者其他家居子系統(tǒng)。(一)應(yīng)用程序功能需求分析本設(shè)計采用模塊化設(shè)計,整個系統(tǒng)由通信模塊、視頻采

21、集模塊、傳感器模塊、Lcd 模塊組成。cortexA8 通過對傳感器模塊傳送來的信息進行判斷,如果信息異常,則利用蜂鳴器以及 LED 實現(xiàn)報警,并通過 GSM 模塊向用戶發(fā)送報警信息。同時用戶也可以根據(jù)需要,發(fā)送短信給 GSM 模塊來控制相應(yīng)的家電。實現(xiàn)對現(xiàn)場圖像實時監(jiān)控及工作位置實時控制。(二)開發(fā)環(huán)境需求分析1、 硬件環(huán)境硬件配置原則具有可靠性,可用性和安全性,在滿足軟件需求的條件下,具有完善的技術(shù)支持,能夠滿足個人學(xué)習(xí)和設(shè)計需要。運行本軟件所需的硬件資源CPU: 800M 及以上;內(nèi)存容量: 內(nèi)存達 128M 以上。物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 11本系統(tǒng)采用 cortexA8

22、 為中央處理平臺。2、 軟件環(huán)境系統(tǒng)軟件配置規(guī)則能夠在指定的運行環(huán)境下,滿足該軟件的可靠性、安全性和可用性的要求。系統(tǒng)軟件的配置方案配置有持續(xù)工作能力、高穩(wěn)定性、高度可集成的開放式標(biāo)準(zhǔn)的操作系統(tǒng), 如 Windows NT 、Windows2000、UNIX,Linux 等。熟悉 C+高級程序設(shè)計語言。本系統(tǒng)采用 Linux 為操作系統(tǒng)。三、硬件模塊及其驅(qū)動設(shè)計實現(xiàn)(一) 主控模塊本系統(tǒng)采用 cortexA8 為控制核心,cortexA8 不斷監(jiān)測有沒有異常信息, 當(dāng)發(fā)現(xiàn)異常信息時,則進入相應(yīng)中斷,利用 cortexA8 通過 UART 串口向 GSM 模塊發(fā)送一系列AT 指令并啟動GSM 模

23、塊發(fā)送報警短信給用戶。再根據(jù)用戶發(fā)送回來的指令打開相應(yīng)的繼電器來控制家用電器,完成現(xiàn)場控制和監(jiān)測任務(wù)。(二) 通信模塊1、TC35 模塊簡介TC35 是西門子公司推出的一種完整的無線 GSM 模塊,主要由 GSM 基帶處理器、GSM 射頻模塊、供電模塊(ASIC)、閃存、ZIF 連接器、天線接口、SIM 卡支架七部分組成。它可以快速、安全可靠地實現(xiàn)系統(tǒng)方案中的數(shù)據(jù)傳輸、短消息服務(wù)(Short Message Service)。模塊的工作電壓為 3.34.8V。該模塊有 AT指令集接口,支持文本和 PDU 模式的短消息第三組的二類傳真等。此外,TC35 還擁有多方通話、電話簿功能、漫游檢測等功能

24、。TC35 具有 TALK、IDLE、省電模式三種常用工作模式。通過它的 40 管腳的 ZIF 連接器實現(xiàn)指令、數(shù)據(jù)、語音信號、控制信號的雙向傳輸以及電源連接。TC35 的核心是基帶處理器,主要處理 GSM 終端內(nèi)的語音、數(shù)據(jù)信號,蜂窩射頻設(shè)備中所有的模擬和數(shù)字功能它也擁有??芍С?EFR、FR 和語音編碼而不需要額外硬件電路。2、TC35 模塊與 cortexA8 連接方式TC35 模塊主要通過串口與 cortexA8 進行連接,從而 cortexA8 實現(xiàn)對 TC35 模塊的控制??紤]到系統(tǒng)設(shè)計接口的簡單性并且與 cortexA8 的 UART 進行連接, 所以只采用 TC35 的串口提供

25、了的兩線(TXD、RXD)控制線連接。系統(tǒng)采用軟件 PAGE 12led守 3一 ” 4 屯 2 夕 L 如 一,“.心 o i B 吟 ,3_ “ 工 :-OO start;r = platform_get_resource(devices, IORESOURCE_MEM, 1); if (r = NULL) goto out_class_destroy;GPG3_DAT=r-start; return 0;out_class_destroy: device_destroy(myclass, dev); class_destroy(myclass);out_cdevdel: cdev_del

26、(&cdev);out_unreg_chrdev: unregister_chrdev_region(dev, count); return -EINVAL;int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文1unsigned int m=0 x0; int tmp; if(cmd=CMDINIT)if(atomic_sub_and_test(1,&num)gpg3con = ioremap(GPG3_CON, 4); if(NULL =

27、 gpg3con)return -ENOMEM;gpg3dat = ioremap(GPG3_DAT, 4); if(NULL = gpg3dat)return -ENOMEM; tmp=ioread32(gpg3con); tmp=tmp&(0 xffff); iowrite32(0 x1111|tmp, gpg3con); tmp=ioread32(gpg3dat); tmp=tmp&(0 xf); iowrite32(0 x0|tmp, gpg3dat);atomic_inc(&num);return 0;elsem=cmd & 0 xf; tmp=ioread32(gpg3dat);

28、tmp=tmp&(0 xf); iowrite32(m, gpg3dat);return 0;物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文led 應(yīng)用程序設(shè)計void led_init(void);函數(shù)功能:打開 led 設(shè)備并int led_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)函數(shù)功能:LED 報警輸入?yún)?shù):cmd 參數(shù)表示那個燈亮void led_exit(void);函數(shù)功能:關(guān)閉 led 設(shè)備蜂鳴器圖 3.2 pwm 電路圖采用 platform 框架 自動獲取設(shè)備號,生成設(shè)

29、備節(jié)點。由于這個蜂鳴器是無源的,所以要想使其產(chǎn)生聲音必須給他提供一個有一定頻率的高低電平。所以這里我們采用 S5PC100 的 PWM 定時器來使蜂鳴器發(fā)出聲音。static int pwm_probe(struct platform_device *devices)12物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 21struct resource *r; int ret;dev_t dev = MKDEV(pwm_major, pwm_minor); if(pwm_major)ret = register_chrdev_region(dev, count, devname);elseret =

30、alloc_chrdev_region(&dev, pwm_minor, count, devname); pwm_major = MAJOR(dev);if(ret)return ret; cdev_init(&cdev, &fops); ret=cdev_add(&cdev, dev, 1); if(ret)goto out_unreg_chrdev; atomic_set(&num, 0);myclass =class_create(THIS_MODULE, devname); if (IS_ERR(myclass)goto out_cdevdel;device_create(mycla

31、ss,NULL,dev,NULL,%s%d,devname, pwm_minor);r = platform_get_resource(devices, IORESOURCE_MEM, 0); if (r = NULL) goto out_class_destroy;GPD_CON1=r-start;r = platform_get_resource(devices, IORESOURCE_MEM, 1); if (r = NULL) goto out_class_destroy;TCFG0=r-start;r = platform_get_resource(devices, IORESOUR

32、CE_MEM, 2); if (r = NULL) goto out_class_destroy;TCFG1=r-start;r = platform_get_resource(devices, IORESOURCE_MEM, 3); if (r = NULL) goto out_class_destroy;TCNTB1=r-start;r = platform_get_resource(devices, IORESOURCE_MEM, 4); if (r = NULL) goto out_class_destroy;TCMPB1=r-start;r = platform_get_resour

33、ce(devices, IORESOURCE_MEM, 5); if (r = NULL) goto out_class_destroy;TCON=r-start; return 0;out_class_destroy: device_destroy(myclass, dev);class_destroy(myclass);out_cdevdel: cdev_del(&cdev);out_unreg_chrdev: unregister_chrdev_region(dev, count); return -EINVAL;int pwm_ioctl(struct inode *inode, st

34、ruct file *filp, unsigned int cmd, unsigned long arg)int tmp;if(cmd=CMDINIT)if(atomic_sub_and_test(1,&num)gpdcon1 = ioremap(GPD_CON1, 4); if(NULL = gpdcon1)return -ENOMEM;tcfg0 = ioremap(TCFG0, 4); if(NULL = tcfg0)return -ENOMEM;tcfg1 = ioremap(TCFG1, 4); if(NULL = tcfg1)return -ENOMEM;tcntb1 = iore

35、map(TCNTB1, 4); if(NULL = tcntb1)return -ENOMEM;tcmpb1 = ioremap(TCMPB1, 4); if(NULL = tcmpb1)return -ENOMEM;gtcon = ioremap(TCON, 4);if(NULL = gtcon) return -ENOMEM;tmp=ioread32(gpdcon1); tmp=tmp&(0 xf4); tmp=tmp|(0 x24); iowrite32(tmp, gpdcon1); tmp=ioread32(tcfg0); tmp=tmp&0 xff; tmp=tmp|0 xfe; i

36、owrite32(tmp, tcfg0); tmp=ioread32(tcfg1); tmp=tmp&(0 xf4); tmp=tmp|(0 x14); iowrite32(tmp, tcfg1); iowrite32(300, tcntb1); iowrite32(150, tcmpb1); tmp=ioread32(gtcon); tmp=tmp|0 x0e8; tmp=tmp&(0 x018); iowrite32(tmp, gtcon);atomic_inc(&num); return 0;else if(cmd=CMDGO)tmp=ioread32(gtcon); tmp=tmp|(

37、0 x0d8); tmp=tmp&(0 x028);iowrite32(tmp, gtcon);else if(cmd=CMDSTOP)tmp=ioread32(gtcon); tmp=tmp&(0 x0fadapter,I2C_FUNC _SMBUSBYTEDATA II 2CFUNCSMBUSWORDDATA ) )return - E IO ;data = kzalloc (sizeof (struct lm75_da t a ) , GFP_KERNE L) ; if(!data)81return -ENOMEM;物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 24i2c_set_client

38、data(client, data); mutex_init(&data-update_lock); set_mask = 0;clr_mask = (1 0)| (1 6) | (1 5);status = lm75_read_value(client, LM75_REG_CONF); if (status dev, Cant read config? %dn, status); goto exit_free;data-orig_conf = status; new = status & clr_mask; new |= set_mask;if (status != new)lm75_wri

39、te_value(client, LM75_REG_CONF, new); dev_dbg(&client-dev, Config %02xn, new); devn = MKDEV(lm75_major, lm75_minor); if(lm75_major)status = register_chrdev_region(devn, count, devname);elsestatus = alloc_chrdev_region(&devn, lm75_minor, count, devname);lm75_major = MAJOR(devn);if(status)return statu

40、s;cdev_init(&cdev, &lm75_fops);status=cdev_add(&cdev, devn, 1); if(status)goto out_unreg_chrdev;myclass =class_create(THIS_MODULE, devname); if (IS_ERR(myclass)goto out_cdevdel;device_create(myclass,NULL,devn,NULL,%s%d,devname, lm75_minor);goto out; out_cdevdel:cdev_del(&cdev); out_unreg_chrdev:unre

41、gister_chrdev_region(devn, count); exit_free:kfree(data); out:return status;static int lm75_read_value(struct i2c_client *client, u8 reg)int value;if (reg = LM75_REG_CONF)return i2c_smbus_read_byte_data(client, reg);value = i2c_smbus_read_word_data(client, reg); return (value 7;2打開視頻設(shè)名 啟 動視 頻 采 焦面視頻

42、設(shè)名的韻力從視 頻娛 沖院 出 隊列宗取一個有衵頻數(shù)括的視頻緩沖區(qū)設(shè)翌視疾采案格式諒取視頻 據(jù)并保存成圖片文件望霜嬴憤韻翌辱圖 3.4 V4L2 流程V4L2 采用流水線的方式,操作更簡單直觀,基本遵循打開視頻設(shè)備、設(shè)置格式、處理數(shù)據(jù)、關(guān)閉設(shè)備,更多的具體操作通過 ioctl 函數(shù)來實現(xiàn)。物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文23打開視頻設(shè)備在 Linux 中,設(shè)備被看做一個文件。使用 open 函數(shù)打開視頻設(shè)備。打開設(shè)備有兩種方式:1、用非阻塞模式打開int Fd;Fd = open(/dev/video2, O_RDWR | O_NONBLOCK, 0); 2 用阻塞模式打開:Fd = open(/

43、dev/video2, O_RDWR, 0);應(yīng)用程序能夠使用阻塞模式或非阻塞模式打開視頻設(shè)備,如果使用非阻塞模式調(diào)用視頻設(shè)備,即使尚未捕獲到信息,驅(qū)動依舊會把緩存(DQBUFF)里的東西返回給應(yīng)用程序。設(shè)定屬性及采集方式打開視頻設(shè)備后,可以設(shè)置該視頻設(shè)備的屬性,例如裁剪、縮放等。這一步是可選的。在 Linux 編程中,一般使用 ioctl 函數(shù)來對設(shè)備的 I/O 通道進行管理:int ioctl (int fd, unsigned long int request, ./*args*/) ; 在進行 V4L2 開發(fā)中,常用的命令標(biāo)志符如下(some are optional): VIDIOC

44、_REQBUFS: 分配內(nèi)存VIDIOC_QUERYBUF:把 VIDIOC_REQBUFS 中分配的數(shù)據(jù)緩存轉(zhuǎn)換成物理地址VIDIOC_QUERYCAP: 查 詢 驅(qū) 動 功 能 VIDIOC_ENUM_FMT:得到視頻設(shè)備支持的視頻格式VIDIOC_S_FMT:設(shè)置視頻設(shè)備的頻捕獲格式VIDIOC_G_FMT:得到視頻設(shè)備的頻捕獲格式VIDIOC_TRY_FMT: 視頻設(shè)備支持的顯示格式VIDIOC_QBUF:從緩存中讀取數(shù)據(jù)VIDIOC_DQBUF:數(shù)據(jù)重新進入緩存隊列VIDIOC_STREAMON:開始視頻獲取VIDIOC_STREAMOFF:結(jié)束視頻獲取VIDIOC_QUERYSTD

45、:檢查當(dāng)前視頻設(shè)備支持的標(biāo)準(zhǔn),例如 PAL 或 NTSC。物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文 PAGE 40在亞洲,一般使用 PAL(720X576)制式的攝像頭,而歐洲一般使用 NTSC(720X480),使用 VIDIOC_QUERYSTD 來檢測: v4l2_std_id std;do ret = ioctl(fd, VIDIOC_QUERYSTD, &std); while (ret = -1 & errno = EAGAIN);switch (std) case V4L2_STD_NTSC:/case V4L2_STD_PAL:/設(shè)置視頻捕獲格式當(dāng)檢測完視頻設(shè)備支持的標(biāo)準(zhǔn)后,還需要設(shè)定視頻

46、捕獲格式,結(jié)構(gòu)如下: struct v4l2_format fmmt;memset ( & fmmt, 0, sizeof(fmmt) );fmmt.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;fmmt.fmt.pix.width=720;fmmt.fmt.pix.height=576;fmmt.fmt.pix.pixelformat=V4L2_PIX_FMT_YUYV;fmmt.fmt.pix.field=V4L2_FIELD_INTERLACED;if (ioctl(Fd, VIDIOC_S_FMT, & fmmt) = -1) return -1;v4l2_form

47、at 結(jié)構(gòu)定義: struct v4l2_formatenum v4l2_buf_type type;unionstruct v4l2_pix_format pix; struct v4l2_window win; struct v4l2_vbi_format vbi; u8 raw_data200; fmt;struct v4l2_pix_format u32width; u32height; u32pixelformat;enum v4l2_fieldfield; u32bytesperline; u32sizeimage;enum v4l2_colorspacecolorspace; u

48、32priv;分配內(nèi)存然后為從攝像頭捕獲的圖像分配內(nèi)存: struct v4l2_requestbuffersreq;if (ioctl(Fd, VIDIOC_REQBUFS, &req) = -1) return -1;v4l2_requestbuffers 結(jié)定義: struct v4l2_requestbuffers u32count;enum v4l2_buf_typetype; enum v4l2_memorymemory; u32reserved2;得到視頻緩存的內(nèi)存空間使用 VIDIOC_REQBUFS 命令, 來得到 count 個緩存, 然后通過使用VIDIOC_QUERYB

49、UF 命令來得到分配的緩存的地址,再用 mmap 函數(shù)把地址映射為應(yīng)用程序中的絕對地址,最后把得到的緩存放入緩存隊列以便循環(huán)利用。typedef struct VideoBuffer void *start; size_t length; VideoBuffer;VideoBuffer*buffers = calloc( req.count, sizeof(*buffers) ); struct v4l2_bufferbuf;for (numBufs = 0; numBufs 255)r0=255;if(r0255)g0=255;if(g0255)b0=255;if(b0255)r1=255;

50、if(r1255)g1=255;if(g1255)b1=255;if(b13)2)3)3)2)3)0);rgb = (rgb1dest;dest-buffer = (JOCTET *) (*cinfo-mem-alloc_small)(j_common_ptr) cinfo,JPOOL_IMAGE, OUTPUT_BUF_SIZE * sizeof(JOCTET);*(dest-written) = 0;dest-pub.next_output_byte = dest-buffer; dest-pub.free_in_buffer = OUTPUT_BUF_SIZE;METHODDEF(boo

51、lean) empty_output_buffer(j_compress_ptr cinfo) mjpg_dest_ptr dest = (mjpg_dest_ptr) cinfo-dest;memcpy(dest-outbuffer_cursor, dest-buffer, OUTPUT_BUF_SIZE); dest-outbuffer_cursor += OUTPUT_BUF_SIZE;*(dest-written) += OUTPUT_BUF_SIZE;dest-pub.next_output_byte = dest-buffer; dest-pub.free_in_buffer =

52、OUTPUT_BUF_SIZE; return TRUE;METHODDEF(void) term_destination(j_compress_ptr cinfo) mjpg_dest_ptr dest = (mjpg_dest_ptr) cinfo-dest;size_t datacount = OUTPUT_BUF_SIZE - dest-pub.free_in_buffer;memcpy(dest-outbuffer_cursor, dest-buffer, datacount); dest-outbuffer_cursor += datacount;*(dest-written) +

53、= datacount;void dest_buffer(j_compress_ptr cinfo, unsigned char *buffer, int size,int *written) mjpg_dest_ptr dest;if (cinfo-dest = NULL) cinfo-dest =(structjpeg_destination_mgr*)(*cinfo-mem-alloc_small)(j_common_ptr) cinfo, JPOOL_PERMANENT, sizeof(mjpg_destination_mgr);dest = (mjpg_dest_ptr) cinfo

54、-dest;dest-pub.init_destination = init_destination;dest-pub.empty_output_buffer = empty_output_buffer; dest-pub.term_destination = term_destination;dest-outbuffer = buffer;dest-outbuffer_size = size;dest-outbuffer_cursor = buffer; dest-written = written;攝像頭采集的 YUYV 格式轉(zhuǎn)換為 JPEG 格式:buf 為設(shè)備獲取的原始數(shù)據(jù)首地址, b

55、uffer 為壓縮后的數(shù)據(jù)首地址。size 為像素值。quality 為壓縮質(zhì)量。int compress_yuyv_to_jpeg(unsigned char *buf, unsigned char *buffer, int size,int quality) struct jpeg_compress_struct cinfo; struct jpeg_error_mgr jerr; JSAMPROW row_pointer1;unsigned char *line_buffer, *yuyv; int z;static int written;line_buffer = calloc(WI

56、DTH * 3, 1);yuyv = buf; /將 YUYV 格式的圖片數(shù)據(jù)賦給 YUYV 指針printf(compress start.n);cinfo.err = jpeg_std_error(&jerr); jpeg_create_compress(&cinfo); dest_buffer(&cinfo, buffer, size, &written); cinfo.image_width = WIDTH; cinfo.image_height = HEIGHT; cinfo.input_components = 3; cinfo.in_color_space = JCS_RGB;

57、jpeg_set_defaults(&cinfo); jpeg_set_quality(&cinfo, quality, TRUE); jpeg_start_compress(&cinfo, TRUE);z = 0;while (cinfo.next_scanline HEIGHT) int x;unsigned char *ptr = line_buffer;物聯(lián)網(wǎng)智能家居系統(tǒng) 畢業(yè)論文3for (x = 0; x WIDTH; x+) int r, g, b;int y, u, v;if (!z)y = yuyv0 8; elsey = yuyv2 8;g = (y - (88 * u)

58、- (183 * v) 8; b = (y + (454 * u) 8;*(ptr+) = (r 255) ? 255 : (r 255) ? 255 : (g 255) ? 255 : (b 打開設(shè)備函數(shù);static FB *get_fb_msg(FB *fb);得到屏幕信息; static FB *fb_mmap(FB *fb);將設(shè)備映射到用戶空間;static FB *clean_screen(FB *fb,POINT *start,POINT *end,unshort color);清除 start 到 end 之間的塊兒裝屏幕為 color 顏色;static int show_

59、word(FB *fb,const unchar *word,POINT *point,unshort color);在給定的點 location 顯示 color 顏色的字符;static int drow_horizontal_line(FB *fb,POINT *start,POINT *end,unshort color);在給定的 start 到 end 之間畫一條橫線static int drow_vertical_line(FB *fb,POINT *start,POINT *end,unshort color);在給定的 start 到 end 之間畫一條豎線static un

60、char *find_word(const char *str);在 09(包含小數(shù)點)之間找字庫中對應(yīng)的數(shù)組static FB *fb_munmap(FB *fb)解除映射封裝給應(yīng)用層的函數(shù)FB *screen_init(FB *fb):將打開設(shè)備到映射以及顯示固定文字以及屏幕劃線分割這些準(zhǔn)備工作做好;int show_picture(FB *fb,int wide,int hight,const unchar*Image): 將確定寬高的圖片顯示在分割的視頻顯示區(qū)域;int show_temperature(FB *fb,const char *temperature,unshort co

溫馨提示

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

評論

0/150

提交評論