基于ZigBee的温湿度测量.doc

上传人:wj 文档编号:2504626 上传时间:2023-05-03 格式:DOC 页数:35 大小:3.72MB
下载 相关 举报
基于ZigBee的温湿度测量.doc_第1页
第1页 / 共35页
基于ZigBee的温湿度测量.doc_第2页
第2页 / 共35页
基于ZigBee的温湿度测量.doc_第3页
第3页 / 共35页
基于ZigBee的温湿度测量.doc_第4页
第4页 / 共35页
基于ZigBee的温湿度测量.doc_第5页
第5页 / 共35页
基于ZigBee的温湿度测量.doc_第6页
第6页 / 共35页
基于ZigBee的温湿度测量.doc_第7页
第7页 / 共35页
基于ZigBee的温湿度测量.doc_第8页
第8页 / 共35页
基于ZigBee的温湿度测量.doc_第9页
第9页 / 共35页
基于ZigBee的温湿度测量.doc_第10页
第10页 / 共35页
基于ZigBee的温湿度测量.doc_第11页
第11页 / 共35页
基于ZigBee的温湿度测量.doc_第12页
第12页 / 共35页
基于ZigBee的温湿度测量.doc_第13页
第13页 / 共35页
基于ZigBee的温湿度测量.doc_第14页
第14页 / 共35页
基于ZigBee的温湿度测量.doc_第15页
第15页 / 共35页
基于ZigBee的温湿度测量.doc_第16页
第16页 / 共35页
基于ZigBee的温湿度测量.doc_第17页
第17页 / 共35页
基于ZigBee的温湿度测量.doc_第18页
第18页 / 共35页
基于ZigBee的温湿度测量.doc_第19页
第19页 / 共35页
基于ZigBee的温湿度测量.doc_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于ZigBee的温湿度测量.doc

《基于ZigBee的温湿度测量.doc》由会员分享,可在线阅读,更多相关《基于ZigBee的温湿度测量.doc(35页珍藏版)》请在冰点文库上搜索。

基于ZigBee的温湿度测量.doc

《无线传感器网络原理与应用》项目设计

项目课题:

基于Zigbee的温湿度测量

院系:

专业:

项目经理:

学号:

副经理:

学号:

项目成员:

学号:

项目成员:

学号:

项目成员:

学号:

项目成员

学号:

项目成员

学号:

项目成员

学号:

2014年12月

目录

摘要 3

Abstract 5

一.无线传感器网络 7

1.1无线传感器网络 7

1.2无线传感器网络应用现状 8

1.3无线传感器网络未来展望 8

二.Zigbee技术 9

三.Zigbee协议介绍 9

3.1Zigbee协议栈结构 9

3.2Zigbee网络拓扑结构 11

3.3Z-Stack协议栈介绍 12

3.3.1网络寻址 12

3.3.2绑定 14

3.3.3路由协议 15

3.3.4消息发送函数 15

3.3.5网络的组建过程 16

3.3.6消息接收函数 16

3.4本章小结 17

四.系统的整体介绍 17

五.系统硬件介绍 18

5.1主要硬件简介 18

5.2温湿度传感器模块电路原理图 20

5.3数据汇聚模块(协调器) 22

六.软件设计实现 22

6.1上位机(PC机)监控界面 23

6.2模块的软件设计 23

6.2.1数据汇聚模块(协调器)的软件设计 26

6.2.2温湿度传感器模块(终端节点)的软件设计 30

6.3本章小结 33

七.总结 33

7.1总结 33

7.2展望 34

参考文献 35

基于Zigbee的温湿度测量

摘要

随着生产技术的发展,温湿度数据检测技术广泛应用于工业远程控制系统,并逐步显示出远程和网络的特性。

传统的温湿度采集系统,主要方式是有线连接节点,此方法的特点是布局复杂和可扩展性差。

事实上,在某些领域有线连接方式甚至不能应用。

因此,最理想的方法是采用无线连接收集和传送数据。

作为新兴的短距离,低功耗低成本的无线通信技术,zigbee已广泛应用于工业控制,消费性电子,家电自动化,医疗监控等领域。

本文在对无线传感器及其网络协议技术分析的基础上,设计出一种基于zigbee为基础的无线温湿度采集系统。

用基于zigbee网络的无线方式通过温湿度测量节点收集温湿度数据。

通过串口通信线路连接主要节点和前端电脑。

然后,电脑存储温湿度数据至数据库,以便实现数据的统一管理。

关键词:

