【毕业设计】基于单片机的自动浇花灌溉系统设计 -嵌入式 物联网 stm32 c51

201 篇文章 118 订阅
187 篇文章 115 订阅


1 简介

Hi,大家好,这里是丹成学长,今天向大家介绍一个学长做的单片机项目

基于单片机的自动浇花灌溉系统设计

大家可用于 课程设计 或 毕业设计


单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


2 主要器件

1、采用stm32单片机作为控制单元;

2、采用LCD1602液晶进行数据显示;

3、采用土壤湿度传感器+ADC0832检测湿度,当湿度低于设置湿度下限值时,自动控制继电器开启水泵进行灌溉,同时蜂鸣器声光报警;当湿度高于设置湿度上限值时,自动关闭水泵停止灌溉。

4、采用按键设置湿度的上下限报警范围,并具有掉电保存功能,保存在STC单片机内部EEPROM,上电无需重新设置。

5、电机和水泵,抽水灌溉

3 实现效果

在这里插入图片描述
当土壤的温湿度达到阈值时,制动给植物浇水,搭载上WiFi模块后还可以远程控制浇水,在手机app或者网页上查看植物状态。

4 设计原理

在这里插入图片描述


单片机-嵌入式毕设选题大全及项目分享:

https://blog.csdn.net/m0_71572576/article/details/125409052


5 关键代码


#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "24cxx.h"
#include "key.h" 
#include "pwm.h"
#include "myiic.h"
//要写入到24c02的字符串数组
const u8 TEXT_Buffer[]={"Explorer STM32F4 IIC TEST"};
#define SIZE sizeof(TEXT_Buffer)	 
//定义数据缓存区
static u8 YUYIN_BUF[USART_REC_LEN];	
static u8 GUANGQIANG_BUF[SIZE]; 	//光照传感器数据
u8 uart1_res;
u8 uart3_res;
u8 TIM3_20ms;
u8 TIM3_1s;
char uart1_flag;
char uart3_flag;
/*********************************函数声明****************************************/
int main(void)
{ 
	/*******硬件初始化******/	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	//设置系统中断优先级分组2
	delay_init(168);    //初始化延时函数
	uart_init(115200);		//初始化串口1波特率为115200
	uart3_init(115200);		//初始化串口3波特率为115200
	LED_Init();		   //LED初始化	
  BEEP_Init();		//BEEP初始化
	GAS_Init();	//气体检测初始化
	VOLUME_Init();	//光电初始化
	PWM_Init(2000,840);	
/*********************************逻辑循环****************************************/
	while(1)
	{
		switch(uart1_res)
		{
			case '1':
			{
				TRASH_A1=300;	 
				Voice_LED=0; 	//点亮指示灯
			    uart1_res=0;	 //标志清零
printf("111");
				if(TIM3_1s>6)
				{
					uart1_flag=TIM3_1s-10;
				}
				else
				{
					uart1_flag=TIM3_1s;
				}
				break;
			}
			case '2':
			{
				TRASH_A2=300;		
				Voice_LED=0	;	//点亮指示灯
				//uart1_res=0;		//标志清零
				printf("222");
				if(TIM3_1s>6)
				{
					uart1_flag=TIM3_1s-10;
				}
				else
				{
					uart1_flag=TIM3_1s;
				}
				break;
			}
			case '3':
			{
				TRASH_A3=300;
				Voice_LED=0;	//点亮指示灯
				uart1_res=0;	//标志清零
				printf("333");
				if(TIM3_1s>6)
				{
					uart1_flag=TIM3_1s-10;
				}
				else
				{
					uart1_flag=TIM3_1s;
				}
				break;
			}
			case '4':
			{
				TRASH_A6=300;	
				Voice_LED=0;	//点亮指示灯
				uart1_res=0;		//标志清零
				printf("444");
				if(TIM3_1s>6)
				{
					uart1_flag=TIM3_1s-10;
				}
				else
				{
					uart1_flag=TIM3_1s;
				}
				break;
			}
			default:
			{
				if((TIM3_1s-uart1_flag)>2)
				{
					printf("555");
					TRASH_A1=400;		
					TRASH_A2=400;		
					TRASH_A3=400;		
					TRASH_A6=400;		
					Voice_LED=1;	//关闭指示灯
					uart1_flag=TIM3_1s;
				}
				break;
			}
		}	
/*******************************无线通信模块**********************************/
			switch(uart3_res)
		{
			case '1':
			{
				TRASH_A1=300;		
				Voice_LED=0;		//点亮指示灯
				uart1_res=0;			//标志清零
				if(TIM3_1s>6)
				{
					uart3_flag=TIM3_1s-10;
				}
				else
				{
					uart3_flag=TIM3_1s;
				}
				
				break;
			}
			case '2':
			{
				TRASH_A2=300;		
				Voice_LED=0;		//点亮指示灯
				uart3_res=0;		//标志清零
				if(TIM3_1s>6)
				{
					uart3_flag=TIM3_1s-10;
				}
				else
				{
					uart3_flag=TIM3_1s;
				}
				break;
			}
			case '3':
			{
				TRASH_A3=300; 	
				Voice_LED=0;	//点亮指示灯
				uart3_res=0;		//标志清零
				if(TIM3_1s>6)
				{
					uart3_flag=TIM3_1s-10;
				}
				else
				{
					uart3_flag=TIM3_1s;
				}
				break;
			}
			case '4':
			{
				TRASH_A6=300;
				Voice_LED=0;		//点亮指示灯
				uart1_res=0;		//标志清零
				if(TIM3_1s>6)
				{
					uart3_flag=TIM3_1s-10;
				}
				else
				{
					uart3_flag=TIM3_1s;
				}
				break;
			}
			default:
			{
				if((TIM3_1s-uart3_flag)>2)
				{
					TRASH_A1=400;
					TRASH_A2=400;
					TRASH_A3=400;
					TRASH_A6=400;
					Voice_LED=0;//关灯
					uart3_flag=TIM3_1s;
				}
				break;
			}
		}
		if(GAS==0)		
		{
			Gas_LED = 0;		//指示灯点亮
			BEEP = 1;	
		}
		else
		{
			Gas_LED = 1;		//关闭指示灯
			BEEP = 0;		
		}
		if(VOLUME==0)
		{
			Volume_LED = 0;		//指示灯点亮
			BEEP = 1;	
		}
		else
		{
			Volume_LED = 1;		//关闭指示灯
			if(GAS==1)
			{
				BEEP = 0;	
			}
		}
	}
}	

