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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

PL2303_Prolific_DriverInstaller_v1210.exe->雙擊->下一步->完成(3)查看Windows端設備管理器有沒有對應的COM口。右鍵計算機->設備管理器->端口->USBSERIAL-CH340(COM3)(4)打開串口工具->SecureCRT.zip解壓SecureCRT.zip->得到SecureCRT->雙擊打開SecureCRT.exe(5)配置串口終端的參數(shù)。"文件"->"快速連接"->彈出的框中按照圖4.2來配置參數(shù)圖4.2SecureCRT配置參數(shù)(6)配置和修改開發(fā)板的網絡信息使用“ifconfigeth070”命令配置開發(fā)板的網絡IP,然后再使用“ifconfig”命令查看開發(fā)板的IP。如圖4.3所示圖4.3開發(fā)板IP地址的配置其中,inetaddr:70為IP地址,Bcast:55為廣播地址,Mask:為子網掩碼。該命令為臨時修改開發(fā)板的IP地址,如果需要永久設置IP地址,則需要把該命令寫入開發(fā)板腳本文件/etc/prpfile。如果使用“ifconfig”命令時,沒有看到eth0的相關網絡信息,就需要在開發(fā)板上輸入“ifconfigeth0up”命令來啟動開發(fā)板網卡。(7)配置tftp來傳輸文件到開發(fā)板首先,需要下載tftp32.exe軟件,然后雙擊打開,界面如圖4.4所示。圖4.4tftp軟件界面選擇所需要下載的文件所在的目錄和Windows端的IP地址,并在SecureCRT上使用“tftp69-g-rxxx”命令,就可以把文件、圖片和音視頻下載到開發(fā)板上了。4.3電子相冊本環(huán)節(jié)主要實現(xiàn)的功能是在GEC6818開發(fā)板的LCD屏幕上顯示圖片,并且實現(xiàn)圖片的切換,圖片的格式分別為BMP格式和JPEG格式。BMP格式,是英文單詞Bitmap的簡寫。它是一種在Windows操作系統(tǒng)里面的標準圖像文件格式,這種格式的圖像可以保留較為完整的圖片信息,因此能被多種Windows應用程序和軟件所支持,并且得到了廣泛的應用。但是由于這種格式的圖像幾乎不會進行任何壓縮文件的處理,因此也有比較明顯的缺點——文件格式過大,占用磁盤空間多。本設計主要使用BMP格式來顯示圖片,然后設計一個電子相冊的界面,界面上放置兩個按鈕,分別為上一張和下一張,并通過使用觸摸屏的功能來實現(xiàn)點擊按鈕進行不同圖片的切換,從而實現(xiàn)電子相冊的功能,代碼如圖4.5:圖4.5相冊功能的實現(xiàn)代碼JPEG格式,也一種是在各種操作系統(tǒng)中被廣泛地應用的圖像格式。JPEG的文件的拓展名為.jpg或.jpeg。與BMP位圖不同的是,JPEG圖像文件通過壓縮處理后,極大地降低了對磁盤空間的占有率,文件格式也變小了。而且在文件進行壓縮操作過后,也能夠保留下十分豐富生動的圖像,因此,JPEG格式的圖片在網絡上也是十分流行的。本次設計主要是使用JPEG格式的來顯示動態(tài)圖片,代碼如圖4.6:圖4.6JPEG的實現(xiàn)代碼4.4音視頻的播放本設計環(huán)節(jié)將在開發(fā)板上實現(xiàn)音樂播放和視頻播放。在實際設計中,我們將使用庫來實現(xiàn)這兩塊功能。音樂播放模塊,本設計將使用madplay庫,通過把madplay庫文件移植到開發(fā)板上,實現(xiàn)音樂的播放。madplay庫文件如圖4.7所示:圖4.7madplay庫文件然后,本設計將在代碼塊中使用Linux下的system命令來實現(xiàn)音樂的播放、暫停、繼續(xù)播放和終止等功能:音樂播放:“system("madplay1.mp3&");”;音樂暫停:“system("killall-STOPmadplay&");”;音樂繼續(xù)播放:“system("killall-CONTmadplay&");”;音樂終止:“system("killall-9madplay");”視頻播放模塊,本設計將使用mplayer庫,通過把mplayer庫文件一直到開發(fā)板上,實現(xiàn)視頻的播放。mplayer庫文件如圖4.8所示:圖4.8mplayer庫文件本設計視頻播放模塊將和攝像頭模塊相結合,把攝像頭拍攝到的視頻圖像采集起來,并在開發(fā)板上實現(xiàn)播放功能和監(jiān)控功能。4.5攝像頭模塊在Linux系統(tǒng)下,一切接文件。因此,在本次設計中,我們使用的攝像頭硬件設備也可以看做是一種設備文件,當我們把攝像頭設備的USB接口連接到開發(fā)板上,然后打開根目錄下的dev文件,就可以找到video7這個文件,而這個文件就是攝像頭的設備文件。與開發(fā)板的LCD屏幕和觸摸屏一樣,攝像頭的設備文件是可以被訪問的,就像我們在Linux下訪問其他文件一樣,我們可以使用IO接口來打開,使用和關閉攝像頭的設備文件。對于攝像頭數(shù)據采集,則需要用到V4L2接口,V4L2是V4L的第二版,是VideoForLinux的縮寫,V4L早在Linux的2.1時代就已經被引入,一直存在到2.6.38才最終被V4L2取代。V4L2是Linux處理視頻的最新標準代碼模塊,這其中包括對視頻輸入設備的處理,比如高頻頭(即電視劇信號輸入端子)或者攝像頭,還包括對視頻輸出設備的處理。一般而言,最常見的是使用V4L2來處理攝像頭數(shù)據的采集的問題。我們平常所使用的攝像頭,實際上就是一個圖像傳感器,將光線捕捉到之后經過視頻芯片的處理,編碼成JPG/MJPG或者YUV格式輸出。通過V4L2我們可以很方便地跟攝像頭等視頻設備“溝通”,比如設置或者獲取它們的工作參數(shù),下面我們就來詳細分析一下如何獲取攝像頭的圖像信息。在內核中,攝像頭所捕獲的視頻數(shù)據,我們可以通過使用一個隊里來存儲,我們所做的工作大致是這樣的:首先配置好攝像頭的相關參數(shù),使之能夠正常地工作,然后申請若干個內核視頻緩存,并將它們一一送到隊列中,就好比三個空盤子被一一放到傳送帶上一樣,然后我們還需要將這三個內核的緩存區(qū)通過mmap函數(shù)映射到用戶空間,這樣我們在用戶層就可以操作攝像頭數(shù)據了,緊接著我們就可以啟動攝像頭開始數(shù)據捕獲,每捕獲一幀數(shù)據我們就可以做一個出隊操作,讀取數(shù)據,然后將讀取過的數(shù)據的內核緩存再次入隊,依次循環(huán)。攝像頭模塊硬件設備如圖4-9所示:圖4.9攝像頭模塊攝像頭模塊主要有兩個功能,第一個是攝像頭實時監(jiān)控的功能,我們將把攝像頭拍攝到的視頻存放入開發(fā)板中,并進行實時的播放。第二個功能是使用攝像頭進行拍照,并將拍攝到的照片存放到文件夾中,然后可以利用電子相冊的功能來顯示拍攝到的照片。攝像頭采集數(shù)據控制代碼如圖4.10所示:圖4.10攝像頭控制代碼4.6手機APP的遠程控制本環(huán)節(jié)將在開發(fā)板上連接WiFi模塊,構建一個無線網絡,然后將手機連接入該網絡,并使用手機APP來實現(xiàn)遠程控制開發(fā)板的功能。4.6.1WiFi模塊的介紹本次設計使用的WiFi模塊是由聯(lián)發(fā)科技研發(fā)的一款具有高度整合式的,能夠支持150MbpsPHY速率Wi-Fi單芯片——RT3070。該模塊完全符合IEEE802.11n及IEEE802.11b/g標準,可以提供高標準的、功能強大的無線網絡連接,并可以從遠距離提供高可靠性、穩(wěn)定性高且高成本效益的處理能力。通過對射頻架構及基頻算法的優(yōu)化,可以提升模塊的性能,以及帶來高可靠性而低功耗的處理能力。它的智能型媒介訪問控制(MAC)設計采用效率極高的直接內存訪問(DMA)引擎,亦配備可減輕主處理器負荷的硬件信息處理加速器。RT3070的設計旨在提供符合國際規(guī)范標準的、高服務品質的、安全性高的功能,讓用戶能夠在任何情況下隨時享有最佳的效能表現(xiàn),提升用戶的實際體驗。WiFi模塊硬件設備如圖4.11所示:圖4.11WiFi模塊4.6.2安裝WiFi模塊驅動(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復制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)運行腳本文件install.sh1)./install.shinstall.sh文件里面的內容:1)insmodrtutil3070ap.ko2)insmodrt3070ap.ko3)insmodrtnet3070ap.ko4)ifconfigra023若看到WiFi模塊的燈在閃爍,則證明WiFi模塊驅動已經安裝好了。備注:必須先配置好RT2870AP.dat,再按順序安裝WiFi驅動,才能夠給開發(fā)板配置ra0ip,否則出現(xiàn)無權限操作ip配置問題,配置好之后WiFi燈才會閃!手機連接開發(fā)板WiFi,一定要設置與開發(fā)板同網段的IP地址,避免出現(xiàn)IP地址沖突。手機APP遠程控制開發(fā)板功能界面如圖4.12,圖4.13所示。圖4.12APP的IP登錄界面圖4.13APP的控制界面然后,就可以通過點擊手機APP上的按鈕來控制開發(fā)板來實現(xiàn)相應的功能。4.7總結以上就是本次設計需要完成的所有基本功能。這些功能的實現(xiàn)相對較為簡單,不需要太復雜的代碼邏輯,但也有進一步優(yōu)化的空間。例如,我們可以通過優(yōu)化代碼來提高圖片的切換的效率,也可以減少每個模塊的內存消耗。同時,還可以再每個模塊添加拓展的功能,如可以在電子相冊環(huán)節(jié)添加刷圖特效等等。因此,本次設計還擁有很大的提升空間,希望能在以后做進一步完善。參考文獻耿東久.基于OSGI是只能家居模擬系統(tǒng)的設計和實現(xiàn)[D].四川:四川電子科技大學.王香童.基于ZigBee的智能三表遠程抄表系統(tǒng)的設計與實現(xiàn)[D].天津:天津理工大學,2017.劉力華.基于ZigBee及嵌入式服務器的智能家居設計[D].大連:大連理工大學,2015.楊小燕,紀懷猛,周佳慧,張婉煌.基于Android平臺和ZigBee的智能家居系統(tǒng)設計[J].數(shù)字技術與應用.2018,02(2):2.徐子同.淺談智能家居的現(xiàn)狀及發(fā)展[J].山東工業(yè)科技,2017,07(1):157.郭瑤.淺析中國智能家居發(fā)展現(xiàn)狀及存在問題[J].現(xiàn)代營銷(經營版),2019(03):97-97.滿莎,楊輝先.基于ARM9的嵌入式無線智能家居網關設計[J].計算機應用,2010,30(09):2541-2544.趙建,張晨秋.基于ARM9的嵌入式視頻監(jiān)控系統(tǒng)的設計與實現(xiàn)[J].太原科技大學學報.2012,33(05):543-357.陸旭生.基于ZigBee的智能家居監(jiān)控系統(tǒng)的設計與實現(xiàn)[D].黑龍江:黑龍江大學,2017.韋煜.基于ZigBee無線技術的智能家居系統(tǒng)設計與實現(xiàn)[D].四川:電子科技大學,2019.劉亞,趙飛.基于ZigBee的無線傳感網絡拓撲結構實現(xiàn)[J].南方農機,2017,18(03):92.謝辭時光匆匆,轉眼間,為期一個學期的畢業(yè)設計即將結束了,這也將意味著我的大學四年的學習生涯馬上就要結束了,我也即將從母校北理珠畢業(yè),步入社會?;厥状髮W四年,我的心中充滿了感慨,感謝母校北理珠給我提供了這個學習平臺,讓我能在這里學習到寶貴的知識,并且樹立了正確的人生觀和價值觀,這四年的生活經歷將會是我人生中難忘的經歷,也會是我人生中寶貴的財富。在這里,我要向所有幫助過我,關心過我的同學和老師表達我最誠摯的謝意。首先,我要感謝的是我的指導老師陳景國老師,從論文的選題到論文的完成,每一步都是在老師的悉心教導下完成的。感謝您能在繁忙的教學工作中,抽出寶貴的時間對我的論文進行指導,在寫論文的過程中,遇到了許多的問題,例如專業(yè)知識的問題、論文格式的問題等等,但在您的耐心指導下,這些問題都一一得到了解決。您嚴謹?shù)闹螌W態(tài)度,精益求精的工作作風,平易近人的處事風格對我影響深遠。在此,再次向您表達我誠摯的謝意:謝謝您!其次,我要向電子科學與技術專業(yè)的全體老師表示衷心的感謝,感謝你們的陪伴和教導,在這四年中,你們教會了我許多的知識,我也從你們的身上學到了許多為人處事的道理。你們的教導對我意義非凡,這將會讓我永生難忘,再次感謝你們!然后,我要感謝大學四年陪伴我一起學習和生活的同學們,和你們相處真的十分愉快,回想和你們一起學習,一起玩鬧的日子,讓我十分的感慨,從你們身上,我也學到了許多。和你們即將分別,再次感謝你們!希望以后我們還有再次相聚的機會!最后,我要感謝我的父母,從出生到長大成人,你們一直陪伴著我成長,為我付出了許多,這些我都牢牢地記在心中。你們是我求學路上堅強的后盾,你們對我的愛和期望也是我人生不斷前進的動力,我一定會在以后的生活中努力到工作,報答你們的養(yǎng)育之恩,不辜負你們對我的期望。感謝你們!附錄程序源代碼#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(); } //遠程控制 if(x>600&&x<750&&y>300&&y<400) { show_app_contrl(); } } uninit_lcd(); return0;}void*routine2(void*arg){ //1、買手機 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ù)據) 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); //退出遠程控制界面 if(x>600&&x<800&&y>400&&y<480) { //如果攝像頭發(fā)送數(shù)據到app的功能被關閉,則不需要取消該線程 if(wifi_flag==1) { //pthread_cancel(id1); printf("退出遠程控制界面\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ù)據 640*480 linux_v4l2_get_yuyv_data(&jpg_buf); //4、顯示攝像頭采集數(shù)據 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ù)據寫入文件 write(jpg_fd,jpg_buf.jpg_data,jpg_buf.jpg_size); //3、關閉文件 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ù)據 640*480 linux_v4l2_get_yuyv_data(&jpg_buf); //4、顯示攝像頭采集數(shù)據 //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; } //合成字符串,根據變量合成字符串,放到數(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; } //合成字符串,根據變量合成字符串,放到數(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論