Zigbee,无线传感器网络,多点温湿度采集,Z-Stack

Abstract

Withthedevelopmentofproducingtechnology,monitoringtechniquesoftemperaturedataarebeingappliedtoallkindsofindustrialprocesscontrolsystemsandgraduallyshowingthefeatureoffar-distantandnetworking.Inthetraditionaltemperatureacquisitionsystem,themethodtoconnectnodesiswired,thiswaypossessesthecharacteristicofcomplexlayoutandpoorextensibility.Infact,thewiredwayevencannotbeutilizedinsomeapplication.Therefore,theidealwaytocollectandtransmitdataisemployingwirelessconnection.Asakindofemergingshort-distant,low-powerconsumptionandlow-costwirelesscommunicationtechnology,ZigBeehasbewidelyintroducedtoindustrycontrolling,consumerelectronics,applianceautomation,medicalmonitoringandsoon.

InthisPaper,onthebasisofthewirelesssensornetworkProtocolanalysistechnology,,akindoftemperatureacquisitionsystemwhichbasedonZigBeewirelesstransmissiontechnologyisdesignedinthisarticle,thetemperaturedatacollectedthroughthetemperaturemeasuringnodesistransmittedtothemajor-nodebyZigBeenetworkinawirelessmethod,themajor-nodecommunicateswiththeuppercomputerthroughtheserialportline,thereafter,thePCstoresthetemperaturedataintothedatabaseinordertorealizingtheuniformlycontrolofthedata.

Keywords:

Zigbee,wirelesssensornetwork,Multi-NodeTemperatureAcquisition,Z-Stack

一.无线传感器网络

1.1无线传感器网络

无线传感器网络与传统的网络不同,它是以数据为中心的自组织无线网络,网络的节点部署密集,网络拓扑结构动态变化。

无线传感器网络与现有的传感器系统相比,具有以下几个特点:

第一,无线传感器网络节点需要工作在低功耗的状态。

在无线传感器网络中,由于节点体积较小,限制了每个节点的能源是十分有限的,而且受工作环境等因素的影响,更换电源的成本很高,只要电源耗尽,节点的功能就会失效。

当大部分节点能源耗尽退出工作状态时,整个网络也就处于瘫痪状态了。

所以只有减小节点功耗,才能延长网络的寿命。

第二,无线传感器网络具有自组织的特点。

相对与有线网络,无线传感器网络基本不需要人工干预。

通常情况下,各个节点可以相互协作建立它们之间的连接,完成网络的初始化、启动监测任务、网络的故障自我修复等一系列工作。

要实现上述功能,网络必须具备自组织的能力,即各个传感节点能够感知相邻节点工作状态的变化,通过相互通信得知网络拓扑结构的变化,维护网络结构的正常运行,适应网络的动态性。

第三,无线传感器网络节点部署具有分布性。

通过部署大量的传感节点,各个节点对其附近的区域进行监测,全部的节点可以对整个完整区域进行监控。

区域的空间越大,它各个部分的环境信息的差异也会越明显,在这种情况下,局部节点监测到的信息是不能够代表整个区域的情况。

由于传感器节点具有成本较低的优势,我们可以大量部署此类节点在整个监测区域内,使得监测区域的每个角落都可以被覆盖住,这样就可以获得比较准确的整体信息,通过一些相应的数据融合算法,可以宏观把握整个区域的完整信息。

第四,无线传感器网络的数据处理具有分布性。

它是以数据为中心的网络,而不是以通信为中心的。

在无线传感器网络的数据处理过程中,不是把每一个传感节点的数据汇总到中心节点来进行处理的,每个节点都具备数据处理能力,它们将先对数据进行处理,然后再传输到数据中心节点。

这样既减少了网络流量,也降低了功耗,减少了数据的冗余度[1]。

1.2无线传感器网络应用现状

最近几年,由于成本的降低,无线传感器网络已经大规模应用在如下几个领域中:

1)环境监测

由于环境污染问题日益突出,人们对与环境的保护越来越关注,对于环境的监测需求相应增加。

无线传感器网络为环境监测时采集数据提供了便利,并且还可以减少对环境的破坏。

无线传感器网络可以跟踪候鸟和昆虫的迁移,研究环境变化对农作物的影响,监测海洋、大气和土壤的成分等。

2)医疗护理

无线传感器网络也可以应用在医疗研究和护理领域。

英特尔公司推出了无线传感器网络的家庭护理技术。

