APP下载

基于ZigBee的温室数据采集系统设计

2016-07-09李晓娟张素君杨文强

安徽农学通报 2016年12期
关键词:数据采集温室

李晓娟 张素君 杨文强

摘 要:该文基于ZigBee技术给出了一种用于温室数据采集的系统方案。硬件部分选择温湿度传感器SHT11和光传感器TSL2550D采集温室环境参数,软件部分采用C语言编写上位机程序,数据的采集和传输采用周期上报和中断立即上报两种工作方式。实验结果表明,该系统可以实时、准确、可靠地完成温室环境因子监测,有效地降低了系统功耗,为今后将该网络应用于实际温室的数据采集打下基础,具有广泛的应用前景。

关键词:ZigBee;数据采集;温室;SHT11;TSL2550D

中图分类号 S625.5 文献标识码 A 文章编号 1007-7731(2016)12-0122-04

Design of Data Acquisition System for Greenhouse Based on ZigBee Technology

Li Xiaojuan et al.

(Henan Institute of Science and Technology,Xinxiang 453003,China)

Abstract:A data acquisition system for greenhouse based on ZigBee technology was presented in this paper. Part of the hardware select temperature and humidity sensor SHT11 and light sensor TSL2550D to acquisit environmental parameters of greenhouse,part of the software use C language to write the program of the upper computer interface,data is collected and transported using the periodic report mode or interrupt immediately report mode.The experimental results show that,the system can monitor the environmental factors of greenhouse in real time,accurately and reliably,and reduce system power consumption effectively. It has laid a foundation to apply the network in practical greenhouse data acquisition in the future with a broad application prospect.

Key words:ZigBee;Data collection;Greenhouse;SHT11;TSL2550D

温室大棚可以在不同季节为农作物提供其生长发育所需的环境,适宜的环境对促进农作物的产量和品质起着举足轻重的作用。温室生产的一个重要环节是数据的采集与监控。本文基于ZigBee技术给出了一种用于温室数据采集[1,2]的设计方案。

1 硬件电路设计

1.1 温湿度采集电路设计 温室环境因子中,温湿度的监测相当重要。本系统采用瑞士Sensirion公司推出的新一代基于CMOSensTM技术的数字式温湿度传感器SHT11,它将温湿度传感器和相关电路功能部件全部采用CMOS技术放置在一个芯片内,这就使得测量精度提高;另外,它具有IIC二线串行总线接口,方便与任何类型的微处理器、微控制器接口相连,为温湿度的微机化测试带来极大的方便[3,4]。其与微控制器的接口如图1所示。

如图1所示,SCK接到微控制器的I/O口,通过I/O口模拟时钟信号来实现微处理器与SHT11之间的同步通讯。由于接口包含了完全静态逻辑,所以不存在最小的SCK频率,DATA三态门用于数据的读取,DATA在SCK时钟下降沿之后改变状态,仅在SCK时钟上升沿有效。数据传输期间,在SCK时钟高电平时,DATA必须保持稳定。为避免信号冲突,微处理器应驱动DATA在低电平,需要一个外部的阻值为l0k的上拉电阻将信号提拉至高电平。R8、R9主要是为了测试系统其它部分的功耗而设计;JN5139通过DIO13、DIO12就可以与SHT11通信,从而读取温湿度数据。最终读取的温度数据,因为能隙材料极好的线性,可直接用公式1转化为温度值,其中SOT是传感器输出的测量值,d1,d2为温度转换系数,分别与供电电压和转换精度有关系。

Temperature=d1+d2×SOT (1)

测量得到的湿度值需要补偿非线性以获取准确的数据,采用公式2修正读数。其中SORH是传感器输出的湿度值,C1、C2、C3是湿度转换系数,与测量精度有关。

Rhlinear=C1+C2×SORH+C3×SORH2 (2)

1.2 光照度采集电路设计 作物的生长、发育和产量同光合作用密切相关,因此对光照度的监测也是温室环境检测系统中的关键一环。对于普通的光照传感器只有一只光电探测器,检测到的光信号既包含可见光(影响光合作用的主要成分)成分又有红外光成分。这样,当周围环境的可见光并不十分强而红外光较强时,检测的结果会受到红外光影响,输出光照强度大的测量值,与人眼的感觉有很大差异。因此,在光照传感器设计中,关键问题是要滤除红外光对光照传感器检测结果的影响。本系统中采用TAOS公司的TSL2550D光传感器,其内部有两个传感器,提供的输出是根据两个组合传感器读数推导出来的。其中通道0对红外光和可见光敏感,通道1只对红外光敏感。只要将这两个读数相减,并将结果数字化,TSL2550 D就能得到近似人眼的响应,从而评估可见光光强以及红外线的影响[5]。TSL2550D的接口电路图如图2所示。

2 软件设计

本系统通信软件采用C语言在Jennic CodeBlocks编译和调试环境下进行程序设计。

