



摘要:論述基于安卓(Android)智能手持設(shè)備的智能遙控系統(tǒng)的設(shè)計與實現(xiàn)。實現(xiàn)了對智能電視的遙控。提出并實現(xiàn)了新穎的基于近場通信(NeaiField Conununication,NFC)和二維碼的智能遙控器與受控設(shè)備之間的初始化綁定配對方法,以實現(xiàn)安全便捷的通信連接。該設(shè)計可移植到智能空調(diào)等智能家居設(shè)備中,以實現(xiàn)多功能的智能家居設(shè)備遙控。本文網(wǎng)絡(luò)版地址:http://www.eepw.e om.cn/article/274747.htm
關(guān)鍵詞:智能家居;近場通信;套接字;安卓DOI:10.3969/j.issn.1005-5517.2015.5.011
引言
隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能家居設(shè)備、智能手機(jī)、平板電腦、個人電腦等可由無線局域網(wǎng)(Wireless-Fidelity, WiFi)等無線通信技術(shù)彼此互聯(lián)。在此基礎(chǔ)上,可以通過在智能手機(jī)或平板電腦上運(yùn)行專門的應(yīng)用(Application,APP)軟件遠(yuǎn)程控制智能電視、空調(diào)、個人電腦等智能家居設(shè)備,這時智能手機(jī)相當(dāng)于一個多功能智能遙控器,且較傳統(tǒng)遙控器更加簡單易用、通用性強(qiáng)、節(jié)省了傳統(tǒng)遙控器的材料消耗。本文設(shè)計實現(xiàn)了基于安卓(Android)智能手機(jī)的智能遙控系統(tǒng),實現(xiàn)了對智能電視的遙控,提出并實現(xiàn)了新穎的基于近場通信結(jié)合二維碼的智能遙控器與受控設(shè)備之間的初始化綁定配對方法,以實現(xiàn)安全便捷的通信連接,且適用局域網(wǎng)和廣域網(wǎng)場景。該設(shè)計可移植到其他類型的智能家居設(shè)備中(如智能空調(diào)等),以實現(xiàn)對不同類型智能家居設(shè)備的統(tǒng)一遙控。
1 關(guān)鍵技術(shù)
如圖1,整套智能遙控器系統(tǒng)采用客戶端/服務(wù)器(Client/Server, C/S)架構(gòu)。作為遙控器本身,Android智能手機(jī)上運(yùn)行控制端軟件,負(fù)責(zé)向受控端發(fā)送控制指令。Android智能電視上運(yùn)行受控端軟件,負(fù)責(zé)接收、解碼、執(zhí)行來自遙控器的遠(yuǎn)程控制指令??刂贫伺c受控端的連接是基于套接字(Socket)技術(shù),底層基于互聯(lián)網(wǎng)協(xié)議(Internet Protocol, IP)和WiFi無線連接技術(shù)。首次使用時,為了避免非法訪問和追求更高的安全性,需確??刂贫?、受控端在同一局域網(wǎng)中,并通過專門設(shè)計的基于NFC/二維碼的綁定技術(shù)建立通信連接。建立綁定關(guān)系后,受控端和遙控器端將自己的介質(zhì)訪問控制(Media AccessControl,MAC)地址、IP地址、設(shè)備類型(遙控器或受控設(shè)備)等信息發(fā)送至云端服務(wù)器,云端服務(wù)器負(fù)責(zé)維護(hù)遙控器與受控設(shè)備之間的綁定關(guān)系,并在廣域網(wǎng)場景中,轉(zhuǎn)發(fā)來自遙控器且目的地為受控設(shè)備的控制指令包。在局域網(wǎng)場景中,無需云端參與,遙控器與受控設(shè)備可直接通過WiFi技術(shù)彼此發(fā)包通信。
2 設(shè)計與實現(xiàn)
2.1 初始化與綁定
智能電視帶有集成TCP/IP和Web協(xié)議的嵌入式WiFi模塊。上電后,嵌入式WiFi模塊自動進(jìn)入工作狀態(tài)并處于熱點模式。該熱點的名稱、接入密碼以及主頁IP地址信息事先需告知用戶。用戶首次使用時需據(jù)此配置手機(jī)WiFi參數(shù)以建立底層通信連接。非首次使用時,用戶可直接通過手機(jī)的WiFi聯(lián)網(wǎng)功能和瀏覽器以Web網(wǎng)頁方式訪問、配置嵌入式WiFi模塊。若用戶配置打開電視機(jī)的選項為開啟狀態(tài),則嵌入式WiFi模塊通過串口向電視主板發(fā)送喚醒信號,進(jìn)而啟動智能電視開機(jī)。關(guān)機(jī)時,用戶會通過手機(jī)上基于Socket客戶端通信協(xié)議的遙控器軟件發(fā)送關(guān)機(jī)指令,智能電視后臺So cket服務(wù)器端軟件收到并判斷出是關(guān)機(jī)指令后,進(jìn)行關(guān)機(jī)操作。開機(jī)后,手機(jī)與智能電視通過WiFi密碼接入用戶私有的家庭無線局域網(wǎng)中,避免了非法用戶對智能電視的訪問。另外,傳統(tǒng)紅外/藍(lán)牙遙控器與電視在首次使用時,需要進(jìn)行對碼配對操作,之后雙方建立起封閉的控制與被控關(guān)系。如果不進(jìn)行該操作,遙控器發(fā)出的指令可能會被多個受控設(shè)備接收,進(jìn)而可能觸發(fā)對這些非目標(biāo)設(shè)備的誤控制。因此電視開機(jī)后需要進(jìn)行智能手機(jī)與智能電視之間的配對,即Socket IP地址與端口的綁定初始化操作,否則受控設(shè)備無法接收來自遙控器的控制指令。傳統(tǒng)的對碼操作需要將遙控器對準(zhǔn)電視機(jī)的紅外/藍(lán)牙接收區(qū)域,進(jìn)而按下遙控器上的特殊按鍵,雙方通過短距離無線通信建立起配對關(guān)系。該過程用時較長,一般需5秒左右。本文提出并實現(xiàn)了基于NFC技術(shù)的安全快捷的配對方案,整個配對過程只需毫秒級時間即可完成,大大提高了用戶體驗。同時,考慮到攝像頭已成為智能手機(jī)標(biāo)配,而現(xiàn)階段不是每部智能手機(jī)都支持NFC,本文為此開發(fā)了基于攝像頭二維碼掃描的配對方案,以在無法使用NFC技術(shù)的場景下進(jìn)行手機(jī)與電視間的配對操作。
如圖12,智能電視運(yùn)行Android操作系統(tǒng),電視啟動后受控端軟件以Service軟件形式在后臺運(yùn)行。該軟件啟動后,首先初始化Socket套接字。若為首次使用,將自身的IP地址、MAC地址和端口信息保存到NFCTag(標(biāo)簽)中或在屏幕上生成二維碼,之后在預(yù)先指定的端口監(jiān)聽。
智能手機(jī)軟件啟動后,若為首次使用,首先需要刷一下電視機(jī)中的NFC標(biāo)簽或掃描智能電視屏幕上動態(tài)生成的二維碼,以獲取智能電視的IP、MAC地址和端口信息。如圖2.以基于NFC的配對方案為例,智能手機(jī)接近電視中的NFC標(biāo)簽時,手機(jī)中的NFC讀卡器會將事先寫入NFC標(biāo)簽中的電視機(jī)的IP、MAC地址信息讀取出來,并通過通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART)接口將其傳遞給手機(jī)主控芯片。主控芯片獲取該IP和MAC地址信息后,將其存儲在自身存儲區(qū)中。其中,NFC讀卡器可選取德州儀器公司的TRF7970(射頻收發(fā)器)和MSP430(單片機(jī)/基帶控制器)組合。之后智能手機(jī)進(jìn)行So cket初始化并向智能電視對應(yīng)的IP地址和端口發(fā)送連接請求。智能電視的受控端軟件在指定端口接收到該連接請求后,建立Socket連接。至此,遙控器與智能電視間的初始化綁定配對過程完成,且建立了封閉的通信連接關(guān)系。此時遙控器與智能電視之間已經(jīng)通過彼此的MAC地址建立了互為指向的綁定關(guān)系,且可通過MAC地址進(jìn)行設(shè)備的唯一性標(biāo)識,之后,如果遙控器偵測到有廣域網(wǎng)連接,則向廣域網(wǎng)云端服務(wù)器(固定IP地址)發(fā)送綁定成功的控制雙方的MAC和IP地址。
2.2 遙控指令處理
初始化綁定完成后,遙控器端軟件監(jiān)測用戶是否按下了在觸摸屏界面上顯示的遙控按鍵,如果有按鍵事件,則將其通過So cket接口發(fā)送至受控端。智能電視進(jìn)入正常播放界面后,受控端軟件在后臺以Service形式運(yùn)行。受控端軟件監(jiān)聽并接收到來自遙控器端的遠(yuǎn)程控制指令后,解碼并執(zhí)行接收到的遙控指令所對應(yīng)的操作:比如增大音量、減小音量、調(diào)臺(頻道+1)、調(diào)臺(頻道·1)等基本操作??蛇x的,在執(zhí)行完某指令對應(yīng)的操作后,受控端軟件向遙控器端發(fā)送該指令的響應(yīng)。遙控器接收到該指令后,結(jié)束本次用戶遙控行為觸發(fā)的軟件流程,回到監(jiān)聽用戶遙控按鍵行為的狀態(tài)。整個系統(tǒng)軟件主流程如圖3所示,受控端軟件主流程如圖4。
2.3 廣域網(wǎng)場景下的遙控
如圖1,在廣域網(wǎng)場景下,位于云端的擁有固定IP地址的服務(wù)器負(fù)責(zé)維護(hù)遙控器與受控設(shè)備之間的網(wǎng)絡(luò)與綁定配對關(guān)系列表,該表主要字段包括:發(fā)包設(shè)備的設(shè)備類型(遙控器或受控設(shè)備)、遙控器MAC地址、遙控器IP地址、受控設(shè)備MAC地址、受控設(shè)備IP地址等。云端服務(wù)器基于該列表進(jìn)行遙控指令包的轉(zhuǎn)發(fā)。接收到遙控指令包時,首先解析提取該包對應(yīng)的遙控器與受控設(shè)備的MAC地址對,之后根據(jù)該MAC地址對確定受控設(shè)備IP地址,并向該IP地址轉(zhuǎn)發(fā)遙控指令包。
3 運(yùn)行結(jié)果
如圖5所示,遙控器端軟件正常運(yùn)行時,在遙控器操控界面共有5個功能按鍵,分別是“靜音”、 “音量+”、 音量一”、“頻道+”、“頻道一”。當(dāng)遙控器端連接好智能電視并需要進(jìn)行功能操作時,用戶直接點擊相關(guān)按鍵即可。基于國內(nèi)某品牌電視廠商的LED32EC智能電視機(jī)進(jìn)行功能擴(kuò)展與實驗,經(jīng)實測,局域網(wǎng)內(nèi)時延遠(yuǎn)小于1秒,廣域網(wǎng)場景下的時延受運(yùn)營商網(wǎng)絡(luò)影響,網(wǎng)絡(luò)負(fù)載正常時約為2秒左右。基于NFC的配對綁定操作可在500毫秒時間內(nèi)完成,大大縮短了傳統(tǒng)遙控器的配對綁定時間。
4 結(jié)論
本文論述了基于Android智能手持設(shè)備的智能家居遙控系統(tǒng)的設(shè)計與實現(xiàn)。所研制遙控系統(tǒng)在局域網(wǎng)和廣域網(wǎng)環(huán)境中分別進(jìn)行了實測,功能和綁定、控制時延等指標(biāo)達(dá)到了預(yù)期的設(shè)計要求。所研制遙控系統(tǒng)較傳統(tǒng)的專用遙控器具有節(jié)省材料、支持多功能多類型智能家居設(shè)備遙控、支持廣域網(wǎng)遠(yuǎn)程遙控、安全便捷的初始化綁定等優(yōu)勢,可廣泛應(yīng)用于智能電視、智能空調(diào)等智能家居設(shè)備的遠(yuǎn)程遙控。隨著物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)時代的到來和Android智能手機(jī)的普及,該系統(tǒng)在智能家居領(lǐng)域有著較為廣泛的應(yīng)用前景。