基于AT89C52单片机的智能浇花系统总体设计

2018-01-26 06:22沈俊慧
福建开放大学学报 2017年6期
关键词:花草水箱按键

沈俊慧

(福建船政交通职业学院,福建福州,350007)

一、引言

随着我国经济发展水平的提高,人民群众对美好生活的需求越来越迫切。在自家阳台或院子里种植自己喜欢的花草成了人们日常美好生活需求的一个组成部分。但随之而来的烦恼,遇到有事外出多日,家中无人照管心爱花草植物时,在外很怕回家看到的是花草早已奄奄一息,甚至有的已枯死,心中美好皆一去不复返。为解决这个问题,近年来,国内外市场上应运而生了多种自动浇花器,其系统功能与控制原理也存在着不同,但目的都是为了保证花草的正常生长,方便人们的日常生活。

二、自动浇花控制系统研究现状

目前,市场上大多数自动浇花器是利用液面高度差,采用渗透的方式浇花,这种浇花方式以微小的流量湿润植物根部,过程是连续的、不间断的,采用这种方式只能保证花草不因缺水而枯死,存在以下问题:一是不能自动判断花草实际需水量,容易造成水的浪费,事倍功半;二是若遇连续的阴天或雨天,有些需水量不大的花卉会因土壤含水量过高导致根部溃烂,甚至涝死,适得其反。

还有一些电子类自动浇花系统,可以设定何时进行浇灌及浇灌时间,每天自动定时完成用户设定的浇花作业,类似大型花卉基地的喷灌系统。这种适当于家庭的改进版产品,虽然能够解决全家外出的花草浇水问题,但也存在以下缺陷,一是浇水量的设置只能通过一个电位旋钮凭感觉进行调节,不能真正与花草“交流”,即不能知道花草何时需要浇水,需要多少水量,容易造成水量设定值偏高或偏低,且浇水不当难以促进花草生长,甚至还会阻碍其生长。二是系统只能控制单路,即没有考虑不同花卉需水量和浇花时间的差异,不能根据花卉各类需水量自动调节,所有不同类型的花卉同时浇水,且浇灌时间长度固定,浪费水资源,也不利于花卉的生长。

为解决以上问题,亟需设计一款让用户通过按键准确调整多路温湿度值并且通过液晶显示屏实时显示土壤温湿度值的系统。基于AT89C52单片机的智能浇花系统可以满足要求。

三、系统总体设计

本系统设计以AT89C52单片机为核心,温、湿度传感器24小时周期性的采集信息并传给控制器,根据设定数值判断是否需要浇水;采用LCD12864液晶显示器显示实时的温、湿度数值,用户可以根据天气情况和不同花卉需水量利用按键模块调整浇水时间和浇水量;采用水位水箱检测模块实时检测水位,当水箱无水时能够感应并通知用户进行补水,确保浇水系统的正确运行。系统总体设计框图如下图1所示。

图1 系统设计框图

四、硬件总体设计

(一)AT89C52单片机

本系统采用AT89C52单片机,它的价格低廉,易学易用,是一款低功耗、高性能的8位微控制器。 它自带的8K系统可编程Flash 存储器,有利于本系统在断电情况下保存按键输入模块修改的浇水参数。在智能浇花系统启动后,单片机会根据传感器采集到的实时温、湿度值与使用者预先设定的浇花域值相比较,若低于域值的下限,则会发出一个控制信号,继电器打开,水泵工作,系统开始浇花;若高于域值的上限,单片机也会发出一个控制信号,继电器关闭,系统停止浇花。为了使单片机正常工作,加配相应的外围电路,如时钟电路、电源电路、复位电路。

(二)温、湿度数据采集模块

土壤湿度检测系统和温度检测系统由YL-69湿度传感器、DS18B20温度传感器、ADC0832数模转换模块组成。YL-69湿度传感器可以直接埋入土壤,适合于盆栽、苗圃等需要检测土壤湿度的环境。湿度传感器与ADC0832数模转换模块连接,采集到的模拟信号通过A/D转换输出数字信号,单片机系统得到土壤的实时湿度值。湿度检测范围可以通过未埋入土壤(即悬空)和全部泡入水中两组数据进行精度调整。如悬空时测得数据为159,全部泡入水中得数据为255,若把YL-69湿度传感器放入实测土壤中,得到的数据为t,则获得的湿度值为(255-t)×100/(255-159)RH。同样DS18B20温度传感器检测到实时天气温度值,通过单片机的I/O口把检测到的温度值送入单片机。温、湿度的实时数据通过LCD12864显示出来。

(三)液晶显示与按键模块

液晶显示模块采用128×64点阵的汉字图形液晶显示模块,可显示8列×4行16×16点阵的汉字及图形,自带字节库,并行连接,无需存储,使用方便。液晶显示模块在该系统的作用主要是显示系统当前工作状态,并能显示使用者根据天气情况与花类修改的域值。目前普通的浇花器通过电位器调整,没能把具体调整好的数值显示出来,只能靠感觉。相比之下,利用LCD12864显示屏,使用者能直观地知道自己调整的数值。用户调整浇水域值是通过本系统的独立式按键完成,可以进行启动、复位、花卉种类选择、数值调整、确定选择。因为采用按键开关,会存在抖动现象,在编写系统程序时可以利用程序延迟按键识别时间来消除抖动现象。

(四)水位水箱检测模块

本系统的供水系统采用水箱给水,系统在判断给哪路花卉浇水前需要先进行一个水箱水位的判断,若水箱水位满足给定条件,即水箱水足够,才能进一步判断各类花卉当前湿度值;否则系统停止工作。因此,可在水箱外部装设一个液位传感器,当水位满足时,系统则可以进行下一步的运转,若判断水位不满足条件,则停止下一步的程序判断,并进行蜂鸣器的报警,这时候需要进行人工给水。液位传感器的电路如下图2所示。

