



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