基于Cortex-A53的智能云家居系統(tǒng)設(shè)計畢業(yè)論文-王偉權(quán)_第1頁
基于Cortex-A53的智能云家居系統(tǒng)設(shè)計畢業(yè)論文-王偉權(quán)_第2頁
基于Cortex-A53的智能云家居系統(tǒng)設(shè)計畢業(yè)論文-王偉權(quán)_第3頁
基于Cortex-A53的智能云家居系統(tǒng)設(shè)計畢業(yè)論文-王偉權(quán)_第4頁
基于Cortex-A53的智能云家居系統(tǒng)設(shè)計畢業(yè)論文-王偉權(quán)_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于Cortex-A53的智能云家居系統(tǒng)設(shè)計摘要隨著科學(xué)技術(shù)的日益增長和國家經(jīng)濟(jì)的迅速發(fā)展,人們的收入水平也穩(wěn)步提升,進(jìn)而也提升人們的生活水平,因此,人們開始對住宅環(huán)境提出了新的要求,人們希望能夠擁有更加安全、更加舒適和便利的居住環(huán)境,因此,智能云家居的概念也就開始被廣泛地傳播開來。智能云家居是以住宅為平臺,利用電子通信技術(shù)、網(wǎng)絡(luò)管理技術(shù)、安全防范技術(shù)、自動化控制技術(shù)、音視頻處理技術(shù)、綜合布線技術(shù)將與家居生活相關(guān)的設(shè)備集成起來,構(gòu)建了一個高效的住宅設(shè)備與家庭日程事務(wù)的管理系統(tǒng),以此來提高家居的安全穩(wěn)定性能,也讓日常生活變得更加舒適和便利,并實(shí)現(xiàn)綠色、環(huán)保和節(jié)能的居住環(huán)境。本次畢設(shè)是設(shè)計了以Cortex-A53系列的GEC6818開發(fā)板為硬件開發(fā)平臺,以基于Linux操作系統(tǒng)的Ubuntu18.04和SecureCRT為軟件開發(fā)平臺,以ZIGBEE技術(shù)作為關(guān)鍵技術(shù)來實(shí)現(xiàn)遠(yuǎn)程控制的智能云家居系統(tǒng)設(shè)計。本設(shè)計還使用了攝像頭模塊和WiFi模塊的硬件設(shè)備,并且擁有電子相冊、音視頻播放、攝像頭監(jiān)視和遠(yuǎn)程控制等功能。關(guān)鍵詞:智能云家居;GEC6818;ZIGBEE;遠(yuǎn)程控制DesignofsmartcloudhomesystembasedonCortex-A53AbstractWiththegrowingofscienceandtechnologyandtherapiddevelopmentofnationaleconomy,people'sincomelevelisrisingsteadily,andtoimprovethelivingstandardsofpeople,asaresult,peoplebegantoputforwardnewrequirementsonresidentialenvironment,peoplewanttobeabletohavemoresafe,morecomfortableandconvenientlivingenvironment,therefore,theconceptofintelligenthouseholdcloudalsobegantobewidelyspread.Smartcloudhomeisbasedontheresidence,whichintegratestheequipmentrelatedtothehomelifebyusingtheelectroniccommunicationtechnology,networkmanagementtechnology,securitytechnology,automaticcontroltechnology,audioandvideoprocessingtechnology,andgenericcablingtechnology,andconstructsanefficientmanagementsystemoftheresidenceequipmentandthefamilyscheduleaffairs,soastoimprovethesafetyandstabilityofthehome,andThedailylifebecomesmorecomfortableandconvenient,andrealizesthegreen,environmentalprotectionandenergysavinglivingenvironment.ThisgraduationdesignisbasedontheCortex-A53seriesofGEC6818developmentboardasthehardwaredevelopmentplatform,basedontheLinuxoperatingsystemUbuntu18.04andSecureCRTasthesoftwaredevelopmentplatform,withZIGBEEtechnologyasthekeytechnologytoachieveremotecontroloftheintelligentcloudhomesystemdesign.ThedesignalsousesthecameramoduleandWiFimodulehardwareequipment,andhaselectronicphotoalbum,audioandvideoplayback,cameramonitoringandremotecontrolfunctions.Keywords:smartcloudhome;GEC6818;ZIGBEE;remotecontrol目錄1前言11.1智能云家居在國外的發(fā)展現(xiàn)狀11.2智能云家居在國內(nèi)的發(fā)展現(xiàn)狀11.3智能云家居發(fā)展存在的問題21.4本次設(shè)計的目標(biāo)和研究的課題21.5本次設(shè)計采用的技術(shù)路線和技術(shù)難題22開發(fā)工具32.1Cortex-A53處理器32.2GEC6818開發(fā)板的介紹32.3Ubuntu的介紹52.4SecureCRT的介紹53ZIGBEE技術(shù)63.1ZIGBEE技術(shù)的介紹63.2ZIGBEE協(xié)議的分析63.3ZIGBEE網(wǎng)絡(luò)設(shè)備組成73.4ZIGBEE網(wǎng)絡(luò)結(jié)構(gòu)74系統(tǒng)功能的實(shí)現(xiàn)84.1系統(tǒng)功能的介紹和結(jié)構(gòu)圖84.2開發(fā)板的配置94.3電子相冊114.4音視頻的播放124.5攝像頭模塊134.6手機(jī)APP遠(yuǎn)程控制154.6.1WiFi模塊的介紹154.6.2安裝WiFi模塊驅(qū)動154.7總結(jié)175參考文獻(xiàn)186謝辭197附錄20前言隨著人們生活水平的提高及生活節(jié)奏的加快,人們對于住宅環(huán)境的有了更高的要求,加之隨著信息技術(shù)和人工智能技術(shù)的發(fā)展,人們的生活普遍開始變得智能化,信息化,一些智能化的設(shè)備也被廣泛的運(yùn)用到了人們的日常生活之中,于是,智能家居的概念開始被廣泛地傳播開來。智能家居是一個多功能的綜合技術(shù)系統(tǒng),它以家庭住宅為平臺,利用計算機(jī)、網(wǎng)絡(luò)、自動化與嵌入式等技術(shù),將與家居生活有關(guān)的各個子系統(tǒng)如家電操作、安防預(yù)警、遠(yuǎn)程控制等整合在一起,并通過家居信息管理平臺對其進(jìn)行綜合管理,使得人們能夠獲得一體化,全方位的家居資源REF_Ref24506\r\h[1]。1.1智能云家居在國外的發(fā)展現(xiàn)狀智能家居(smarthome)的概念雖然很早就被提出,但由于當(dāng)時一些智能化、信息化的技術(shù)還未成熟,加之現(xiàn)實(shí)生活中也沒有具體的建筑實(shí)現(xiàn),因此并沒有被廣泛的傳播開來。直到1984年美國聯(lián)合科技公司(UnitedTechnologiesBuiklingSystem)將建筑設(shè)備信息化,整合化概念應(yīng)用于美國康涅狄格州(Connecticut)哈特佛山(Hartford)的CityPlaceBuilding時,才出現(xiàn)了手動的“智能型建筑”,從此揭開了全世界爭相構(gòu)造智能家居派的序幕REF_Ref25377\r\h[2]。1997年比爾蓋茨花費(fèi)大量時間和金錢構(gòu)建的智能建筑,是一款將所有家具設(shè)備都連上計算機(jī)進(jìn)行控制,網(wǎng)絡(luò)速度快、性能穩(wěn)定的后臺管理系統(tǒng)REF_Ref25479\r\h[3]。除此之外,智能家居也開始日漸興起在歐洲、日本、韓國和新加坡等一些科技水平高的國家。1998年,新加坡創(chuàng)新地提出了智能家居系統(tǒng)“未來之家”產(chǎn)品,期望更快地推廣到各種普通家庭中REF_Ref26259\r\h[4]。1.2智能云家居在國內(nèi)的發(fā)展現(xiàn)狀現(xiàn)如今,智能家居在中國已經(jīng)發(fā)展了有26個年頭,并且在中國也流行起來,人們開始接受和使用這種高度智能化的產(chǎn)品。大約在1994年,作為一個對廣大消費(fèi)者都十分陌生的行業(yè),智能家居被引入了中國。作為一個新興的行業(yè),智能家居當(dāng)時正處于一個普及推廣的時期,人們對其概念還不熟悉,人們的消費(fèi)觀念也沒有徹底的形成,因此發(fā)展地并不順利。但是隨著時間的推移,智能家居的概念被廣泛地推廣普及,人們開始了解這種產(chǎn)品的功能,體驗(yàn)到它所帶來的好處,智能家居也得到了廣大消費(fèi)者的認(rèn)可。因此,從市場的角度來看,智能家居的消費(fèi)潛力很大,產(chǎn)業(yè)的發(fā)展前景也十分的利好。正因如此,許多國內(nèi)擁有高科技技術(shù)研究經(jīng)驗(yàn)的企業(yè)也逐漸開始對智能家居進(jìn)行深入調(diào)研,特別是對客戶和市場需求趨勢變化的深入研究。隨著研究地深入,一些智能家居的子產(chǎn)品例如:智能空調(diào)、智能冰箱等智能設(shè)備被研發(fā)出來,并得到了廣泛地使用。許多智能企業(yè)也迅速崛起和發(fā)展,逐漸成為智能家居產(chǎn)業(yè)中的領(lǐng)軍人物!隨著市場競爭的日趨激烈,越來越多的房地產(chǎn)開發(fā)商積極地把高端家居智能化系統(tǒng)配入所開發(fā)的樓盤作為全新買點(diǎn)REF_Ref26798\r\h[5]。中國的智能家居發(fā)展前景是十分巨大的,人們對舒適的生活條件的需求也日益增加,因此,許多房地產(chǎn)商紛紛加入智能家居的建設(shè)當(dāng)中,并且將這一理念傳播到大眾之中,大量的智能家居產(chǎn)品已經(jīng)被開始住戶們所接受。1.3智能云家居發(fā)展存在的問題雖然智能家居在漸漸地發(fā)展和完善,也得到了許多客戶的認(rèn)可,但在這一過程中,也會出現(xiàn)各種各樣的問題:國內(nèi)不同廠家的標(biāo)準(zhǔn)不一REF_Ref26543\r\h[6]。沒有統(tǒng)一的標(biāo)準(zhǔn),就意味著不同廠家的產(chǎn)品之間可能是不兼容的,因此用戶使用的過程中,一旦出現(xiàn)了問題,就會變得十分的麻煩,維修的成本也很高,給用戶們在實(shí)際使用時帶來很大的困惑,也會造成許多的不便。市場的定位過高,沒有考慮到中低端的客戶。絕大部分的智能家居品牌都是定位在高端客戶,目標(biāo)是高檔住宅和別墅,價格也比較高,導(dǎo)致一些中低端客戶無法購買到這一類產(chǎn)品,這也造就了市場非常的狹窄,初期投入成本非常大,大客戶也不會冒然的投資,市場局面無法打開REF_Ref26543\r\h[6]。自從互聯(lián)網(wǎng)的普及至今,網(wǎng)絡(luò)安全問題和個人隱私的問題一直沒有得到妥善地解決。而智能家居是根據(jù)客戶不同需求來配置不同的專項(xiàng)功能,也就是說客戶會將自己的一些私人信息儲存在智能家居的網(wǎng)絡(luò)體系中,這樣的話,一旦出現(xiàn)網(wǎng)絡(luò)安全問題,就很有可能導(dǎo)致用戶信息的泄露,也會給用戶造成極大地困擾。1.4本次設(shè)計的目標(biāo)和研究的課題本次設(shè)計的目標(biāo)是以GEC6818開發(fā)板為硬件平臺,Ubuntu和SecureCRT為軟件平臺的智能云家居系統(tǒng)。本次設(shè)計的研究課題是:(1)研究智能云家居的基本理論、特征;(2)研究Linux系統(tǒng)編程、IO編程、網(wǎng)絡(luò)編程;(3)研究基于ARM的Cortex-A53的6818平臺應(yīng)用編程;(4)研究攝像頭編程,攝像頭數(shù)據(jù)傳輸;(5)設(shè)計并實(shí)現(xiàn)APP的遠(yuǎn)程控制。1.5本次設(shè)計采用的技術(shù)線路及技術(shù)難題本次設(shè)計采用的技術(shù)線路:使用C語言進(jìn)行編程;顯示終端采用BMP解碼顯示UI界面;顯示終端采用觸摸屏來實(shí)現(xiàn)按鍵功能;控制終端用ZIGBEE進(jìn)行采集按鍵信息并實(shí)現(xiàn)遠(yuǎn)程發(fā)送,協(xié)議器使用串口進(jìn)行數(shù)據(jù)交互。本次設(shè)計的技術(shù)難題:協(xié)議棧數(shù)據(jù)傳與ZIGBEE協(xié)調(diào)器跟顯示終端數(shù)據(jù)對接。2開發(fā)工具2.1Cortex-A53處理器隨著電子科技技術(shù)的迅速發(fā)展,電子產(chǎn)品廣泛普及于人們的生活中,無論是平板電腦還是智能手機(jī),處理器都是它運(yùn)行的核心設(shè)備?,F(xiàn)如今,ARM系列的處理器是當(dāng)今世界最為流行的微處理器。該處理器包括有:ARM7系列、ARM9系列、ARM9E系列、ARM10E系列等等REF_Ref1936\r\h[7]。目前,ARM系列微處理器已經(jīng)成為嵌入式解決方案的RISC標(biāo)準(zhǔn),并且在嵌入式及各種智能行業(yè)等領(lǐng)域等到了廣泛的應(yīng)用REF_Ref1936\r\h[8]。本次設(shè)計使用的是ARMCortex-A系列的Cortex-A53處理器,該處理器的功耗效率極高,非常適合應(yīng)用于實(shí)際開發(fā)當(dāng)中。2.2GEC6818開發(fā)板的介紹GEC6818開發(fā)板,是一款由廣州粵嵌通信科技股份有限公司研發(fā)和生產(chǎn)的基于ARM系列的開發(fā)平臺,該平臺搭載三星Cortex-A53系列高性能八核處理器S5P6818,最高主頻可以達(dá)到1.4GHz,其核心板采用10層板工藝設(shè)計,確保開發(fā)板結(jié)構(gòu)穩(wěn)定可靠。它也可以被批量生產(chǎn)用于多種學(xué)習(xí)平臺,并具備多種完備的教學(xué)資料和實(shí)驗(yàn)設(shè)備,能夠在許多實(shí)戰(zhàn)開發(fā)項(xiàng)目中使用。同時,它也被應(yīng)用于本科大學(xué)畢業(yè)生的畢業(yè)設(shè)計中,可以完成多種功能的畢業(yè)設(shè)計。本次設(shè)計就是使用了這個開發(fā)平臺。GEC6818開發(fā)板圖如下:圖2.1GEC6818開發(fā)板GEC-6818開發(fā)板具有以下幾種特性:(1)擁有極佳尺寸的GPIO引腳,且數(shù)量足夠,很適合應(yīng)用于開發(fā)之中。(2)使用AXP228PMU電源管理設(shè)計,成本足夠低廉,同時又能確保開發(fā)板的穩(wěn)定性和可靠性,而且也支持電源休眠和電源喚醒的功能;(3)內(nèi)存的容量默認(rèn)可支持1GB,并且能夠定制擴(kuò)容到2GB容量;(4)支持Linux-C操作系統(tǒng)、嵌入式開發(fā)操作系統(tǒng)、Android開發(fā)操作系統(tǒng)等;(5)板載千兆有線以太網(wǎng),也可以支持無線網(wǎng)絡(luò)設(shè)備;(6)板載多種接口。下面表2.1和表2.2為開發(fā)板的結(jié)構(gòu)參數(shù)和系統(tǒng)配置:表2.1開發(fā)板的結(jié)構(gòu)參數(shù)結(jié)構(gòu)參數(shù)核心板尺寸75mm*55mm引腳間距2.0mm特點(diǎn)易更換,易維護(hù)表2.2開發(fā)板的系統(tǒng)配置系統(tǒng)配置CPUS5P6818主頻64位八核1.4+GHz64位八核內(nèi)存標(biāo)配1GB,可定制2GB存儲器標(biāo)配8GB電源IC使用AXP228,支持動態(tài)調(diào)頻以太網(wǎng)使用RTL8211E千兆以太網(wǎng)PHY2.3Ubuntu的介紹Ubuntu是一種目前較為主流的,基于Linux的,以桌面應(yīng)用為主的操作系統(tǒng),其名稱據(jù)說源自于非洲南部的祖魯語或科薩語的“ubuntu"一詞,意思是“人性”,是南非一種傳統(tǒng)的價值觀。ubuntu精神,確切來說是一種“共享”的精神,而且作為一個基于GNU/Linux的開發(fā)平臺,Ubuntu操作系統(tǒng)也將共享的精神帶到了電腦操作系統(tǒng)的軟件世界。作為一款完全開源免費(fèi)的,并且也將是永久免費(fèi)的開源軟件,Ubuntu一直秉承著“共享”的精神,并鼓勵人們?nèi)鞑ズ褪褂茫@也就意味著人們在使用這款軟件進(jìn)行實(shí)際開發(fā)時,能夠?qū)崿F(xiàn)零成本的愿望,但是這款開源軟件的理念并不僅僅意味著零成本,而是希望人們能夠以“對社會有用”的方式來使用這款軟件。相比于傳統(tǒng)的Windows平臺,Ubuntu有以下幾種優(yōu)點(diǎn):1.開源免費(fèi)正版,系統(tǒng)安全穩(wěn)定,漏洞修復(fù)快,極少中病毒;2.高效的文件管理系統(tǒng),文件移動、拷貝、傳輸和發(fā)送的速度極快,一般能夠達(dá)到20M/S,相比于Windows系統(tǒng),效率極大地提升。且該系統(tǒng)不易產(chǎn)生系統(tǒng)垃圾,不需要對磁盤文件碎片進(jìn)行整理,能夠保證系統(tǒng)的流程性;3.使用DIY界面,擁有極高地自用度,能夠很好地改善用戶操作體驗(yàn),且能夠在終端上使用命令行指令完成所有的基本操作;4.權(quán)限管理很嚴(yán)格,其采用sudo工具,當(dāng)你要操作系統(tǒng)相關(guān)的任務(wù)或者修改系統(tǒng)腳本文件時,均需要使用此指令,并輸入密碼,這樣也能夠避免客戶誤刪誤改了系統(tǒng)文件而導(dǎo)致系統(tǒng)出現(xiàn)的各種問題。從Ubuntu軟件軟件的開始發(fā)行到現(xiàn)如今,這款應(yīng)用軟件已經(jīng)得到了廣泛地使用,并且受到用戶的一致好評。用戶可以搜索登錄到Ubuntu軟件的官方網(wǎng)址來下載Ubuntu的安裝包,也可以從其他用戶分享空間上獲取安裝包,并移植到自己電腦的操作系統(tǒng)中。但是用戶在使用過程中,由于沒有人對該軟件進(jìn)行技術(shù)維護(hù),因此當(dāng)用戶碰到一些問題時,只能靠自己收集資料來解決遇到的技術(shù)故障。當(dāng)然,Ubuntu也擁有龐大的社區(qū)力量,用戶可以方便地從社區(qū)獲得幫助。2.4SecureCRT的介紹SecureCRT是一款I(lǐng)T從業(yè)人員最常使用的終端仿真程序軟件,簡單來說就是我們可以在自己的筆記本或臺式電腦的Windows操作系統(tǒng)下,可以通過secureCRT連接到網(wǎng)絡(luò)設(shè)備或者遠(yuǎn)程登錄到Linux服務(wù)器從而進(jìn)行相關(guān)的配置管理操作。因此,它也是一款支持遠(yuǎn)程連接的串口軟件,在本次設(shè)計中,我們也需要使用這款軟件來控制開發(fā)板功能的運(yùn)行。SecureCRT不僅支持SSH(安全外殼協(xié)議),同時支持Telnet和rlogin(遠(yuǎn)程登錄)協(xié)議。SecureCRT也擁有和Ubuntu相類似的功能,支持Linux操作系統(tǒng),并且擁有十分強(qiáng)大的命令行功能,能夠與Ubuntu軟件配套使用,從而實(shí)現(xiàn)嵌入式軟硬件開發(fā)的功能。SecureCRT也可以進(jìn)行遠(yuǎn)程連接登錄的功能,只要編寫合適的代碼邏輯,就可以使用它來登錄各種服務(wù)器,如騰訊的云服務(wù)器或者自己搭建的服務(wù)器,實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和傳輸。3ZIGBEE技術(shù)3.1ZIGBEE技術(shù)的介紹ZIGBEE是一種基于IEEE802.15.4標(biāo)準(zhǔn)的無線傳輸技術(shù)。它具有距離短、數(shù)據(jù)速率低、功耗低、成本低、復(fù)雜度低等特點(diǎn)。它也是一種雙向無線通信技術(shù)。主要應(yīng)用于自動控制管理、遠(yuǎn)程控制管理等領(lǐng)域。它還支持地理定位功能,可以嵌入到各種智能設(shè)備中。因?yàn)槊鄯湓陲w行過程中翅膀的顫抖發(fā)出“嗡嗡”的聲音來給同伴傳輸信息和確定花粉的位置,也就是說,蜜蜂使用這樣的方法建立一個通信組中的“網(wǎng)絡(luò)”,所以無線個域網(wǎng)發(fā)明家生動地用這種行為的來描述這種無線信息傳輸技術(shù)。由于ZIGBEE技術(shù)擁有傳輸距離短、低功耗、低成本等特點(diǎn),將802無線標(biāo)準(zhǔn)集成于有組網(wǎng)中,實(shí)現(xiàn)了局域網(wǎng)中的安全管理和數(shù)據(jù)通信。ZIGBEE應(yīng)用范圍包括智能家居-對家用電器的控制和家庭音頻娛樂系統(tǒng)的管理、樓宇自動化-整合并集中管理照明、采暖、制冷和采集周圍環(huán)境。工業(yè)自動化-利用傳感器采集工業(yè)生產(chǎn)過程中的數(shù)據(jù)并進(jìn)行分析和處理,提高工業(yè)生產(chǎn)的安全性。在醫(yī)學(xué)領(lǐng)域,通過ZIGBEE和各類傳感器,實(shí)現(xiàn)了對病人的體溫檢測、心跳監(jiān)測和血壓等監(jiān)測REF_Ref2837\r\h[9]。雖然ZIGBEE這項(xiàng)新技術(shù)已經(jīng)贏得了國內(nèi)許多專家的青睞和研究,而且也有很多公司愿意參與這項(xiàng)技術(shù)的開發(fā),然而,考慮到這是一種新興的技術(shù),在初期的研發(fā)過程中,需要投入大量的資金和人力物力,這對于一些規(guī)模不是很大的公司來說,是一件很困難的事情。也正是由于各種的局限性,將這項(xiàng)技術(shù)大規(guī)模地應(yīng)用商業(yè)領(lǐng)域還是需要一段時間。雖然這項(xiàng)技術(shù)到目前為止,仍然處于研發(fā)的初級階段,遠(yuǎn)遠(yuǎn)沒有達(dá)到成熟的標(biāo)準(zhǔn),但它所展現(xiàn)出來的應(yīng)用前景和商業(yè)價值是十分廣闊地,所以,它是值得我們?nèi)セㄙM(fèi)時間和金錢來研究的。在此,也希望國內(nèi)的高科技企業(yè)能夠把握住這次機(jī)會,早日把這項(xiàng)技術(shù)發(fā)展成熟,并將它應(yīng)用到我們的實(shí)際日常生活之中。3.2ZIGBEE協(xié)議的分析ZigBee協(xié)議是IEEE協(xié)會在802協(xié)議的基礎(chǔ)上發(fā)展起來的一種高級通信協(xié)議。其有效轉(zhuǎn)播速率可達(dá)300kbps(千比特率)。主要有限制無線通信協(xié)議、網(wǎng)絡(luò)安全協(xié)議的標(biāo)準(zhǔn)和網(wǎng)絡(luò)的實(shí)際應(yīng)用要求。它也類似于計算機(jī)的通信方式。ZigBee網(wǎng)絡(luò)協(xié)議是一個層次結(jié)構(gòu),它主要由用戶層、ZigBee聯(lián)盟和IEEE802.15.4協(xié)議等5個層次自上而下構(gòu)成。ZigBee有四層:物理層、MAC層、網(wǎng)絡(luò)/安全層和應(yīng)用/支持層。MAC層和物理層由IEE802.15.4協(xié)議定義,應(yīng)用/支持層和網(wǎng)絡(luò)/安全層由ZigBee聯(lián)盟定義。ZigBee結(jié)構(gòu)中各層的功能如下:物理層:是ZIGBEE協(xié)議結(jié)構(gòu)中的最底層,負(fù)責(zé)提供了最基礎(chǔ)的服務(wù),包括為上一層MAC層提供數(shù)據(jù)的接口等等服務(wù)。同時也起到了與現(xiàn)實(shí)世界進(jìn)行信息交互的作用;MAC層:負(fù)責(zé)構(gòu)建和維護(hù)不同設(shè)備之間的無線數(shù)據(jù)鏈路,并對數(shù)據(jù)傳送和接收進(jìn)行確認(rèn)和結(jié)束功能;網(wǎng)絡(luò)/安全層:保證了數(shù)據(jù)的傳輸和完整性,同時可對數(shù)據(jù)進(jìn)行加密;應(yīng)用/支持層:根據(jù)設(shè)計目的和需求使多個器件之間進(jìn)行通信。3.3ZIGBEE網(wǎng)絡(luò)設(shè)備組成根據(jù)ZIGBEE聯(lián)盟構(gòu)建的標(biāo)準(zhǔn)協(xié)議,可以按照應(yīng)用類型進(jìn)行設(shè)備劃分,他們的功能分別如下:ZIGBEE協(xié)調(diào)器,它主要包括所有的網(wǎng)絡(luò)設(shè)備功能,是一種復(fù)雜的電子元器件,其特點(diǎn)主要有計算能力強(qiáng),數(shù)據(jù)空間大,通過發(fā)送網(wǎng)絡(luò)信標(biāo)實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)的統(tǒng)一管理,同時,實(shí)現(xiàn)了節(jié)點(diǎn)數(shù)據(jù)的實(shí)時存儲和信息下發(fā)。協(xié)調(diào)器為每個設(shè)備分配一個唯一的網(wǎng)絡(luò)地址。為整個網(wǎng)絡(luò)選擇一個唯一的16位的PANID(個域網(wǎng)標(biāo)識符),通過這個ID,網(wǎng)絡(luò)中的設(shè)備就可以通過網(wǎng)絡(luò)地址來相互通信了REF_Ref3112\r\h[10]。初始化、終止、轉(zhuǎn)發(fā)網(wǎng)絡(luò)中的消息。協(xié)調(diào)器可以作為協(xié)調(diào)器組建網(wǎng)絡(luò),沒有配備鋰電池,需要USB單獨(dú)供電。ZIGBEE路由器:路由器主要適用于網(wǎng)絡(luò)后,通過協(xié)調(diào)器分配一組特定位數(shù)的空間地址,然后通過路由器進(jìn)行下級節(jié)點(diǎn)管理,方便不同的網(wǎng)關(guān)設(shè)備進(jìn)行網(wǎng)絡(luò)接入和路由器轉(zhuǎn)發(fā)功能。路由器可以利用外部接口將各種設(shè)備接入到網(wǎng)絡(luò)架構(gòu)中,建立網(wǎng)絡(luò)連接機(jī)智,起到了對望了覆蓋的物理范圍和數(shù)據(jù)包路由的擴(kuò)增功能REF_Ref3112\r\h[10]。ZIGBEE終端設(shè)備:簡化其功能設(shè)備,主要講協(xié)調(diào)器與路由器設(shè)備進(jìn)行連接,構(gòu)建一套網(wǎng)絡(luò)鏈路,實(shí)現(xiàn)網(wǎng)絡(luò)地址的獲取。終端設(shè)備主要負(fù)責(zé)無線網(wǎng)絡(luò)數(shù)據(jù)的采集REF_Ref3112\r\h[10]。3.4ZIGBEE網(wǎng)絡(luò)結(jié)構(gòu)ZIGBEE網(wǎng)絡(luò)結(jié)構(gòu)圖如圖3.1所示,在ZIGBEE協(xié)議規(guī)范中,主要包括三種拓?fù)浣Y(jié)構(gòu),分別是星狀網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)和樹狀網(wǎng)絡(luò)結(jié)構(gòu)REF_Ref4287\r\h[11]。圖3.1ZIGBEE的網(wǎng)絡(luò)結(jié)構(gòu)圖在星狀網(wǎng)絡(luò)結(jié)構(gòu)中,因?yàn)榻K端設(shè)備與協(xié)調(diào)器連接在了一起,所以可以由協(xié)調(diào)器來負(fù)責(zé)實(shí)現(xiàn)監(jiān)控和管理整個網(wǎng)絡(luò),在樹狀和網(wǎng)狀網(wǎng)絡(luò)結(jié)構(gòu)中,協(xié)調(diào)器起到了構(gòu)建和初始化整個網(wǎng)絡(luò)的作用,而路由器則是對整個網(wǎng)絡(luò)的進(jìn)行擴(kuò)展,終端設(shè)備則負(fù)責(zé)傳輸和轉(zhuǎn)發(fā)路由器的信息,在樹狀網(wǎng)絡(luò)結(jié)構(gòu)中,不同的終端設(shè)備只能將信息通過上級單元向下級單元進(jìn)行分發(fā),最后再有協(xié)調(diào)器進(jìn)行分發(fā)處理。4系統(tǒng)功能的介紹和實(shí)現(xiàn)4.1系統(tǒng)功能的介紹和結(jié)構(gòu)圖本次設(shè)計的系統(tǒng)將使用C語言和Linux-C編程,以Cortex-A53系列的GEC6818開發(fā)板作為硬件開發(fā)平臺,以基于Linux編程的Ubuntu系統(tǒng)和SecureCRT軟件作為軟件開發(fā)平臺,再結(jié)合攝像頭模塊和WIFI模塊等硬件設(shè)備,實(shí)現(xiàn)一個智能云家居的系統(tǒng)。本系統(tǒng)包含了電子相冊、音視頻播放、攝像頭監(jiān)控和手機(jī)APP遠(yuǎn)程控制等功能。本系統(tǒng)的結(jié)構(gòu)圖如圖4.1所示。圖4.1智能云家居結(jié)構(gòu)圖4.2開發(fā)板的配置(1)準(zhǔn)備好連接的線->電源線,串口線,USB轉(zhuǎn)串口線(2)安裝USB轉(zhuǎn)串口線驅(qū)動Hl-340.exe->雙擊->安裝->等待幾秒->驅(qū)動安裝成功

