智能控制浇花系统设计
2022-08-17衡蜓
衡 蜓
(晋中信息学院,山西 太谷 030800)
生活中,人工浇灌花木要耗费大量时间,而且土壤湿度不好控制。有时由于长时间外出,家里的花木会因无人浇水而枯死。为了解决上述问题,结合自动控制技术与传感器技术,设计了一种自动浇花系统。该系统可实时监测花盆里土壤的含水量,必要时进行浇水灌溉。湿度传感器用来采集土壤湿度,传送到单片机进行分析处理。单片机根据分析结果驱动继电器工作,同时液晶显示器实时显示土壤湿度。当检测湿度值小于设定湿度值时,单片机控制继电器线圈吸合,开启水泵抽水浇花,土壤含水量增加,当含水量达到预定数值时,继电器线圈断开,水泵停止工作。该系统的应用可以有效节约水资源。
1 整体方案
本次设计采用的是AT89C51 单片机,利用单片机编程灵活的特性实现喷灌功能。电源、时钟搭建单片机最小系统,按键用于设定喷灌的湿度值,共3 个按键,分别是加键、减键和设置键。可以设置湿度报警范围。外接LCD1602 显示器用于显示设置湿度及实时湿度。液晶第一行显示实际湿度,液晶第二行显示湿度上限值和湿度下限值。系统整体结构图见图1。
图1 整体结构图Fig.1 The overall structure
2 硬件系统设计
系统选择的各种元器件都是目前市面上常见的,需要的元器件有单片机,型号为AT89C51;型号为YL-69 的土壤湿度传感器;AD 转换器,型号为ADC0832;LCD1602 液晶显示器、按键、发光二极管、蜂鸣器、继电器及水泵等。具体电路模块有电源电路,作用是给整个系统供电,晶振和复位电路,属于单片机的最小系统,由传感器和AD 转换器构成的前端检测电路、按键和显示电路,作用是实现人机交互,报警电路、驱动电路,用来控制水泵的开启和关断。
2.1 检测电路
检测电路由YL-69 土壤湿度传感器和AD 转换器ADC0832 组成,YL-69 是一个常用的检测土壤湿度的湿度传感器,其原理是采用对湿度敏感的电容器,当土壤的湿度发生改变时,会使湿敏电容存在的环境中的介质发生改变,导致湿敏电容中的电容值大小改变,电容的数值与土壤湿度值成正比关系。根据电容量的大小来判断土壤的湿度值,由于湿敏电容有很高的灵敏度、响应速度快、滞后量小,所以湿敏电容的特点是小型化和集成化。
AD 转换器用的是ADC0832型转换器。因为湿度传感器输出的模拟信号,无法将监测到的数据传输到主控器中,所以要使用A/D 转换器将模拟信号转换为数字信号,再将数据传输到主控制器中。ADC0809 转换器虽然可以对八路信号进行模数转换,但是其外围电路较为复杂,价格也相对昂贵,而ADC0832占用量小、可以多个使用且价格实惠。
ADC0832 与单片机之间主要采用了串行通信,主要使用的是CS、CLK、DO、DI 4 个引脚,因为传感器的引脚DI 和DO可能只有一个引脚有效,所以DI 和DO 的引脚接在单片机的同一个引脚,到时候任何一个引脚有效都能达到效果,也节约了单片机的接口数量。
2.2 按键电路
按键是比较常用的人机交互操作,实际是一个非自锁的轻触开关,按下时触点会闭合,松开时触点断开。单片机通过检测按键的高低电平变化,来判断按键是否按下,通过程序的控制,就可以实现不同功能的选择与设置。单片机与3个独立的按键K1、K2 和K4 以及3 个电阻形成了一个独立的键盘系统,3 个按键依次连接单片机的P3.0 到P3.2 引脚。在手动模式中,K1和K2分别作为减少和增加键,可以对设定的湿度值进行修改,而K3为设置键。
2.3 液晶显示电路
该设计选用的是LCD1602 液晶显示器,显示的内容为单片机监测到的数据和设定的阈值,将LCD1602的D0-D7引脚分别接入单片机的P0.0-P0.7 引脚,为了让显示器正常运行,在每个引脚处接入一个上拉电阻;VDD 和VSS 分别接电源和地;VEE连接滑动变阻器,控制液晶显示器的背光亮度;RS和E分别连接单片机P2.6和P2.7引脚。
2.4 报警电路
报警电路由蜂鸣器和发光二极管构成,实现声光报警。声音报警15次后停止,发光二极管一直闪烁报警。当湿度低于设置下限时,系统会自动发出警报,系统采用有源蜂鸣器来实现该功能。有源蜂鸣器的理想工作信号是直流电,因为其内置振荡电路,就可以将恒定的直流电变成一定频率的脉冲信号,从而来使钼片振动。操作简单,使用灵活,适合本系统的开发。由于单片机的输出能力较弱,无法满足驱动蜂鸣器的要求,所以需要放大单片机的输出信号。
三极管是典型的放大电路设计元件,其可以通过内部的PN 结原理完成小电流驱动大电流效果,目前三极管根据其内部结构被分为NPN 与PNP 2 种,系统使用NPN 型三极管进行设计,当NPN 型三极管的基极流过一定的电流时,此时其内部的PN 结耗尽区减小,集电极与发射极导通,把NPN 三极管的发射极接地,集电极接电源输入端,基极流过一定电流时,三极管开始导通,电源通过三极管流向地,实现小电流驱动大电流功能,利用此特点进行蜂鸣器的驱动电路设计。当三极管导通时,蜂鸣器电路接通,蜂鸣器工作,当三极管截止时,蜂鸣器电路断开,蜂鸣器不工作。
2.5 输出控制电路
继电器常被用在输出驱动电路中,可以看做是弱电控制强电工作的一类“自动开关”。单片机引脚P1.6 通过输出高低电平来控制驱动电路是否接通,控制继电器的通断,进而控制水泵电路的接通或关断,同时利用发光二极管显示输出状态。驱动电路由电阻和三极管组成。三极管和单片机的P1.6 引脚相连。当引脚被置成高电平的时候,继电器工作。继电器相当于一种开关元件,通过某些特定的物理量来开通或关断电路。在本设计中,当湿度低于设置值时,P1.6 引脚输出高电平,三极管导通,继电器线圈得电,接通电源,开启水泵浇水。当湿度达到设置值时,P1.6 引脚输出低电平,三极管截止,继电器线圈断电,关闭水泵。
3 软件系统设计
系统软件设计采用模块化编程,整个系统包括6个模块,分别是主程序模块,土壤湿度检测程序模块,模数转换程序模块,按键扫描子程序模块,液晶显示器工作模块及蜂鸣器报警程序模块。
该智能控制浇花系统的软件设计以单片机AT89C51 为设计中心,开始整个系统会初始化,系统启动后最先启动的是YL-69 土壤湿度传感器,对待测土壤中的含水量进行检测分析,并将检测收集到的数据转变为2 个电压模拟信号随之输出。这时AT89C51 单片机动作并启动A/D 转换模块对所采集到的这2个电压模拟信号进行采集分析并快速响应转换为与之对应的数字信号,数据会被送入到单片机,使智能控制浇花系统能够获得实时检测到的土壤湿度数据,并将获得的数字信号传输至单片机,能够将这次循环所检测到的土壤湿度信息数据显示于显示屏LCD1602。LCD1602 液晶屏显示时首先显示屏系统初始化,并在显示屏上确定显示的位置,判断显示屏能否显示检测出的数据。如果能够显示,则程序结束,不能则需要写入字符来显示数据,并指向下一个写入数据。主程序模块是水污染检测系统软件部分主体核心,单片机能够将模数转换芯片所输出的数值跟设置的阈值相比较,同时判断湿度值是不是在设定值范围内,如果高于设定湿度值,继电器线圈断电,关闭水泵停止灌溉,如低于设定湿度值,继电器线圈接通,开启水泵灌溉,返回到湿度采样,再次判断湿度值,直到达到设定湿度值,程序结束。主程序流程见图2。
4 系统调试
本设计中的所有硬件和软件都是在PROTEUS 软件中仿真实现的,仿真时,利用滑动变阻器模拟湿度传感器,使得LCD 显示相应的数值。再通过按键模块输入相应的湿度上下限,当湿度低于设定值时,单片机控制蜂鸣器进行报警,同时控制继电器线圈吸合,打开水泵进行浇水。当湿度达到设定值时,单片机控制继电器线圈断开,关闭水泵停止浇水。