基于ZigBee的大棚环境监测系统设计
扫描二维码
随时随地手机看文章
引言
大棚环境监测系统实时地对大棚的温度、湿度等环境因素进行检测,减少了种植人员的工作量;及时地对不利环境进行报警,减少了因为人工疏忽而造成的农作物减产的情况;记录大棚各个时段的环境数据,方便农民对农作物的生长情况作出更全面的了解,方便农民控制大棚环境,使之利于农作物的生长。对大棚温室的控制与管理是农业自动化生产的重要领域。目前,绝大多数的温室控制系统的信号传播方式都是有线传输,大量的布线不可避免。有线传输布线复杂,布线成本高,大棚内的环境温湿度都比较高,使得系统的抗干扰性和可靠性降低,后期的维护难度比较大。而采用无线传输方式可以有效地解决以上问题。
本文设计的大棚环境监测系统,使用单片机和温湿度传感器组成数据采集节点,采用无线射频CC2530(ZigBee)技术进行数据传输,上位机开发则采用VisualBasic.NET和Access数据库系统,将无线节点所采集到的温湿度信息实时地显示到系统界面,从而达到对温度监测的目的。
1ZigBee技术简介
ZigBee是一种便宜的、低功耗的近距离无线组网通信技术,它有可能运用于几乎所有行业的低速率、短距离的无线通信,近些年多应用于智能家居、工业应用、智能交通、智能建筑和医院应用等。ZigBee的显著特点就是低速率、低功耗、低成本、自配置和灵活的网络拓扑结构。由于ZigBee技术的传输速率低,传输数据量很小,因此信号的收发时间短;而在非工作模式中,ZigBee节点又处于休眠状态,所以ZigBee节点非常省电。由于ZigBee协议栈相对于其他无线传输技术要简单得多,降低了对控制器的要求,因此可以采用8位单片机和规模很小的存储器,很大程度上减小了系统开发的成本。在可通信的距离内,ZigBee通过网络协调器自动建立网络,采用CSMA-CA方式进行信道接入;节点设备可以随意地加入和退出,是一种自组织、自配置的组网方式。ZigBee有多重网络拓扑结构,可以根据不同的需求使用相应的拓扑结构,具有较强的灵活性。
2系统结构设计
本系统由终端节点、协调器(也称为ZigBee网关)和数据库管理系统组成。终端节点对温湿度实时采集,经过C51单片机处理后上传到ZigBee无线网络。其中,每个ZigBee模块还具有中继功能,以免因距离过远无法传输。数据库管理系统采用VB.NET开发人机界面。如图1所示,ZigBee模块负责收集大棚温度数据、湿度数据并进行无线发送,避免了布线的麻烦,与其配套的上位机软件是一个拥有良好界面的数据监控和存储中心。下位机主要完成数据的采集与发送,上位机完成数据的分析和存储。本系统中ZigBee终端节点上装有温湿度传感器,负责采集大棚温湿度数据,而ZigBee模块负责通过无线网络传输数据信息,ZigBee网关节点负责收集终端节点的信息并通过RS232传输给上位机,上位机系统需要实现温湿度数据的实时显示以及数据的存储、查询、删除等功能。
3 系统硬件结构组成
环境监测系统硬件装置由终端节点和协调器两大部分组成,系统结构图如图2所示。通常一套装置只有一个协调器,其主要包括微控制器、射频收发单元、无线节点和电源模块以及接口单元。在系统的硬件选择上,主要从温湿度的精确度、检测范围和经济适用度方面进行考虑。笔者主要采用集成的温湿度传感器以及CC2530作为ZigBee模块。
本系统下位机终端节点包括温湿度传感器、单片机和ZigBee模块。将终端节点按用户要求放置到大棚中,温湿度传感器将大棚环境信息收集上来,通过IIC总线将数据传输到STC12LE5204AD单片机进行数据处理。因为STC12LE5204AD没有IIC接口,所以本系统采用IO接口进行模拟叫单片机将处理过的数据信息传输给ZigBee模块,该模块将数据在无线网络中按照ZigBee网络协议传输到作为ZigBee网关的协调器,再通过RS232串口传输到上位机,进行数据处理等操作。当终端节点距离协调器过远,无法将信息直接传送到协调器时,可以自主地转送到其他终端节点进行数据中继,进而传输到协调器中。
4系统软件设计
计算机上位机监测软件在MicrosoftVisualStudio2008环境下开发,系统将下位机收集到的温湿度信息交给Access数据库进行标准化管理。种植者可以通过计算机监测软件查询大棚环境历史信息,通过监测界面监测到大棚温湿度的实时变化,能够设置大棚环境的报警阈值和下位机匹配的硬件参数等。
4.1数据接收模块
为了使下位机采集到的数据可以传输到上位机,需要编写串口通信程序进行串口通信。在MicrosoftVisualStudio2008中编写串口通信程序,一般都使用MicrosoftCommunicationControK简称MSComm)的通信控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通信。但是,VisualStudio.Net没有将此控件加入控件库,所以人们采用了其他方法在VisualStudio.Net来编写串口通信程序,本系统利用SerialPort类进行串口编程。本系统需要实现下位机参数可以灵活匹配的功能,可以通过编写相应程序得以实现。
设计时,应首先打开串口连接;判断下位机参数是否已正确选择,下位机参数有五个,都需要进行判断;之后便可与下位机参数进行匹配,设置串口参数;再建立串口通信事件;最后接收数据信息。下面是其部分代码:
PrivateSubSerialPort1_DataReceived(ByValsenderAsSystem.Object,ByValeAsSystem.IO.Ports.SerialDataReceivedEventArgs)HandlesSerialPort1.DataReceived
'引入SerialPort类,接收数据HOneData(第一个节点的湿度)等三组六个数据
DimbyteToReadAsInt16=SerialPort1.BytesToRead()
IfbyteToRead=21Then
Dimch(byteToRead)AsByte
DimbytesReadAsInt16=0
bytesRead=SerialPort1.Read(ch,0,byteToRead)'用来存放接收到的数据
Ifch(0)=170Andch(1)=85Then'判断读取下位机数据的长度是否为有效的
HOneData=CLng("&H"&Hex(ch(2)&ch(3)))/10'十六进制转成十进制(前面的),并且小数点向左进一位(除以10)
图3所示是其数据接收模块流程图。
4.2数据处理模块
环境数据信息从下位机通过RS232串口传输到上位机系统,需要进行分析、转换等操作。数据按照规定的帧格式传输,每帧包含3个数据,分别为节点编号、温度数据、湿度数据,均以十六进制形式表示。上位机接收到数据后,分离其中的数据位,依次取出节点编号、温度数据、湿度数据中的值,进行十六进制数据转换成十进制数据的操作后,保存到数据库中。数据处理模块的流程图如图4所示。下面是其部分代码:
ImportsSystem.Data.OleDb'弓|用access控件
PublicLHGconnAsNewOleDb.OleDbConnection(
"provider=microsoft.jet.oledb.4.0;"&"datasource="&
My.Application.Info.DirectoryPath&"\NewData.mdb;")'打
开数据库,路径为相对路径
Try
IfLHGconn.State<>ConnectionState.ClosedThenLHGconn.Close()
LHGconn.Open()
CallRAlarm()'数据库连接,错误则报警
4.3数据显示模块
数据显示模块是整个监测系统中最重要的模块,需要将接收到的下位机数据以实时波动曲线的形式展示给种植者,该模块使用.NETFramweork构架中提供的GDI+类库进行绘图。系统界面中设计两个坐标轴,分别用来显示温度数据和湿度数据。系统获取从下位机接收到的数据在坐标轴中进行绘图,获取到的十六进制数据信息通过分析处理转化为十进制数据,再通过数学计算,确定该数据信息在坐标轴上的坐标值。将相邻两个坐标点用画线的方法连接起来,则形成了实时显示的曲线。使用Bitmap类,用来封装GDI+位图,此位图由图形图像及其属性的像素数据组成。Bitmap是用于处理由像素数据定义的图像的对象,相当于定义画布。使用Graphics对象所提供的Graphics.FromImage方法从指定的Image创建新的Graphics,相当于定义了一个画笔,使用picturebox控件来显示所绘制的图形和图像。
5结语
基于ZigBee的大棚环境监测系统实现的是温度和湿度数据的无线检测,具有数据传输可靠、组网简单灵活、设备成本低等特点。本系统能够实时采集环境数据,将大棚环境信息及时地传递给用户,用户可以及时地掌握大棚环境,从而对环境进行调节与控制,避免因为人为疏忽造成的农作物减产等不良影响,符合农业现代化发展的需求,具有一定的应用价值。
20211106_61863d78565e1__基于ZigBee的大棚环境监测系统设计