基于Android的远程控制系统设计
2016-02-29刘兆坤
刘 秀,李 烨,刘兆坤
(上海理工大学 光电信息与计算机工程学院,上海 200093)
基于Android的远程控制系统设计
刘秀,李烨,刘兆坤
(上海理工大学 光电信息与计算机工程学院,上海200093)
摘要为实现对家庭智能设备的远程控制,文中提出了一种基于Android的远程控制系统。该系统采用Android手机作为控制终端,发送控制指令,经3G网络由集总控制器接收后进行解析,从而达到控制家居环境中各种智能设备的目的。控制系统采用了基于Socket的Java编程,实现了客户端和服务端之间的网络通信。实验证明,该控制系统可远程控制智能家居设备,且定位精确、响应迅速、应用范围广。
关键词远程控制;Android;Socket;3G网络
Remote Control System Based on Android
LIU Xiu,LI Ye,LIU Zhaokun
(School of Optical-Electrical and Computer Engineering,University of Shanghai for
Science and Technology,Shanghai 200093,China)
AbstractAn Android-based remote control system for familial intelligent devices is proposed in this paper.The system uses Android phones as a control terminal to send the control instruction.The instructions are received and analyzed by the lumped controller through 3G network,so as to achieve the control of various intelligent devices for home uses.The control system uses the Java programming based on socket,which realizes the network communication between the client and the server.Experiments show that the control system is capable of remote control of smart home devices with accurate location,fast response and good adaptability.
Keywordsremote control;Android;Socket;3G network
随着计算机网络和数字通信技术[1]的发展,各种网络技术日新月异,利用网络技术远程控制家居设备使居住环境变得更为便捷舒适,已成为新的研究热点。虽然市场消费观念尚未形成,但随着智能家居产业的进一步推广落实,一旦成功培养出消费者的使用习惯,将具有巨大的潜在消费市场。与此同时,谷歌公司推出的Android平台[2-3]凭借其友好的人机交互界面、丰富的应用程序、开放的源码和低廉的成本,迅速占领了手机、车载导航等移动终端市场。因此,将Android系统同远程控制家居系统[4]相结合,借助移动互联网技术,更好的为生活、社会发展服务。
Android系统以Linux内核为基础[5]。内核层为系统提供基本功能的支持,例如内存与进程的监管、网络通信协议等;第二层为系统运行库层,包括核心库和其他类库,如图像数据库、SQLite数据库;第三层为应用框架层,开发人员可获取Android系统的API权限开发第三方应用。
通过对当前国内现有的远程控制智能家居系统的分析和研究,结合Android系统应用程序的特点,本文设计出一种基于Android操作系统和3G网络的无线远程控制系统[6],以Android设备作为控制端,利用大范围覆盖的3G网络作为通信网络,对家居设施集总控制器进行控制。通过有线网络或WiFi、ZigBee等无线网络[7],集总控制器可对空调、音响、衣架等智能家居设施进行操作。
1系统总体设计与实现
1.1 无线控制系统框架
如图1所示,无线控制系统由控制端与服务端两个核心部分组成。控制端在系统中处于主控地位,负责所有控制信令的生成、下发以及接收被控端返回的状态信息,解析反馈信息后,将设备状态显示在人机交互界面上便于用户及时了解当前命令的执行状况。在系统中处于被控地位的服务端,主要负责接收控制端信令,解析出具体的控制命令及参数后,调用系统底层接口与智能设备进行通信,对设备的状态进行调控并将命令执行状态反馈给控制端。控制端和服务端使用3G网络进行信息传递,为确保在传递过程中信息的安全性,控制信令及设备反馈的状态信令等均由代码编号代替,控制端及服务端设置相同的代码编号库用于信令的编码与解析。
1.2 控制端
如图1所示,控制端由多线程通信模块、控制与状态分析模块以及人机交互模块组成。多线程通信模块通过系统底层API与服务端对等模块进行通信,发送参数信息给服务端,并接收设备反馈的状态信息。
控制与状态分析模块将用户指令信息解析转化为代码编号并对服务端传递来的设备状态参数进行分析,对比内置最佳参数值后提示用户进行优化操作。
人机交互模块是控制系统与用户之间的枢纽,以Android系统自带控件为基本元素来实现[8]。用户发送控制指令和设备状态信息都将呈现在人机交互界面上。
图1 系统功能模块
1.3 服务端
服务端由多线程通信模块、集总信息处理模块以及被控的家居设备构成。多线程通信模块用于接收控制端发送的控制信令并将设备状态信息回馈给客户端。集总信息处理模块将接收到的控制策略文件进行解析,并将解析出来的控制命令通过家居网络对家居智能设备进行控制。同时,集总信息处理模块通过调用系统底层API与被控家居设备通信,获取传感器采集的环境信息,保存后调用系统接口将设备状态反馈给控制端,通知用户本次命令执行情况。信令传输如图2所示(数字序号表示信令传递先后顺序,箭头表示传递方向)。
图2 系统信令传输图
2无线控制系统实现
系统利用多线程通信模块在控制端与服务端之间传递控制策略及设备状态信息,如图1所示。多线程[9]可在单个软件中同时执行多个不同的线程来完成一个相同或多个不同的任务。隶属于同一类文件的多个子线程之间可共享内存空间和系统提供的资源,这个特性使多线程运行时能够充分利用计算机资源,减少用户响应时间。但线程之间有主次之分,当应用程序创建一个新进程,系统会自动创建相应的主线程(UI线程)。UI线程管理应用程序的窗口及界面数据更新,系统运行时UI主线程负责创建、显示和更新系统控件。整个系统都是基于Socket的Java编程[10]实现的,因此,采用集成系统线程类和执行对象接口两种方法来实现线程的创建和开启。Socket是互联网上的两个节点,借助于双向连接模式实现数据传送和接收。一个完整的Socket通常由本地IP、远程IP、通信协议、本地端口和远程端口5个元素唯一确定。本系统控制端与被控端之间的通信基于TCP/IP通信协议[11]。通信结构流程如图3所示。
图3 系统通信结构流程
一般而言通信流程分为4步:(1)创建Socket;(2)创建输入输出流;(3)按照协议对Socket进行读/写操作;(4)关闭Socket。如图3所示,控制端与被控端之间报文传递过程,报文从控制端发出,通过套接字通信;按照TCP/IP协议将报文写入,由通信通道将报文传到被控端,再由相应的协议解析报文,信令就传递过去了。
3系统的仿真测试
本系统基于Android系统4.0版本开发,可在Android 4.x平台的终端设备上运行,且具备足够的导航和控制键并带有屏幕显示区。系统仿真测试在一台Android模拟器与一台Android手机之间完成,系统控制端安装在模拟器上运行,而被控端使用Android设备作为集总控制器。主要测试按照如图4所示进行:先检测通信模块是否正常工作;然后根据手机上的人机互动界面显示的当前设备状态后,下发新的状态更改命令;最后,观察设备状态是否成功更改。
图4 测试流程图
仿真开始,用户通过Android手机上的人机交互界面得到设备初始状态,如图5~图6所示,网络通信处于关闭状态,空调、音响均处于关闭状态,衣架处于收回状态。在控制端界面上将通信状态开启,设置空调启动温度为23 ℃,设置音响音量为50%,衣架状态选择衣架外伸,如图7所示。
图5 控制端设备初始化界面
图6 被控端设备初始化界面
图7 控制端命令执行提示界面
当控制命令执行完成,服务端会反馈当前家居设备运行状态显示在控制端的人机交互界面上,如图8所示,当前通信已处于连接状态,空调设置了23 ℃,声音达到最大音量的50%,达到了用户要求。
图8 被控端命令执行提示界面
4结束语
通过反复的测试,远程控制系统上的控制端与服务器端能够建立快速、稳定的连接,服务端能够对控制端的各种操作请求做出正确及时的响应。系统在运行时用简单的指令代码节省了网络资源,此外,本系统还具有低成本、低功耗、扩展性好、远程数据传输安全等特点。
参考文献
[1]江燕良.基于Android智能终端的远程控制系统[J].电子技术应用,2012,38(8):136-139.
[2]Enck W,Ongtang M,McDaniel P D.U1nderstanding android security[J].IEEE Security & Privacy,2009,7(1):50-57.
[3]罗震.Android 平台环境下应用程序架构的设计与实现[D].武汉:华中科技大学,2009.
[4]耿东久,索岳,陈渝.基于 Android 手机的远程访问和控制系统[J].计算机应用,2011,31(2):559-561.
[5]郭宏志.Android 应用开发详解[M].北京:电子工业出版社,2010.
[6]赵恩涛.基于3G技术的应用商店形态研究[D].北京:北京邮电大学,2010.
[7]Royer E M,Toh C K.A review of current routing protocols for ad hoc mobile wireless networks[J].IEEE Transactions on Personal Communications,1999,6(2):46-55.
[8]潘骁.基于Android平台的企业通讯录管理系统研究与设计[D].厦门:厦门大学,2012.
[9]许勇,郭长国.实时线程库研究与实现[J].计算机工程与应用,2002,38(13):136-137.
[10]回健永.基于Java语言的多线程机制的实现[J].天津职业院校联合学报,2011,13(8):58-61.
[11]汪玉美,刘萍,李云,等.基于Web Services的木马通信模型研究[J].计算机工程与设计,2010(19):4182-4185.
作者简介:刘秀(1991—),女,硕士研究生。研究方向:云计算。李烨(1974—),男,博士,高级工程师。研究方向:信息融合等。
收稿日期:2015- 06- 28
中图分类号TN929.53;TP273
文献标识码A
文章编号1007-7820(2016)01-114-04
doi:10.16180/j.cnki.issn1007-7820.2016.01.031