基于XMPP协议的智能家居环境监测系统设计与实现

2016-05-14 21:05尹克新林琳
软件导刊 2016年5期
关键词:智能家居

尹克新 林琳

摘要:从即时通信领域引入XMPP协议解决智能家居系统中通信标准不统一、系统扩展性差的问题。提出基于XMPP协议的系统架构,使用ZigBee无线网络协议连接家庭中的各环境传感器节点,从而实现对家居环境信息的实时采集,数据通过网络保存在支持XMPP协议的服务器上,客户端软件通过XMPP协议获取数据并呈现给用户。实验结果表明,该系统具有实时性强、测量准确、扩展性好、成本低等优点。

关键词:XMPP协议;ZigBee网络;环境监测系统;智能家居

DOIDOI:10.11907/rjdk.1511623

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2016)005-0068-03

0 引言

近年来,智能家居系统逐渐进入普通家庭,给人们生活带来了极大便利[1]。环境监测是智能家居系统中的子系统,可以实时监测环境参数,提供安全健康的生活环境,因而得到了广泛应用[2]。

国内智能家居系统还处在初步发展阶段,智能家居行业逐渐形成,国内各大电器厂家也适时推出了自己的智能家居系统与标准[3]。在国外,自从美国于1984年建造第一座智能建筑以来,美国、澳大利亚、日本以及欧洲等都大力发展智能家居,并先后提出了不同的解决方案,智能家居系统得到广泛发展和应用[4]。

不同厂家生成的或不同品牌的智能家居产品缺乏统一的协议标准,人们很难控制和管理这些异构设备,给日常生活带来了诸多不便。XMPP协议广泛应用于即时通信系统、智能家居系统、物联网通讯系统、文件传输系统、分布式通信系统等领域[5]。受 XMPP 协议在即时通信领域的启示,采用基于XMPP协议的一种抽象的说明性语言 XCITL来描述这些家居设备的基本信息和控制指令,再通过这种语言制定智能家居控制信息的传输标准,最终实现智能家居环境监测系统。

1 系统架构

智能家居环境监测系统主要分为感知层、网络层和应用层3个层次,如图1所示。感知层由温度、湿度、亮度和PM2.5四种传感器节点组成。根据家庭环境情况监测要求,这四种传感器节点按照不同的比例分布在各个房间。其中,客厅和卧室是活动和休息的重要场所,需要把四种类型的传感器节点布置其中。而卫生间只要求布置温度和湿度传感器节点,餐厅只需布置亮度和PM2.5传感器节点。传感器节点将采集到的环境数据信息通过ZigBee无线网络上传到XMPP服务器。

网络层有互联网、无线网络和ZigBee网络3个网络部分组成,实现不同层次的数据信息传送和信息交流。其中,ZigBee网络负责把感知层传感器节点采集到的环境数据信息上传到XMPP服务器,同时用户的各种控制命令也通过ZigBee网络传给传感器节点。互联网和无线网络(4G/wifi)负责终端、智能手机和XMPP服务器之间的通信。

应用层由终端、智能手机和XMPP服务器组成。XMPP服务器主要负责存储传感器节点采集到的家庭环境数据信息,另外也存储终端用户登录系统的用户名、密码等信息。终端和智能手机用户通过互联网、无线网络,以XMPP协议为基础和XMPP服务器进行通信,读取家庭环境数据信息,实时了解和掌握家庭的环境状况。

2 XMPP服务器设计

系统采用基于XMPP协议的Openfile作为服务器。Openfie是基于Java语言开发的,对于XMPP协议有着较为完备的实现和安全性、可扩展性,广泛用于各类即时通信系统和社交平台的基础架构。服务器端主要功能是实现与客户端的交互,包括请求认证和消息处理。

(1)请求认证:客户端与服务器建立通信连接之前,要通过服务器认证操作。服务器端设置有连接请求的监听,一旦监听到客户端请求,就调用信息处理模块,对XML数据流进行处理。如果满足认证条件,就反馈认证结果给客户端,并开启一个新的会话连接链路和客户端进行通信,直到客户端关闭信息流为止;如果不满足认证条件,就将认证失败的结果反馈给客户端[6]。

(2)消息处理:通过认证后,XMPP服务器会根据客户端的JID建立不同的会话,每个会话均由一个独立的线程来管理。为了保证会话效率,会话管理采用线程池的策略。由于即时通讯实时性的要求,服务器要实时监测好友在线状态,只有确认好友在线的情况下,才将信息传送过去。服务器架构如图2所示。

服务器主要由核心模块、服务支持模块、接口模块、数据模块4个模块组成。各模块功能如下[7]:

(1)核心模块。是服务器功能实现的核心部分,由注册、登录、XML解析器和路由4种模块组成。当用户首次使用该系统时,需要填写相应的个人信息进行注册。注册成功后,填写用户名和密码就可以登录该系统。成功登录后,就可以设置系统参数和采集家中环境数据信息。XML解析器负责将服务器端接收到的XML数据格式转换成可以执行的JAVA代码。路由模块负责系统通信链路最优路径选择。

(2)服务模块。由会话管理器和连接管理器两个模块组成。会话管理器负责客户端和服务器端之间的通信认证,JID地址管理、通信流程建立和相应安全机制的实现。连接管理器负责客户端和服务器端之间的连接,管理用户的在线状态、用户列表等信息。

(3)数据模块。由MySQL数据库和数据存储器两个模块组成。由于MySQL数据库是开源的,用户可以下载和使用,不会涉及版权问题,并且功能强、安全性好,所以选择它作为系统数据库。MySQL主要存储从传感器节点采集到家庭环境数据信息。数据存储器负责和MySQL数据库的连接,保存系统通信日志、用户信息等。

(4)接口模块。由插件和组件两个模块组成。用于实现Openfile服务器和其它服务器的连接,相当于网关功能。通过接口模块,本系统上的客户端可以和其它服务器上的客户端相互通信,大大提高了系统的扩展性。

3 客户端

用户终端采用VB语言开发,能够基于XMPP协议进行数据传输。根据任务要求,客户端主要分为三层实现,如图3所示。

连接层主要提供通信链接功能。系统采用TCP套接字方式链接。用户向服务器发起连接请求后,TCP从用户界面模块中获得用户名、密码和服务器地址等信息,然后建立连接。

XMPP层包括XMPP协议功能模块和XML解析模块。XMPP协议功能模块负责管理客户端和服务器之间的通信。XML解析模块负责对从服务器上获得的XMPP信息流进行解释。

应用程序接口层为交互界面提供统一接口调用,包括用户的注册、登录等。功能设置可以对传感器节点的采样周期和节点选择等系统信息进行设置,环境信息显示是指把家庭环境状况信息直观地显示出来,呈现给用户,节点状态分布是传感器节点在家中各个房间的分布情况[8]。

4 实验

为了模拟真实实验环境,实验选择在有人居住的家庭环境中进行。一方面可以验证ZigBee网络部分传感器节点的数据采集和数据收发能力;另一方面,也可以验证节点能否在复杂的环境下工作。实验时间是2015年10月8号下午两点,室内环境温度20摄氏度左右,湿度50%,晴朗天气,亮度显示光线强,由于家中经常打开门和窗通风,PM2.5显示优。实验结果如图4所示。

5 结语

本文设计了一种以XMPP协议为通信标准,实现各部分互联互通的智能家居环境监测系统。在真实环境中验证系统各项功能和指标。系统能够准确测量和采集家居环境的数据信息,并将这数据准确无误地传给服务器,且在客户端显示这些信息,与分析结果一致,达到了预期效果。该系统采用ZigBee无线网络技术构建环家庭环境数据采集系统,省去有线布置的诸多不便,便于节点的删除和添加,具有测量准确 、实时性强 、成本低 、扩展性好等优点。

参考文献:

[1]吴艺娟 ,秦彩云,万米洋.基于ZigBee技术的智能家居环境监测系统设计[J].北京石油化工学院学报,2013,21(1):46-47.

[2]贾飞,夏路易.基于zigBee技术的家庭环境监测系统的设计[J].电脑开发与应用,2008,21(2):55-56.

[3]蔡晓宇.基于ZigBee和Android技术的家庭环境智能监测系统[D].南京:南京师范大学,2012.

[4]张亮.基于ZigBee技术的智能家居环境监测系统[D].武汉:武汉科技大学,2009.

[5]施济瑜,苗放,王华军,等.基于XMPP协议文件传输的研究与实现[J].计算机测量与控制,2009,17(4):732-733.

[6]巩元鹏.基于XMPP协议的智能家居远程控制系统研究设计[D].青岛:中国海洋大学,2012.

[7]周谦,刘志勤,王耀彬,等.基于XMPP的智能小区远程控制系统研究与设计[J].计算机测量与控制,2015,23(2):482-483.

[8]周欣,伦立宝,张庚,等.基于XMPP扩展协议的远程控制系统研制[J].计算机与网络,2014(2):67:68.

(责任编辑:陈福时)

猜你喜欢
智能家居
基于PLC的智能家居控制系统研究
NeST智能家居控制系统的设计与应用
基于wifi的智能家居设计
基于Zigbee的无线通信技术在智能家居中的应用
基于STM32的智能家居控制系统设计
智能家居发展或将实现弯道超车
智能家居未来感初体验
基于ARM cortexTM-A8与Android的智能家居系统
基于LD3320的智能家居控制