6 最后

  • 17
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
自动浇花灌溉系统是一种智能化的花园管理系统,可实现对植物的自动浇水和灌溉。该设计基于STM32单片机,并利用Proteus仿真软件进行模拟。 在该系统中,STM32单片机作为主控制器,通过传感器检测土壤湿度、光照强度和温度等信息,然后根据预设的参数来判断是否需要进行浇水或灌溉。若土壤湿度低于设定阈值,系统自动打开电磁阀,开始进行浇水或灌溉。 在Proteus仿真软件中,可以通过连接电路图和编写相应的程序来实现系统功能。通过模拟传感器读取数据,将相关数据传输给STM32单片机,然后进行相关计算和控制。将相应的控制信号输出至电磁阀,实现自动浇水或灌溉功能。 此外,还可以在Proteus仿真软件中添加显示屏模块,用于实时显示传感器数据和系统状态。通过与STM32单片机的通信,将数据传输到显示屏上,使用户可以随时监测植物的生长环境和系统工作状态。 通过Proteus仿真,可以对自动浇花灌溉系统设计进行测试和优化。可以模拟不同的环境条件和传感器数据,验证系统的稳定性和可靠性。同时,还可以进行不同的参数调整和算法优化,以提高系统的效率和节省水资源的使用。 总之,基于STM32单片机和Proteus仿真软件的自动浇花灌溉系统设计可以实现对植物的智能管理和高效浇水灌溉,提高植物的生长质量和节约水资源的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值