当前位置:首页 期刊杂志

基于单片机的土壤湿度检测系统设计

时间:2024-08-31

吉成芳,陈高丽

(郑州工业应用技术学院,河南郑州,450000)

0 引言

湿度是衡量土壤湿度最基本的单位,在空气中一定体积的含水量是一个衡量湿度的基本单位,空气中含水分越少,则表明环境中的空气越干燥,同时如果环境空气中的水分越多则表明空气越潮湿。随着科技的进步,人们研发出了低功耗、高性能的土壤检测控制系统,通过这个系统可以实时监控土壤的湿度情况,同时为农户解决土壤湿度监控问题,并且实现自动灌溉,方便高效。因此湿度检测控制系统的研究越来越受到重视,本设计也考虑这个原因,进一步学习研究湿度控制系统。

1 系统设计方案

土壤湿度检测主要分为三部分:软件设计、仿真设计以及实物设计。最终三部分统一结合完成土壤湿度检测和控制,通过多次调试、测试最终实现土壤湿度检测和控制的各个功能。同时实现LCD1602显示、按键调节、报警、LED指示。其中下图左边代表输入单元,将信号输入到单片机中,后面输出单元,单片机对不同的功能或者单元实现不同的控制过程。系统框图如图1所示。

图1 系统框图

本文以STC89C52为核心,用于控制湿度测控系统,以达到其性能目标。该系统的关键在于土壤湿度的自动控制,在这方面单片机有自己的独特优势,价格便宜、控制方面、易于编程、具有较好的稳定性。

单片机最小系统包括电源、复位电路、震荡电路。MCU复位是为了使CPU和其他系统特性在系统中返回到一个确定的初始状态并运行从初始状态到启动工作,例如当MCU复位PC0000H时,SCM系统单元从开始取指令。主控制最小系统电路如图2所示。

图2 最小系统电路图

2 系统仿真

图3 系统湿度正常工作状态

图4 仿真图加水状态

土壤湿度检测控制系统的控制单元为单片机,本设计采用STC89C52为MCU单元,软件编程方面采用keil软件进行程序设计,编程语言为C语言,Protues7.5进行系统的仿真测试实验,Protel99SE作为PCB原理图和PCB硬件设计的工具。在系统的编程方面,A/D的转换过程是本次设计编程的重点和难点单元,并且按键的控制在编程设计中也是重点和难点,为了方便进行观察和控制系统的湿度信息和设置的上下限信息通过LCD1602显示。程序的逻辑顺序,在 main里面是从上到下无限循环运行,当遇到中断或者按键变化时,保存断点,响应顺序有一个优先级,先调用中断,然后调用按键,当中断和按键执行过后继续返回断点继续执行。当所有的编程调试通过编译之后生成hex文件,手动通过Protues7.5软件将hex文件添加到MCU里面。在仿真软件里面对湿度控制系统进行测试。

2.1 系统的湿度正常仿真阶段

系统湿度正常工作的仿真如图3所示。RH_L显示当前的按键调节的值,此时RH大于RH_L,即测得的土壤湿度值大于设定值,可以看到蜂鸣器报警指示灯关闭,模拟LED加水指示灯关闭。表示土壤湿度值在正常状态。

2.2 系统报警仿真阶段

土壤湿度检测控制系统以单片机作为CPU单元,土壤湿度传感器采集土壤的湿度,将采集的数据传送给送给ADC0832转换芯片,将转换后的模拟信号送给单片机,单片机根据采集的数据分析当前的湿度,如果RH小于RH_L,即采集的土壤湿度小于当前设定的湿度,单片机给蜂鸣器发送指令、蜂鸣器报警同时LED点亮。同时单片机给继电器发送控制直流,通过继电器吸合模拟给土壤加水,同时LED指示灯点亮。当前的土壤湿度、设定的土壤湿度通过LCD1602显示。在任意过程中都可以通过按键对湿度值进行连加和连减的功能。系统仿真如图4所示。

3 系统实物演示

系统实物,通过USB接口供电,将湿度传感器插入土壤,测量土壤湿度。实验时我们不断向土壤里面加水,可以看到上面显示系统界面,下面显示当前的湿度值。以及湿度上限值,湿度的上限值可以通过按键进行调整。如果采集的土壤湿度小于当前设定的湿度,单片机给蜂鸣器发送指令、蜂鸣器报警同时LED点亮。通过继电器模拟加水。

图5 实物加水状态图

随着土壤中水分的增加,湿度传感器将新测得的数据传到A/D模块,在A/D模块中进行转换后发送给单片机,直到检测值达到设定值蜂鸣器停止报警LED灯熄灭,继电器停止工作。此时,土壤湿度值已经达到预定值。

图6 土壤湿度正常图

4 总结

本文通过仿真和实物对检测系统正常阶段与警报阶段的过程的对比,实现了对土壤湿度的检测和控制。经试验验证,可以设定不同的湿度来对系统进行测试,这对今后对土壤湿度的研究具有一定的参考价值。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!