PL2303_Prolific_DriverInstaller_v1210.exe->雙擊->下一步->完成(3)查看Windows端設(shè)備管理器有沒有對應(yīng)的COM口。右鍵計算機(jī)->設(shè)備管理器->端口->USBSERIAL-CH340(COM3)(4)打開串口工具->SecureCRT.zip解壓SecureCRT.zip->得到SecureCRT->雙擊打開SecureCRT.exe(5)配置串口終端的參數(shù)。"文件"->"快速連接"->彈出的框中按照圖4.2來配置參數(shù)圖4.2SecureCRT配置參數(shù)(6)配置和修改開發(fā)板的網(wǎng)絡(luò)信息使用“ifconfigeth070”命令配置開發(fā)板的網(wǎng)絡(luò)IP,然后再使用“ifconfig”命令查看開發(fā)板的IP。如圖4.3所示圖4.3開發(fā)板IP地址的配置其中,inetaddr:70為IP地址,Bcast:55為廣播地址,Mask:為子網(wǎng)掩碼。該命令為臨時修改開發(fā)板的IP地址,如果需要永久設(shè)置IP地址,則需要把該命令寫入開發(fā)板腳本文件/etc/prpfile。如果使用“ifconfig”命令時,沒有看到eth0的相關(guān)網(wǎng)絡(luò)信息,就需要在開發(fā)板上輸入“ifconfigeth0up”命令來啟動開發(fā)板網(wǎng)卡。(7)配置tftp來傳輸文件到開發(fā)板首先,需要下載tftp32.exe軟件,然后雙擊打開,界面如圖4.4所示。圖4.4tftp軟件界面選擇所需要下載的文件所在的目錄和Windows端的IP地址,并在SecureCRT上使用“tftp69-g-rxxx”命令,就可以把文件、圖片和音視頻下載到開發(fā)板上了。4.3電子相冊本環(huán)節(jié)主要實(shí)現(xiàn)的功能是在GEC6818開發(fā)板的LCD屏幕上顯示圖片,并且實(shí)現(xiàn)圖片的切換,圖片的格式分別為BMP格式和JPEG格式。BMP格式,是英文單詞Bitmap的簡寫。它是一種在Windows操作系統(tǒng)里面的標(biāo)準(zhǔn)圖像文件格式,這種格式的圖像可以保留較為完整的圖片信息,因此能被多種Windows應(yīng)用程序和軟件所支持,并且得到了廣泛的應(yīng)用。但是由于這種格式的圖像幾乎不會進(jìn)行任何壓縮文件的處理,因此也有比較明顯的缺點(diǎn)——文件格式過大,占用磁盤空間多。本設(shè)計主要使用BMP格式來顯示圖片,然后設(shè)計一個電子相冊的界面,界面上放置兩個按鈕,分別為上一張和下一張,并通過使用觸摸屏的功能來實(shí)現(xiàn)點(diǎn)擊按鈕進(jìn)行不同圖片的切換,從而實(shí)現(xiàn)電子相冊的功能,代碼如圖4.5:圖4.5相冊功能的實(shí)現(xiàn)代碼JPEG格式,也一種是在各種操作系統(tǒng)中被廣泛地應(yīng)用的圖像格式。JPEG的文件的拓展名為.jpg或.jpeg。與BMP位圖不同的是,JPEG圖像文件通過壓縮處理后,極大地降低了對磁盤空間的占有率,文件格式也變小了。而且在文件進(jìn)行壓縮操作過后,也能夠保留下十分豐富生動的圖像,因此,JPEG格式的圖片在網(wǎng)絡(luò)上也是十分流行的。本次設(shè)計主要是使用JPEG格式的來顯示動態(tài)圖片,代碼如圖4.6:圖4.6JPEG的實(shí)現(xiàn)代碼4.4音視頻的播放本設(shè)計環(huán)節(jié)將在開發(fā)板上實(shí)現(xiàn)音樂播放和視頻播放。在實(shí)際設(shè)計中,我們將使用庫來實(shí)現(xiàn)這兩塊功能。音樂播放模塊,本設(shè)計將使用madplay庫,通過把madplay庫文件移植到開發(fā)板上,實(shí)現(xiàn)音樂的播放。madplay庫文件如圖4.7所示:圖4.7madplay庫文件然后,本設(shè)計將在代碼塊中使用Linux下的system命令來實(shí)現(xiàn)音樂的播放、暫停、繼續(xù)播放和終止等功能:音樂播放:“system("madplay1.mp3&");”;音樂暫停:“system("killall-STOPmadplay&");”;音樂繼續(xù)播放:“system("killall-CONTmadplay&");”;音樂終止:“system("killall-9madplay");”視頻播放模塊,本設(shè)計將使用mplayer庫,通過把mplayer庫文件一直到開發(fā)板上,實(shí)現(xiàn)視頻的播放。mplayer庫文件如圖4.8所示:圖4.8mplayer庫文件本設(shè)計視頻播放模塊將和攝像頭模塊相結(jié)合,把攝像頭拍攝到的視頻圖像采集起來,并在開發(fā)板上實(shí)現(xiàn)播放功能和監(jiān)控功能。4.5攝像頭模塊在Linux系統(tǒng)下,一切接文件。因此,在本次設(shè)計中,我們使用的攝像頭硬件設(shè)備也可以看做是一種設(shè)備文件,當(dāng)我們把攝像頭設(shè)備的USB接口連接到開發(fā)板上,然后打開根目錄下的dev文件,就可以找到video7這個文件,而這個文件就是攝像頭的設(shè)備文件。與開發(fā)板的LCD屏幕和觸摸屏一樣,攝像頭的設(shè)備文件是可以被訪問的,就像我們在Linux下訪問其他文件一樣,我們可以使用IO接口來打開,使用和關(guān)閉攝像頭的設(shè)備文件。對于攝像頭數(shù)據(jù)采集,則需要用到V4L2接口,V4L2是V4L的第二版,是VideoForLinux的縮寫,V4L早在Linux的2.1時代就已經(jīng)被引入,一直存在到2.6.38才最終被V4L2取代。V4L2是Linux處理視頻的最新標(biāo)準(zhǔn)代碼模塊,這其中包括對視頻輸入設(shè)備的處理,比如高頻頭(即電視劇信號輸入端子)或者攝像頭,還包括對視頻輸出設(shè)備的處理。一般而言,最常見的是使用V4L2來處理攝像頭數(shù)據(jù)的采集的問題。我們平常所使用的攝像頭,實(shí)際上就是一個圖像傳感器,將光線捕捉到之后經(jīng)過視頻芯片的處理,編碼成JPG/MJPG或者YUV格式輸出。通過V4L2我們可以很方便地跟攝像頭等視頻設(shè)備“溝通”,比如設(shè)置或者獲取它們的工作參數(shù),下面我們就來詳細(xì)分析一下如何獲取攝像頭的圖像信息。在內(nèi)核中,攝像頭所捕獲的視頻數(shù)據(jù),我們可以通過使用一個隊(duì)里來存儲,我們所做的工作大致是這樣的:首先配置好攝像頭的相關(guān)參數(shù),使之能夠正常地工作,然后申請若干個內(nèi)核視頻緩存,并將它們一一送到隊(duì)列中,就好比三個空盤子被一一放到傳送帶上一樣,然后我們還需要將這三個內(nèi)核的緩存區(qū)通過mmap函數(shù)映射到用戶空間,這樣我們在用戶層就可以操作攝像頭數(shù)據(jù)了,緊接著我們就可以啟動攝像頭開始數(shù)據(jù)捕獲,每捕獲一幀數(shù)據(jù)我們就可以做一個出隊(duì)操作,讀取數(shù)據(jù),然后將讀取過的數(shù)據(jù)的內(nèi)核緩存再次入隊(duì),依次循環(huán)。攝像頭模塊硬件設(shè)備如圖4-9所示:圖4.9攝像頭模塊攝像頭模塊主要有兩個功能,第一個是攝像頭實(shí)時監(jiān)控的功能,我們將把攝像頭拍攝到的視頻存放入開發(fā)板中,并進(jìn)行實(shí)時的播放。第二個功能是使用攝像頭進(jìn)行拍照,并將拍攝到的照片存放到文件夾中,然后可以利用電子相冊的功能來顯示拍攝到的照片。攝像頭采集數(shù)據(jù)控制代碼如圖4.10所示:圖4.10攝像頭控制代碼4.6手機(jī)APP的遠(yuǎn)程控制本環(huán)節(jié)將在開發(fā)板上連接WiFi模塊,構(gòu)建一個無線網(wǎng)絡(luò),然后將手機(jī)連接入該網(wǎng)絡(luò),并使用手機(jī)APP來實(shí)現(xiàn)遠(yuǎn)程控制開發(fā)板的功能。4.6.1WiFi模塊的介紹本次設(shè)計使用的WiFi模塊是由聯(lián)發(fā)科技研發(fā)的一款具有高度整合式的,能夠支持150MbpsPHY速率Wi-Fi單芯片——RT3070。該模塊完全符合IEEE802.11n及IEEE802.11b/g標(biāo)準(zhǔn),可以提供高標(biāo)準(zhǔn)的、功能強(qiáng)大的無線網(wǎng)絡(luò)連接,并可以從遠(yuǎn)距離提供高可靠性、穩(wěn)定性高且高成本效益的處理能力。通過對射頻架構(gòu)及基頻算法的優(yōu)化,可以提升模塊的性能,以及帶來高可靠性而低功耗的處理能力。它的智能型媒介訪問控制(MAC)設(shè)計采用效率極高的直接內(nèi)存訪問(DMA)引擎,亦配備可減輕主處理器負(fù)荷的硬件信息處理加速器。RT3070的設(shè)計旨在提供符合國際規(guī)范標(biāo)準(zhǔn)的、高服務(wù)品質(zhì)的、安全性高的功能,讓用戶能夠在任何情況下隨時享有最佳的效能表現(xiàn),提升用戶的實(shí)際體驗(yàn)。WiFi模塊硬件設(shè)備如圖4.11所示:圖4.11WiFi模塊4.6.2安裝WiFi模塊驅(qū)動(1)下載wifi.tar.gz文件到開發(fā)板,解壓wifi.tar.gz文件:tar-zxfwifi.tar.gz(2)把RT2870AP.dat放到“/etc/Wireless/RT2870AP/”下,若是/etc下沒有Wireless/RT2870AP文件,則使用下面命令新建缺少的目錄:1)cd/etc;2)mkdirWireless;3)cdWireless;4)mkdirRT2870AP復(fù)制RT2870AP.dat到/etc/Wireless/RT2870AP/:1)cpRT2870AP.dat/etc/Wireless/RT2870AP/修改WiFi的名字和密碼:1)vi/etc/Wireless/RT2870AP/RT2870AP.dat>按i,編輯該文件;2)SSID=RT2870AP》wifi名字;3)WPAPSK=1345678》wifi密碼;4)按esc,后輸入:wq,保存該文件并退出。(3)運(yùn)行腳本文件install.sh1)./install.shinstall.sh文件里面的內(nèi)容:1)insmodrtutil3070ap.ko2)insmodrt3070ap.ko3)insmodrtnet3070ap.ko4)ifconfigra023若看到WiFi模塊的燈在閃爍,則證明WiFi模塊驅(qū)動已經(jīng)安裝好了。備注:必須先配置好RT2870AP.dat,再按順序安裝WiFi驅(qū)動,才能夠給開發(fā)板配置ra0ip,否則出現(xiàn)無權(quán)限操作ip配置問題,配置好之后WiFi燈才會閃!手機(jī)連接開發(fā)板WiFi,一定要設(shè)置與開發(fā)板同網(wǎng)段的IP地址,避免出現(xiàn)IP地址沖突。手機(jī)APP遠(yuǎn)程控制開發(fā)板功能界面如圖4.12,圖4.13所示。圖4.12APP的IP登錄界面圖4.13APP的控制界面然后,就可以通過點(diǎn)擊手機(jī)APP上的按鈕來控制開發(fā)板來實(shí)現(xiàn)相應(yīng)的功能。4.7總結(jié)以上就是本次設(shè)計需要完成的所有基本功能。這些功能的實(shí)現(xiàn)相對較為簡單,不需要太復(fù)雜的代碼邏輯,但也有進(jìn)一步優(yōu)化的空間。例如,我們可以通過優(yōu)化代碼來提高圖片的切換的效率,也可以減少每個模塊的內(nèi)存消耗。同時,還可以再每個模塊添加拓展的功能,如可以在電子相冊環(huán)節(jié)添加刷圖特效等等。因此,本次設(shè)計還擁有很大的提升空間,希望能在以后做進(jìn)一步完善。參考文獻(xiàn)耿東久.基于OSGI是只能家居模擬系統(tǒng)的設(shè)計和實(shí)現(xiàn)[D].四川:四川電子科技大學(xué).王香童.基于ZigBee的智能三表遠(yuǎn)程抄表系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].天津:天津理工大學(xué),2017.劉力華.基于ZigBee及嵌入式服務(wù)器的智能家居設(shè)計[D].大連:大連理工大學(xué),2015.楊小燕,紀(jì)懷猛,周佳慧,張婉煌.基于Android平臺和ZigBee的智能家居系統(tǒng)設(shè)計[J].數(shù)字技術(shù)與應(yīng)用.2018,02(2):2.徐子同.淺談智能家居的現(xiàn)狀及發(fā)展[J].山東工業(yè)科技,2017,07(1):157.郭瑤.淺析中國智能家居發(fā)展現(xiàn)狀及存在問題[J].現(xiàn)代營銷(經(jīng)營版),2019(03):97-97.滿莎,楊輝先.基于ARM9的嵌入式無線智能家居網(wǎng)關(guān)設(shè)計[J].計算機(jī)應(yīng)用,2010,30(09):2541-2544.趙建,張晨秋.基于ARM9的嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[J].太原科技大學(xué)學(xué)報.2012,33(05):543-357.陸旭生.基于ZigBee的智能家居監(jiān)控系統(tǒng)的設(shè)計與實(shí)現(xiàn)[D].黑龍江:黑龍江大學(xué),2017.韋煜.基于ZigBee無線技術(shù)的智能家居系統(tǒng)設(shè)計與實(shí)現(xiàn)[D].四川:電子科技大學(xué),2019.劉亞,趙飛.基于ZigBee的無線傳感網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)實(shí)現(xiàn)[J].南方農(nóng)機(jī),2017,18(03):92.謝辭時光匆匆,轉(zhuǎn)眼間,為期一個學(xué)期的畢業(yè)設(shè)計即將結(jié)束了,這也將意味著我的大學(xué)四年的學(xué)習(xí)生涯馬上就要結(jié)束了,我也即將從母校北理珠畢業(yè),步入社會?;厥状髮W(xué)四年,我的心中充滿了感慨,感謝母校北理珠給我提供了這個學(xué)習(xí)平臺,讓我能在這里學(xué)習(xí)到寶貴的知識,并且樹立了正確的人生觀和價值觀,這四年的生活經(jīng)歷將會是我人生中難忘的經(jīng)歷,也會是我人生中寶貴的財富。在這里,我要向所有幫助過我,關(guān)心過我的同學(xué)和老師表達(dá)我最誠摯的謝意。首先,我要感謝的是我的指導(dǎo)老師陳景國老師,從論文的選題到論文的完成,每一步都是在老師的悉心教導(dǎo)下完成的。感謝您能在繁忙的教學(xué)工作中,抽出寶貴的時間對我的論文進(jìn)行指導(dǎo),在寫論文的過程中,遇到了許多的問題,例如專業(yè)知識的問題、論文格式的問題等等,但在您的耐心指導(dǎo)下,這些問題都一一得到了解決。您嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,精益求精的工作作風(fēng),平易近人的處事風(fēng)格對我影響深遠(yuǎn)。在此,再次向您表達(dá)我誠摯的謝意:謝謝您!其次,我要向電子科學(xué)與技術(shù)專業(yè)的全體老師表示衷心的感謝,感謝你們的陪伴和教導(dǎo),在這四年中,你們教會了我許多的知識,我也從你們的身上學(xué)到了許多為人處事的道理。你們的教導(dǎo)對我意義非凡,這將會讓我永生難忘,再次感謝你們!然后,我要感謝大學(xué)四年陪伴我一起學(xué)習(xí)和生活的同學(xué)們,和你們相處真的十分愉快,回想和你們一起學(xué)習(xí),一起玩鬧的日子,讓我十分的感慨,從你們身上,我也學(xué)到了許多。和你們即將分別,再次感謝你們!希望以后我們還有再次相聚的機(jī)會!最后,我要感謝我的父母,從出生到長大成人,你們一直陪伴著我成長,為我付出了許多,這些我都牢牢地記在心中。你們是我求學(xué)路上堅(jiān)強(qiáng)的后盾,你們對我的愛和期望也是我人生不斷前進(jìn)的動力,我一定會在以后的生活中努力到工作,報答你們的養(yǎng)育之恩,不辜負(fù)你們對我的期望。感謝你們!附錄程序源代碼#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<unistd.h>#include<string.h>#include<sys/mman.h>#include<linux/input.h>#include<strings.h>#include<pthread.h>#include<stdlib.h>#include<sys/socket.h>#include<arpa/inet.h>#include"lcd.h"#include"yuyv.h"http://函數(shù)聲明intshow_bmp(intx,inty,intbmp_w,intbmp_h,char*bmp_name);inttouch_screen(int*x,int*y);intshow_photo();intinit_lcd();intuninit_lcd();intshow_gif();void*routine(void*arg);void*routine3(void*arg);void*routine2(void*arg);intshow_video();intshow_camera();intshow_music();intshow_camera_photo();//全局變量unsignedint*addr;intlcd_fd;intts_fd;intjpg_num;intcamera_flag;intwifi_flag;intsoc_fd;structsockaddr_incli_addr;intlen;//定義一個線程ID號變量pthread_tid3;intmusic_stop_cont;intmusic_num=1;intmain(){ init_lcd(); show_gif(); intx,y; show_bmp(0,0,800,480,"/good/xhdx/ui/func.bmp"); while(1) { touch_screen(&x,&y); //相冊 if(x>100&&x<200&&y>100&&y<200) { show_photo(); } //音樂 elseif(x>300&&x<460&&y>100&&y<200) { show_music(); } //視頻 elseif(x>600&&x<750&&y>100&&y<200) { show_video(); } //監(jiān)控 elseif(x>300&&x<460&&y>300&&y<400) { show_camera(); } //遠(yuǎn)程控制 if(x>600&&x<750&&y>300&&y<400) { show_app_contrl(); } } uninit_lcd(); return0;}void*routine2(void*arg){ //1、買手機(jī) soc_fd=socket(AF_INET,SOCK_DGRAM,0); if(soc_fd==-1) { printf("createsocketfailed!\n"); //return-1; } structsockaddr_inser_addr; bzero(&ser_addr,sizeof(ser_addr)); ser_addr.sin_family=AF_INET;//選擇IPv4 ser_addr.sin_port=htons(2234);//0~65535 ser_addr.sin_addr.s_addr=inet_addr("23");//IP地址 //2、綁定號碼 intret=bind(soc_fd,(structsockaddr*)&ser_addr,sizeof(ser_addr)); if(ret==-1) { printf("bindfailed!\n"); close(soc_fd); //return-1; } else { printf("bindsuccess\n"); } //structsockaddr_incli_addr1; intwifi_music_flag=0; charbuf[25]; while(1) { bzero(buf,25); //5、聊天(阻塞:接收數(shù)據(jù)) ret=recvfrom(soc_fd,buf,25,0,(structsockaddr*)&cli_addr,(socklen_t*)&len); /*if(ret==-1) { printf("recvfromfailed!\n"); perror("recvfromfailed:"); //break; }*/ printf("buf:%s\n",buf); printf("cli_addr:151line:%s\n",inet_ntoa(cli_addr.sin_addr));//打印客戶端IP地址 if(0==strncmp(buf,"GET_VIDEO",9)) { printf("strncmp\(buf,\"GET_VIDEO\",9\n"); wifi_flag++; if(wifi_flag==1) { //創(chuàng)建一個攝像頭線程 pthread_create(&id3,NULL,routine3,NULL); //ret=sendto(soc_fd,jpg_buf.jpg_data,jpg_buf.jpg_size,0,(structsockaddr*)&cli_addr,sizeof(cli_addr)); } else { pthread_cancel(id3); //5、退出攝像頭和停止采集 linux_v4l2_yuyv_quit(); wifi_flag=0; } } elseif(0==strncmp(buf,"ENTER_KUGOU",11)) { lcd_draw_jpg(0,0,"./ui/contrl_music.jpg"); wifi_music_flag=1; } elseif(0==strncmp(buf,"BACK",4)) { lcd_draw_jpg(0,0,"./ui/contrl.jpg"); wifi_music_flag=0; system("killall-9madplay"); printf("killall-9madplay\n"); } elseif(wifi_music_flag==1) { if(0==strncmp(buf,"MUSIC_PREV",10)) { music_stop_cont=1; music_num--; if(music_num==0) music_num=5; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } elseif(0==strncmp(buf,"MUSIC_NEXT",10)) { music_stop_cont=1; music_num++; if(music_num==6) music_num=1; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } elseif(0==strncmp(buf,"MUSIC_PLAY",10)) { music_stop_cont=1; system("killall-9madplay"); printf("killall-9madplay\n"); system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); } elseif(0==strncmp(buf,"MUSIC_STOP_CONT",15)) { music_stop_cont++; if(music_stop_cont==2) { system("killall-STOPmadplay"); printf("killall-STOPmadplay\n"); } else { system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); music_stop_cont=1; } } } printf("recvbuf:%s\n",buf); } //6、掛電話 close(soc_fd);}intshow_app_contrl(){ lcd_draw_jpg(0,0,"./ui/contrl.jpg"); //定義一個線程ID號變量 pthread_tid2; //創(chuàng)建一個創(chuàng)建udpserver端的線程 pthread_create(&id2,NULL,routine2,NULL); charbuf[35]; bzero(buf,35); intx,y; while(1) { touch_screen(&x,&y); //退出遠(yuǎn)程控制界面 if(x>600&&x<800&&y>400&&y<480) { //如果攝像頭發(fā)送數(shù)據(jù)到app的功能被關(guān)閉,則不需要取消該線程 if(wifi_flag==1) { //pthread_cancel(id1); printf("退出遠(yuǎn)程控制界面\n"); pthread_cancel(id3); //5、退出攝像頭和停止采集 linux_v4l2_yuyv_quit(); wifi_flag=0; } pthread_cancel(id2); close(soc_fd); show_bmp(0,0,800,480,"/good/xhdx/ui/func.bmp"); break; } //上一首 elseif(x>0&&x<200&&y>200&&y<300) { music_stop_cont=1; music_num--; if(music_num==0) music_num=5; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } //下一首 elseif(x>600&&x<800&&y>200&&y<300) { music_stop_cont=1; music_num++; if(music_num==6) music_num=1; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } //暫停/繼續(xù) elseif(x>300&&x<500&&y>200&&y<300) { music_stop_cont++; if(music_stop_cont==2) { system("killall-STOPmadplay"); printf("killall-STOPmadplay\n"); } else { system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); music_stop_cont=1; } } } return0;}//視頻播放界面intshow_video(){ printf("nothing\n"); return0;}//監(jiān)控界面intshow_camera(){ //lcd_draw_jpg(0,0,"video.jpg"); show_bmp(0,0,800,480,"/good/xhdx/ui/video.bmp"); intx,y; //定義一個線程ID號變量 pthread_tid1; //創(chuàng)建一個線程函數(shù) pthread_create(&id1,NULL,routine,NULL); while(1) { touch_screen(&x,&y); //返回 if(x>640&&x<800&&y>380&&y<480) { pthread_cancel(id1); //5、退出攝像頭和停止采集 linux_v4l2_yuyv_quit(); show_bmp(0,0,800,480,"/good/xhdx/ui/func.bmp"); break; } //查看監(jiān)控畫面 elseif(x>640&&x<800&&y>0&&y<100) { pthread_cancel(id1); //5、退出攝像頭和停止采集 linux_v4l2_yuyv_quit(); show_camera_photo(); //創(chuàng)建一個線程函數(shù) pthread_create(&id1,NULL,routine,NULL); //camera_flag=1; } //拍照 elseif(x>640&&x<800&&y>200&&y<300) { camera_flag=2; } } return0; }//音樂界面intshow_music(){ intmusic_num=1; intx,y; charbuf[40]; bzero(buf,40); intmusic_stop_cont=0; show_bmp(0,0,800,480,"./ui/music.bmp"); while(1) { touch_screen(&x,&y); //音樂--返回 if(x>630&&x<800&&y>400&&y<480) { show_bmp(0,0,800,480,"/good/xhdx/ui/func.bmp"); break; } //上一首 elseif(x>40&&x<250&&y>230&&y<330) { music_stop_cont=1; music_num--; if(music_num==0) music_num=5; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } //下一首 elseif(x>600&&x<790&&y>230&&y<340) { music_num++; music_stop_cont=1; if(music_num==6) music_num=1; system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); system("killall-9madplay"); printf("killall-9madplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); printf("%s\n",buf); } //暫停/繼續(xù) elseif(x>290&&x<580&&y>200&&y<320) { music_stop_cont++; if(music_stop_cont==2) { system("killall-STOPmadplay"); printf("killall-STOPmadplay\n"); } else { system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); music_stop_cont=1; } } //播放 elseif(x>330&&x<570&&y>100&&y<200) { music_stop_cont=1; system("killall-9madplay"); printf("killall-9madplay\n"); system("killall-CONTmadplay"); printf("killall-CONTmadplay\n"); sprintf(buf,"madplay./music/%d.mp3&",music_num); system(buf); } } return0;}//攝像頭線程void*routine(void*arg){ structjpg_datajpg_buf; charjpg_path[25]; bzero(jpg_path,25); intjpg_fd; //1、初始化攝像頭 linux_v4l2_yuyv_init("/dev/video7"); //2、開始捕捉 linux_v4l2_start_yuyv_capturing(); while(1) { //3、獲取攝像頭一幀jpeg數(shù)據(jù) 640*480 linux_v4l2_get_yuyv_data(&jpg_buf); //4、顯示攝像頭采集數(shù)據(jù) show_video_data(0,0,jpg_buf.jpg_data,jpg_buf.jpg_size); //拍照 if(camera_flag==2) { jpg_num++; //1、創(chuàng)建空白文件 sprintf(jpg_path,"./jpg/%d.jpg",jpg_num); jpg_fd=open(jpg_path,O_CREAT|O_TRUNC|O_WRONLY); if(jpg_fd==-1) { printf("create%sfailed!\n",jpg_path); } else { printf("createsuccess\n"); } //2、把攝像頭捕捉的數(shù)據(jù)寫入文件 write(jpg_fd,jpg_buf.jpg_data,jpg_buf.jpg_size); //3、關(guān)閉文件 close(jpg_fd); camera_flag=0; } } returnNULL; }//攝像頭線程void*routine3(void*arg){ structjpg_datajpg_buf; intret; //1、初始化攝像頭 linux_v4l2_yuyv_init("/dev/video7"); //2、開始捕捉 linux_v4l2_start_yuyv_capturing(); while(1) { if(wifi_flag==1) { //3、獲取攝像頭一幀jpeg數(shù)據(jù) 640*480 linux_v4l2_get_yuyv_data(&jpg_buf); //4、顯示攝像頭采集數(shù)據(jù) //show_video_data(0,0,jpg_buf.jpg_data,jpg_buf.jpg_size); ret=sendto(soc_fd,jpg_buf.jpg_data,jpg_buf.jpg_size,0,(structsockaddr*)&cli_addr,len); /* if(ret==-1) { perror("sendtoerror:"); //printf("sendtoerror\n"); printf("cli_addr:%s\n",inet_ntoa(cli_addr.sin_addr)); }*/ } } returnNULL; }//攝像頭監(jiān)控截圖界面intshow_camera_photo(){ intx,y; intphoto_num=1; show_bmp(0,0,800,480,"/good/xhdx/ui/photo.bmp"); lcd_draw_jpg(0,0,"./jpg/1.jpg"); charbuf[35]; bzero(buf,35); while(1) { touch_screen(&x,&y); //相冊--返回 if(x>640&&x<800&&y>380&&y<480) { show_bmp(0,0,800,480,"/good/xhdx/ui/video.bmp"); break; } //相冊--上一張 elseif(x>640&&x<800&&y>0&&y<100) { photo_num--;//1~5 if(photo_num==0) { photo_num=jpg_num; } //合成字符串,根據(jù)變量合成字符串,放到數(shù)組buf里面 sprintf(buf,"./jpg/%d.jpg",photo_num); lcd_draw_jpg(0,0,buf); } //相冊--下一張 elseif(x>640&&x<800&&y>200&&y<300) { photo_num++;//1~5 if(photo_num==jpg_num+1) { photo_num=1; } //合成字符串,根據(jù)變量合成字符串,放到數(shù)組buf里面 sprintf(buf,"./jpg/%d.jpg",photo_num); lcd_draw_jpg(0,0,buf); } } return0; }//顯示動態(tài)圖intshow_gif(){ inti; charbuf[25]={0}; //顯示動態(tài)圖 for(i=0;i<60;i++) { sprintf(buf,"./gif_jpg/Frame%d.jpg",i); lcd_draw_jpg(0,0,buf); usleep(1000);//延時10毫秒 } return0; }//相冊界面intshow_photo(){ intx,y; intphoto_num=1; show_bmp(0,0,800,480,"/good/xhdx/ui/photo.bmp"); show_bmp(0,0,640,480,"/good/xhdx/ui/photo_bmp/1.bmp"); charbuf[35]; bzero(buf,35); //char

溫馨提示

  • 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

提交評論