基于51单片机农业土壤湿度监测及自动灌溉系统设计

基于51单片机农业土壤湿度监测及自动灌溉系统设计

1开发环境

仿真图:proteus8.9以上

程序代码:KEIL4/KEIL5

原理图/PCB:AD

设计编号:A0002

(代码+仿真+原理图+报告+视频讲解)

讲解视频

2 功能说明介绍

基于51单片机土壤湿度检测及盆栽自动浇花系统设计
由STC89C52单片机+ADC0832+LCD1602液晶+yl-69土壤湿度传感器+5V抽水电机+按键+蜂鸣器构成。

具体功能:
1、液晶第一行显示实际湿度,液晶第二行显示湿度上限值与湿度下限值;

2、按键说明:减键、加键、设置键。

3、可以通过按键设置湿度上下限报警范围。

4、当湿度低于下限值时,打开水泵进行抽水且声光报警,当湿度高于上限值时,自动关闭水泵停止抽水。

开始仿真

1.开始仿真,第一行显示测试到的湿度,第二行SH设置的高阈值,SL设置的低阈值,蜂鸣器不报警,水泵不工作。

img

2.通过滑动变阻器改变测试到的湿度值

img

3.按下设定键,高阈值闪烁,可以通过按键加减改变高阈值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2Y6UKN4-1670140003310)(https://picturebed-1300424929.cos.ap-nanjing.myqcloud.com/typora/202212041533063.png)]img

4.湿度低于报警低阈值后,蜂鸣器报警,打开水泵进行抽水且声光报警,当湿度高于上限值时,自动关闭水泵停止抽水。

img

3 程序

3.1工程文件

img

3.2代码

img

主函数


/***************主函数*****************/

void main()

{

​	init_1602();			  //1602液晶初始化

​	time_init();				//初始化定时器 

​	while(1)

​	{

​		key();					//独立按键程序

​		if(key_can < 10)

​		{

​			key_with();			//按键按下要执行的程序

​		}

​		if(flag_300ms == 1)

​		{		

​			flag_300ms = 0;	 

​			clock_h_l();	 //报警函数 

​			if(beep == 1)

​			{

​				shidu = Adc0832(0);	//读出湿度

​				shidu = 99 - shidu * 99 / 255;

​			}

​			if(menu_1 == 0)

​			{

​				write_sfm2(1,9,shidu);		  //显示湿度等级

​			}

​		} 

​		delay_1ms(1);

​	}

}

该主程序流流程图是硬件初始化之后,设定好数值,然后采集湿度样本,把湿度样本传给单片机之后,单片机系统处理该湿度数值,判断湿度值是不是在设定值范围内,如果高于湿度值,停止灌溉,假如低于湿度值,返回到湿度采样,再次判断湿度值,直到达到湿度值结束。主程序流程图如图4-1所示。img

4 资料清单

img
下载方式,见文章最开头的视频

猜你喜欢

转载自blog.csdn.net/Jack_0220/article/details/128174847