(五)水泵控制模块

本系统设计一个水泵供多路浇花,因此需要多个5V低电平继电器,每个继电器控制一路。本系统预先设置两路浇花。当AT89C52单片机的P1.6引脚或1.2引脚输出信号为低电平时,触发相应的继电器吸合,同时状态指示灯点亮,继电器的常开触点闭合,相当于水泵开关闭合,水泵开始工作。反之,当两个引脚输出信号为高电平时,继电器的常开触点释放,状态指示灯熄灭,相当于水泵开关断开,水泵停止工作。 系统水泵采用家用直流微型潜水泵,最大水流量1.2L/H,浇花喷头采用花洒喷头,可以实现均匀喷水,以防局部土壤的湿度过高,测量不准确。

五、系统软件设计

系统选用AT89C52单片机,软件选用C52语言编程,系统由多个模块整合而成。系统通过温湿传感器对物理量进行采集准备,经过AD 转换,把数字信号传给单片机,单片机先通过水箱水位检测模块,确定是否往下执行;若水箱水位不满足条件,蜂鸣器启动,系统停止工作;若条件满足,单片机读取数据存储器中原来设定的启动浇水温湿度数值,与实际温湿度数值进行比较,若实际值低于设定值的下限,触发继电器闭合,水泵开始工作;浇水启动后,温湿度传感器实时采集数据,通过单片机处理,显示在液晶显示屏,当实际值高于设定值上限,触发继电器打开,水泵停止工作。整个系统程序包括主程序、水位检测程序、按键处理程序、显示程序、延时程序、ADC0832转换程序、继电器控制程序等。系统流程图如下图3所示。

图3 系统流程图

六、系统调试

根据系统设计所需要的各个功能模块,利用Proteus软件分模块进行仿真。需要注意的是该软件里的LCD12864是没有带字库的,但可以将屏幕换成LCD1602,经过调试,仿真温度、湿度采集等都与预期的目标一致。应用Altium Designer软件画出电路图。下图4是系统主电路图,包括温度传感器电路、蜂鸣器电路、液晶显示电路、ADC0832电路、按键电路。

图4 系统主电路图

根据Altium Designer软件制作的原理图,载入相应元器件的封装,生成相应的网络表,创建PCB文件,载入网络表,手动调整元器件位置,尽量减少和缩短各元器件之间的引线和连接,尽可能使元器件并行排列(特别要注意LCD12864引脚位置以及接上屏幕后,屏幕会遮挡一部分电路),修改合适的布线规则,点击自动布线,敷铜连接到GND,最终生成PCB板。PCB打样后,购买元器件,焊接。连接好系统全部硬件,进行测试。

打开电源开关,将液位传感器放置在水箱顶部外壁无水处,此时蜂鸣器报警,系统停止工作。若将液位传感器放置在水箱外壁有水处,屏幕显示此时的温、湿度值,以此推断液位传感器和显示屏工作正常。为测试温度传感器和湿度传感器工作是否正常,手指捏住温度传感器,从屏幕可以看到温度值产生变化;将一路湿度传感器置入比较湿润的沙子中,继电器没有启动,记下此时屏幕显示的湿度值,再将湿度传感器悬空,屏幕显示的湿度值产生较大变化,且低于刚才的读数,继电器启动,水泵开始工作,重新把湿度传感器置入原有的沙子中,继电器停止工作,浇花结束。以同样的方法测试另外一路湿度传感器,效果一样。选择“菜单”按键,屏幕显示多个菜单选项,按下“花种1”按键,屏幕显示启动花种1浇花时的温度值、湿度上限、湿度下限,多次按下“选择”按键,可以在调整选项中循环选择,通过“增加”、“减少”按键,调整浇花域值,最后按下“确定”按键,退出调整界面,完成按键操作。改变湿度传感器感测的土壤湿度,继电器启动与关闭状态也随之改变。以此推断,按键电路工作正常。以同样的方式调试另外一路,所需功能均可实现。关闭电源,重启系统,进入菜单界面,查看到上次通过按键调整的域值被保存了,以此推断数据存储器工作正常。至此,完成了多路智能浇花系统的开发。通过计算,所需费用比目前市场上销售的单路浇花器更经济实惠。

七、结语

本系统采用AT89C52单片机作为主控芯片,设计了一款多路智能浇花系统。该系统对土壤湿度进行实时监测并在LCD屏幕上显示,与设定好的温湿度值进行比较,判断浇水量和浇水时间是否符合标准控制浇花的开启与停止。系统采用的多路浇花,能让用户通过按键设置不同花卉种类的需水量和浇花温度值,并在LCD屏幕上直观显示调整的精确值,完全实现按需按量自动浇花。

系统可放在家用阳台、小院子使用,安装简单,经济实惠,既可节约水资源,也能很好解决向往美好生活,喜欢种植花草的人们长时间外出家中花草的养护问题。

因系统采用的AT89C52单片机引脚仅有40个,设置两路浇花,剩余引脚不多。若要再增加多路浇花,引脚不够。对此问题,后续研究准备利用步进电机来解决。

猜你喜欢
花草水箱按键
基于有限状态机的按键检测程序设计
爱护花草
勿摘花草
花草春夏
一种太阳能热水器水箱的控制系统
一种多方向导光按键结构设计
沉睡的花草园
PLC组态控制在水箱控制系统的应用
水箱出水
基于有限状态机的STM32系统按键识别方法