代码编织梦想


1 简介

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

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

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

2 主要器件

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

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

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

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

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

3 实现效果

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

4 设计原理

在这里插入图片描述

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 最后

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MDC_sir/article/details/129672084

毕设-基于LoRa的智能农业大棚(一)-爱代码爱编程

任务目标 实现功能: (1)能够实时检测显示土壤湿度,当需要浇水的时候自动打开灌溉系统,土壤湿度满足要求后,关闭灌溉系统; (2)检测显示二氧化碳浓度,过高时,通过继电器打开通风排气扇,同时将二氧化碳浓度数值传输到终端进行提示; (3)能够实时检测显示土壤酸碱度,超标时候能给出报警并提示; (4)远程异地和检测与控制:传感器所采集到的信息,通过LoRa模

快速完成单片机毕业设计方法-爱代码爱编程

快速做出毕业设计 1.快速做出毕业设计方法2.毕设借鉴法2.1 程序2.1.1 举例说明2.1 电路设计常用的单片机毕业设计 1.快速做出毕业设计方法 单片机如果只是学习到做出一个毕业设计,其实还是很简单的,而且现在网上的例子那么多,找一个相似的稍微修改下就好了。那么下面说下方法: 首先你需要知道你的毕业设计都需要用到单片机的哪些外设,比如

本科毕业设计题目_matlab技术服务的博客-爱代码爱编程

毕业设计题目如下: 001【毕业设计】基于单片机寻迹巡线避障智能小车系统设计 002【毕业设计】基于单片机体温心率脉搏检测仪系统设计 003【毕业设计】基于单片机仿指针显示的电子时钟设计 004【毕业设计】基于单片机温湿度光照自动窗帘系统设计 005【毕业设计】基于单片机环境监测温湿度PM2.5系统设计 006【毕业设计】基于51单片机的波形发生器(四种波

【单片机课程设计】温室大棚控制系统_为梦而生~的博客-爱代码爱编程

课程设计要求 可以显示温湿度,进行自动调温和灌溉。可以手机控制手动灌溉。 主要设计思想 利用DHT11进行湿度检测、18B20用于温度检测 灌溉使用电机 用手机控制可以使用蓝牙或者2.4G远程控制 主要考察51单片机的综合应用能力主要代码DHT11.c #include "DHT11.h" #define uchar unsigned char

【毕设选题】基于stm32的毕业设计题目项目汇总 - 350例_mdc_stdio的博客-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感谢大家的认可,来啦! 以下是学长亲手整理的STM32相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达标

【毕设选题】基于c51单片机的毕业设计题目项目汇总 - 500例_mdc_stdio的博客-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感谢大家的认可,来啦! 以下是学长亲手整理的C51单片机相关的毕业设计选题,都是经过学长精心审核的题目,适合作为毕设,难度不高,工作量达

单片机类毕业设计题目汇总_单片机俱乐部111的博客-爱代码爱编程

参考网站: https://www.mcuclub.cn/https://www.mcuclub.cn/​​​​​​​ 环境类: 项目名:温度控制 项目编号:mcuclub-hj-001 单片机类型:STC89C52、STM32F103C8T6 具体功能: 1、通过DS18B20测量环境温度,当温度不在设定的上下限值之内时,进行相应的加热制冷

【毕业设计】基于单片机的智慧农业管理系统 -大棚管理系统 自动灌溉系统_mdc_stdio的博客-爱代码爱编程

文章目录 0 前言1 简介2 主要器件3 实现效果4 硬件设计LoRa发射器:土壤湿度传感器+AHT10温湿度传感器LoRa接收器:Lora Radio (433M/868M/915M)设置Lora土壤湿度发射器设置

【毕设选题】最新51单片机毕业设计项目集合 - 500例-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选

毕业设计 单片机智慧农业管理系统 -大棚管理系统 自动灌溉系统-爱代码爱编程

文章目录 0 前言1 简介2 主要器件3 实现效果4 硬件设计LoRa发射器:土壤湿度传感器+AHT10温湿度传感器LoRa接收器:Lora Radio (433M/868M/915M)设置Lora土壤湿度发射器设置

stm32毕业设计题目大全-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感

2023最新stm32毕业设计项目集合-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选

最新51单片机毕业设计项目集合-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感

2023电子科学与技术毕业设计选题-爱代码爱编程

文章目录 1前言2 如何选题2.1 嵌入式开发方向2.2 物联网方向2.3 人工智能方向2.4 算法研究方向2.4 学长作品展示 1前言 🥇 近期不少学弟学妹询问学长关于电子科学与技术专业相关的毕设选

单片机的毕业设计题目项目汇总 - 100例-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选

51单片机毕业设计选题方向-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM32和C51选题系列,感

物联网毕业设计 智能灌溉系统设计-爱代码爱编程

文章目录 1 简介2 主要器件3 实现效果4 设计原理5 关键代码 1 简介 Hi,大家好,今天向大家介绍一个学长做的单片机项目 基于单片机的自动浇花灌溉系统设计 大家可用于 课程设计 或 毕业设计

【单片机毕业设计】【mcuclub-爱代码爱编程

设计简介: 项目名:基于单片机的土壤温湿度控制系统 单片机:STC89C52 功能: 1、通过DS18B20温度传感器测量环境温度; 2、通过土壤湿度传感器测量土壤湿度; 3、通过按键可设置温湿度上下限值; 4、温度过高时,进行降温; 5、温度过低时,进行升温; 6、湿度过高时,进行除湿; 7、湿度过低时,进行加湿; 8、LCD1602实

c51单片机毕业设计题目大全-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM3

2023最新自动化毕业设计题目汇总-爱代码爱编程

文章目录 1前言2 如何选题3 选题方向2.1 物联网方向2.2 嵌入式开发方向2.3 人工智能方向2.4 算法研究方向2.4 学长作品展示 4 最后 1前言 🥇 近期不少学弟学妹询问学长

stm32毕业设计题目大全 选题推荐_2024基于stm32的设计毕业设计题目-爱代码爱编程

文章目录 1前言2 STM32 毕设课题3 如何选题3.1 不要给自己挖坑3.2 难度把控3.3 如何命名题目 4 最后 1前言 🥇 更新单片机嵌入式选题后,不少学弟学妹催学长更新STM3