ZigBee温室环境监控系统设计

1 引言

在温室农业生产过程中,温度与湿度等环境参数直接影响到作物的生长。因此,环境的监测与控制是保证温室生产优质高效的重要手段。而大部分的温室监控系统采用PLC温室控制和现场总线控制系统,这些系统具有布线费时、抗干扰性差和成本高的缺点,制约了其推广应用。再加上目前针对特定地区(如我国最北部地区)气候存在着温度低、昼夜温差大、光照强度大等条件研究较少,使得环境监测的可靠性、稳定性成为急需解决的问题。

结合实地考察与测量,引入ZigBee数传技术到温室栽培中,建立温室环境监控系统,可以极大的节省劳动力,再加上低功耗、低成本等优势,可广泛应用于现代工农业自动控制,是信息技术在农业应用中的极佳选择。

2 系统总体方案

为保证在监测过程中数据稳定,避免局部数据代表温室数据,所以在每个温室中将安装多个ZigBee无线模块传感器节点,每个ZigBee无线模块节点采集2种环境参数。总体系统架构如图1所示。

图l 温湿度监测系统

每个温室的不同地方都有ZigBee数据采集终端节点,作为移动数据检测节点,每个ZigBee数据采集节点具有采集环境数据并发送给路由的功能。且在每个温室包括一个路由器,用来转发数据,并识别和自组网络节点。

路由器将本温室的传感节点数据接收后并发送给协调器。协调器负责整个ZigBee无线网络的建立和维护,收集ZigBee网络中各个ZigBee无线模块节点发出的信息,通过RS232接口把数据传到上位机。PC主要负责处理数据并显示,同时通过发送指令控制整个系统的运行。(如果监测节点距离太远时还可以考虑增加一个Router节点用于路由转发)。

3 系统硬件设计

整个系统硬件设计主要包括ZigBee网关(协调器)和终端节点2部分。

3.1 ZigBee网关节点

模块网关节点包括CC2530模块、电源模块、串口模块、USB接口、调试接口和3.3与5.0V电源转换模块。其中电源模块通过电压转换盒给节点提供3.3V工作电压。采用的是可;即联科技的JL13 ZigBee2530模块,选取支持最新的ZigBee协议,移植Z-Stack协议栈较为方便的CC2530射频芯片。该温湿度监测系统的硬件构成如图2所示。

图2 ZigBee网关硬件

3.2 ZigBee终端节点模块

在终端传感器节点中,除了网关节点原有模块之外,只需在CC2530的I/0 增加一个传感器。采用温湿度传感器SHT10。根据需要,终端传感器节点分布在监测环境中,通过SHT10实时进行环境参数的ZigBee数据采集,经CC2530处理后由射频芯片发送。电路如图3所示。

图3 SHT10连接

P1的2、3引脚对应CC2530的13、12引脚。为了确保芯片和电源系统工作的稳定性,采用BL8555低压差线性稳压器,在1.2V~5.0V输出电压范围内给电路提供多种固定电压。

4 系统软件设计

整个监控系统软件设计由ZigBee网关软件和终端节点软件2部分组成。协议栈的设计直接关系到整个网络系统的运行。根据ZigBee星型网络,协调器与终端设备在网络中的功能、地位有所不同。ZigBee网关软件和终端节点软件这2部分都需要向其ZigBee无线模块移植ZigBee协议栈(Z-Stack),尤其是与硬件底层密切相关的PHY层和MAC层的实现,它为上层通信应用提供API接口函数。温湿度采集系统程序设计是基于Z-Stack协议栈的SampleApp实验进行的,在协议栈的基础上,实现无线网络的组网及通信。在节点软件设计中,为了方便下载与调试,加入了ISP编程接口,可以对采集的数据信息进行处理。

4.1 网关节点程序设计

ZigBee的通信方式主要有点播、组播和广播3种。

在本设计中采用了周期定时广播发送的方式。其主要负责将终端节点采集到的数据发送给网关节点(协调器),再由协调器通过RS232串口上传到PC串口调试助手上。