该系统通过在鞋、家具以家用电器等家用设备中嵌入半导体传感器,帮助老龄人士、阿尔茨海默氏病患者以及残障人士的家庭生活。

3)军事领域

由于无线传感器网络节点造价低廉,可以密集随机的分布在各种恶劣的战场环境中,包括侦察敌情、监控兵力、装备和物资,判断生物化学攻击等多方面用途。

目前无线传感器网络还存在着如下问题:

1)网络内节点的通信问题。

传感器节点在正常通信过程中,信号可能被一些障碍物阻挡而受到影响,怎样提高传感器节点的穿透性是亟待解决的问题。

2)延长传感器网络的使用寿命。

现在一般使用高能电池、降低传感节点的功耗两种方式来解决这个问题。

此外还有传感器网络的自我能量收集技术和电池无线充电技术,但这两项技术尚在研究中,还不成熟。

1.3无线传感器网络未来展望

无线传感器网络有着十分广泛的应用前景,除了在工业、农业、军事、环境、医疗等领域有具有巨大的运用价值,在未来还将在许多新兴领域体现其优越性,如家用、保健、交通等领域。

将来微型传感器可以将家用电器等其他日常用品同互联网相连,对这些设备进行远距离控制,这样有利于家庭的安全调控、节电。

二.Zigbee技术

长期以来,低成本、低传输率、低功耗、短距离的无线通讯市场一直存在。

蓝牙(Bluetooth)、WIFI由于售价一直居高不下,严重影响了它们应用的广泛性。

然而,无线传感器网络的研究与发展,催生了许多新的网络协议与标准。

2001年8月,ZigBee联盟成立。

ZigBee技术具有以下的特点[2]:

1)低功耗:

ZigBee的传输速率很低,只有250kbps,发射功率仅为0dbm,而且可以进入低功耗的休眠模式。

ZigBee设备仅靠两节5号电池就可以维持长达一年甚至更长时间,这是它相比与其他设备的优势所在。

2)成本低:

ZigBee模块的初始成本在6美元左右,估计很快就能降到1.5~2.5美元。

3)时延短:

通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延为30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。

4)网络容量大:

根据ZigBee协议的16位短地址定义,一个ZigBee网络最多可以容纳65535个节点,而且还可以通过64位的IEEE地址进行扩展。

5)可靠、安全:

采用了CSMA-CA机制,同时为固定节点预留了GTS,避开了发送数据时的冲突。

ZigBee提供了基于循环冗余校验的数据包完整性检查功能,采用高级加密标准(AdvancedEncryptionStandard,AES)进行加密,每个具体的应用还可以人为的控制节点的组网方式和入网方式。

三.Zigbee协议介绍

3.1Zigbee协议栈结构

Zigbee协议栈定义了四层。

物理层和媒体访问控制层由IEEE802.15.4-2003定义,上层的网络层和应用层由Zigbee联盟定义。

应用层分别包括ZDO(Zigbee设备对象),APS(应用支持子层)和AF(应用框架)组成。

Zigbee协议栈每一层负责完成所规定的任务,并且向上层提供服务,各层之间的接口通过所定义的逻辑链路来提供服务[3]。

图3.1Zigbee协议栈结构图

1)物理层

物理层由半双工的无线收发器及其接口组成,主要作用是激活和关闭射频收发器;检测信道的能量;显示收到数据包的链路质量;空闲信道评估;选择信道频率;数据的接受和发送。

2)媒体访问控制层

媒体访问控制(MAC)层建立了一条节点和与其相邻的节点之间可靠的数据传输链路,共享传输媒体,提高通信效率。

在协调器的MAC层,可以产生网络信标,同步网络信标;支持Zigbee设备的关联和取消关联;支持设备加密;在信道访问方面,采用CSMA/CA信道退避算法,减少了碰撞概率;确保时隙分配(GTS);支持信标使能和非信标使能两种数据传输模式,为两个对等的MAC实体提供可靠连接。

3)网络层

基于底层的可靠通信,提供路由、路由发现、多跳、转发的功能。

Zigbee网络可以组成星型、簇树型或MESH型网络。

对于终端节点而言,网络层的功能只是加入和离开网络;对于路由器而言,网络层的功能是信息的转发,路由发现,建立和维护路由表和邻居表,以及构造到某节点的路由任务;而协调器网络层的任务主要包括启动和维护网络正常工作,为新加入的节点分配网络地址。

4)应用层

应用层包括三部分:

应用支持子层(APS)、Zigbee设备对象(ZDO)和应用框架(AF)。

