當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Android的遠程家電控制終端設(shè)計

摘要:家電控制是智能家居系統(tǒng)的重要組成部分,而隨著智能手機的普及和3G網(wǎng)絡(luò)技術(shù)的快速發(fā)展,以智能手機作為智能家居遠程控制的終端設(shè)備是一個非常理想的選擇。目前在全球范圍內(nèi),Android是一個市場占有率高,免費,開放的智能設(shè)備操作系統(tǒng)。因此,本系統(tǒng)以Android智能終端作為客戶端,使用UDP網(wǎng)絡(luò)傳輸協(xié)議,以實現(xiàn)家電遠程控制系。
關(guān)鍵詞:Android;家電控制;智能家居;UDP協(xié)議

    在科學(xué)技術(shù)飛速發(fā)展的今天,人們的物質(zhì)條件和生活水平都在不斷地提高,人們對家居環(huán)境的要求也在不斷地增長。家居不僅要舒適更加需要安全和便捷。遠程家電控制,使人們可以隨時隨地控制家中設(shè)備,給人們帶來便捷的生活方式。傳統(tǒng)的智能家居系統(tǒng)中,大多基于Int ernet的遠程控制,并采用PC做監(jiān)控終端,受到Internet地域的限制,使用起來不是很方便。但隨著智能手機的普及,由于手機體積小便于攜帶,智能手機作為智能家居的控制終端是大勢所趨。

1 Android介紹
   
Android是Google公司在2007年11月正式推出的一款開源的操作系統(tǒng)。Android系統(tǒng)在它推出后僅僅兩年的時間,就打敗了稱霸智能手機市場10年的諾基亞Symbian成為全球最受歡迎的手機操作系統(tǒng)。
1.1 Android的安全機制
   
Google為Android引進了以下特有的安全機制:應(yīng)用程序權(quán)限機制,組件包裝和數(shù)字簽名。
    (1)應(yīng)用程序權(quán)限機制
    Android把每個權(quán)限定義成一個字符串,開發(fā)過程中可以通過在XML Manifest文件中進行權(quán)限的聲明和請求。權(quán)限定義分為兩個類別,一類是應(yīng)用程序在執(zhí)行時所需要請求的權(quán)限,另一類是被其他組件請求的權(quán)限。
    (2)組件包裝
    Android通過定義組件的“exported”屬性來實現(xiàn)把組件包裝在程序內(nèi)容內(nèi)。將“exported”屬性設(shè)置為“false”就是拒絕被其他外部程序調(diào)用。
    (3)數(shù)字簽名
    Android的所有應(yīng)用程序必須有數(shù)字證書,這個數(shù)字證書是可以自簽名的。
1.2 Android的系統(tǒng)框架
   
如圖1所示Android的系統(tǒng)框架由4個部分組成:Linux內(nèi)核層、系統(tǒng)運行庫層、應(yīng)用程序框架層和應(yīng)用程序?qū)印?/p>


    (1)Linux內(nèi)核層
    Android的Linux內(nèi)核層是基于Linux2.6的,它是介于硬件層和其他軟件組的一個抽象層次。提供內(nèi)存管理、安全性、進程管理、驅(qū)動模型、網(wǎng)絡(luò)組等核心服務(wù)。
    (2)系統(tǒng)運行庫層
    這一層分成兩個部分,系統(tǒng)庫和Android運行時庫。
    系統(tǒng)庫是應(yīng)用層框架庫的支撐。它起到了紐帶的作用。它主要負(fù)責(zé)2D和3D繪圖、顯示合成和支持多種常用的音頻、視頻格式錄制和回放等功能。
    Android運行時庫又包括核心庫和Dalvik虛擬機兩部分。核心庫提供了Java語言核心庫內(nèi)的大部分功能;Dalvik虛擬機是Android重新設(shè)計的一款虛擬機。Dalvik可以在消耗較少的資源情況下,使一臺設(shè)備同時運行多個虛擬機程序。[!--empirenews.page--]
    (3)應(yīng)用程序框架層
    應(yīng)用程序框架層為開發(fā)者提供開發(fā)所需的各種API,常用的組件有:UI組件、Content Providers(提供一種使應(yīng)用程序之間可以實現(xiàn)數(shù)據(jù)互相訪問和共享的服務(wù))、資源管理(管理字體、圖片、組件ID等)、活動管理(它管理了整個程序的生命周期)等。
    (4)應(yīng)用程序?qū)?br />     應(yīng)用層是和用戶交互的一個層次,用戶可以看得見和操作的一些應(yīng)用。Android本身提供了桌面,聯(lián)系人,撥打電話,瀏覽器等很多基本的應(yīng)用程序。開發(fā)人員可以使用應(yīng)用框架提供的API編寫自己的應(yīng)用程序。

