当前位置:首页 期刊杂志

基于ZigBee 的温湿度监测系统设计

时间:2024-09-03

◆靳尧凯 戴贻康 焦运良

(华北计算机系统工程研究所 北京 100083)

在工业生产、环境监测和日常生活中,要密切关注周围环境的变化,只有适宜的环境,才能发挥最高的生产效率,创造出最大的效益。

随着电子科学技术的不断发展,使得人们对无线通信的传输质量、传输距离和快捷性的要求越来越高[1]。人们使用FF 基金会现场总线,CAN 总线等有线电缆的连接方式进行数据传输的监测系统有很大的局限性,例如设备位置较为固定,现场布线麻烦,不适宜复杂的环境,网络脆弱,一个节点的失效可能导致整个系统瘫痪。随着微机电系统(MEMS)的发展,片上系统解决方案的成熟,无线传感已经开始走入寻常百姓家,发展越来越快,应用领域越来越广阔,它的发展和运用给人们的生活和生产带来了深远的影响。

目前,短距离无线通信技术慢慢成为研究的一个热点领域,它们包括无线局域网(Wi-Fi),蓝牙(Bluetooth),红外数据通信(ⅠrDA),近场通信(NFC),超宽带通信(UWB),以及ZigBee 技术[2]。其中ZigBee 技术以其成本低廉,低功耗,高可靠性正广泛应用于家庭和楼宇网络,工业控制,公共场所等领域[3]。

1 ZigBee 技术研究

1.1 ZigBee 技术特点

知ZigBee 协议模型主要由应用层(APL)和网络层(NWK),媒介访问控制层(MAC)和物理层(PHY)组成,其中NWK 层和APL 层是被ZigBee 联盟定义的,PHY 层和MAC 层是被ⅠEEE802.15.4标准定义的[4]。ZigBee 技术有以下几个特点。

(1)功耗低:由于ZigBee 技术多用于偏僻或者人们难以到达的地方,因此ZigBee 设计之初就要求了低功耗,通常来说,一个ZigBee节点依靠两节干电池即可工作6~24 个月[5]。

(2)成本低:由于ZigBee 协议栈简单,工作流程清晰,开发和维护的成本较低,并且ZigBee 协议对外公开,不需要收取专利费,因此具有较低的成本,适合大规模使用。

(3)网络容量大:一个ZigBee 网络最高可以有65535 个数据模块,此外,ZigBee 有27 个信道可以用来通信,而TⅠ公司所有支持ZigBee 底层协议的芯片CC2530 在2.4GHz 的频段上,有16 个信道进行通信,这就保证了一个区域可以有多个网络的存在。

(4)自组织能力:ZigBee 模块上电后,协调器能够自行建网,自动分配网络地址,终端和路由器上电后能够自行请求加入网络。

(5)可靠性高:网络通信采用了避免碰撞的机制,数据收发时不会产生冲突,并且预留了一些间隙专门为了一些需要固定带宽的通信,每一个带有明确地址的数据包在接收方接收后都会产生一个确认信息,数据可以重新发送,这些方法保证了数据在通信过程中不会丢失和出错。

1.2 ZigBee 的网络拓扑结构

ZigBee 组网灵活多变,能够组成星型、树型、和网格型的网络拓扑结构[6]。一般是根据现场需要决定选择何种网络结构。星型结构是ZigBee 网络中最简略的结构。一般由一个负责创建网络维护网络的协调器和一系列终端传感器节点组成。由于每个传感器只能和协调器传递信息,因此传感器之间若想传递信息,只能通过整个网络的核心—协调器,协调器将信息转发后就可以实现传感器之间的通信。星型拓扑网络的结构如图1 所示。

图1 星型网络结构图

树型结构是由一个负责创建网络、维护网络的协调器,若干个数据转发用的路由器和一系列采集现场数据的传感器组成的。协调器可以与路由器和传感器节点互相连接,下一级的路由器仍然可以无线连接更下一级的路由器和传感器。其结构图可表示为如图2 所示。

