基于ZigBee的环境监测系统的设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

ComputerScienceandApplication计算机科学与应用,2016,6(9),515-522PublishedOnlineSeptember2016inHans.://dx.doi.org/10.12677/csa.2016.69064文章引用:高刃.基于ZigBee的环境监测系统的设计与实现[J].计算机科学与应用,2016,6(9):515-522.:Sep.2nd,2016;accepted:Sep.17th,2016;published:Sep.22nd,2016Copyright©2016byauthorandHansPublishersInc.ThisworkislicensedundertheCreativeCommonsAttributionInternationalLicense(CCBY).:theweatherphenomenonasthehazeandmistandPM2.5.Asthehottestwirelesscommunicationtechnology,ZigBee-basedenvironmentalmonitoringsystemisdesignedanddiscussedinthispaper.Fromtheperspectivesoftechnicalresearchandpracticalapplication,itelaboratesthedesignoftheenvironmentalmonitoringonthecost-effectiveChipCC2530,whichimplementsavarietyoffunctionsincludingdatacollection,datatransmissionthroughZigBee,dataprocessingthroughWebServeranddatamonitoringthroughintelligentterminal.KeywordsZigBee,Z-Stack,EnvironmentalMonitoring,InternetofThings,Sensor基于ZigBee的环境监测系统的设计与实现高刃湖北经济学院信息工程学院,湖北武汉收稿日期:2016年9月2日;录用日期:2016年9月17日;发布日期:2016年9月22日摘要随着社会不断的发展,人们对生活质量要求越来越高,特别对人们生存环境的关注,如当前最关注的雾OpenAccess高刃516霾现象和PM2.5。这些加剧人们对居住环境关注。本文结合当今最炙手可热的无线通信技术ZigBee,实现了基于ZigBee技术的环境监测系统。该系统从实际应用的角度出发,使用当前高性价比的CC2530芯片,设计出整套环境监测方案,该方案使用各种传感器采集数据,使用ZigBee节点传输数据,最后通过Web服务器对数据继续处理,并能通过智能终端查看和控制。关键词ZigBee,Z-Stack,环境监测,物联网,传感器1.引言当前,环境问题是一个全球都关注的热门话题,和人们的生活息息相关。无线传感网络是大量静止或者移动的传感器以某种方式构成的无线网络,把其网络监测的区域各种有用的环境信息通过采集、传输和处理,最后对这些信息进行分析应用。本文基于ZigBee技术[1],设计出的无线传感网络能够部署在监测区域,通过无线通信的方式构成了一个多跳自组织网络,监测周围的环境信息,并将信息实时传递到终端。2.基于ZigBee的无线通信技术2.1.ZigBee无线通信协议ZigBee是符合IEEE802.15.4规定的短距离无线通信协议,它的通信参考模型如图1所示。ZigBee协议的底层是遵循IEEE802.15.4标准的物理层和MAC组成,ZigBee联盟[2]在此基础上又增加了网络层和应用层。(1)应用层:ZigBee协议的应用层可以为在同一网络的不同设备之间提供数据传输服务,发现设备并绑定设备。(2)网络层:ZigBee协议中,网络层主要负责网络管理、路由管理、报文以及网络安全管理等任务。(3)MAC层:MAC层主要负责对物理的信道的访问。(4)物理层:物理层主要负责控制无线收发器的激活和关闭,选择信道的频率,发送和接受数据等等[3]。2.2.ZigBee拓扑结构ZigBee无线网络结构可以分为星形、树形和网状[4]。其中全能设备(FFD)在三种网络中承担协调器的作用,管理网络中的其它网络节点。简化设备(RFD)则只是作为普通网络节点,在网络中与RFD或FFD间进行通信。(1)星形拓扑,星形拓扑网络结构的中心节点必须由协调器构成,其它节点则可以说终端设备或路由器,协调器作为整个网络的核心。(2)树形拓扑,典型的ZigBee的树形拓扑网络由协调器、路由器和终端设备组成,不需要每个每一个网络节点都和协调器相连,可通过点节点与协调器之间的路由器的路由功能进行通信。以路由器的方式扩大这个网路的覆盖范围。(3)网状拓扑,网状拓扑较为复杂,但同时设计起来,灵活性高,在整个网络中,路由器作为一个很重要的节点,可以根据需要自动创建并维护网络路径,可以和任何节点之间镜像通信,帮助附近的节点传递数据。2.3.Z-Stack协议栈Z-Stack协议栈的实现方式是采用分层的思想,分为物理层、介质访问控制层、网络层和应用层。本设计采用TI公司推出的Z-Stack协议栈,如图2是用IAR软件打开的Z-Stack协议栈的目录。高刃517Figure1.ZigBeereferencemodelforcommunications图1.ZigBee的通信参考模型Figure2.Z-Stackprotocolstackproject图2.Z-Stack协议栈工程(1)App:应用层目录;(2)HAL:硬件层目录;(3)MAC:MAC层目录;(4)MT:监视测试目录;(5)NWK:网络层目录;(6)OSAL:协议栈的操作系统抽象层;(7)Profile:AF层的目录;(8)Security:安全层的目录;(9)Services:地址处理函数目录;(10)Tools:工程工具的配置目录;(11)ZDO:ZDO目录;(12)ZMac:ZMac目录;(13)ZMain:整个协议栈的主函数目录;(14)Output:输出文件的目录。在Z-Stack协议栈中使用了操作系统的概念,即框架目录中的OSAL层。OSAL采用的是时间片轮转的方法去实现多任务的切换,以此实时处理各种任务。Z-Stack是基于操作系统设计的,以事件机制加时间片轮询的进行工作构建的。Z-Stack协议栈以ZMain目录中main函数入手,可以看出整个main函数首先进行了相关硬件的初始化已经APP应用的初始化,在初始化完成后,就进行时间片轮询,等待事件发生,然后调用相应的处理函数,完成相应的操作。整个Z-Stack协议栈工作流程如图3。首先是进行各项初始化,包括初始化系统时钟、检查芯片的工作电压、初始化并配置相应定时器等等;完成系统初始化后就开始进入操作系统的循环等待事件发生。Z-Stack是基于OS进行运作的,每个事件都有相应的初始化函数和处理事件函数,如开发者会用到的GenericApp_Init(taskID),其中参数taskID是Z-Stack根据其优先级分配的ID号,对应的数值越小,则优先级越高。3.环境监测系统的系统设计整个系统分为四大部分,分别是终端部分、Web服务器部分、无线通信部分和传感器部分。整个系统首先通过传感器部分对传感器进行设置并对数据进行采集;接着在无线通信部分就可以将数据按照一高刃518初始化单板,检查电压,初始化I/O口,初始化相关驱动,初始化网络层开始关闭所有中断初始化OS(包含APP初始化)使能所有中断初始化按键操作系统startOSAL主循环是否有事件调用相应处理函数是否Figure3.Z-Stacksystemflowchart图3.Z-Stack系统工作流程图定网络拓扑路径,从终端节点出发,最终传送到协调器节点,协调器在接到数据后,通过串口将数据上传到PC机;在Web服务器这部分,调用Linux系统下读写串口函数,对协调器上传的数据进行读取,并调用文件读写函数处理数据,存放在本地数据库;在终端这部分,可以对数据进行管理、查询并做出相应的环境预报,同时可以方向发生控制信号对传感器部分进行远程控制[5]。图4是系统的整体方案。硬件模块采用TI公司提供的CC2530。CC2530是用于2.4GHz的IEEE802.15.4ZigBee等技术的SoC解决方案。在建立大范围的网络节点时,为其解决成本。在本设计中,是增强型CC2530单片机为核心,组建具备数据采集、数据通信功能的无线传感网络[6]。3.1.采集节点采集节点硬件模块主要由CC2530和各类传感器(如温度传感器、湿度传感器、烟雾传感器和气压传感器等等)以及电源模块组成,如图5所示。采集节点在网络结构中定位为终端节点,长时间工作在野外环境,具有超低功耗的运行模式,一般采用普通的5号电池就可以在野外工作6~24个月。3.2.路由器节点和协调器节点协调器和路由器模块的硬件基本相同,均是采用CC2530作为整个电路的核心。需要区别的是,协高刃519Figure4.Systemscheme图4.系统整体方案Figure5.Collectionnodes图5.采集节点调器会通过串口将接收到的数据发送给PC机,PC机则通过串口读写软件显示收到的数据。如图6为路由器节点和协调器节点。4.环境监测系统的软件设计4.1.软件模块整个软件部分由底层协议Z-Stack协议栈、Linux系统下Web服务器和手持终端组成,手持终端上运行Android系统[7]。整个系统从终端节点开始,由采集几点上传感器采集数据,通过Z-Stack协议把采集到数据传输到协调器,协调器则通过串口向PC机上传采集数据。在Web服务器上,Linux系统通过读串口数据函数把数据存储在本地,等待用户访问和控制。在Android系统部分,手持终端通过用户模式,登录Linux系统下的Web服务器,获取数据,得到需要采集环境的环境数据。高刃520在使用Z-Stack协议栈API之前,需要进行一些简单的初始化,如图7所示。打开App目录下SampleApp.c文件,找到SampleApp_Init函数,在函数开头加入串口初始化和需要外借温度传感器I/O口初始化。在完成初始化后,在SampleApp.c源文件中找到SampleApp_ProcessEvent函数,加入相应的内容,代码如下。系统通过周期性判断是否有事件发生并处理。当发生事件时,则对时间发生的情况进行解析。当事件为SYS_EVENT_MSG时,可判断事件具体情况为CMD_SERIAL_MSG、KEY_CHANGE、AF_INCOMING_MSG_CMD、ZDO_STATE_CHANGE中的哪一种,并调用相应的函数进行处理。当事件为SAMPLEAPP_SEND_PERIODIC_MSG_EVT时,在这里加入对原始数据的处理。4.2.Web服务器整个服务器部分通过双进程的原理分别进行操作,其中一

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功