基于51单片机农业土壤湿度监测及自动灌溉系统设计
- 1开发环境
- 2 功能说明介绍
- 3 程序
- 3.1工程文件
- 3.2代码
- 4 资料清单
1开发环境
仿真图:proteus8.9以上
程序代码:KEIL4/KEIL5
原理图/PCB:AD
设计编号:A0002
(代码+仿真+原理图+报告+视频讲解)
讲解视频
2 功能说明介绍
基于51单片机土壤湿度检测及盆栽自动浇花系统设计
由STC89C52单片机+ADC0832+LCD1602液晶+yl-69土壤湿度传感器+5V抽水电机+按键+蜂鸣器构成。
具体功能:
1、液晶第一行显示实际湿度,液晶第二行显示湿度上限值与湿度下限值;
2、按键说明:减键、加键、设置键。
3、可以通过按键设置湿度上下限报警范围。
4、当湿度低于下限值时,打开水泵进行抽水且声光报警,当湿度高于上限值时,自动关闭水泵停止抽水。
开始仿真
1.开始仿真,第一行显示测试到的湿度,第二行SH设置的高阈值,SL设置的低阈值,蜂鸣器不报警,水泵不工作。
2.通过滑动变阻器改变测试到的湿度值
3.按下设定键,高阈值闪烁,可以通过按键加减改变高阈值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V2Y6UKN4-1670140003310)(https://picturebed-1300424929.cos.ap-nanjing.myqcloud.com/typora/202212041533063.png)]
4.湿度低于报警低阈值后,蜂鸣器报警,打开水泵进行抽水且声光报警,当湿度高于上限值时,自动关闭水泵停止抽水。
3 程序
3.1工程文件
3.2代码
主函数
/***************主函数*****************/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所示。
4 资料清单
下载方式,见文章最开头的视频