2 智能家居遠程家電控制系統(tǒng)的組成
   
整個系統(tǒng)主要包括3個部分:遠程控制終端(Android手機或者平板電腦),服務(wù)器和家電控制器。先由遠程終端發(fā)送帶有控制命令的數(shù)據(jù)包到服務(wù)器,當(dāng)服務(wù)器收到控制指令之后,再由服務(wù)器發(fā)送控制命令到相應(yīng)的家電控制器上。圖2是遠程家電控制系統(tǒng)的結(jié)構(gòu)圖。


    在本文中,主要介紹控制終端的設(shè)計,下面簡單地介紹一下服務(wù)器和家電控制終端。服務(wù)器收到命令數(shù)據(jù)時,通過設(shè)備類型和子設(shè)備號來識別是哪個設(shè)備的控制命令,然后將相應(yīng)的控制命令發(fā)送到相應(yīng)的控制器上。具體的幀格式定義,會在下一章節(jié)中講解。對于家電控制器,分為兩種。一種是簡單控制電路的通斷來控制電器的控制器,主要可控制燈光、冰箱、排風(fēng)扇等家電,一種是模擬紅外遙控器發(fā)出信號的控制器,主要可控制空調(diào)、電視機等使用紅外遙控器的家電。我們有了家電控制器之后,就可以在不對家電做任何的改動的情況下,對家電進行控制。

3 終端程序設(shè)計
3.1 傳輸協(xié)議的選擇
   
在智能家居中的應(yīng)用原則中,TCP和UDP作為目前最常用到的網(wǎng)絡(luò)通信協(xié)議,可以看出TCP是基于連接的協(xié)議,UDP是一個無連接的、不可靠的協(xié)議,相對于基于流傳輸?shù)腡CP而言,UDP是基于消息傳輸?shù)?,整體上具有傳輸速度快等優(yōu)點。通過研究可以看出家用電器的控制信息特點是數(shù)據(jù)量小,控制信息短,適合用于傳送少量數(shù)據(jù)、對可靠性要求不高的應(yīng)用環(huán)境,因此更適合采用簡單的、面向數(shù)據(jù)報的UDP協(xié)議。
3.2 應(yīng)用層幀格式的定義
   
由于目前智能家居沒有統(tǒng)一的標(biāo)準(zhǔn),各個不同的系統(tǒng)都是自己定義各個設(shè)備的通信協(xié)議。表1是本系統(tǒng)家電控制系統(tǒng)應(yīng)用層報文幀格式的定義。


    (1)報頭:固定為0x66、0xAD兩字節(jié),表示一個報文幀的開始。
    (2)數(shù)據(jù)長度:從報頭段0x開始算到命令數(shù)據(jù)段的最后一個字節(jié)總和。表示整個幀的字節(jié)數(shù)。
    (3)路由地址:這個數(shù)據(jù)位是對路由進行選擇。根據(jù)部署的網(wǎng)絡(luò)不同的位置,選擇鏈路質(zhì)量最好的路由節(jié)點進行數(shù)據(jù)傳輸。
    (4)設(shè)備類型:表示家居設(shè)備的種類,我們將家電控制系統(tǒng)固定為0xF4。
    (5)子設(shè)備號:此字段為家電控制系統(tǒng)里的設(shè)備分配唯一的地址,這樣我們可通過設(shè)備類型段和子設(shè)備號兩個字段唯一標(biāo)識某個家電設(shè)備,便于控制信息的準(zhǔn)確有效送達到控制器。
    (6)命令數(shù)據(jù):裝載具體的家電控制命令,告訴家電控制器收到數(shù)據(jù)之后需要對家用電器做哪些操作。