协调器节点启动后,根据自身的IEEE地址随机确定一个PAN ID,并自动形成网络,同时允许其他节点加入到该网络,并负责给加入网络的设备分配一个16位短地址、配置网络参数、维护网络正常运行、接收路由器和终端节点发送来的数据。协调器作为整个网络的核心,主要任务即是搭建ZigBee数传网络,实现数据的发送与接收。发送部分协调器在建立网络过程中,需要登记事件、定义任务ID、设置事件编号和设定发送周期。接收部分需要完成2个任务:读取接收到的数据;把数据通过串口发送给PC。协调器节点工作流程如图4所示。

图4 协调器节点工作流程

4.2 传感器SHT10程序设计

终端节点主要功能是加入已经存在的ZigBee数传网络,接收命令发送数据,但是不能转发数据。温湿度信息采集一般分为自动采集和手动采集。将终端定时器设定一个初值,然后启动定时器,每次到达定时设定值时触发中断,开始测量温湿度,测量结束后由CC2530将数据发送出去,此后终端进入低功耗模式,定时器重新装载,计时继续,周而复始,实现自动采集;手动采集是由PC发指令给指定终端,终端识别出该指令后启动传感器,开始温湿度采集,将数据处理后再传给PC。下面对传感器节点主要代码进行说明。

1)传感器的启动传输程序传感器上电后,进入11 ms的“休眠”状态。首先采用一个延时命令来完成系统初始化延时,然后由CC2530给SHTl0发送“启动传输”时序,唤醒芯片。随后,SHTl0接收由CC2530的微控制器发送的命令。

数据传输初始化由一组“启动传输”时序来表示。用0表示低电平,l表示高电平时,当SCK时钟为1时DATA翻转为0,紧接着SCK变为0,在下一个SCK时钟为1时DATA翻转为1。这部分主要由void s_transstart(void)函数完成。

2)SHTlO写数据时序系统采用按位写的方式改变控制线SCK和DATA的状态。对于SHT10,DATA在每个SCK时钟下降沿之后写入一位数据来改变状态,并仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟为高电平时,DATA必须维持稳定。否则可能出现写数据时序的错误。写数据时序主要由char s_write_byte(unsigned char value)函数来完成。

3)SHTl0读数据时序读数据程序主要由函数char s_read_byte(unsignedchar aek)完成。ack为读数据确认控制字,初始变量i=0x80,val=0。当向SHTl0传感器写入测温控制字0x03这个8位数时,系统将进行温度的测量工作,当写入0x05时,系统将进行相对湿度的测量。

4)通信复位程序假如与传感器SHT10的通信发生中断,可以通过随后的信号序列将串口复位,保持DATA为1,触发SCK时钟9次或更多。在下1次指令执行前,发送1组“启动传输”序列。这些程序序列只对复位串口有效,而状态寄存器内容仍然保留。该复位程序由void s_connectionreset(void)函数来完成。

5)SHTl0温湿度信息处理该程序读取指针p_shiduzhi、p_wenduzhi中的湿度值和温度值。该部分由void calc_shtl0(float *p_shiduzhi,float *p_wenduzhi)函数来完成。信息处理中设置SHTl0的工作精度为14位温度和12位湿度测量,进行相对湿度计算。

至此,ZigBee数据采集传感器节点程序设计完成。ZigBee数据采集传感器节点作为温室监测系统的基本组成单元,需要具备环境的参数采集、数据收发、数据处理、无线通信等功能。在实际的应用中只需将CC2530模块+传感器即可组成EndDevice节点或者Router节点。这2种节点均可与Coordinator直接通信进行数据采集,故将以上2种节点统称为传感器节点。

5 系统测试与分析

本测试阶段是在实验室环境中完成的。在实验室内部署了3个ZigBee无线模块,包括1个主节点,2个子节点。

首先需要按图5所示将硬件系统连接起来,接着需要做的就是把源程序下载到无线ZigBee开发系统中并检验系统是否正常工作。