树型网络的优点是可以进行中继路由,理论上经过路由,ZigBee的传输距离可以达到很远,它的网络结构比星型结构复杂,但是也相对灵活。缺点是信息的路由只有一条通道可以选择。

网格结构:一个网络只能有一个协调器节点,因此网格网络结构也有一个网络核心协调器,同时还有众多的路由器和传感器节点,与树型网络的结构组成相类似,而且这种结构与树型网络结构也相似,但是节点之间的路由通道增加为多条。主要表现是路由器节点之间可以直接进行通信,由此节点与节点之间的通信便可以通过路由器作为桥梁来通信,当某个路由器节点因故障而失去作用,节点之间的通信便可以绕过该路由器节点,通过其他的路径进行通信。网格型的网络结构可以参考图3 所示。

图2 树型网络结构图

图3 网格型网络结构图

2 系统总体设计方案

终端即为传感器,首先将各传感器节点分散放置在不同位置,传感器节点在上电工作后感知到周围的温度和湿度的电信号,并且经过放大,模拟/数字转换,经传感器节点内嵌的8051 核的单片机读取传感器数字信息后,经过运算得出真实的温湿度值。

如果传感器已经入网,则将这些信息以无线的方式先发送给路由器,路由器再转发给协调器。协调器负责整个ZigBee 监测系统网络的组建和维护,并且还需要接受来自路由器节点转发来的传感器感知到的信息。协调器上电后先组网,网络组建成功后,路由器和各传感器节点加入该网络中来。当传感器开始工作后,协调器开始接收路由器节点转发过来的信息,通过串口显示到LCD 屏幕上。

2.1 系统硬件设计

2.1.1 传感器节点的硬件设计

传感器节点包括了传感器单元,电源供电单元,射频收发单元,数据处理单元[7]。其结构图如图4 所示。

图4 传感器节点硬件结构图

传感器模块用来感知周围的温湿度信息,并将采集到的温湿度的模拟电信号经过模拟/数字转换成可供CC2530 读取的数字信号。CC2530 中的处理器单元负责控制处理信息的存储,Ⅰ/O 口,控制射频模块的发送等,电源模块负责给整个节点供电。

本设计需要采集周围环境的温度和湿度信息,采用的国内奥松公司推出的集温度采集和湿度采集于一体的温湿度传感器DHT11。

ZigBee 芯片具有自己的协议栈,我们不需要知道协议栈里具体程序的运行流程,只需将传感器采集到的信息,通过串口发送到ZigBee 芯片。ZigBee 芯片能够将这些信息经过运算处理后以无线的方式发送出去,接收器按照某种配置,能够实时、无误的接受这些数据或者命令。因此,要求该ZigBee 芯片具有射频,数据处理,同时该芯片业必须支持ZigBee 底层协议。选择TⅠ公司推出的CC2530 芯片作为该设计的主控芯片。CC2530 芯片成本较低,内置增强型的8051 单片机,具有8Kb 的RAM,可在线下载,支持Z-Stack 协议栈。CC2530 运行功耗较低,能够在一块干电池的供电下持续运行6 个月以上。

2.1.2 协调器节点的硬件设计

协调器节点负责组建网络,维护网络,接收路由器转发来的传感器节点的数据,是整个网络的核心。本质上来说,终端节点,协调器节点,路由器节点的硬件部分一样,只是终端外接了一个传感器只需要下载不同功能的代码就可以实现不同的功能。因此协调器节点的硬件电路与传感器节点的硬件电路相同,只是少了传感器,这里不再赘述。

2.1.3 路由器节点的硬件设计

如果测量的范围过大,且障碍物过多,那么协调器与终端节点的数据发送可能会中断,因此设置一个路由器节点负责数据的转发。由于路由器节点也没有传感器,因此该节点与协调器节点的硬件相同,下载对应的代码即可实现路由功能。

2.2 系统软件设计

2.2.1 Z-Stack 协议栈

