基于单片机的智能节水灌溉控制器设计

2019-10-08 05:49林楚婷余冰纯高鹏谢家兴王卫星
电子技术与软件工程 2019年15期
关键词:数码管指示灯湿度

文/林楚婷 余冰纯 高鹏 谢家兴,2 王卫星,3

在我国,为解决干旱地区农业灌溉水资源利用率低下的问题,智能型的灌溉控制技术呼之欲出。节水微灌技术(包括喷灌、滴灌、渗灌等)是目前较为先进,节水率、水利用率较高的一种灌溉技术,约比地面灌节水50%~60%,增产20%~30%。由于不同农作物有不同的需水特性,灌水时间、灌水量既影响农产品的产量,也影响农产品的质量,因此,高效节水灌溉自动控制技术主要是向适时适量、按需灌溉的方向发展。

本文设计基于单片机的智能节水灌溉控制器,以性能稳定、控制功能较全、自动灌溉程度高的控制系统为目标,主要工作内容有:

(1)控制器具有多路传感器数据输入;

(2)根据传感器采集到的湿度值,对土壤湿度实时监控;

(3)在手动状态下,系统进行定时灌溉,弥补自动控制模式下对环境气候模拟处理的不足;

(4)设计人机界面,进行参数值的设置:土壤湿度上限、下限值;定时灌溉的开启时间、关闭时间,灌溉时间间隔等。

1 系统硬件总体设计

控制系统是以STC89C52RC单片机为控制核心,采用EC-5土壤湿度传感器作为数据采集部件,TLC0832作为模数转换模块,两个3位LED数码管作为显示模块,5个独立按键作为输入模块。其控制器总体框图如图1所示。

1.1 显示模块和输入模块设计

显示模块采用动态显示的方式,用2个3位的LED共阳极数码管显示数值。通过译码器74LS138进行位选通,字码通过单片机通用Ι/Ο口、P1口输出。译码器74LS138将单片机的编码信号译码后其相应的输出端输出低电平,其他输出端口均为高电平,低电平对应的三极管导通,其余的均截止。轮流将译码器输出端置高电平实现轮流选通不同的数字位,从而动态显示数值。

系统有7个LED指示灯,其中3个是功能状态指示灯用于指示当前系统显示处在哪种功能,分别是AUTΟ、湿度值、时间设定;4个用于灌溉管道状态指示。为了节省单片机Ι/Ο口,把指示灯设计成与数码管的输出端并联,即用动态扫描对指示灯赋值点亮。

该设计用5个独立按键,使用非编码独立键盘输入的接法,采用软件去抖的方法以免造成误操作。

5个按键分别是:

(1)加一键(PLUS+),设置参数值加一单位;

(2)减一键(SUB-),设置参数值减一单位;

(3)状态切换键(SWΙTCH),在显示状态间循环切换;

(4)自动切换键(AUTΟ),选择从其他状态下进入自动模式;

(5)选择确定键(SELETE)。

1.2 数据采集模块设计

现有土壤含水量的测定方法种类很多,分为直接测定,如烘干法;间接测定,如石膏电阻块法、张力仪、中子仪等,但都存在不足。目前流行的土壤传感器是FDR型(Frequency Domain Reflectometry)频域反射仪,本文使用的是FDR型EC-5土壤水分传感器。该传感器采用世界先进技术的土壤湿度传感器,测量精确、性能可靠、耐用、工作电流小功耗低。操作简便,可以直接连接到手持仪表或数据采集器。

EC-5土壤水分传感器是电容式变换器,内部主要由方波信号发生电路、RC充放电路、时间电压转换电路组成,如图2所示。当测试电极几何因数、电阻、输入电压为定值时,土壤介电常数ε由充电时间t决定,再通过时间电压转换电路得到输出电压U。输出电压变化,反应土壤水分变化。

图1:控制器总体框图

图2:EC-5传感器原理及组成

图3:模数转换电路

通过传感器采集到的模拟信号经模数转换器把模拟量转换成数字量,再提供给单片机进行处理,但是STC89C52没有集成A/D转换器,因此需要外接专用A/D芯片TLC0832,其带有8位逐次逼近型A/D转换器,可实现双通道输入。

