基于单片机的温室自动灌溉系统设计
2018-10-26肖丽
肖 丽
(郑州轻工业学院继续教育学院,河南 郑州 450002)
随着科技的进步、人们对农业技术重视度及人们生活水平的提高,越来越多的反季节水果蔬菜出现在人们的生活中。大棚的数量也越来越多,因此,温室大棚内环境的控制便成为一个非常重要的研究课题[1]。传统的温室大棚控制措施存在一些问题,已经难以满足人们的要求,如温室灌溉技术落后、智能化程度低和农作物生长吸水效率低等。近年来,我国许多学者开展了温室自动化控制系统的研究,取得了一些成果。例如,潘荣敏等[2]综合利用传感器技术、MESH自组网络技术、无线互联网等嵌入式技术设计了一套基于物联网技术的温室智能灌溉系统。陈晓燕等[3]基于LabVIEW软件和Zig Bee网络技术设计了一种温室节水灌溉系统。刘俊岩等[4]设计了一套基于ZigBee的温室自动灌溉系统,该系统采用太阳能供电,具有节能环保的特点。梁月云等[5]根据温室环境复杂且很难建立精确数学模型的特点,设计了基于模糊控制的温室节水灌溉系统。部分灌溉管理系统研究成果已经在一些规模化果园和温室中得以应用,但存在传感器节点多、线路复杂、成本高、环境适应能力差等问题,导致自动灌溉的研究成果没有得到大范围应用。
本文将单片机引入温室大棚控制系统中,选用AT89C51单片机作为温室大棚控制系统的核心模块,外接湿度信号采集模块、人机交互模块、控制驱动模块及通讯接口模块,设计一种温室自动灌溉系统,并进行了仿真实验测试。
1 系统总体设计方案
根据温室的实际情况及系统的技术要求,采用AT89C51微控器作为控制与数据处理的核心,以构成温室自动灌溉系统。该系统的总体设计思路如图1所示,系统通过信息采集模块获取土壤湿度信息,送至中央处理模块进行处理,由中央处理模块给出灌溉控制信息,执行机构继电器收到此灌溉控制信息后进一步转化为水泵的通断来实现智能灌溉,以达到准确、定时、定量、高效地给作物自动补充水分的目的,从而提高农作物的产量。
图1 控制系统总体框图
该系统采用AT89C51单片机来实现,单片机是整个控制系统的核心[6-7]。单片机可将土壤湿度传感器检测到的土壤湿度模拟量通过芯片ADC0832转换成数字量,并传输给控制系统,单片机根据湿度传感器监测到的数据进行运算处理,进而控制继电器的通断,继电器控制水泵的启停,从而实现智能灌溉。
2 自动灌溉系统硬件电路设计
根据温室自动灌溉系统的功能需求,其硬件电路分为四大功能模块:信号采集模块、人机交互模块、控制驱动模块和通讯接口模块。各个模块共同构成一个具有适时适量灌溉功能的智能全自动温室灌溉系统。
2.1 信号采集模块
湿度信号采集是温室自动灌溉系统的关键组成部分,主要负责采集大棚的环境温度和土壤湿度信息。获取的信息越精确,越有利于提高智能灌溉系统的功能,同时也是实现智能全自动温室灌溉的重要前提。本设计采用土壤湿度传感器检测土壤的含水率,并将此信息传送给单片机,经过单片机的运算和处理来进行判断是否需要灌溉,从而达到智能灌溉的目的。
本系统选用YL-69湿度传感器,选用LM393作为电压比较器,ADC0832作为数模转换器。湿度采集模块的电路设计如图2所示。
模拟信号的输出通道1直接与芯片ADC0832的CH1端子相连接,通过AD转换模块得到土壤湿度的数字量。并传送给芯片ADC0832进行AD转换进而得出湿度值,然后再送给单片机的P2.1口进行运算处理,实现智能灌溉。
图2 湿度采集模块电路设计
2.2 人机交互模块设计
人机交互模块的设计主要是便于操作温室自动灌溉系统,主要由三部分组成,即键盘、LCD显示和报警电路。设计键盘是为了设置温室自动灌溉系统的重要参数,如土壤湿度的阈值、灌溉时间等。设计LCD显示可以让用户直观地观察到当前的土壤湿度以及用户所设置的土壤湿度阈值,还可以用来显示灌溉时间和灌溉流量。报警电路用来报警,当土壤湿度低于阈值时,报警器会发出响声,提醒用户即将进行灌溉。
液晶显示器选用1602-LCD型号。显示器的RS、RW、E管脚连接单片机的P2.7、P2.6、P2.5端口。第2引脚连接一个10 K的电位器,用来调节屏幕的对比度。D0~D7引脚连接单片机的P0.0~P0.7口,用来进行数据传输。单片机与显示器的数据线之间接着上拉电阻,阻值为10 K。这是因为单片机的P0口没有自带上拉电阻,需要外接。上拉电阻可以将输出电平拉高,以拉高输出信号,提高信号的抗干扰能力。另外,还能起到限流的作用,防止液晶显示器被烧坏。LCD显示模块的电路图如图3所示。
图3 LCD显示模块电路设计
为了安全起见,本系统设置报警电路,选用声光报警电路。当温室内土壤湿度低于用户预设值的下限时,报警器会发出响声同时继电器通电线圈吸合,开启水泵进行灌溉。当土壤湿度达到预设值的上限时,继电器断电,关闭水泵停止灌溉,报警器同样会发出响声。当温室自动灌溉系统出现异常情况时,如果需要灌溉时水泵并没有处于工作状态或者土壤湿度达到要求时仍在灌溉等,报警器将会一直发出警报,这时需要人工手动关闭。报警器的作用是用来引起人们的注意,避免事故的发生。报警电路的蜂鸣器选用的是无源蜂鸣器。
2.3 控制驱动模块设计
水泵是温室自动灌溉系统的执行设备,通过控制水泵的开关,实现对温室大棚内水果、蔬菜的自动浇灌。当土壤传感器测量的土壤湿度低于湿度预设值的下限时,单片机发出信号给控制驱动模块,使电磁继电器带电吸合线圈,进而开启水泵,实现自动灌溉任务。
当土壤湿度传感器测到的土壤湿度值低于预设值的最低值时,单片机的P2.3口会变为低电平,三极管导通,使得电磁继电器带电吸合线圈开启水泵进行浇灌。由单片机输出的信号都很微弱,所以选用三极管进行放大驱动电磁继电器,通过继电器的闭合来实现对水泵的控制。在继电器两端并联一个二极管是为了保护三极管,防止三极管被击穿。发光二极管是用来显示水泵的工作状态。当水泵工作时,他就会发光,是用户直观看出水泵当前的工作状态。控制驱动电路原理图如图4所示。
图4 控制驱动模块电路图
2.4 通讯接口模块设计
温室自动灌溉系统的通讯接口模块采用的是典型的USB接口,在PC机上编写程序,下位机可以通过USB接口从上位机中下载程序,也可以通过USB接口数据线将上位机与下位机相连,进而实现上位PC机与下位机之间的通讯。用户可以通过人机交互模块按照实际情况设定土壤湿度的预设值范围,并将此范围传输给单片机,单片机也可以及时将采集的环境信息和温室自动系统的运行状态反馈给上位机显示。
通讯接口电路原理图如图5所示,该模块是用来实现电脑与单片机之间的通讯,采用的是典型的程序下载电路USB转串口电路,其主要控制芯片为PL2303。该芯片可以转换USB信号与RS232信号。上位PC机和单片机存储的都是USB数据,通过芯片PL2303可以将USB信号转换成RS23信号,从而实现二者之间的通讯。
3 系统软件设计
系统功能的实现是通过程序来完成的,软件的设计直接决定系统的运行效率和可靠性。本系统采用C语言编程,首先要设计好主程序,然后将子程序设计好封装起来,设计的系统主程序流程如图6所示。初始化程序包括液晶显示初始化和定时器中断系统初始化两部分。子程序包括土壤湿度采集子程序、显示子程序、按键处理子程序和数据处理子程序。
图5 通讯接口电路设计
图6 系统主程序流程图
4 系统仿真
在硬件设计和软件设计的基础上,Proteus软件搭建了温室自动灌溉系统仿真系统。采用的是Proteus软件绘制电路图,用一个电位器来模拟土壤湿度信号,用KeilC51来编译调试程序,然后把程序导入单片机系统中进行电路仿真。仿真结果如图7所示。通过调整湿度阈值信息,水泵可以根据湿度信息自动启动和关断,达到定时、定量地给作物自动灌溉的目的。模拟水泵故障信息,报警系统能够及时报警,实现故障报警功能。设定土壤湿度报警值,满足不同植物的灌溉需求,具有良好的经济效益和社会效益。
图7 灌溉系统电路仿真图
5 结语
本文以AT89C51单片机为核心控制器设计了一种温室自动灌溉系统,该系统具有良好的适应性,可通过按键