TⅠ公司除了推出其公司的ZigBee 芯片,也公开了很完整实用的协议栈供开发者下载使用。ZigBee 协议的内层分为不同的两大部分[8],一部分是由ⅠEEE802.15.4 标准规范的物理层和媒体访问控制层,另一部分则是由ZigBee 联盟规范制定的网络层和应用层,Z-Stack 就是将这些规范打包整理,并且用C 语言呈现出来。

Z-Stack 相当于一个简易的操作系统,在协议栈中的文件夹Zmain.c 是它的主函数,负责整个程序大框架的运行,它有两个重要的功能,一个是进行ZigBee 的初始化操作,另一个是执行该操作系统,保证ZigBee 的正常工作。

2.2.2 传感器(终端)节点软件设计

终端节点主要利用传感器来感知环境收集数据,然后将温湿度信息打包发送给路由器[9]。传感器节点首先需要初始化并且尝试加入协调器已经创建成功的网络中,然后将自己设备绑定到父节点上,就可以将终端收集到的温湿度信息以无线通信的方式传送到路由器上。

先初始化,之后开始扫描信道,查看附近是否有可以加入的ZigBee 网络,若发现有可以加入的网络,则终端会向协调器发送请求帧请求加入网络。若协调器收到该帧并且同意其入网,则会向传感器(终端)发送一个16 位独一无二的地址。加入网络成功后进入休眠模式,当定时时间到,读取传感器的数值,存储在数据缓冲区,并且在主控芯片的控制下打包将数据发送给路由器,发送不成功再次发送,直到成功后再次进入休眠状态,等待下一次的周期性发送。

2.2.3 协调器节点软件设计

协调器决定了当前环境网络的存在与否,所以它处于非常重要的位置。在该设计中它的软件主要实现的功能包括创建该区域的ZigBee 网络,同时负责其他节点的入网事项,在稳定工作后还需要接收相应的数据信息,还需要将收到的数据通过串口加上屏幕驱动程序在LCD 上显示。协调器的软件工作流程如图5 所示。

(1)无线传感器网络的建立和加入。开发者不需要关注协议栈的细节部分,只需要知道数据的流动过程,并且使用协议栈提供的相关函数实现我们需要的功能即可。

(2)数据的接收。在ZigBee 网络的正常工作中,协调器会将收到的数据打包储存起来,因此只需要通过相关函数找到存储起来的数据,就可以经过相应的驱动程序显示在LCD 屏幕上。

2.2.4 路由器节点软件设计

本设计采用树型网络拓扑结构,在中间有一级数据的中继,这一功能由路由器实现。路由器的工作流程与终端的工作流程相似,上电后先进行软件和硬件的初始化操作,然后进行信道的扫描,选择一个信道,然后进行网络的搜索,搜索到合适的网络后请求加入。

路由器的唯一功能就是进行数据的转发,下载相应的代码后,设备以路由器的身份入网后,就可以实现数据的转发。

3 系统调试与结果

硬件:协调器节点,路由器节点、终端节点、仿真器、LCD 显示屏,PC 机。软件:ⅠAR Embeded workbench,串口调试助手。

本设计采用树型网络,由终端节点采集温湿度数据,将采集到的数据发送给路由器,经过路由器转发给协调器,协调器收到温湿度信息后驱动LCD 显示屏显示当前温湿度,并且在测试过程中可以打开串口调试助手查看串口上发送的具体数据。

将相应的代码经过编译,环境配置后下载到对应的模块中,待各个模块初始化完成后,便可测得相应的温湿度信息。打开串口调试助手,可以看到在串口上的温湿度信息每隔10 秒钟刷新一下。

图5 协调器软件工作流程

4 结束语

综合以上设计结果,可知,该设计基本符合要求。但本设计还存在以下的不足:本设计中只做了三个节点,完成了最基础的树型网络组建,但是往往在实际应用时,会有更多的节点参与进来。因此本设计可考虑增加传感器,增加路由器节点,设计成更为复杂的网状结构。另外本设计采用的芯片RAM 只有8K,若要设计更复杂的功能,可以考虑加片外RAM 或者功能更为强大的芯片。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!