基于单片机的居家绿植监护器系统设计
2022-08-15杨美子金家峰
杨美子,金家峰
(安徽理工大学 电气与信息工程学院,安徽淮南,232001)
0 引言
随着经济的发展,越来越多的人出于各种原因选择在家中养护绿植。但从现今科技发展来看,许多家庭养护绿植大多根据自己的生活经验,这样往往会导致许多问题:大量不必要的水资源的浪费;过多的浇水导致植物无法进行有氧呼吸,从而导致无氧呼吸也就是我们俗称的烂根,或是较少浇水导致植物缺水而蔫死了。针对此类问题本文研究的绿植监护系统将通过控制植物所生长的土壤湿度来解决家中养护绿植几乎都能遇到的问题—水分。该装置在小型化,节约型的前提下通过单片机STC89C52作为整个系统核心控制其他元件检测土壤的湿度来控制滴灌系统的开始和停止,既实现了家中养护绿植自由,也节约了资源。
1 绿植监护器的系统方案设计
本项目设计了一个无人居家型自动绿植监护器,在湿度传感模块以SCT89C52单片机为主核心,通过按键接口电路根据每一种植物的喜湿或喜旱的特性设定其特定的湿度标准,作为此后系统运行时的标准阈值。在运行中,YL-69湿度传感器通过实时检测土壤中的湿度,并且将湿度数据传输到该模块的“大脑”—SCT89C52单片机中进行分析处理,通过原先在单片机的程序设计对接下来的滴灌操作进行控制。当检测到的湿度实时数据大于设定的湿度标准的10%,由单片机发出指令停止对植物的滴灌;当检测到的湿度实时数据小于设定的湿度标准的10%,由单片机控制的水泵开始运作逐渐向水箱中抽水通过滴灌系统对植物浇水[1]。湿度检测原理图如图1所示。
图1 湿度检测系统原理图
2 系统主体硬件设计
本系统主要由单片机主控模块,YL-69湿度传感模块,电源模块,LCD1602显示模块,按键键入模块,蜂鸣器模块,水泵供水模块。单片机主控模块中采用了STC89C52单片机,由它主要负责对所检测到的数据进行分析处理;标准设定湿度阈值主要由按键系统进行修改;LCD1602显示模块显示植物生长土壤中的实时湿度;蜂鸣系统主要由单片机控制,主要在土壤湿度不在标准湿度范围内其报警作用,不仅在视觉上给用户提醒在听觉上也起到了提醒的作用。而当用户长时间无响应时,水泵模块就会起到开启滴灌以及停止滴灌使得土壤中的湿度恢复正常范围[2,3]。其中湿度传感选择的是YL-69湿度传感器,本系统主要考虑到了其采用了CMOS工艺可以确保其低功耗,同时它还具备了很高的可靠性和稳定性,基于这些优点与该系统的实时性和高效性,节约性等特性相匹配成为了我们在此系统湿度传感元件的首选的原因。该湿度传感器属于一种电容式传感器,主要用的是湿敏电阻,当所测量的土壤湿度改变时,会使得湿敏电容存在的环境发生改变,导致湿敏电阻中的数值变化。如图2为YL-69湿度传感器器件实物图。当从传感器的D0引脚:土壤湿度大于我们所设定的阈值时,D0将会输出0,否则将会输出1。通过这种获取湿度信息的方式多用于之后通过湿度来控制滴灌的开始和结束;当从传感器的A0引脚:获取到模拟量,更加精确。土壤湿度越大,此时获取的模拟量值越大,该种方式获得传感器实时测量的湿度数据并且通过LCD1602显示屏实时显示数据[1,4]。
图2 YL-69湿度传感器器件的实物图图
图3 湿度传感器的原理图
为了显示实时湿度数据,获得较高的精准度,系统从A0引脚获得模拟量时,需要通过A/D转换电路使其转换成数字量才能传输给单片机。A/D转换芯片ADC0832由于其性能稳定,体积小,功耗低,性能稳定等优点而深受欢迎故在此A/D转换芯片本系统选用ADC0832[4]。
如图4所示为A/D转换电路和湿度检测,图中JP3为YL-69湿度传感器的检测探头,其将实时检测到的湿度数据传递给A/D转换电路[3,4],通过转换电路转换成数字量再传递给单片机,通过单片机对数字信号传递后显示在LCD1602显示屏不仅让用户可以实时观察到植物土壤中的湿度数据也可以在一定程度上在视觉上对用户起到了提醒作用。
图4 A/D转换电路和湿度检测电路
水泵模块电路主要是接收STC89C52单片机发送的指令,根据单片机的指令决定水泵的关闭和开启。图5所示的为水泵控制电路,PNP型的三极管Q2,使其的基级B接单片机的P3.7口,主要作用是接收单片机所发送的指令。并且在此水泵模块电路中使用电磁继电器作为整个模块的“中枢大脑”控制水泵的工作状态;而此时继电器工作状态的指示灯则有发光二极管来充当,当继电器未吸合时,此时LED灯并不会发亮,而当继电器吸合时LED灯发光。
图5 水泵驱动系统
当STC89C52单片机P3.7引脚输出高电平时,使得三极管截至此时继电器处于未吸和状态,且指示灯此时处于未点亮状态,继电器常开触点断开此时水泵将会停止工作。而当P3.7引脚输出低电平时则会出现三极管导通情况,继电器吸合指示灯点亮等一系列反映,此时继电器常开触点即时闭合,水泵便开始工作[1]。
按键键入模块原理如图6所示。此时S2表示用户可以通过此按键设定该植物正常生长时所需的正常湿度阈值,而S3则是对其进行上下值调整[4]。通过按键模块获得对标准阈值的设定。
图6 按键模块图
综上,将上述分电路整合在一起后形成了基于单片机的自动绿植监护系统设计。
3 系统软件主体设计
本系统软件设计主要由KEIL软件编写程序,PROTEL进行仿真模拟。系统软件程序的开发采取了流行的模块化设计方法。根据此类方法在程序设计中根据每个模块负责的不同功能将整个软件系统进行分区工作,每个工作模块都有一个相对独立,结构完整的程序段,能够完成某一特定的任务实现某个具体的功能,每个模块可以相互共存一个模块能够被多个任务在不同条件限调用,且整个模块程序允许设计者分割任务和利用已有任务,使得整个软件设计具有高效,便利,简洁等多个特点。
系统软件设计包括系统初始化程序,按键设定程序,湿度上下限设定程序,土壤湿度检测程序,水泵驱动浇水程序。STC89C52单片机主要采用的是C语言编写后通过Keil编译软件中完成关于土壤实时湿度采集模块,系统设定参数按键模块,数据LCD1602显示屏模块,单片机串口接收模块等部分设计。其主程序流程图如图7所示。
图7 系统软件设计流程图
实时湿度数据采集模块根据ADC0832芯片模数转换的串行协议,通过YL-69湿度传感器采集到的数据转化成二进制,之后供STC89C52单片机进行后续处理,按键控制模块的流程图如图8所示[5]。
图8 按键流程模块图
LCD1602显示屏软件设计规划显示程序主要包括以下功能模块:①读键程序,判键程序段等部分。②基于LCD1602液晶显示屏的显示模块。③主模块,为系统的初始化。显示屏显示子程序流程图如图9所示。
图9 LCD1602显示子程序流程图
本设计采用ST89C52单片机做为整个系统的控制芯片,设计出一款自动智能浇花系统。本系统通过最初的按键模块设定该植物所生长的特定湿度,此后通过YL-69湿度传感器测定花盆中土壤湿度根据土壤湿度来调节水泵的中断以及运行。并且选取模糊控制形式通过单片机设定的值将测定的实时湿度数据与单片机设定的湿度数据进行对比,来调节浇水的量,并且通过蜂鸣器报警提醒用户。直至当采集到的实时土壤湿度在设定的土壤湿度的上下限20%内时,单片机将发出信号驱动水泵停止灌溉,直至湿度到达设定值为止[6]。
4 总结
本文根据大众对绿植养护的需求设计了一款“懒人型”的无人自动绿植监护系统。该系统主要是通过控制水泵的开启与关闭来确定浇水与否,以确保土壤中的湿度始终处于正常的范围以此确保绿植能够健康生长。当湿度传感器检测到土壤湿度过低时,便会启动水泵系统进行浇水。反之当检测土壤湿度过高时,将会关闭水泵系统停止浇水。用户可以通过在系统运行之初根据自己所种植的植物特性设定植物所需的湿度,使该系统更加人性化,然后启动该系统,系统便可自动浇水,用户无需再自己去定期浇水为养护绿植的家提供了极大的便利,向居家智能化生活又迈向了一大步。并且通过系统实验证明该项目具有以下优点:
(1)安全性高:该装置全体采用的是5V的安全用电,输出为低电压,且本装置并未用到其他新型危险性差的材料,无任何安全隐患。
(2)成本低:该装置所需材料简单,且并不昂贵,体积小,使用所有的爱好养护绿植的家庭适用范围广。
(3)系统稳定性好:电路总体是由模拟电路构成,要求精度不高,且装置中的按键设定模块,延时时间都可以自己调控。