基于Zigbee的家庭环境监测系统的设计方案
杨弘平,郑先海
(沈阳工程学院 信息学院,辽宁 沈阳 110136)
摘要:Zigbee技术作为一种近距离、低复杂度、低功耗、低数据率、低成本的无线通信技术,较为有效地弥补了近距离无线通信的一些不足。利用Zigbee终端和Zigbee路由器对环境数据进行采集、传输,通过Zigbee射频前端发送无线信息到Zigbee协调器上,再通过uart传送至ARM模块,ARM模块通过以太网发送至服务器上完成数据传输与存储。在结合了近距离无线通信和以太网通信的基础上,可以使服务器通过XMPP消息向手机客户端推送预警和报警信息,手机客户端也可以手动访问服务器数据。
关键词:Zigbee;arm;XMPP;手机客户端
收稿日期:2015-04-29
作者简介:杨弘平(1965-),男,辽宁鞍山人,副教授,硕士。
DOI:10.13888/j.cnki.jsie(ns).2015.04.013
中图分类号:TP273.5
文献标识码:A
文章编号:1673-1603(2015)04-0355-05
Abstract:Zigbee technology can compensate for some shortcomings of the short distance wireless communication effectively with the advantages such as short-range,low complexity,low power,low data rate and low-cost.The environment data is collected by the Zigbee routers and Zigbee terminal.The information is send via wireless Zigbee RF front-end to the Zigbee coordinator and then the Zigbee coordinator transfers the data to ARM through the uart,and ARM sends the data to the server for data transfer and storage via Ethernet.The server pushes emergency information to mobile client through XMPP and mobile client can also manually access the server data.
近距离无线通信作为无线通信技术领域的一个重要分支,在诸多无线数据传输中的应用也已经越来越广泛了。作为一种新兴的近距离无线通信技术,Zigbee以其低速率、低成本、低功耗和低复杂度的优势引起了人们越来越多的关注,成为当前无线技术研究的热点。
XMPP协议(Extensible Messaging and Presence Protocol可扩展消息处理现场协议)是一种基于XML的协议,目的是为了解决即时通信标准,最早是在Jabber上实现的。它继承了在XML环境中灵活的发展性,使基于XMPP的应用具有超强的可扩展性,并且XML很易穿过防火墙,所以用XMPP构建的应用不易受到防火墙的阻碍。利用XMPP作为通用的传输机制,不同组织内的不同应用都可以进行有效的通信。XMPP通信协议以其自由、开放、公开、易于了解和有多种实现等优势,在消息传输推送中占据一席之地。XMPP信息不仅可以是简单的文本,而且可以携带复杂的数据和各种格式的文件,也就是说,XMPP协议不仅可以用在人与人之间的交流,而且可以实现软件与软件或软件与人之间的交流。目前,支持XMPP协议的有Gtalk、FaceBook IM、Twitter、网易POPO等即时通讯工具,具有非常好的发展前景。
1总体设计
1.1系统结构
系统分为6个部分:Zigbee终端、Zigbee路由器、Zigbee协调器、ARM模块、服务器、安卓手机客户端,其系统结构如图1所示。
1.2系统工作流程
1)Zigbee终端上搭载各种环境监测的传感器,通过IO操作读取传感器上采集的数据,然后按照通信协议将数据封装打包。
图1 系统构成
2)Zigbee终端通过无线发射,经Zigbee路由器中转之后,将数据发送至Zigbee协调器。
3)Zigbee协调器接收到经Zigbee路由器转发的Zigbee终端数据之后,将接收到的数据通过uart发送至ARM模块。
4)ARM模块通过uart读取到Zigbee协调器发送来的数据,按照通信协议将数据解包,然后分析数据。
5)如果数据超过相应的预警值和报警值,ARM模块直接通过XMPP通信协议将数据发送至服务器;如果数据处于正常范围内,ARM模块将数据存储在本地数据库,等待ARM模块定时上传正常的数据至服务器。
6)服务器接收到ARM模块发送来的数据包之后,判断数据包的类型。
7)如果数据包类型为预警或报警类型,服务器立即向用户推送预警或报警信息以提示用户环境状态,并将数据存储在数据库中;如果数据包类型是正常的数据,服务器就将数据直接存储到数据库中,以便用户查看。
2Zigbee终端和Zigbee路由器设计
2.1Zigbee芯片介绍
Zigbee终端采用射频芯片CC2530,该芯片可以使用IAR开发环境。CC2530芯片在单个芯片上整合了Zigbee射频(RF)前端、内存和微控制器,它使用1个8位的MCU,具有64/128/256 kB可编程闪存和8 kB的RAM,还包含模拟数字转换器(ADC)、定时器(Timer)、AES128系统处理器、看门狗定时器(Watchdog Timer)等,并有21个可编程IO管脚。
2.2Zigbee终端
1)硬件部分
Zigbee终端分为3个部分:电源部分、Zigbee芯片及其外围元器件、预留IO管脚。预留的IO管脚用来挂载外部传感器模块,Zigbee芯片及其外围元器件如图2所示。
图2 Zigbee芯片及其外围元器件
由于Zigbee芯片包含射频部分,所以对电源要求比较严格,如图3所示。
2)软件部分
CC2530芯片使用zstack2007协议栈和IAR集成开发环境。Zigbee终端上电后,首先加入网络,然后启动事件定时器,就可以在程序中将访问传感器并读取数据定义为自定义事件,并且将自定义事件设置为循环定时执行,间歇性的访问传感器并读取传感器数据,其工作流程如图4所示。
图3 Zigbee电源原理
图4 Zigbee终端工作流程
2.3Zigbee路由器
Zigbee路由器用来中继转发数据包,不需要挂载传感器,主要分为2个部分:Zigbee芯片及其外围元器件、电源部分。这2个部分与Zigbee终端中的对应部分完全相同。
3Zigbee协调器和ARM模块
3.1Zigbee协调器
Zigbee协调器用于组建Zigbee网络,并接收Zigbee终端通过无线发送来的传感器采集的数据,然后通过uart将采集到的数据发送到ARM模块。Zigbee协调器工作流程如图5所示。
图5 Zigbee协调器工作流程
3.2ARM模块
1)ARM芯片
ARM芯片使用三星S5PV210芯片,又名“蜂鸟”(Hummingbird),是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器,其功能与S5PC110一样。110小封装适用于智能手机,210封装较大,主要用于平板电脑和上网本,苹果的iPad和IPhone4上的A4处理器(三星制造的)就和S5PV210的架构是一样的(只是3D引擎和视频解码部分不同),三星的Galaxy Tab平板电脑上用的也是S5PV210。S5PV210采用了ARM CortexTM-A8内核,ARM V7指令集,主频可达1 GHz,64/32位内部总线结构,32/32 kB的数据/指令一级缓存,512 kB的二级缓存,可以实现2000DMIPS(每s运算2亿条指令集)的高性能运算能力。
2)ARM模块系统配置
ARM模块拥有1 G DDR2、1 G Nandflash、1 G主频,这种高配置完全能够满足运行嵌入式操作系统。
①操作系统
Linux操作系统具有免费、开源、易移植等优势,使其在嵌入式操作系统中占据一席之地。因此,将linux2.6操作系统裁剪、交叉编译之后移植到ARM模块上。
②数据库
由于ARM模块需要存储正常范围内的传感器数据,所以ARM模块内需要有本地数据库。嵌入式数据库有很多种,如sqlite,mysql等,而该系统选用mysql5.6数据库。
3服务器
从ARM模块到服务器,再从服务器到手机客户端,这些过程都使用XMPP通信协议,所以服务器直接使用基于XMPP通信协议的服务,例如androidPN服务器。
androidPN(Android Push Notification)是一个基于XMPP协议的java开源Android Push Notification实现,包含完整的客户端和服务器端。androidPN的安装和使用都非常简单,并可以利用Web进行管理。
在服务器PC机上直接安装androidPN服务,安装完成之后启动androidPN服务,然后为ARM模块和用户创建androidPN用户。这样,ARM模块才能使用用户名通过XMPP通信协议向androidPN服务器发送数据包,而用户可以通过手机客户端输入用户名后登陆androidPN服务,查询并接收服务器向手机客户端发送的预警和报警信息。
4手机客户端
手机客户端为Android版本,已经有基于Android的XMPP通信协议jar包,只需在工程中导入XMPP通信协议jar包,在程序中调用jar中的登陆、消息处理接口,这样就能接收到服务器发送来的预警和报警信息。同时,手机客户端可以通过web service访问服务器中存储的传感器数据。
5结语
在结合了近距离无线通信和以太网通信之后,将两种网络互相融合,提供了低成本、可靠的环境监测、数据传输、实时提醒的解决方案。此外,Zigbee网络在实际应用中具有自修复能力,Zigbee终端、Zigbee路由器因故障或其他原因断开网络之后还可以重新加入到Zigbee网络中来,并且多个Zigbee网络之间的节点(终端、路由)互不干扰。由于环境影响,Zigbee终端与Zigbee路由器以及Zigbee路由器之间传输响应距离有限,可以在Zigbee芯片射频(RF)前端添加射频增益芯片,如CC2591、CC2592芯片。添加射频增益芯片之后,需要对Zigbee协议栈zstack2007做相应的修改,就能将传输响应距离扩大。距离扩大之后,相应的数据包误报率和丢包率将会增大,这就需要综合考虑Zigbee设备节点之间的传输响应距离。
参考文献
[1]郑先海,吕海华,杨弘平.基于AndroidPN技术的Zigbee无线网络的物联网数据采集[J].沈阳工程学院学报:自然科学版,2014,10(4):370-372.
[2]任伟,顾小莉,王丽华.基于ZigBee的低功耗无线温室环境监测系统设计[J].农机化研究,2014(9):103-107.
[3]徐培玲.基于ZigBee无线通信的智能家居系统设计[J].无线互联科技,2013(10):75-76.
Design Scheme of Home Environment Monitoring
System Based on Zigbee
YANG Hong-ping,ZHEN Xian-hai
(College of Information,Shenyang Institute of Engineering,Shenyang 110136,Liaoning Province)
Key words: Zigbee;arm;XMPP;mobile client
(责任编辑张凯校对佟金锴)