News Update
:论述基于安卓(Android)智能手持设备的智能遥控系统的设计与实现。实现了对智能电视的遥控。提出并实现了新颖的基于近场通信(Near Field Communication, NFC)和二维码的智能遥控器与受控设备之间的初始化绑定配对方法,以实现安全便捷的通信连接。该设计可移植到智能空调等智能家居设备中,以实现多功能的智能家居设备遥控。
摘要:论述基于安卓(Android)智能手持设备的智能遥控系统的设计与实现。实现了对智能电视的遥控。提出并实现了新颖的基于近场通信(Near Field Communication, NFC)和二维码的智能遥控器与受控设备之间的初始化绑定配对方法,以实现安全便捷的通信连接。该设计可移植到智能空调等智能家居设备中,以实现多功能的智能家居设备遥控。
随着物联网技术的发展,智能家居设备、智能手机、平板电脑、个人电脑等可由无线局域网(Wireless-Fidelity, WiFi)等无线通信技术彼此互联。在此基础上,可以通过在智能手机或平板电脑上运行专门的应用(Application, APP)软件远程控制智能电视、空调、个人电脑等智能家居设备[1-2],这时智能手机相当于一个多功能智能遥控器,且较传统遥控器更加简单易用、通用性强、节省了传统遥控器的材料消耗。本文设计实现了基于安卓(Android)智能手机的智能遥控系统,实现了对智能电视的遥控,提出并实现了新颖的基于近场通信[3]结合二维码的智能遥控器与受控设备之间的初始化绑定配对方法,以实现安全便捷的通信连接,且适用局域网和广域网场景。该设计可移植到其他类型的智能家居设备中(如智能空调等),以实现对不同类型智能家居设备的统一遥控。
如图1,整套智能遥控器系统采用客户端/服务器(Client/Server, C/S)架构。作为遥控器本身,Android智能手机上运行控制端软件,负责向受控端发送控制指令。Android智能电视上运行受控端软件,负责接收、解码、执行来自遥控器的远程控制指令。控制端与受控端的连接是基于套接字(Socket)技术[4],底层基于互联网协议(Internet Protocol, IP)和WiFi无线连接技术。首次使用时,为了避免非法访问和追求更高的安全性,需确保控制端、受控端在同一局域网中,并通过专门设计的基于NFC/二维码的绑定技术建立通信连接。建立绑定关系后,受控端和遥控器端将自己的介质访问控制(Media Access Control, MAC)地址、IP地址、设备类型(遥控器或受控设备)等信息发送至云端服务器,云端服务器负责维护遥控器与受控设备之间的绑定关系,并在广域网场景中,转发来自遥控器且目的地为受控设备的控制指令包。在局域网场景中,无需云端参与,遥控器与受控设备可直接通过WiFi技术彼此发包通信。
智能电视带有集成TCP/IP和Web协议的嵌入式WiFi模块。上电后,嵌入式WiFi模块自动进入工作状态并处于热点模式。该热点的名称、接入密码以及主页IP地址信息事先需告知用户。用户首次使用时需据此配置手机WiFi参数以建立底层通信连接。非首次使用时,用户可直接通过手机的WiFi联网功能和浏览器以Web网页方式访问、配置嵌入式WiFi模块。若用户配置打开电视机的选项为开启状态,则嵌入式WiFi模块通过串口向电视主板发送唤醒信号,进而启动智能电视开机。关机时,用户会通过手机上基于Socket客户端通信协议的遥控器软件发送关机指令,智能电视后台Socket服务器端软件收到并判断出是关机指令后,进行关机操作。开机后,手机与智能电视通过WiFi密码接入用户私有的家庭无线局域网中,避免了非法用户对智能电视的访问。另外,传统红外/蓝牙遥控器与电视在首次使用时,需要进行对码配对操作,之后双方建立起封闭的控制与被控关系。如果不进行该操作,遥控器发出的指令可能会被多个受控设备接收,进而可能触发对这些非目标设备的误控制。因此电视开机后需要进行智能手机与智能电视之间的配对,即Socket IP地址与端口的绑定初始化操作,否则受控设备无法接收来自遥控器的控制指令。传统的对码操作需要将遥控器对准电视机的红外/蓝牙接收区域,进而按下遥控器上的特殊按键,双方通过短距离无线通信建立起配对关系。该过程用时较长,一般需5秒左右。本文提出并实现了基于NFC技术的安全快捷的配对方案,整个配对过程只需毫秒级时间即可完成,大大提高了用户体验。同时,考虑到摄像头已成为智能手机标配,而现阶段不是每部智能手机都支持NFC,本文为此开发了基于摄像头二维码扫描的配对方案,以在无法使用NFC技术的场景下进行手机与电视间的配对操作。
如图2,智能电视运行Android操作系统,电视启动后受控端软件以Service软件形式在后台运行[4-5]。该软件启动后,首先初始化Socket套接字。若为首次使用,将自身的IP地址、MAC地址和端口信息保存到NFC Tag(标签)[6-7]中或在屏幕上生成二维码,之后在预先指定的端口。