图5 无线ZigBee开发系统下载连接示意

然后,采用星型网络拓扑结构组成一个简单的ZigBee网络。这3个ZigBee数传节点(协调器与PC连接,路由器增加ZigBee数传网络的传输距离,终端节点采集温湿度信息)的短地址随机分配。节点之间的通信距离为10 m,系统启动后自动形成网络。打开串口终端COM5(串口号根据硬件驱动接口的差别而有所不同),设置波特率为38 400 b/s、无奇偶校验、8位数据位、1位停止位、无硬件流模式,终端节点发送来的温湿度数据如图6所示。

图6 终端节点温湿度数据

图6是一个终端节点接入网络时的通信情况。文中所采集的数据均为空气中的温、湿度信息,从图中可以看出,终端设备的短地址为0x796F,温湿度的精确度达到小数点的后4位。定时器周期为5000 ms,温湿度间隔5 S采集数据一次,该系统实现了环境温湿度数据采集功能。与系统采集数据时的实际情况相比较,其实际温度测量误差为0.8℃,相对湿度测量误差为4%RH。由于在测试过程中会有一些硬件电路的内部因素存在,所以该系统测得的温度比实际温度值高0.7~1.2℃。这与SHTl0温湿度传感器技术指标吻合,可以实现系统温湿度数据采集的功能。

6 结论

结合实地考察的温室环境,采用ZigBee无线模块技术应用于温室监控系统。利用无线ZigBee数据采集传感器网络对温室温湿度等信息进行采集,设计了无线传感器组网方案,完成了传感器节点软硬件设计,从而实现无线ZigBee数据数据采集与传输功能。测试试验表明:采用ZigBee数传模块进行组网和数据采集,有较好的稳定性和良好的实用性。对不同规模的温室,该系统可以灵活改变网络规模,能够满足温室监测系统的需要。由此可以得出:将ZigBee数传技术为基础的监测和控制系统引入到现代农业温室监测系统是一个很好的解决方案。

时间: 2024-08-08 15:08:49

ZigBee温室环境监控系统设计的相关文章

机房环境监控系统设计与实施重点!

机房环境监控系统的设计方案是否合理.优化.实用,决定了前期投资的经济性.因此,机房的总体设计方案的确定是很重要的,这取决于设计的理念和技术水平. 建设方一般对机房前期的建设比较慎重,要选择有技术实力的设计单位和技术人员进行机房的设计和施工,以保证机房方案的经济实用和机房的施工质量的保证. 机房里除了摆放的计算机.网络设备外,还有许多保证机房环境的设备:如UPS电源设备.空调新风设备.配电设备.安防设备.其它控制设备及弱电设备.为了减少因环境和人为失误造成的损失,用户需要拥有一套先进.可靠的机房环

ZigBee红外远程监控系统设计

现代安防监控越来越受到重视.它一般由图像采集.传输和存储系统组成.采用高精度的摄像头配合先进的图像处理技术和传输技术.其安防监控性能虽然很好,但也存在投资成本大,实时报警性能差.数据量大,隐蔽性差等缺点.鉴于这些不足,某些应用场合也可以用红外监控作为监控手段. 红外探测器自1800年被首次制作出来以后,经过两百多年的发展,技术已经十分成熟.它是指将不可见的红外辐射光探测出来,并且转化为可测量的信号的技术,具有适应性好,隐蔽性好,保密性强,性能稳定等优点.通过对特定波段的红外射线的探测,就可以实现

ZigBee教室照明监控系统设计

    随着教育的发展, 学校对硬件投入加大, 校园照明系统不断扩大,在带来绚丽和方便的同时, 也带来了费用高.管理难.故障汇报慢等问题.一套高效的照明监控系统可以大大节省人力财力.当今无线通信技术.自动控制技术快速发展, 为集中控制每一盏灯.远程识别故障灯.测控各种电参数及选用多种控制策略为一体的教室智能照明控制系统提供了技术支撑. 1 ZigBee 简介     2009 年济南园博园已经实现了小范围内基于ZigBee 的路灯和景观灯监控,基于ZigBee数传技术的照明监控系统将是未来照明监