2.1 读取温湿度数据 读温湿度时,为了确保不会发生阻塞,采用状态机机制,把传感器的状态分为:空闲状态、启动读湿度、正在读湿度、读湿度完成、启动读温度、正在读温度、读温度完成、温湿度数据准备好[6]。在读温湿度子函数中利用switch()语句对各个状态进行判定,根据状态进行相应的操作,最终正确读出温湿度数据。在传感器节点子程序中,周期性地调用读温/湿度测量子程序就可以在状态机机制下正确地监测温室温湿度因子。SHT11测量温湿度的程序图如图3所示。

2.2 读取光照度数据 TSL2550D光传感器采用SMBus总线通讯协议,针对SMBus总线编写写了几个基础函数如下:

PUBLIC void vSMBusInit(void);//初始化SMBus总线

PUBLIC bool_t bSMBusWrite(uint8 u8Address,uint8 u8Command,//SMBus写函数

uint8 u8Length,uint8* pu8Data);

PUBLIC bool_t bSMBusRandomRead(uint8 u8Address,uint8 u8Command,uint8 u8Length,uint8* pu8Data);// SMBus随机读函数

PUBLIC bool_t bSMBusSequentialRead(uint8 u8Address,uint8 u8Length,uint8* pu8Data);//SMBus顺序读函数

针对TSL2550D编写了以下几个子函数:

PUBLIC bool_t bTSL2550_Init(void);//用于TSL2550D的初始化;

PUBLIC bool_t bTSL2550_PowerDown(void);//使TSL2550D工作在掉电模式;

PUBLIC bool_t bTSL2550_StartRead(uint8 u8Channel);//启动通道0、1进行采集;

PUBLIC uint16 u16TSL2550_ReadResult(void);

//从ADC寄存器0、1中读出转换结果,并根据公式1计算出Ch0/Ch1计数值。

TSL2550D寄存器数据格式如表1所示,若B7为1则说明ADC寄存器里的数据已经有效,否则无效;B6 B5 B4三位决定CHORD NUMBER,取值范围为:0~7;B3 B2 B1 B0四位决定STEP NUMBER值,取值范围为:0~15;利用从ADC寄存器里读出的值经过换算并按公式3计算即可得到ADC计数值,Ch0/Ch1最终按照光照度公式4计算即可得到实际光照度。

其中,C取值范围为:0~7;S取值范围为:0~15;L为亮度,单位为流明;Ch0和Ch1分别代表光照传感器的两个光电探测器所采集到的数值;R代表Ch0和Ch1的比值,即当前环境中红外光所占的比重。

3 实验验证

本实验在实验室内模拟完成,主要有基于周期上报数据和基于中断立即上报数据两种模式。

3.1 周期模式下的数据采集 在测试程序中,对应指定地址写入32个数据,并从指定地址单元读出10个数,写读成功后,在串口中显出。协调器不断检测是否有按键按下,若按下则显示相应的按键编号。为了观察方便,测试时,向协调器节点发送数据时,主要包括温度、湿度、光照度及时间。传感器节点和路由节点完成注册后,先采集一次数据进入休眠状态,当Wake timer1(测试时设为10s)时间到时,进入相应中断事件,在中断事件中,检查采集数据是否超限,若超限立即发送数据,若不超限,判定采集数据次数是否大于N(测试时N设为6),若大于则发送一次数据,若不大于则中断返回。若Wake timer2时间到,则向路由节点询问是否有发达给自己的数据或命令,并进行相应的处理。周期模式下的数据采集如图4所示。

3.2 中断模式下的数据采集 当温室环境因子发生突变并超限时,路由节点或传感器节点会立即上报协调器数据,从而用户可以及时采取相应的措施。在本实验中,采用随机函数法来模拟采集温室数据,当随机函数产生的数据超限时,则立即上报协调器,发出声光报警,若数据在正常范围,则丢弃数据,节点继续睡眠,从而节省功耗。其中断数据传输如图5所示。

4 结论

本文基于ZigBee技术将采集的温度、湿度、光照强度等数据通过无线网络进行传输,监控人员可以实时监控整个温室环境,通过上位机做出相应处理,从而为植物的生长提供了一个良好的环境,也可以为研究者提供理论依据。本系统对温室环境参数的监测及时、准确,且具有可靠性高、扩展性强等优点。

参考文献

[1]段锋锐,石军锋.一种基于Zig Bee技术的温室数据实时采集系统[J].自动化与仪表,2015(10):41-44.

[2]赵悦,程跃,张宏坤.基于Zig Bee的温室测控系统设计[J].实验室研究与探索,2014,33(12):131-134.

[3]匡宇国.智能传感器SHT11及其在便携式温湿度检测仪中的应用[J].电子器件,2006,29(4):1312-1315.

[4]Sensirion.SHT11/15 relative humidity sensor.http://www.sensirion.com/en/pdf/Datasheet_SHT1x_SHT7x_0206.pdf,June 2002.

[5]Texas Advanced Optoelectronic Solutions.TSL2550 ambient light sensor.http://www.taosinc.com/pdf/tsl2550-E39.pdf,September 2002.

[6]马潮.基于AVR的单片嵌入式系统原理与实践应用[M].1版.北京:北京航空航天大学出版社,2007.

(责编:张宏民)

猜你喜欢

数据采集温室
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
可以避免一个温室化的地球吗?
基于开源系统的综合业务数据采集系统的开发研究