龙 新 刘彬彧
(1.衡阳市气象局,湖南 衡阳 421000;2.长沙农业气象试验站,湖南 长沙 410000)
我国是一个水资源短缺的农业大国,大力推广节水农业是我国农业发展的一种趋势。节水农业是以节水灌溉为核心,节水灌溉是通过采用先进的灌溉方法和技术科学的将水资源尽可能均匀、适度的分配到作物的根区土壤中,使土壤的湿度维持在农作物生长所需水分的周围,从而达到既节约水资源又保证作物的健康快速生长[1]。
喷灌技术是近年来慢慢发展起来的一种节水灌溉技术,它是通过压力管将水传送到田间[2]。压力由水泵加压或自然落差形成,然后由喷头将水均匀的喷洒在土地上,它几乎适用于除水稻、蔬菜和果树等大田作物,并且对土壤、地形等条件适应性强。喷灌技术使农田灌溉从传统的人工劳动转换为自动化作业,这加快的现代化农业的发展。具有省水、省工、节能、增产等优点[3]。我国现在比较常用的几种喷灌类型主要有:固定管道式喷灌、移动管道式喷灌、中心支轴式喷灌机、滚移式喷灌机、大型平移喷灌机、中小型喷灌机组[4]。
目前在喷灌技术的研究、开发与使用做的最好的国家是以色列[5]。以色列是最具代表性、典型性长期致力于节水新技术的开发的国家。为了解决水资源的短缺,以色列开发了一系列用于温室灌溉的产品,其温室灌溉的水资源利用率可达到95%。其中他们的喷灌技术以微灌和滴管为主,微灌方法的采用给施肥带来了便利,这促进了水肥喷灌技术的兴起。总的来说他们的灌溉系统普遍采用计算机控制,湿度传感器传回土壤湿度的实时信息,自动化程度高、可靠性高。伴随水肥喷灌技术的发展,喷灌不仅可以喷水,还具有施肥、施药、喷雾降温的功能[5]。此外,美国、法国、澳大利亚等国家都已开发出成熟且系列化的自动喷灌控制系统。
我国也已经开发出了温室喷灌的自动控制装置。如早期江苏大学研制的以8051单片机为核心的自动喷灌控制器。我国喷灌技术的发展起步时间早,20世纪50年代从苏联引进喷灌技术开启了历史的先河;1973年开始喷灌技术便在一些地区使用,1978年,正式将喷灌技术列入国家农田水利建设计划;在1984年到1995年期间,我国大力引进外国先进技术,像中心支轴式喷灌机和大型喷灌机组等,这个时间段,喷灌科研和机具设备的研究也较快速的发展,能自行生产各种管道、管件[5]。基于前期技术的革新和对节水灌溉的重视,从1996开始我国喷灌技术大发展,目前还处于节水灌溉的大发展阶段。伴随我国水资源日益短缺,社会节水意识的日益增长,喷灌技术的研发与使用日益和渠道防渗、低压管道输水灌溉、微灌等多种技术紧密相连。
但是,以单片机研发的控制器选用芯片功能较少,电路扩展会导致系统复杂化加大,并且成本高,实用化程度低,难于推广。我国幅员广阔,各种自然条件,经济条件和管理水平的差异也阻碍了自动喷灌技术的发展和推广。虽说我国能够自行生产喷头、管道、管件等设备,在数量上能满足喷灌技术的发展所需,但产品质量的可靠性和稳定性仍有很多问题。
本项目的设计目标主要实现对矩形区域进行均匀灌溉。用湿度传感器和温度传感器实时监测土壤湿度和温度,这些信息将通过A/D转换器反馈52单片机。单片机会根据温、湿度传感器监测的信号控制水泵的转速,从而改变控制器喷灌管道内的水压,对矩形区域进行均匀喷灌。
整个控制系统由电源、微处理器、数据采集电路、输出驱动电路、显示器、复位电路、晶振电路组成,结构框图如图1所示。
图1 系统结构图
微处理器采用STC公司生产的一种低功耗、高性能COMS8位微控制器STC89C52;电源使用直流5V和12V电压;复位电路由一个按键、电阻和电解电容组成;晶振电路由12M晶振和2个电容组成;湿度传感器使用HA2001型土壤湿度水分传感器;温度传感器采用DS18B20温度传感器检测地温;AD转换芯片采用美国德州仪器生产的8位串行A/D转换器芯片;采用LCD1602(液晶显示器)作为显示器,LCD1602是一种工业字符型液晶,可同时显示16×02个字符;驱动输出电路由L298驱动芯片和若干二极管以及一个直流电机组成。
系统中除了电机是12V供电外,其他全是5V电压供电,图2是自行设计的一个简易电压源。该电压源的主要元件包括:变压器、二极管、7805和电容等元件。
图2 电源模块电路图
单片机最小系统模块主要包括STC89C52单片机、复位电路、晶振电路、按键电路。如图3所示为STC89C52单片机的PDIP封装引脚图
图3 STC89C52单片机引脚图
2.3.1 复位电路
单片机复位电路是使CPU(中央处理器)和系统中的其他功能部件都处在一个确定的初始状态, 并从这个状态开始工作[7]。电路中采用10K电阻和22uF电容,可使单片机在上电的0.22S左右自动复位。按键复位是使电容处于短路,抬升RST端电位而使单片机复位。
图4为本文设计的单片机复位电路。
图4 单片机复位电路
2.3.2 晶振电路
晶振电路主要由晶振和电容组成,产生单片机正常工作所需的时钟频率,提供的频率越高,单片机的工作速度越快,反之亦然。晶振在共振状态下能够把电能和机械能相互的转换,提供精确稳定的单频振荡[6]。下图5为晶振电路。
图5 单片机晶振电路
2.3.3 按键电路
本文设计的按键电路只用4个按键组成。按键模块外接STC89C52单片机的I/O口以及接地。下图6是按键电路模块。
图6 单片机按键电路
显示模块采用液晶显示LCD1602。使用液晶显示相比于LED数码管显示,更加直观清晰、显示操作简单。
LCD1602有16根引脚,如下图7所示。
图7 LCD1602引脚图
LCD1602各个引脚接口的作用说明如下表1所示[7]。
表1 LCD1602引脚作用
图8是1602液晶显示写操作时序图[8]。
图8 LCD1602时序图
由上图可知,操作1602液晶显示的流程如下:
(1)通过RS确定是显示数据还是显示命令。
(2)读/写控制端设置为写模式,即给低电平。
(3)需将数据或命令传送到数据线上。
(4)给E一个高脉冲将数据传送到液晶控制器,完成写操作。
LCD1602基本写操作时序包括写指令和写数据[7]:
(1)写指令,输入:RS=L,R/W=L,DO~D7=指令,E=高脉冲,输出:DO~D7=数据。
(2)写数据,输入:RS=H,R/W=L,DO~D7=数据,E=高脉冲,输出:无。
LCD1602与单片机连接图如下图9所示。
图9 1602电路图
单片机向LCD1602写指令或数据的工作过程:
单片机向LCD1602写入指令时,单片机先将与LCD1602的RS、RW、E相连的P2.0、P2.01、P2.2等引脚置为低电平,再将指令码从P0口传给LCD1602的DB0~DB7。将E先置为高电平后再置为低电平。LCD1602检测到E的高脉冲后就将DB0~DB7数据口上的指令码读取,这样就完成了一次指令的写入[8]。
向1602写入数据时,先将单片机与LCD1602的RS相连的P2.0脚置为高电平,与RW相连的P2.1和与E相连的P2.2等置为低电平,再将数据从P0传给LCD1602的DB0~DB。再将E先置为高电平后再置为低电平,LCD1602检测到E的高脉冲后就将DB0~DB7数据口上的数据读取,这样就完成了一次数据的写入[8]。
要实现自动喷灌则需要实时监测土壤的湿度,若土壤湿度低于设定值,驱动电机喷水。设计中采用土壤湿度传感器监测土壤的湿度,下图10为土壤湿度传感器的模拟电路。
图10 湿度传感器模拟电路
此图中,1、2、3线分别连接A/D转换芯片的1、2、3脚,只要调节电位器的电阻大小,就可以改变反馈给单片机的脉冲大小。目前常见的土壤湿度传感器有FDR型和TDR型,即频域型和时域型[4]。本设计采用的土壤湿度传感器为目前比较常用的HA2001,型号是FDR型。FDR型频率反射仪是一种用来测量土壤水分的仪器。它利用电磁脉冲原理,根据电磁波在介质中传播频率来测量土壤的表观介电常数(ε),从而得到土壤容积含水量(θV)。这款土壤湿度传感器体积小巧化设计,携带方便,安装、操作及维护简单;结构设计合理,材料的选用保证了使用寿命;土质影响较小,应用地区广泛;测量精度高,性能可靠;响应速度快,数据传输效率高。下面介绍HA2001的主要技术参数,如下表2所示。
表2 HA201参数
温度监控也是设计中的一个主要环节,当检测到土壤温度高于设定温度时,驱动电机喷水降温。下图11是本设计的温度检测模块的电路。
图11 温度传感器电路
温度测量模块采用DS18B20温度传感器,1脚接地,2脚和单片机P1口相连,3脚接电源。DS18B20温度传感器的测量温度范围可达到-55℃~+125℃,固有测温误差为1℃;工作电压为3V~5.5V;测量结果以9~12位数字量方式串行传送。
采用TLC549A/D转换模块,可与通用微处理器、控制器通过CLK、CS、DATA OUT三条口线进行串行接口,并可按比例量程校准转换范围[9]。下图12为TLC549各引脚图。
图12 TLC549引脚图
图13为A/D转换模块的电路连接图
图13 TLC549电路连接图
TLC549芯片1、2、3脚与湿度传感器连接,5、6、7脚与STC89C52单片机的P1.0、P1.1、P1.2连接[9]。
驱动电路主要由驱动芯片L289和二极管等器件组成,L298内部包含4通道逻辑驱动电路,可以驱动2个两相电机,也可以驱动1个四相电机[7]。下图14为L298的引脚图。
图14 L298引脚图
表3为L298驱动电机的功能的逻辑电位。
表3 L298输出逻辑电位
下图15为整块驱动电路。
图15 L298电路连接图
以上部分分别是硬件电路的各个模块,下图16为本设计硬件电路的总体设计图。
图16 硬件系统电路图
本设计的软件代码是以Keil软件为平台,使用C语言编写。
本设计的控制系统的软件模块主要由主监控程序、按键操作及处理程序、动态显示程序、A/D转换程序、L298驱动程序以及输出控制程序等。下图17是本设计的软件系统框图。
图17 软件系统框图
系统主程序软件主要包括:系统的初始化、A/D将获取相关数据通过单片机控制液晶显示、判断是否复位和设置、判断获取的数据是否满足电机驱动的初始条件。如下图18所示。
图18 主程序流程图
单片机的P1.0、P1.1、P1.2口与TLC549连接。TLC549将湿度传感器检测到的模拟信号转换为数字信号传入单片机中。下图19是TLC549程序流程图。
图19 TLC549程序流程图
以下是TLC549完成A/D转换的程序代码
sbit AD_CS=P1^0; //片选引脚
sbit AD_SDO=P1^1; //数据输出引脚
sbit AD_SCLK=P1^2; //时钟信号引脚
unsigned char adc()
{
unsigned char i;
unsigned char ad_data=0;
AD_CS=0; //选通549芯片
for(i=0;i<=7;i++) //读取A/D转换结果
{
AD_SCLK=1; //产生时钟脉冲
ad_data= ad_data*2; //数据左移一位
if(AD_SDO==1) //读取该位数据
ad_dat++;
AD_SCLK=1;
}
AD_SCLK=0;
AD_CS=1; //关闭549芯片
return(ad_data) //返回转换结果
}
设计中通过单片机的P0口接LCD1602的DB0~DB7,P2.6、P2.7接LCD1602的RS和E,与LCD1602进行通信。流程图如下图20所示。
图20 单片机与1602通信过程
单片机向LCD1602写入指令时,单片机先将1602的RS(P2.6)、E(P27)等引脚置为低电平,再将指令码从DB0~DB7(P0)传给1602,再先把E置为高电平后再置为低电平。1602检测到CE的高脉冲后就将DB0~DB7数据口上的指令码读取,这样就完成了一次指令的写入[8]。
单片机向LCD1602写入数据时,单片机先将1602的RS(P2.6)引脚置为高电平, E(P2.7)等置为低电平,再将数据从DB0~DB7(P0)传给1602。再先把E置为高电平后再置为低电平,1602检测到CE的高脉冲后就将DB0~DB7数据口上的数据读取,这样就完成了一次数据的写入[8]。
本设计采用驱动电路控制电机的转速,因此驱动芯片L298是单片机和电机之间通信的一个桥梁。以下是驱动芯片的控制程序[7]。
sbit L_IN1=P3^5;
sbit L_IN2=P1^7;
sbit ENA=P1^6;
void timer0(void) interrupt 1
{
static uchar count0;
static char pwm_val;
static char pwm_time;
TH0 = 0xfc;
TL0 = 0x18; //1ms
if(beep_en)
Beep = ~Beep;
else
Beep = 1;
if(++ count0 == 20) //20
{
count0 = 0;
key_en = 1;
beep_en = 0;
}
if(++ pwm_time >= 10) //10ms
{
pwm_time = 0;
pwm_val = adj_val;
}
if(pwm_val > 0)
{
ENA = 1; //开
pwm_val --;
}
else
{
ENA = 0; //关
}
该系统是一款基于STC89C52单片机的智能喷灌系统。硬件电路主要由电源模块、单片机最小系统、传感器检测电路、A/D转换以及驱动输出电路组成,软件系统主要由主监控程序、按键操作及处理程序、动态显示程序、A/D转换程序、L298驱动程序以及输出控制程序等组成。经过实验与调试表明,该系统制作成本较低且性能良好,有利于推广应用。
对于此系统还可拓展其它功能,如:
(1)可以增加更多参数的检测功能,比如:光照、空气湿度等,使控制更精准;
(2)可以增加湿度上限自动报警功能,以预防暴雨天气;
(3)可以增加可通按键选择不同的作业条件,应对不同作物喷灌条件;
(4)可以增加设置不同时段的湿度下限,更加有利于作物的健康生长。