基于RESTful Web Services的智能家居管理系统设计与实现*

2014-12-31 12:50李志华谷全琦唐建飞赵继军
电信科学 2014年11期
关键词:时延智能家居客户端

李志华,谷全琦,唐建飞,薛 亮,赵继军

(河北工程大学信息与电气工程学院 邯郸 056038)

1 引言

随着无线通信技术的发展,智能家居系统已逐渐由传统有线连接方式转向采用诸如Wi-Fi、ZigBee等无线通信技术构建家庭无线网络,实现了家电互联和环境感知[1,2]。与此同时,物联网(internet of things)技术的兴起[3],使得大量具有计算能力、网络通信能力的新型物理设备涌现,如智能电视、智能手机、智能灯泡等,参考文献[4,5]将这些物理设备称之为智能物体。由于智能物体所采用的网络协议可能会有所不同,基于物联网的智能家居能够解决家庭异构网络间的互联问题[6,7]。

目前的智能家居系统,在用户管理层面一般通过动态或静态的Web网页为用户提供远程家电管理和家庭环境信息访问[8]。然而,随着移动智能终端的普及以及大量基于Web的移动客户端的出现,在移动智能终端上使用Web网页管理家庭系统已无法满足移动用户的需求。鉴于移动客户端不具备Web网页的跨平台能力,因此能够保证不同平台应用服务的互操作性的Web Services技术在移动客户端应用领域得到了广泛关注。该技术是一种支持网络间M2M(machine to machine)互操作的软件平台,将家庭内智能物体抽象为一种可重用的Web Services服务将有利于家庭管理客户端的跨平台操作。当前的Web Services主要有两种范式,即RESTful Web Services(RESTful WS)和传统Web Services。其中RESTful WS为符合表述性状态转移(REpresentationalstate transfer,REST)软件设计风格制约的Web Services,相对于传统Web Services,RESTful WS更注重使用统一的无状态操作管理Web资源,且具有更低的复杂度、更松散的架构及更高的灵活性[9]。

ZigBee是一种低速率、短距离传输的无线通信协议,以其低功耗、低成本、低速率、高可靠性和自组网等特点,在消费电子控制、森林环境监测以及智能电网等领域获得广泛研究与应用[10~12]。因此,本文采用ZigBee协议构建了具有家电互联和家庭环境监控功能的家庭无线传感器网络(wireless sensor home area network,WSHAN),并在家庭管理层面提出一种基于RESTful WS的智能家居管理系统架构,该系统能够降低系统复杂度,增强系统的可扩展性和跨平台能力,实现用户使用移动智能终端获取家庭内智能物体运行的状态信息,如温度、湿度、家电的运行状态等,同时能够对这些智能物体进行实时控制。此外,鉴于RESTful WS的灵活性与跨平台等特点,设计了基于Android的智能家居客户端,提升了家庭管理的用户体验。最后对系统的分组丢失率和请求响应时延进行了测试。

2 系统设计

本文所设计的智能家居管理系统由WSHAN、服务器和客户端3部分组成,如图1所示。

2.1 WSHAN的设计

WSHAN由Sink节点、感知节点和执行节点组成,用于实现家庭内智能物体的网络连接、环境监控与家电控制等功能,并能够通过Sink节点完成与服务器的数据交换。鉴于当前家居中的家电设备很少具备联网能力,本文通过将基于ZigBee协议的无线传感器网络节点嵌入到普通家电中使普通家电具有通信、计算与传感和执行等能力[5]。

WSHAN中的Sink节点用于建立和维护网络,并完成WSHAN与服务器之间的信息交互;执行节点通过在ZigBee节点上外接专用的家电控制电路实现对家电的智能控制;感知节点通过环境传感器实现对家庭光照强度、烟雾浓度以及温度、湿度等信息的无线采集。每个节点在加入WSHAN后将通过Sink节点向服务器注册智能物体的属性与控制方法以实现服务器识别和管理WSHAN内各个智能物体。系统工作时,感知节点将采集的数据上传至Sink节点,由Sink节点将数据通过串口转发至服务器。当Sink节点自串口接收到服务器的家电控制请求时,则将该请求转发至执行节点完成对家电的控制。