应用支持子层的任务是提取网络层的信息并将信息发送到运行在节点上的不同应用端点。

应用支持子层维护了一个绑定表,可以定义、增加或移除组信息;完成64位长地址(IEEE地址)与16位短地址(网络地址)一对一映射;实现传输数据的分割与重组;应用支持子层连接网络层和应用层,是它们之间的接口。

这个接口由两个服务实体提供:

APS数据实体(APSDE)和APS管理实体(APSME)。

APS数据实体为网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。

APS管理实体提供安全服务,节点绑定,建立和移除组地址,负责64位IEEE地址与16位网络地址的地址映射[4]。

Zigbee设备对象负责设备的所有管理工作,包括设定该设备在网络中的角色(协调器、路由器或终端设备),发现网络中的设备,确定这些设备能提供的功能,发起或响应绑定请求,完成设备之间建立安全的关联等。

用户在开发Zigbee产品时,需要在Zigbee协议栈的AF上附加应用端点,调用ZDO功能以发现网络上的其他设备和服务,管理绑定、安全和其他网络设置。

ZDO是一个特殊的应用对象,它驻留在每一个Zigbee节点上,其端点编号固定为0。

AF应用框架是应用层与APS层的接口。

它负责发送和接收数据,并为接收到的数据寻找相应的目的端点。

3.2Zigbee网络拓扑结构

Zigbee的拓扑结构可以为以下三种:

星型、簇树型和MESH型。

星型拓扑网络结构网络由协调器组建和维护,其他的设备都是终端设备,都直接与协调器一对一通信。

在簇树型和MESH型拓扑网路结构中,协调器负责组建网络并决定一些关键的网络参数,如网络ID,网络使用的信道等。

网络中主要通过路由器来拓展网络覆盖范围。

树型网络中,路由器发送数据是通过层次的路由方法。

树型网络可以使用网络信标通信,路由器和终端节点以跟踪信标的方式与协调器通信;也可以使用非信标方式通信,终端节点定时轮询路由器或协调器来提取自己的信息。

MESH型网络可以进行点对点对等交流,但是不能使用信标。

Zigbee设备都有一个64位的IEEE地址,IEEE地址是唯一的绝对地址,设备可以用这个地址在PAN中进行通信,但在设备加入网络后,协调器后会为它分配一个16位的网络地址,网络地址只在该网络内是唯一的,是相对地址,设备也可以用这个网络地址在PAN内进行通信。

从物理功能上分,设备的类型可以分为2种。

一种是具有全功能设备(FullFunctionDevice,FFD),另一种是精简功能设备(ReducedFunctionDevice,RFD)。

在PAN(PersonalAreaNetwork)中,全功能设备可以作为PAN的协调器,路由器或作为一个终端设备。

一个全功能设备可以同时和多个精简功能设备或全功能设备通信;对于一个精简功能设备来说,它只能和一个全功能进行通信[5]。

图3.2星型和簇树型网络拓扑结构

3.3Z-Stack协议栈介绍

TI公司的协议栈Z-Stack符合ZigBee2006规范,功能强大,协议栈底层已实现,对于简单的应用,开发者只需要在应用层开发即可。

Z-Stack还可通过ZigBee网络无线下载节点更新程序,具备定位感知功能等等。

下面对Z-Stack的功能进行介绍。

3.3.1网络寻址

Z-Stack使用一种分布式的地址分配方式来分配网络地址,这种方式确保所有的网络地址在网络中是唯一的。

网络地址是由设备的父节点分配的。

通过在Z-Stack中网络层中相关位置的三个参数,包括最大深度(MAX_DEPTH)、最大子节点数(MAX_CHILDREN)和最大路由器数量(MAX_ROUTERS)按照以下地址分配算法可得到相应的网络地址[6]。

第n个终端设备的网络地址为:

其中:

表示第n个终端设备的父设备网络地址;

n的取值范围:

如果;

如果;

MAX_DEPTH指网络的层数。

协调器在第0层的深度,它的子节点在第一层,以下就是第二层,以此类推。

这个参数限定了网络结构的最大深度。

MAX_CHILDREN决定了协调器或者路由器可以有几个孩子节点。

孩子节点可以是路由器或者是终端设备。

MAX_ROUTERS数决定了协调器或者路由器下面可以有几个路由器子节点。

终端设备的个数=MAX_CHILDREN-MAX_ROUTERS。

在Z-Stack中网络结构和网络深度可在nwk_globals.c文件中设置,默认设置为HOME_CONTROLS。