3.3 Socket套接宇
   
在網(wǎng)絡(luò)層通過傳輸層進行數(shù)據(jù)通信時,常常會遇到多個應(yīng)用程序提供并發(fā)服務(wù)的問題,為了區(qū)別不同的應(yīng)用程序進程間的網(wǎng)絡(luò)通信和連接,就需要使用socket套接字這個接口。對于使用不同的協(xié)議通信,TCP是使用socket對象來實現(xiàn),而UDP是使用DatagramSocket對象來實現(xiàn)。由于我們遠程家電控制系統(tǒng)使用的是UDP協(xié)議,在這里我只介紹DatagramSocket。
    DatagramSocket是用于連接兩個端點的分組投遞服務(wù),是由Android系統(tǒng)提供的一個公共類。根據(jù)編程人員所給的參數(shù),它可以建立與任意可用端口或者與給定端口的連接。
    這里我們需要了解的方法有close()、receive(Datagram Packet pack)和send(DatagramPaeket pack)。它們分別是關(guān)閉套接字、接收數(shù)據(jù)報和發(fā)送數(shù)據(jù)報。
    從上文我們可以看到發(fā)送和接收數(shù)據(jù)報時,我們接收到的是一個DatagramPaeket對象。所以在這里必須得提到的就是用來存儲數(shù)據(jù)報數(shù)據(jù)的final類DatagramPacket。DatagramPacket有多個構(gòu)造方法,但是它的每個構(gòu)造方法中一定包括byte[]buf和int lcnsth這兩個參數(shù)。buf是用來存儲所要傳輸?shù)臄?shù)據(jù),length是表示傳輸?shù)臄?shù)據(jù)的長度。當(dāng)然你在創(chuàng)建DatagramPaeket對象時,還可以指定接收端的IP地址和端口號。
    發(fā)送數(shù)據(jù)報的代碼為:

    其中portNumber是指服務(wù)器的端口號,message是根據(jù)應(yīng)用層幀格式得到的控制命令,serverAddr是指服務(wù)器的IP地址。[!--empirenews.page--]
3.4 軟件設(shè)計流程
   
圖3是整個基于Android遠程控制系統(tǒng)軟件設(shè)計流程圖。


    為了方便地適用于不同的家電控制系統(tǒng),我們將服務(wù)器的IP地址以一個由用戶輸入的方式來完成,這樣當(dāng)在一個新的地方安裝整套系統(tǒng)時,在無需改變Android安裝包的情況下,自己輸入新的系統(tǒng)的服務(wù)器IP即可實現(xiàn)遠程控制。

4 測試結(jié)果
   
本家電控制器在完成設(shè)計、調(diào)試后,在實際展廳進行控制實驗表明該設(shè)計可以完成預(yù)定功能。在長期的實踐和全面測試的過程中,證實本套系統(tǒng)可完成以下功能并且性能穩(wěn)定。
    (1)空調(diào)控制:空調(diào)開關(guān),模式轉(zhuǎn)換,掃風(fēng)功能,調(diào)節(jié)風(fēng)速;
    (2)電視控制:電視遙控(開關(guān)、選臺、音量調(diào)節(jié)、電視菜單),電視導(dǎo)航(包括各地省級市級電視臺電視節(jié)目預(yù)告),電視游戲;
    (3)燈光控制:各個房間燈光的開關(guān);
    (4)風(fēng)扇控制:各個房間風(fēng)扇的開關(guān)。
    如圖4所示,是手機控制界面圖。從左到右依次是空調(diào)控制界面,電視控制界面,燈光和風(fēng)扇控制界面。



5 小結(jié)
   
本文簡要的介紹了基于Android的智能家居遠程家電控制的終端設(shè)計和關(guān)鍵技術(shù),包括Android的安全機制和內(nèi)核分析,遠程家電控制系統(tǒng)的組成,每個組成部分的功能,應(yīng)用層幀格式的定義,傳輸協(xié)議的選用以及軟件設(shè)計流程。并在最后展示了測試結(jié)果,證明了基于Android遠程家電控制的可行性。與傳統(tǒng)的基于Internet的遠程家電控制系統(tǒng)相比,基于Android手機的控制系統(tǒng)有著巨大的優(yōu)勢和前景。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