论文部分内容阅读
摘要:论述基于安卓(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智能手机的普及,该系统在智能家居领域有着较为广泛的应用前景。
关键词:智能家居;近场通信;套接字;安卓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智能手机的普及,该系统在智能家居领域有着较为广泛的应用前景。