2.2 服务器端软件设计

图1 系统架构

服务器处于整个系统的中间部位,用于实现远程客户端和WSHAN之间的信息交互与数据存储服务,并为访问服务器的设备提供RESTful WS接口。RESTful WS是面向资源架构的Web Services,它为每个Web资源分配统一资源标识符(universal resource identifier,URI),并使用统一的无状态操作来管理URI所指向的Web资源,如使用HTTP的PUT、DELETE、POST和GET等操作实现对Web资源的增、删、改和查等功能。此外,RESTful WS中的每个Web资源都具有多重表述格式,如XML(extensible markup language)和JSON(JavaScript object notation)等,能够方便各种设备解析Web资源。该架构允许在家庭中新增智能物体时,系统只需在保留原有服务的基础上对新增的智能物体编写相应的服务接口即可重新部署,进而降低系统开发与维护的难度。

2.3 客户端软件设计

智能家居管理客户端作为用户与智能家居系统交互的最直接工具,是提升用户体验的关键环节。所设计的客户端能够通过Internet访问服务器端的RESTful WS,并根据用户请求实时显示家庭当前的环境信息、家电运行状态以及调节家电工作模式,以便客户端对智能物体进行访问与控制。通常情况下,传统的智能家居在系统升级时(如对服务器端RESTful WS接口升级)客户端需要用户手动更新,进而导致很多不确定性。当前移动智能终端普遍内置的应用商店,显著加快了应用软件的更新速度,并进一步降低系统升级与维护的难度,使得终端用户可以最快的速度获得开发人员对系统的改进。

3 系统实现

设计与实现的系统原型如图2所示。该系统由1台PC服务器、1部智能手机、1个Sink节点、1个感知节点、1个执行节点以及1个Wi-Fi路由器组成,如图2(a)所示。其中感知节点、执行节点和Sink节点完成了家庭无线传感器网络WSHAN的构建,实现了家庭环境信息监测以及家电访问与控制;PC服务器上的RESTful WS接口用于实现客户端访问与控制家庭智能物体,完成服务器与家庭智能物体之间的信息交换;基于Android智能手机上的应用能够通过调用RESTful WS接口对智能物体进行访问与控制,进而实现在Android手机上查看家庭的环境信息或控制家电的功能。Wi-Fi路由器负责建立无线局域网以便Android手机能够通过Wi-Fi网络访问PC服务器。

3.1 WSHAN的构建

基于节点发射功耗低、室内障碍物多及网络顽健性等因素的考虑,在Sink节点建立WSHAN时选择了网状拓扑结构。此外,考虑到在家庭网络中较为普及的Wi-Fi与ZigBee均采用2.4 GHz频段,为避免家庭内网络间的干扰,在系统实现时依据参考文献[13]对这两种网络协议所占信道的分析结果,指定 ZigBee选择信道15、16、21、22中之一可有效避开Wi-Fi所占的信道。

采用IAR嵌入式集成开发环境设计与实现了基于CC2530的Sink节点,如图2(b)所示。该节点初始化后选择上述4个信道之一建立网络并进入监听状态。若该节点接收到其他节点入网请求,则允许其加入网络并分配网络地址信息,同时将节点的注册信息通过串口转发至服务器。来自感知节点的环境信息和执行节点的家电状态消息同样会被Sink节点转发至服务器。

感知节点如图2(c)所示,其中传感器模块集成了SHT11温湿度传感器芯片和ISL29028A感光芯片,实现了家庭的温湿度和光照强度采集。感知节点初始化后将扫描周边已存在的网络,当其检测到由Sink节点建立的网络时将申请加入并注册节点自身属性信息,随后即开始周期性地采集环境信息并发送至Sink节点。由于感知节点采用电池供电,因此节点在两个采集周期之间将进入休眠状态以降低能源消耗。

图2 系统原型

