李 琪 ,秦会斌 ,,杨永舒 ,张 雄 ,屈力扬 ,3
(1.杭州电子科技大学 电子信息学院 浙江 杭州 310018;2.滁州市质监局 安徽 滁州 239000;3.中电科技集团第52研究所 浙江 杭州 310012)
智能家居是以住宅为平台,利用先进的计算机技术、无线传感网络技术、自动控制技术、网络通信技术,将家居生活有关设施整合,在智能家居控制系统的管理下,最终实现方便、舒适、安全的家居环境,并达到节能环保的目的。随着智能家居的不断发展,如何实现用户随时随地远程控制家居,并实时了解家中信息,成为目前最迫切的需求。因此,设计出一款人性化的智能家居控制终端则成为主流趋势。
在智能家居的推广应用中,设计出功能齐全、操作简单的控制终端成为成败的关键。在传统的智能家居控制方式中有很多方案,如本地键盘控制、Web控制、电话控制、PC控制等[1]。基于本地键盘控制装置,需要对控制终端进行硬件和软件进行设计,过程复杂,对于设备的后期开发、维护成本较高,且用户只能在家里控制,违背设计初衷“智能化”;基于Web页面控制的智能家居是利用网络信号,用浏览器建立客户端与家具设备之间的连接,缺点是在信号不好的情况下,Web页面刷新速度慢,工作效率低,无法处理大批量的数据;基于电话控制的智能家居通常功能很单一,无法对家中所有的设备进行控制,更不具备对家中环境实时监测的功能;基于家庭或办公电脑作为控制终端,是通过电脑对家居设备进行本地或远程控制,其缺点是携带不方便,移动性差,用户体验效果不好。
对于上述方案中存在的问题,设计出以Android智能手机作为家居控制终端,通过WIFI接入ARM服务器,底层利用Zigbee无线技术将被控终端组建成一个内部无线局域网,最终实现智能家居系统远程控制。
整个系统主要由3个部分组成:远程控制终端,ARM服务器和底层家电控制相关设备[2]。智能手机或者平板控制终端,安装好控制程序以后,就可以通过触摸屏和用户进行交互。整个系统以ARM服务器为中心,客户端通过ARM服务器与底层设备进行双向通信。一方面,智能手机通过wifi或者其他网络连接服务器发送相应的指令,服务器将收到的控制指令转发给底层设备,实现手机终端和家用电器的交互;另一方面,Zigbee无线节点实时采集环境信息,并上传到服务器,服务器对收到的数据进行处理后,将结果上传到控制终端,并将数据显示在终端上。此种交互,不仅可以让住户实时了解居住环境,而且当家里发生火灾、煤气泄露等意外事故或者家里出现小偷等情况时,可以通过Android终端显示的传感器的值及时了解家中情况,并作出相应的处理。系统设计构架如图1所示。
图1 系统总体构架图Fig.1 Structure diagram of the smart home control system
在网络编程方面,Android提供了很好的支持。在智能家居的应用原则中,最常用的网络通信协议是TCP和UDP协议。针对TCP传输,Android提供Socket类和ServerSocket类。针对UDP传输,Android提供DatagramSocket类和Datagram-Package类。TCP协议是可靠的面向连接的协议,提供可信赖的字节流服务。而UDP是无连接的、不可靠的协议,只提供“尽力而为”的数据报服务。在此我们对可靠性要求比较高,因此采取双向通信的TCP协议[3]。其中Socket通信如图2所示。
图2 Socket通信Fig.2 Socket communication
由于智能家居控制系统信息量小,时期短,无需较大的数据库,所以本应用程序采用Android平台内置的SQLite数据库。优点是可移植性好、容易使用、很小、高效且可靠性高。
对于SQLite的操作,Android提供了 SQLiteDatabase和SQLiteOpenHelper两个类。SQLiteOpenHelper类提供两个方法onCreate()和onUpgrade(),对SQLite数据库进行创建和更新,提供 getWritableDatabase()或 getReadableDatabase()方法来获得数据库对象。SQLiteDatabase类则提供一些方法,可以创建、删除、执行SQL指令、完成常规的数据库管理任务,如execSQL()可以执行SQL语句,insert()可以插入表项,update()可以更新表项等[4]。
数据库主要存储如下信息:用户注册信息,家用电器设备类型,各个设备的信息状态(开关、温度、湿度)等。
系统界面设计主要包括注册登陆界面和功能区界面。功能区界面按功能划分有家电控制、环境监测、情景模式、设置4个部分,主界面如图3所示。
图3 主控制界面Fig.3 The main control screen
1)家电控制选择相应的按钮对其进行可视化操作,如电灯、窗帘、空调、电视等;其中电视界面如下图4所示。窗帘部分界面右侧部分采用大量图片叠加,调节过程中实现其动态效果,如下图5所示。2)环境监测主要负责对环境信息的实时采集并显示在终端上,用户可及时掌握居住环境质量如何;3)情景模式功能提供白天模式、夜晚模式、离家模式、回家模式、会客模式等多种选择,实现一键操控所有家居设备;4)设置功能分背景、语言、字体颜色、IP和端口四个功能。背景设置部分,此应用程序内置大量背景图,为用户提供多样化选择;语言支持英文操作,方便软件的推广;字体颜色方面提供常见颜色资源,更加人性化;IP和端口设置,在无需改变Android安装包的情况下,自己输入新的系统服务器IP和端口号即可实现远程控制。如图6所示。
图4 电视控制界面Fig.4 TV control interface
ARM服务器在整个系统中作为一个桥梁,使得客户端与底层设备进行交互。主要作用为:与客户端实现控制指令的传输以及数据的传递;通过串口与底层zigbee协调器进行交互。
图5 窗帘控制界面Fig.5 The curtain control interface
图6 设置功能Fig.6 Setting function
基于嵌入式Linux操作系统提供免费的源码开放且内核简单,性能高、稳定,具有实时性、可裁剪性,价格便宜,支持多体系结构等优点,本文选定该操作系统作为软件系统。
硬件部分采用 ARM9系列 Mini2440开发板,Samsung S3C2440A作为主处理器,外部扩展了 NAND Flash、DDR RAM、JTAG、按键等基本的功能外设和调试工具。控制系统软件在Red Hat 4.0操作平台上进行设计,采用C/S(客户/服务器)模式设计。通信过程由Android客户端发送控制指令,通过服务器传送至Zigbee网络;而Zigbee网络接收到底层传感器设备反馈的信息后,向服务器发送数据,并最终在客户终端显示。
Zigbee网络层支持3种网络拓扑结构:星形结构(star)、簇状结构(Cluster tree)和网状结构(Mesh)。Zigbee 典型的传输数据类型有周期性的传感器数据采集、间歇性的家庭自动化控制数据,网络中数据传输量不大,因此简单的星形网络就可以保证数据通信[5]。
星形拓扑结构核心是网络协调器和网络终端节点,系统结构如下图7所示。
协调器主要用户建立无线网络,分配Zigbee终端节点的网络地址,向终端节点发送控制指令和接受来自子节点的环境信息,并将收到的数据通过服务器上传到终端并实时显示。
各终端节点用户采集检测信息并发送给网络协调器,并接受来客户端发来的指令实现家具的智能化控制。此星形结构,终端与终端之间不能进行通信。
图7 星形网络图Fig.7 Star network diagram
本智能家居控制系统经过反复调试后,达到预期的效果,且系统运行稳定。具体实现功能如下:
1)灯光控制:实现各个房间灯光的开关以及亮度的调节,调节范围从0-100%可调。
2)窗帘控制:实现窗帘动态调节,用户可根据控制界面实时查看当前窗帘开关程度。
3)空调控制:空调开关,调节风速,模式转换等,实现了基本调节功能。
4)电视控制:模拟电视遥控如开关、选台、调节音量等。
5)环境监测:实时显示家中环境信息,当监测到异常信息时用户能够有效处理。
本文简要的介绍了基于Android平台的智能家居控制系统的设计和关键技术。通过智能手机接入家庭内部网络即可实现远程控制家居,实时监测家居内部环境信息,为人们更加智能化和网络化的家居生活。该系统既可用于普通的住宅家庭用户,也可用于酒店等子系统,可扩展性好[6]。与传统的基于Internet的远程家电控制系统相比,基于Android手机的控制系统有着巨大的优势和前景。
[1]ZHANG Zhong-shan,HUANG Fu-wei,LONG Ke-ping,et al.On the designing principles and optimization approaches of bio-inspired self-organized network:a survey[J].Science China(Information Sciences),2013,7:5-32.
[2]高闯,李海平,王国栋,等.基于android平台的智能家居手机客户端软件设计[J].电子测试,2013(12):71-72.GAO Chuang,LI Hai-ping,WANG Guo-dong,et al.Intelligent home furnishing mobile phone client software design based on Android platform[J].Electronic Test,2013(12):71-72.
[3]徐峰.基于Android平台的智能家居客户端系统的设计与实现[D].北京:北京邮电大学,2012.
[4]王剑龙.基于Android的智能家居控制系统的研究与实现[D].长春:吉林大学,2013.
[5]尚丽丽.基于ZigBee的智能家居系统设计[D].大连:大连理工大学,2010.
[6]宋威,黄进,尹航,等.基于WIFI物联网的家电智能控制系统信息控制端的研究[J].信息通信,2013(1):199-200.SONG Wei,HUANG Jin,YI Hang,et al.The research of WIFI Internet of Things appliances intelligent control system control terminal[J].Information and Communications,2013(1):199-200.