温室温湿度监控系统

温室种植是现代农业常用的种植技术,在植物御寒.御冬或促使生长和提前开花.结果等方面作用突出,而温室内的温度.湿度.光照.二氧化碳浓度等环境条件更是影响作物生长的关键因素.因此,及时监控温室内温湿度.光照度等指标,保证良好的"小气候"条件,是每个温室管理者必须考虑的问题.中易云通过组合各种物联网软件和硬件产品,轻松实现温室大棚内的环境监测和控制. 系统拓扑图 系统组成感知层:系统感知层由各种物联网设备组成,在温室环境监控系统中,由温湿度.光照.CO2传感器等传感器和物联网中继器(控制器)

基于ZigBee的放射源监控系统研究

我国是放射性同位素生产和使用大国,随着市场经济的发展和各个领域的进一步开放,放射源已经广泛应用于工业.农业.医学.资源.环境.军事.科学研究等领域.放射源在给我们带来巨大技术进步与经济效益的同时,其辐射安全与放射性污染等问题也越来越突出. 近年来,放射源丢失.被盗等事故时有发生:一些用源单位不按国家规定,违规超标使用或私自转移放射源,造成较大的安全隐患.放射源的安全使用和科学监管已成为当前环保工作的难点和重点. 近几年发达国家对环境辐射连续监测的投入有明显加强,如美国EML实验室的SASP监测网

ZigBee智能仓库监控系统

目前,物联网(IOT)技术在世界范围内受到广泛关注,对此各国都投入大量的人力物力,掀起了继计算机.互联网之后第三次信息产业浪潮.美国.中国.欧洲各国.日本.韩国等都对IOT技术进行了大量研究,实施了很多研究计划.随着经济的快速发展,工厂和物流库房数量大幅度增加,且储存货物的种类及规模也日益增大.这给仓库环境监测与物品安全管理提出了更高要求. 在这样的背景下,国内外的专家和学者开展了基于IOT技术的仓库管理系统研究.目前,物联网技术只是应用于仓库管理方面,尽管仓库的环境检测能够实现实时.有效的监控

在线公开课 | 京东云监控系统设计及落地之路

谈运维为什么离不开监控?典型监控系统一般是如何设计的?业务驱动的高可用监控系统又有何不同?作为巨头之一的电商平台京东, 其基于京东云的监控系统是否有值得借鉴的地方?本文将解答这些问题.本文整理自 10 月 30 日由京东云开发者社区和英特尔联合举办的在线公开课,京东云工具产品研发部专家架构师颜志杰的在线课程演讲--业务驱动监控系统设计与落地. 世上没有百分百可靠的系统,程序.机器.网络都可能在运行中出现问题,进而导致服务异常, 带来金钱及品牌的损失,所以监控目标就是降低损失,通过发现.定位.解决

51单片机-PC数据传输 温度 距离 监控系统设计

>_<:功能概述: 通过串口PC和单片机通信,可以询问单片机测得的温度,可以询问声呐测距的测量距离,同时把测量温度显示在数码管上. >_<:PC部分 这里com.cpp和com.h是串口通信的函数封装,在主函数中: 刚开始调用封装好的串口通信函数,设置打开串口COM4,波特率设置为9600,超时设置: 1 if(openport("com4")) 2 printf("open comport success\n"); 3 if(setupdc

使用Fabric批量部署上线和线上环境监控

本文讲述如何使用fabric进行批量部署上线的功能 这个功能对于小应用,可以避免开发部署上线的平台,或者使用linux expect开发不优雅的代码. 前提条件: 1.运行fabric脚本的机器和其他机器tcp_port=22端口通 2.ssh可以登录,你有账号密码 一.先说批量部署上线 先上代码,再仔细讲解,脚本如下 # -*- coding:utf-8 -*- from fabric.colors import * from fabric.api import * from contextl