执行节点与感知节点类似,其不同之处在于执行节点加入网络后即进入到监测状态并开始等待服务器的控制指令。通过将CC2530微控制器嵌入到普通照明灯具实现了该灯具向智能物体的转换,如图2(d)所示,并在此基础上验证了执行节点的执行功能。在该原型系统中,与灯具相连的执行节点在启动后首先向服务器发送注册信息,并且以操作数1或0表示灯具的打开或关闭操作,从而简化开发人员编写服务器端的访问与控制接口。

3.2 RESTful WS实现

服务器上所部署的RESTful WS选用了免费、开源且增强了对于RESTful WS支持的Spring 4.0框架,并在构建RESTful WS时遵循了模块化设计思想,将服务器划分为3个模块:串口通信模块、数据库模块和RESTful WS模块,如图3所示。其中数据库作为串口与RESTful WS之间的通信桥梁,除完成Sink节点上传信息的存储与读取外,还用于家电控制信息的存储与检索。此外,通过采用数据库缓存和交换控制家电请求的方式实现了串口通信进程和RESTful WS进程的异步通信,进而避免了RESTful WS直接调用串口向Sink节点转发家电控制请求信息,导致系统模块间耦合度的提高的问题。

在实现RESTful WS时,依据其设计规则将系统中现存的家电节点和环境节点分别抽象为整体与个体的关系,并依据节点类型分别为其设置URI,如对所有家电节点分配URI为“/appliances”,对于单个家电节点分配“/appliances/{id}”,且每个URI资源采用标准的HTTP方法进行资源状态的更改,见表1。

3.3 Android客户端软件实现

本文以开源且免费的Android 2.3.3操作系统为平台设计了智能家居管理系统客户端,且在开发过程中引入了Fragment机制和Spring for Android框架。其中Fragment机制使得应用程序能够根据手机和平板的屏幕分辨率自动适配,避免了Android较严重的碎片化现象所导致的需要为不同屏幕分辨率的智能终端做适配的情况发生。Spring for Android专为Android系统设计了相应的REST客户端框架,这两种引用在为用户带来统一的用户体验的同时大大简化了Android的Web应用开发。此外,在具体实现时,作者将网络请求放入了子线程中,并使用Android提供的Handler线程间通信机制进行页面更新,以此避免由于网络时延、不可靠等特点所导致的应用程序通过网络进行页面更新时所出现的页面卡顿或请求失败等现象。

表1 REST标准方法

所实现的智能家居管理系统客户端如图4和图5所示。其中图4为环境信息列表,用于显示家庭内各个环境采集节点所采集的最新环境数据;图5为家电管理界面,负责显示和控制家电状态。

图5 家电管理界面

4 系统测试

为了验证所开发原型系统的性能,本文在实验室环境下对其节点分组丢失率及请求响应时延进行了测试。

4.1 分组丢失率测试

家庭无线传感器网络中节点传输数据的稳定性对于智能家居系统的可靠性和用户体验起着关键作用。如果感知节点和执行节点的分组丢失率过高,将会导致所采集环境数据不够实时,家电无法及时响应用户控制请求等问题,这些因素最终将影响整个智能家居系统的用户体验。

针对WSHAN内的节点的分组丢失率以及系统层面的分组丢失率进行了测试。在测试过程中通过不断增加感知节点每分钟发送数据分组的次数,逐渐增大Sink节点的接收负担。根据Sink节点收到的数据分组总数计算得出如图6所示的节点分组丢失率。由图6可知,当请求次数小于300次/min时,Sink节点具有较低的分组丢失率。但随着每分钟请求次数的不断增加,节点的分组丢失率逐渐上升。当请求次数从300次/min上升至360次/min时,分组丢失率上升至3%。该测试结果表明,在300次/min的合理请求范围内,本系统能够满足可靠性需求。因此,较为合理的请求次数为每分钟300次以内。

得益于前文提到的使用数据库缓存家电控制请求指令机制,即连接请求缓冲池技术,使得系统能够在不影响系统实时性的条件下,避免系统层面的分组丢失情况发生。并通过Android设备以同样的测试方法对系统层面的分组丢失率进行了测试。测试结果表明,在请求次数为360次/min范围内,请求经过服务器上的数据库缓存后,总能通过Sink节点到达执行节点,系统分组丢失率始终为0,表明系统具有良好的稳定性。

