首页 > 分享 > 基于51单片机的智能浇花系统(可做毕设)

基于51单片机的智能浇花系统(可做毕设)

基于51单片机的智能浇花系统(可做毕设) 一、系统介绍二、仿真展示三、实物展示四、仿真过程五、代码1、ADC08322、LCD16023、按键4、水泵5、温湿度6、定时器7、main.c 五、完整工程

对LCD1602原理和操作掌握不好的可以看这篇:
快速掌握——LCD1602液晶显示(多组实验,附带源程序)
按键可以参考这篇:
按键(独立按键、矩阵键盘)——附带程序
定时器可以参考这两篇
1、基于51的数码管电子时钟(显示时、分、秒)——定时器
2、基于51单片机的数码管时钟设计——按键修改时间

一、系统介绍

本系统主要由STC89C52单片机最小系统、土壤湿度传感器、温湿度检测传感器DHT11、ADC0832 芯片、LCD1602显示电路、水泵控制电路、按键设置电路以及电源电路构成。

工作过程是:
温湿度传感器DHT11将采集到的温湿度信号直接由数据接口传到单片机,单片机处理后再LCD1602上显示出来;传感器采集到湿度信号经ADC0832 A/D转换后传给单片机,经单片机处理后,在LCD1602上显示出湿度的具体数值,同时单片机将接收到的湿度信号与湿度的上下限比较,判断是否浇水。通过按键可以设置湿度的上下限,并在LCD上显示。

硬件材料

材料数量STC89C52RC1电阻若干土壤湿度传感器(5V)1DHT11温湿度模块1LCD16021潜水泵(5V)1电源模块(5V输出)1锂电池(7.4V)1按键开关41路继电器(5V)1三极管(S8550)1ADC08321

单片机最小电路是我自己焊接的,材料和电路百度上就有,不想麻烦的可以直接买最小电路板,其他都是模块,直接在某宝买就行

系统结构框图

二、仿真展示

LCD显示内容介绍: R:环境湿度 T:环境温度 H:土壤最高湿度值 L:土壤最低湿度值 S:土壤当前湿度值 >>>:手动浇水模式(不显示>>>为自动模式) 1234567

在这里插入图片描述

三、实物展示

在这里插入图片描述

四、仿真过程

在仿真的过程中用滑动变阻器代替湿度传感器。如下图,是启动仿真刚开始的情况。LCD1602上显示的湿度上限是60,湿度下限是30,当前湿度是62,超过湿度上限,所以LED灯没有被点亮,电动机也没有启动。
在这里插入图片描述

当调节滑动变阻器,使得阻值增大,即实际的湿度很小,如下图,此时在LCD1602上显示的湿度是26,低于湿度的下限,因此LED被点亮,电动机启动。
在这里插入图片描述
按键的调试。按键K1是菜单键,当按下第一次时,是对湿度的上限进行设置,K2是对湿度进行加,K3是对湿度进行减,如下图。
在这里插入图片描述

当K1被按下第二次时,是对湿度的下限进行设置,K2是对湿度进行加,K3是对湿度进行减,如下图。
在这里插入图片描述
当K1倍按下第三次时,是启动手动浇水模式,LCD的右下角会显示“>>>”,如下图,K2是启动,K3是停止。
在这里插入图片描述

五、代码

1、ADC0832

///ADC0832/// uchar adc0832() {uchar i,temp,temp1,num;CLK=0; DO=1;CS=0; CLK=1;CLK=0; DO=1; CLK=1;CLK=0; DO=0; CLK=1;CLK=0; DO=1;for(i=0;i<8;i++){CLK=1;CLK=0;temp<<=1;if(DO)temp++;}for(i=0;i<8;i++){temp1>>=1;if(DO)temp1+=0x80;CLK=1;CLK=0;}CLK=1;DO=1;CS=1;if(temp==temp1)num=100-temp*99/255;//adat=100-adat*99/255;return num; }

1234567891011121314151617181920212223242526272829

2、LCD1602

/LCD1602 void Read_Busy(){ //判忙 unsigned char sta; P0 = 0xff; lcd_rs= 0; lcd_rw = 1; do{ lcd_e= 1; sta = P0; lcd_e = 0; }while(sta & 0x80); } void Lcd1602_Write_Cmd(uchar cmd){ //写指令 Read_Busy(); lcd_rs = 0; lcd_rw = 0; P0= cmd; lcd_e = 1; lcd_e = 0; } void Lcd1602_Write_Data(uchar dat){ //写数据 Read_Busy(); lcd_rs = 1; lcd_rw = 0; P0 = dat; lcd_e = 1; lcd_e = 0; } void init_lcd(){uchar code D[]="H: ";uchar code T[]="L: ";uchar code S[]="S: ";uchar code R[]="R: %";uchar code F[]="T: ";..... }

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748

3、按键

4、水泵

5、温湿度

6、定时器

void t0()interrupt 1{uchar count;TH0=(65536-50000)/256;TL0=(65536-50000)%256;count++;if(count>0&&count<=60){Wat=0;}if(count>60&&count<=120){if(count==120)count=0;Wat=1;} } 12345678910111213

7、main.c

主函数/// void main() {TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1; //TR0=1;k1n=0;init_lcd();while(1){key0();if(k1n==0){adat=adc0832();water();disp0();}if(k1n!=0){key1();}} }

12345678910111213141516171819202122

五、完整工程

基于51单片机智能浇花系统(可做毕设)(内含传感器资料和示例代码).zip

对于仿真过程中出现的各种问题,如仿真失败、LCD显示信息出错等,可能是由于Proteus版本不一致、Proteus参数设置不一致等多种因素造成,无法一一回答,望见谅!

相关知识

基于单片机智能花卉灌溉浇花浇水检测系统设计
基于单片机的智能浇花(灌溉)系统设计
基于51单片机的新型“花疗”智能花卉养护机设计
基于51单片机土壤湿度检测及自动浇花浇灌系统
基于STM32单片机的鲜花售卖机系统设计
基于51单片机智能浇花浇水花卉灌溉水滴水分检测无线设计23
基于51单片机智能浇花浇水花盆自灌溉土壤湿度无线视频监控设计1
毕设
智能浇花浇水系统花卉灌溉土壤湿度检测方案及程序原理图设计
开题报告 基于单片机智能花卉浇水系统的设计电气工程专业

网址: 基于51单片机的智能浇花系统(可做毕设) https://m.huajiangbk.com/newsview115665.html

所属分类:花卉
上一篇: 夏天中午为什么不宜给花浇水?
下一篇: 一个月不浇水不是梦,DIY自制滴