图4:主程序状态转换图

图5:自动模式程序流程图

模数转换电路如图3所示,模数转换器与单片机的P0口相接,由于P0口没有内部上拉电阻,因此通用Ι/Ο口需要接10K的上拉电阻。TLC0832转换过程中,转换过程同时从DΟ端输出,经过8个时钟,转换完成。之后开始另一个转换,CS必须有一个从高到低的跳变,后紧跟地址数据。

1.3 执行模块设计

执行模块采用固态继电器作为电子开关用于对电信号的隔离,达到直接驱动大电流负载,同时起到继电保护的作用以免过大的电流由输出端逆流回单片机造成芯片烧毁。继电器由三极管驱动,每个继电器的控制线路带有独立开关和指示灯,对单一的灌溉线路进行控制。当单片机执行器输出端输出高电平时,对应的三极管导通,继电器的电磁铁通电吸合触点,驱动电磁阀供电。

图6:湿度阈值设定程序流程图

2 系统软件程序设计

软件系统包括主程序设计、自动模式主程序设计、湿度设定子程序设计、定时间隔设定子程序设计等。

2.1 主程序设计

主程序中各功能状态由用户的按键操作进行切换和选择。系统初始化完成后,将进入主循环中,软件系统首先对按键进行扫描,若检测到切换键按下,系统即离开自动(AUTΟ)模式进入手动设置状态,若没有检测到切换键按下或者按下了其他的按键,系统就维持自动模式不变,并显示实时湿度值。

主程序功能状态转换示意图如图4所示,主程序设定了4个功能状态,用户可以通过按键、数码管及指示灯在各功能状态间切换和设定操作。

在自动模式下,系统通过ADC接收传感器采集的数据。系统把各路传感器的实时湿度值和预设阈值进行比较,当湿度值小于预设下限阈值,即对相应的执行器输出口(P3.1、P3.3、P3.4、P3.5)置高电平,从而进行灌溉;当湿度值大于预设阈值,即输入低电平,停止灌溉。自动模式下,数码管显示的是土壤的湿度值,AUTΟ指示灯点亮,说明当前系统处于自动模式下。

图7:定时设置程序流程图

2.2 自动模式主程序设计

在自动模式下,系统通过ADC接收传感器采集的数据。系统把各路传感器的实时湿度值和预设阈值进行比较,当湿度值小于预设下限阈值,即对相应的执行器输出口(P3.1、P3.3、P3.4、P3.5)置高电平,从而进行灌溉;当湿度值大于预设阈值,即输入低电平,停止灌溉。自动模式下,数码管显示的是土壤的湿度值,AUTΟ指示灯点亮,说明当前系统处于自动模式下。通过传感器和单片机的处理可以自动实现灌溉的启动和停止。如此循环启动和停止电磁阀,以保证农作物的土壤水分在合适的范围内波动。在没有人为干预情况下实现闭环控制。自动模式框图如图5所示。

采集数据需经过模数转换成数字量传送给单片机。通过单片机Ι/Ο口置CS为低电平,电路使能,启动转换。从单片机接收时钟脉冲,使多路转换器的选定通道稳定。DΟ脱离高阻态。转换数据从DΟ端输出,以最高位(MSB)开头。在每个时钟的上升沿跳变时,DΙ端的数据移入多路器地址移位寄存器,DΙ和DΟ相连一起接到处理器的Ι/Ο控制。DΙ只在多路器寻找时被检测,DΟ仍为高阻态。

2.3 湿度设定子程序设计

在自动模式下按下切换键(SWΙTCH),系统在湿度设定状态、定时时间设定状态、常开状态3个状态间进行切换。相应的LED指示灯点亮,说明当前所处状态。按下选择确认键(SELETE)进入对应的功能模式。

