基于单片机技术的智能温室控制系统
0赞*一种基于单片机技术的智能温室控制系统
解决方案
*采用STC89C54RD+单片机
*采用数字温度传感器DS18B20
*采用电容式湿度传感器HS1101
植物,尤其是稀有植物、珍贵花卉和苗木的生长都需要某种特定的温度、湿度和光照度等条件,当环境条件不能满足上述要求时,它们便停止生长,甚至腐 烂、死亡。而要获得植物生长所需的最佳条件,不能单独静态地考虑某一因素,而应从整体上综合地研究环境参数控制问题。智能化温室控制系统,即根据植物生长 发育的需要,通过传感器技术、微型计算机及单片机技术,自动测控温室的环境参数,其中包括温度、湿度、光照度等,使植物在不适宜生长发育的反季节中,获得 适宜的环境条件,达到早熟、优质、高产的目的[1]。
1 环境参数对植物的影响
影响植物生长的因素主要有温度、湿度、土壤水分、光照度和CO2浓度等,研究发现温度对植物的影响占40%,湿度占28%,它们对植物的生长起主要作用。因此,本系统主要研究温度和湿度对植物的影响和智能化温室中对环境温湿度的调控。
1.1 温度对植物的影响
植物在生命周期中的一切生物化学作用都必须在一定的温度条件下进行,不管湿度、光照、CO2浓度等其他环境条件如何适宜,植物总将在温度降低至某一低温或 超过某一高温时停止生长发育。温度对植物的影响主要表现在两个方面:一是发育进程的快慢,包括出叶速度(叶龄)及开花日期等;二是生长量增长的快慢,包括 株高、叶面积、节间长度、果实大小等。当然,温度的影响要和光照强度相结合进行分析。当光合产物大于呼吸消耗时,植物体内有机质才会有积累。当温度超过光 合最适温度后,光合强度减弱而呼吸强度增强,将减少物质的积累,影响植物的生长。
1.2 湿度对植物的影响
湿度主要指温室内空气的相对湿度,其大小不仅影响着温室内植物蒸腾与地面蒸发量,而且直接影响着植物光合强度与病害情况。湿度与病原微生物的繁殖密切相关,因此湿度条件是引起植物病害的主要原因。
研究发现,植物的生长和发育并不取决于某一时刻某个特定温度与湿度,而主要取决于在一个时间段中的平均参数。这就要求控制系统不能设置一个固定的参数值, 温室中的温度和湿度在最高和最低范围内进行变动,以求在一个较长的时间段内达到理想的生长环境。控制系统根据室外的气候,在使用最低能耗、最佳利用温室中 现有的设备情况下进行动态调节,保持在适宜植物生长的状态。
2 温室环境参数检测
2.1 环境温度检测
控制系统中需要采集温室中多点温度或温室群的温度,本系统采用美国DALLAS公司生产的单线式数字温度传感器DS18B20,其结构简单不需要外接电 路,仅用一根I/O数据线传输数据。每只DS18B20有独立的序列号,实现多个DS18B20传感器挂接在一根数据线上分别检测多点温度[2]。
单片机通过单线接口控制DS18B20温度传感器,检测温度先发启动命令,当DS18B20接收到温度转换命令启动转换,转换完成后的温度值以16位带符 号扩展的二进制补码形式存储在高速暂存存储器的高、低字节中;读取数据时低位在前,高位在后,数据格式以0.062 5 ℃/LSB形式表示。暂存存储器的高字节前5位的 “S”为符号位,当S=0时,直接将二进制位转换为十进制数;当S=1时,先将补码变换为原码,再计算十进制值。DS18B20完成温度转换后,把测得的 温度值与TH、TL做比较,若T>TH或T<TL,则将该器件内的告警标志置位,并对主机发出告警命令。
由于DS18B20转换后的代码并不是实际的温度值,所以要进行计算转换。温度高字节中的前5位用来保存温度的正负(标志为S的 bit11~bit15),高字节(MS Byte)的后3位和低字节8位来保存温度值(bit0~bit10),其中低字节(LS Byte)的低4位保存温度的小数位(bit0~bit3)。由于要求采用0.062 5的精度,小数部分的值,可以用后四位代表的实际数值乘以0.062 5,得到真正的温度值,本系统保留一位小数,即检测的温度精确到0.1度。
2.2 环境湿度检测
本系统采用HS1101湿度传感器采集环境的相对湿度,HS1101属于电容式湿度传感器,其工作机理是当基于电极间的感湿材料吸附环境中的水份时,其介电常数随之变化,等效电容与环境中水蒸汽的关系表示为[3]:
C=ε0×εμ×S/d
其中ε0是真空介电常数、εμ是感湿材料的介电常数、S是电容式传感器有效面积、d为感湿膜厚度。
HS1101湿度传感器的线性输出电压与湿度的关系[4]:
Vo=Vcc(0.00474×%RH+0.2354)
在环境湿度检测中,既可以利用HS1101湿度传感器的等效电容与湿度的关系,组成振荡器,将湿度与电容的关系转化为湿度与频率的关系,测量频率达到检测 湿度的目的;也可以利用HS1101湿度传感器的输出电压与湿度的关系,测量电压实现湿度检测。本系统利用HS1101的等效电容与湿度的关系,测出频率 实现湿度的测量。
3 温室控制系统硬件设计
智能化温室环境控制系统,要达到对温室内温、湿度等环境参数的检测与控制,系统必须包含三个部分:(1)信号采集输入部分。包括温度、湿度等环境参数的检 测;(2)信号转换与处理部分。将采集的信号转换为计算机可以识别的数据量,并由计算机进行相关处理;(3)输出和控制部分。控制喷淋、遮阳、通风、加热 等环境参数调节执行系统。
本系统主要由上、下位机构成,上位机实现人机操作界面的控制,并实时接收下位机上传的环境参数,结合植物生长所需要的最佳环境条件发送相应的控制命令给下 位机。下位机主要功能是实现对环境参数采集,同时与上位机进行串行通信,根据上位机的命令对温室内的环境参数进行调节,系统组成框图如图1所示。
3.1 信号采集单元
信号采集包括温度采集和湿度采集。DS18B20温度传感器采集温室内的环境温度,并直接转化为数字信号送入单片机进行处理,DS18B20传感器挂在单 片机的P0.7口线上;HS1101湿度传感器采集温室内的环境湿度,利用其等效电容的变化与湿度的关系,组成多谐振荡器,单片机检测振荡频率计算出湿 度,HS1101传感器组成振荡电路,其输出连接在单片机的P2.X口上,温、湿度检测接口电路如图2所示。
3.2 核心控制单元
本系统采用STC89C54RD+单片机作为下位机内核,它是一种低电压、高性能的CMOS 8位单片机,片内含有16 KB可反复擦写的Flash只读程序存储器和1 280 B的随机存取数据存储器、32个I/O口线、3个16位定时/计数器、一个6向量两级中断结构、一个全双工串行通信口,片内振荡器及时钟电路,指令代码完 全兼容传统的MCS-51系列单片机,具有ISP在系统编程功能,利于在线调试和产品开发。温室内的温度通过DS18B20采集送入单片机的P0.7口; 湿度转换为频率送入单片机的P2.X口,采集的环境参数交替在显示器上显示。同时,采集的环境参数通过P3.0和P3.1引脚至接口芯片MAX1483输 送至上位机进行处理,并等待上位机发送的控制命令,控制相应的执行机构。本系统的下位机与上位机之间的串口通信采用符合RS-485电气标准的 MAX485芯片,其抗干扰能力强,共模抑制比高,当以100 kb/s的速率传输时,可传送的距离为1.2 km,能实现多点对多点的通信,很好地解决了温室分布零散和集中管理的矛盾,非常适合温室规模扩大时测控系统的扩展,其硬件电路如图3所示。
3.3 环境控制执行单元
系统自动检测温室内的温度和湿度,控制执行单元驱动通风机、加热器、喷淋水泵、遮阳幕帘等设备,是智能控制系 统的执行者。控制系统启动后检测温室内的温度,当温度低于设定值时,启动加热循环水升温。本系统在植物底部和温室上方安装热水管道进行加温,管道内水温控 制在60~80℃,底部加温对植物的健康成长十分有益;上方管道加温使温室加热均匀,有利于植物生长。当温室的温度高于设定值时,开启通风机降温;若湿度 低于某设定值时,启动喷雾水泵增湿,反之,启动通风机去湿。
系统硬件电路如图3所示,单片机的P1口输出控制信号,实现对温室内各环境参数的调节,为避免电机产生的电磁干扰,采用光电耦合器隔离单片机I/O口与驱动电路。
4 温室控制系统软件设计
本系统软件采用模块化设计,C语言编写。考虑到温室多参数控制的复杂性,本系统采用优先调节原则,即在温室环境温度、湿度等要素中选择1个作为主要的控制 要素,然后再对其他要素进行控制,这样做的目的是减小系统控制复杂度。控制过程中考虑到检测和控制需要经过一段时间的延时,如温室喷雾后的一段时间内,空 气水雾影响空气湿度正常检测的问题等[5]。
软件设计中的程序模块主要包括主程序、温度采集子程序以及显示子程序等。系统主程序流程如图4所示,系统正常运行前首先进行初始化,设定温室内植物生长所 需的温度和湿度参数。然后检测温室内的主要参数——温度,调用温度采集子程序,与设定值比较判断并进行相应的处理,若温度合适,再检测其湿度参数。
温度采集子程序流程图如图5所示[6],温度采集使用的是一线式数字温度传感器DS18B20,其工作过程严格遵循单总线协议。主机首先发一个复位脉冲, 使所有挂在总线上的DS18B20芯片复位,接着发送ROM操作命令启动数据转换并延时等待。工作中系统对DS18B20的操作以ROM命令和存储器命令 形式出现,其中ROM操作命令均为8位长,命令代码分别为:读ROM(33H)、匹配ROM(55H)、跳过ROM(CCH)、搜索ROM(F0H)和告 警搜索(ECH)命令。存储器操作命令为:写暂存存储器(4EH)、读暂存存储器(BEH)、复制暂存存储器(48H)、温度变换(44H)、重新调出 EERAM(B8H)和读电源供电方式(B4H)命令等。单片机采集温度时,需要先发1个保持480 μs~960 μs的低电平复位脉冲,然后释放总线,等待DS18B20的应答信号。DS18B20在接收到复位脉冲后等待15~60 μs发出应答脉冲,应答脉冲保持60~240 μs。单片机从发送完复位脉冲到再次控制总线至少需要等待480 μs才能进行读写操作。
利用DS18B20温度传感器检测温度,实现单总线挂接多个传感器对多点或多室温度进行检测,但实际应用中单总线上传感器多于8个时,系统程序运行不正常,而线缆过长也造成测温数据错误,在现场布线中使用屏蔽电缆减少环境干扰。
植物温室智能控制系统采用先进的传感器技术和单片机技术,对环境的温度和湿度等参数进行检测及控制,集监、控、管于一体的温室智能化监控系统,实现了对植 物生长环境的智能化控制,改变了传统温室依靠人工操作的缺点,且基于单片机的控制系统实现了智能化、节能化、网络化,是现代温室智能控制的发展方向。
参考文献
[1] 张瑞华.温室环境自动监控[J].计算机与农业,2005(2):8-10.
[2] 马云峰.单片机与数字温度传感器DS18B20的接口设计[J].计算机测量与控制,2002,10(4):278-280.
[3] 李俊,张晓东.基于单片机的温湿度检测与控制系统研究[J].单片机开发与应用,2008,24(2):116-118.
[4] 朱亚东,师帅兵,胡磊.谷物湿度测量系统的设计[J].农业化研究,2009(4):87-89.
[5] 刘美琪,马斌强,李宝杰,等.多信息融合的智能温室控制系统研究[J].河南农业大学学报,2009,43(2):182-185.
[6] 周超,初从颖,侯朋飞.基于DS18B20的大棚温控系统设计[J].中国高新技术企业,2009(10):11-12.