4.2 请求响应时延测试

本节通过测试系统请求响应时延和服务器处理时延评估了系统的实时性。系统响应时延由Android客户端发出控制灯具请求的时间戳与服务器收到执行节点响应的时间戳之差计算得出。通过不断增加请求次数测试系统在高并发请求下的实时性,测试结果如图7所示。由图7可知,系统请求响应时延基本在130 ms上下浮动,服务器处理时延基本在64~76 ms范围浮动,而不随每分钟请求次数的增加而大幅度抖动,该时延稳定性主要得益于服务器端连接请求缓冲池的使用。

图6 分组丢失率测试

图7 请求响应时延

5 结束语

本文所开发的基于RESTful WS的智能家居系统实现了利用Android手机访问与控制家庭智能物体的功能,该系统增强了智能家居管理体系的可扩展能力、跨平台能力和用户体验。此外,性能测试表明本系统具有良好的稳定性和实时性。鉴于RESTful WS技术固有的跨平台特点,本系统中的客户端除在Android系统中应用外,还可灵活地移植到iOS和Windows Phone系统。此外考虑到气候变暖、能源危机等全球化问题的加剧,若在该系统上引入智能家居能源调度算法对家电状态加以合理的调度,将能进一步提高家庭用电效率,减少家庭用电费用,降低社会能源消耗。

1 Erol-Kantarci M,Mouftah H T.Wireless sensor networks for cost-efficient residential energy management in the smart grid.IEEE Transactions on Smart Grid,2011,2(2):314~325

2 Han D M,Lim J H.Design and Implementation of smart home energy management systems based on ZigBee.IEEE Transactions on Consumer Electronics,2010,56(3):1417~1425

3 黄玉兰.物联网标准体系构建与技术实现策略的探究.电信科学,2012,28(4):129~134

4 Schnelle-Walka D,Huber J,Radomski S,et al.Smart objects:third workshop on interacting with smart objects.Proceedings of the Companion Publication of the 19th International Conference on Intelligent User Interfaces,New York,USA,2014:45~46

5 孔俊俊,郭耀,陈向群等.一种基于智能物体的物联网系统及应用开发方法.计算机研究与发展,2013,50(6):1198~1209

6 Hu S,Tang C,Yu R,et al.Connected intelligent home based on the internet of things.IET International Conference on Information and Communications Technologies,Beijing,China,2013:41~45

7 Viani F,Robol F,Polo A,et al.Wireless Architectures for Heterogeneous Sensing in Smart Home Applications:Concepts and Real Implementation.Proceedings of the IEEE,2013,101(11):2381~2396

8 Zhou S,Wu Z,Li J,et al.Realtime energy control approach for smart home energy management system. Electric Power Components and Systems,2014,42(3-4):315~326

9 Zeng D,Guo S,Cheng Z.The Web of things:asurvey.Journal of Communications,2011,6(6):424~438

10 陈志奎,李良.基于ZigBee的智能家庭医保系统.计算机研究与发展,2010(S2):355~360

11 Niyato D,Xiao L,Wang P.Machine-to-machine communications for home energy management system in smartgrid.IEEE Communications Magazine,2011,49(9):318~326

12 Liu Y H,He Y,Li M,et al.Does wireless sensor network scale?a measurement study on greenOrbs.IEEE Transactions on Parallel and Distributed Systems,2011,24(10):1983~1993

13 Thonet G,Allard-Jacquin P,Colle P.ZigBee-Wi-Fi Coexistence.Schneider Eletric White Paper and Test Report,2008

猜你喜欢
时延智能家居客户端
基于PLC的智能家居控制系统研究
如何看待传统媒体新闻客户端的“断舍离”?
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
基于Zigbee的无线通信技术在智能家居中的应用
FRFT在水声信道时延频移联合估计中的应用
关于智能家居真正需求的探讨