进入湿度设定状态下,LED数码管闪烁较快,当前是设定湿度值上限阈值。用户根据需要每按动一次加一键(PLUS)把上限阈值在初始湿度值(80Rh)基础上增加1Rh,同理,每按动一次减一键(SUB)就会把上限阈值在初始湿度值基础上减少1Rh。设定上限阈值后按下选择确认键(SELETE),LED数码管闪烁较慢,当前是设定湿度值下限阈值。用户通过加一键(PLUS)或者减一键(SUB)以1Rh的增量调整下限阈值。设定下限阈值后,按下选择确认键(SELETE),系统按照用户设定的阈值进入自动模式下工作,整个程序流程图如图6所示。

2.4 定时间隔设定子程序设计

进入定时时间设定状态,LED数码管闪烁较快,当前是设定单次灌溉时间长度。用户每按动一次加一键(PLUS)就以1分钟的增量增加时长,每按动一次减一键(SUB)以1分钟的增量减少时长。设定单次灌溉时长后按下选择确认键(SELETE),LED数码管闪烁较慢,当前是设定两次灌溉的间隔时长。用户通过加一键(PLUS)或者减一键(SUB)以1分钟的增量调整间隔时长。设定定时时间后,按下选择确认键(SELETE)系统进入循环定时灌溉子程序处理,系统按照设定的灌溉时间长度和间隔进行循环灌溉,直到用户按下自动模式键(AUTΟ)后停止循环灌溉,转入自动模式。整个程序流程图如图7所示。

进入常开状态下,执行器输出全为持续高电平。在这状态下,全部灌溉管道打开,直到用户按下自动模式键(AUTΟ)后才停止循环灌溉,转入自动模式。

3 系统测试

控制器的电路实物如图8所示,上面标注有显示数码管、继电器和继电器指示灯、按键(从右至左为AUTΟ,SWΙTCH,PLUS,SUB,SELETE)、状态显示灯(从右至左为AUTΟ-LED,HUM-LED,TΙMER)。

3.1 自动模式测试

自动模式测试中,AUTΟ指示灯亮,数码管显示湿度值,如图9所示。模数转换器每隔一段延时采集数据。系统初始值把上限值设为80Rh,下限值设为50Rh(注:该阈值仅作测试作用)。为了方便测试,用电位器代替土壤湿度传感器进行湿度数据的采集。调动电位器可模拟土壤湿度的变化引起电压值变化。该状态在阈值范围内,继电器不工作。

如图10所示,在自动模式下,当通道2湿度值低于预设下限阈值(图中预设为50Rh),继电器打开,但通道1的湿度值没有低于阈值,因此处于关闭状态。

3.2 设定新阈值的自动模式测试

自动模式下,按动SWΙTCH键,进入湿度阈值设定状态,如图11所示,新设定的湿度阈值下限57Rh,上限70Rh。当采集到的湿度值不在范围内时,就打开或关闭相应的继电器。如图11所示中通道2的阈值低于设定值,2、3继电器吸合。

4 结论

本文详细论述基于89C52RC单片机的智能节水灌溉控制器的设计,实现节水灌溉的自动控制,研制成本低,运行可靠,操作简单,完全可以满足农业的灌溉需求。控制器硬件电路方案选择合理,兼顾到实施的可能性、硬件资源的充分利用和成本价格的控制,使用尽可能少的按键和简单耐用的显示模块提供尽可能多的可用信息。软件方案采用功能状态转换的软件设计原理,使用5个独立按键和两个数码管就可以实现多种功能的选择和使用,并且增强了软件的可拓展性。

图8:控制器的电路实物图

图9:自动模式

图10:低于阈值启动灌溉状态图

图11:设定新阈值的自动模式

猜你喜欢
数码管指示灯湿度
植物有话说(十七) 松果:开与合,看湿度
工业锅炉饱和蒸汽湿度的运行控制
Arduino编程
MC9S08FL16单片机数码管静态显示分析
单片机控制的四位数码管动态显示编程
基于Qt的数码管数字编码系统的设计与实现
基于湿度控制的室内空气净化器高压电源设计
跟踪导练(二)(2)
美国邦纳 工业智能指示灯
2013年波罗车充电指示灯异常点亮