#if(STACK_PROFILE_ID==HOME_CONTROLS)

byteCskipRtrs[MAX_NODE_DEPTH+1]={6,6,6,6,6,0};

byteCskipChldrn[MAX_NODE_DEPTH+1]={20,20,20,20,20,0};

#elif(STACK_PROFILE_ID==GENERIC_STAR)

byteCskipRtrs[MAX_NODE_DEPTH+1]={5,5,5,5,5,0};

byteCskipChldrn[MAX_NODE_DEPTH+1]={5,5,5,5,5,0};

#elif(STACK_PROFILE_ID==NETWORK_SPECIFIC)

byteCskipRtrs[MAX_NODE_DEPTH+1]={5,5,5,5,5,0};

byteCskipChldrn[MAX_NODE_DEPTH+1]={5,5,5,5,5,0};

#endif//STACK_PROFILE_ID

目的地址模式有如下几种值:

AddrNotPresent(地址未知模式),Addr16Bit(短地址模式),AddrBroadcast(广播模式)。

这些地址模式都是必要的,因为在ZigBee中,数据包可以是点对点发送(unicast),多点发送(multicast),也可以是广播式发送(broadcast)。

接下来对各种传输模式进行简要的介绍[7]。

1、一对一模式

一对一模式是在已知目的地址的情况下使用这种方式。

在发送数据的时候会包含目的地址信息。

在Z-Stack中的寻址方式可以这样来设置:

GenericApp_DstAddr.addrMode=Addr16Bit;//以网络地址为目的地址进行寻址

GenericApp_DstAddr.endPoint=10;//目的节点的端口号为10

GenericApp_DstAddr.addr.shortAddr=0x796f;//目的节点的网络地址

2、广播模式

广播模式是将数据发送给网络中所有的节点。

在程序中地址模式设定AddrBroadcast。

在Z-Stack中的寻址方式可以这样来设置:

GenericApp_DstAddr.addrMode=AddrBroadcast;//以广播的方式进行寻址

GenericApp_DstAddr.endPoint=10;//目的节点的端口号为10

GenericApp_DstAddr.addr.shortAddr=0xffff;//目的节点的网络中所有的节点

GenericApp_DstAddr.addr.shortAddr=0xfffd;//目的节点为网络中非睡眠节点

3、间接接模式

当地址模式设置为AddrNotPresent,说明发送的信息都是发给协调器的,在协调器的绑定表中查找相应目的地址进行一对一的数据发送。

GenericApp_DstAddr.addrMode=(afAddrMode_t)AddrNotPresent;

GenericApp_DstAddr.endPoint=10;

GenericApp_DstAddr.addr.shortAddr=0;//协调器的网络地址固定为0x0000;

3.3.2绑定

绑定是指一个节点与另外一个或几个节点间建立地址映射的一种寻址方式。

在节点建立绑定之后,发送数据的时候并不需要知道目的地址是什么,应用支持子层会根据绑定ID查询它的绑定表来决定目的地址,然后把信息发送给目的节点。

在Z-Stack中,绑定是通过如下函数实现的:

dstAddr.addrMode=Addr16Bit;//首先设置寻址模式为网络地址寻址

dstAddr.addr.shortAddr=0x0000;//目的地址为协调器的网络地址

ZDP_EndDeviceBindReq();//发起绑定请求

3.3.3路由协议

ZigBee的路由协议是基于AdHoc按需距离矢量路由协议AODV(AdhocOndemandDistanceVector),支持在环境中移动、连接失败和包丢失的环境应用,它极大的增强了无线传感器网络的可靠性。

当一个路由器收到从一个节点发往另一个节点的数据包,网络层根据以下步骤来转发这个包:

如果目的地是这个路由的邻居(包括是其子节点),这个包将被直接发送的目的地;否则,这个路由器将检查自己的路由表来找到相应的目的地的路由表记录。

如果有一个动态路由表记录,这个包将转发到路由表记录的下一跳地址;如果没有,将执行一个路由发现过程,过程结束后这个包才会被发送。

ZigBee网络路由具有自我修复的功能,如果某一路连接断掉了,将启用路由发现过程,发现一条新链路到目的节点。

ZigBee的终端设备不执行任何的路由功能。

如果它想发送一个包给任何的其他设备,它必须通过它的父节点来转发。

同样的,当任何一个包要发送给一个终端设备时,也由其父节点来做响应[8]。

3.3.4消息发送函数

在Z-Stack中,如果给一个节

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2