基于单片机的居家无人绿植监护系统设计
2022-08-06杨美子陈晨慧王永鑫
杨美子,陈晨慧,高 羽,费 凯,王永鑫
(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)
研究发现出现无法正常使用绿植监护装置问题的家庭主要为经常因公出差的白领家庭,此类家庭由于经常长时间离家导致家中缺水停电进而引起了使用该装置的问题。并且经过调查走访发现该类家庭往往是最需要此类无人绿植监护系统的受众人群。故为了完善该系统增加了一项储水功能,并且为了该储水功能能够正常运行引入了水位控制模块。该水位控制模块中以STC89C52 单片机为整个模块的CPU。通过水位传感器实时传导水位数据给单片机,当水位达到低水位或是高水位时,单片机将会给电磁阀水龙头下达指令使得其“开”或“关”,对水箱进行储水或者是停止储水,使得水箱中的水在正常情况下始终处于正常的范围[1]。
1 系统总设计
为更好地解决家养绿植无人监护问题,本文对居家无人绿植监护系统的设计进行了完善,增加了储水功能模块,同时为了该储水功能模块能够正常运行,引入了水位控制模块。该系统由硬件部分和软件部分组成,硬件包括单片机主控水位监测、按键输入、水泵浇灌、显示、蜂鸣器发出通知五大模块。该设计采用了以STC89C52 单片机作为总控制器控制水位传感器并加入光报警系统,在闭环控制、开环控制和模糊控制3 种不同的控制方法中选择了闭环控制方法进行有效检测,且在该系统检测到与设定条件不符时可自动进行合适的修正,闭环流程图如图1所示。
图1 闭环流程图
水位传感器由STC89C52 单片机作为控制器控制,为了保证其正常运行,当储水量低于设定值时将会启动光报警系统,即发出闪光和警报声作为提示,从视觉和听觉上提醒用户水箱水量已经低于最低要求的设定值,需要立即向水箱中加水,若用户在设定的时间内无应答,系统将通过控制器的控制自动开启电磁阀装置,利用地势差或虹吸原理向水箱中加水[2],当达到设置的最高水位线时停止注水。此时该储水模块的系统一次循环已经完成,在设备完好的情况下,系统将持续循环。
2 系统硬件设计
本次设计的自动浇灌系统由电源模块、单片机最小系统、继电器控制水泵、电路遗迹报警电路组成。控制系统采用直流电源适配器供电,提供5 V 电压,总开关采用自锁开关,接线时只接常开触点,当开关按下时,触点闭合,实现电源接通,系统开始工作[3]。核心CPU 采用STC89C52,一种低功耗、高性能CMOS 8 位微控制器,具有8 K 字节系统可编程Flash 存储器。本设计的控制系统是在STC89C52 单片机芯片上开发的,并且对芯片的外围电路进行了扩展,具有很强的灵活性和智能性。
最小的系统主要由STC89C52 单片机模块、晶振电路和复位电路组成。晶振电路结合单片机内部电路,产生单片机所需的时钟频率。单片机晶振提供的时数越多,单片机运行速度就越快。单片机的晶振向系统提供主要的时钟信号。由于单片机内部具有晶振电路,所以外部只需链接一个晶振和两个电容,电容容量通常在15 pF 至50 pF 之间,此设计选择了30 pF。在最小系统复位电路中,复位操作有上电自动复位和按键手动复位两种方式。本系统中使用上电复位方式,通过外部电路充电容量实现。只要VCC 的高度不超过1 ms,就可以实现自动上电复位,也就是说,接通电源即成了系统复位初始化。
水位控制模块主控制器采用STC89C52 单片机,该模块由PNP 型三极管和继电器及水泵组成,单片机控制三极管基极。继电器是一种根据某种输入信号的变化,而接通或断开控制电路,实现自动控制和保护电力拖动系统的电器。当系统选择手动浇灌模式或自动模式时,其水位低于设置的下限水位,则PNP 型三极管导通,继电器得电,常开触点吸合,电动机回路连通,执行浇灌工作[4]。当水位高于自动模式的上限水位时,则PNP 型三极管导通,继电器断电,常开触点复位,电动机回路断开,浇灌中止。水位传感器原理图如图2 所示。
图2 水位传感器原理图
LCD 液晶显示模块采用LCD1602 液晶显示,能够同时显示32 个字符。VSS 为地电源,VDD 接5 V 正电源。V0 为液晶显示器对比度调整端。RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作,当RS 为高电平、R/W 为低电平时可以写入数据。E 端为使能端,当E 端由高电平跳变成低电平时,液晶模块执行命令。D0~D7 为8 位双向数据线。该模块主要负责显示水位和浇水的范围值。LCD1602显示屏AD 图如图3 所示。
图3 LCD1602 显示屏AD 图
报警模块采用蜂鸣器报警和指示灯报警双重声光报警。蜂鸣器采用直流电压供电,接入5 V 电源。单片机IO 引脚输出的电流较小,单片机输出的TTL 电平基本上驱动不了蜂鸣器,因此需要经过三极管放大驱动电流,驱动蜂鸣器报警。蜂鸣器一端连接三极管的引脚,另一端接地。一般地,三极管起开关作用。若系统检测出水位未达到或超过设定的阈值,即基极的高电平使三极管饱和导通,蜂鸣器电流形成回路,发出声音,同时指示灯亮,系统进入报警状态;当水位在阈值内,基极的低电平则使三极管关闭,指示灯暗,蜂鸣器不发出声音,系统正常运行[5]。蜂鸣器报警原理图如图4 所示。
图4 蜂鸣器报警原理图
3 系统软件设计
控制系统的软件部分使用KEIL 软件,以C 语言来编写程序,PROTEL 进行系统仿真模拟,同时采取模块化的形式,这样会使条理清晰明了、便于扩展[6]。软件设计思路首先为系统初始化、显示启动界面,同时获取当前水位信号。通过A/D 转换后,传输到LCD 显示器显示信息;然后设定信号,STC89C52 单片机为整个水位模块控制的CPU,它会将实测水位信号和设定信号进行比较,得出偏差,根据偏差,向电磁阀水龙头发出指令,使得储水箱水位处于正常状态。如果储水箱处于正常状态,则电磁水龙头关闭输水,水箱停止储水。反之储水箱处于缺水状态下,系统会进入报警状态,蜂鸣器电流形成回流,发出声音,与此同时指示灯亮,提醒储水箱水位处于不正常状态下;当水位又处于正常状态下,蜂鸣器停止发出声音,指示灯变暗。控制系统主程序流程图如图5 所示。
图5 系统主程序控制流程图
根据电路原理图,焊接电路板,再将程序烧录到STC89C52 单片机中,接通电源,启动显示界面,设定初始信号,进行模拟检测。检测水位信号与设定信号有偏差时,观察电磁水龙头是否发出“开”指令,蜂鸣器是否发出声音,指示灯是否变亮,进一步观察储水箱是否处于正常状态。当储水箱水位处于正常状态,观察电磁水龙头是否发出“关”指令,再观察蜂鸣器是否停止发出声音,指示灯变暗。若上述情况均发生,可以说明控制系统运行正常。如果系统调试过程出现各个模块不工作等情况,使用万能电表检查电路板是否焊接正确、各个模块存在短路、接触不良等情况。排除所有故障之后,该系统进行一段时间的运行检测,系统工作正常,则表示控制系统稳定性良好[3]。系统完善后CAD 制图如图6 所示。
图6 系统完善后CAD 制图
本电路以STC89C52 单片机为核心,结合水位控制模块,并且根据C 语言程序编写,从而编写出比较良好的水位控制核心。进一步完善了无人绿植监护系统的储水功能。使用更加方便、快捷,更贴近于生活。
4 结论
针对人们的日常工作忙碌,常常会忘记给植物浇水这一社会普遍现象,设计了基于单片机的居家无人绿植监护系统。本文完善了单片机的居家无人绿植监护系统,以STC89C52 单片机为总控制器控制水箱水位以及实施自动浇灌的功能,配合优化后的电路,实现无人检测,突破人为检测的局限性,减小了受停水因素影响可能性。完善后的系统使用相较于传统的无人浇灌系统,在储水功能方面有显著的提升,弥补了水源供应不及时这一缺陷。完善以后的自动浇灌系统明显有以下优点。
(1)无人化:对该监护系统添加一个水位控制模块实现对水位进行精准控制,解决了人们在使用家用浇灌设备中所出现的水源不可控问题,彻底实现居家智能绿植监护器的无人化。(2)节约型:通过对浇灌绿植水资源的控制,减少了水资源的浪费,贯彻了“节约资源,可持续发展”的理念。(3)高效性:仅在原先智能绿植浇灌系统中增加一个水位控制模块,即可实现整个系统的完善。(4)低廉性:所增加模块的产品零件简单且并不昂贵,适宜大规模生产。