单片机毕业设计 自动浇花灌溉系统设计

article/2025/9/20 2:01:06

文章目录

  • 1 简介
  • 2 主要器件
  • 3 实现效果
  • 4 设计原理
  • 5 关键代码


1 简介

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

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

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

选题指导,项目分享:

https://gitee.com/yaa-dc/warehouse-1/blob/master/iot/README.md

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);	//设置系统中断优先级分组2delay_init(168);    //初始化延时函数uart_init(115200);		//初始化串口1波特率为115200uart3_init(115200);		//初始化串口3波特率为115200LED_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;	}}}
}	

选题指导,项目分享:

https://gitee.com/yaa-dc/warehouse-1/blob/master/iot/README.md


http://chatgpt.dhexx.cn/article/yvFMnHHV.shtml

相关文章

基于android智能浇花装置,一种基于WiFi通讯远程控制的智能浇花装置的制作方法...

本实用新型涉及自动浇水装置技术领域,具体涉及一种基于WiFi 通讯远程控制的智能浇花装置。 背景技术: 花卉作为一种极具观赏性的植物,在室内和室外广泛种植。上班族工作紧张,空闲时间较少,长期不在家时需要花草被照料。…

基于51单片机的自动浇花系统

目录 一、项目需求 二、仿真 三、程序 四、资料清单 资料下载地址:基于51单片机的自动浇花系统 一、项目需求 1、自动检测土壤湿度、温度、光照强度; 2、土壤湿度过低驱动水泵进行浇花; 3、LCD1602显示当前土壤湿度、温度、光照强度…

【IoT开发】基于机智云物联网的智能浇花教程

摘要:随着近年来物联网技术的发展,相关的技术已经广泛应用于人们的生产和生活中。文章针对长期无人在家时花卉植物的浇水问题,设计了一套基于物联网的智能浇花系统。系统采用STM32与51增强型单片机作为控制器,esp8266物联网模块作为通信设备,底层采用MQTT协议,连接到物联网云平…

条件概率的链式法则

条件概率 条件概率是指事件A在事件B发生的条件下发生的概率。条件概率表示为:P(A|B),读作“A在B发生的条件下发生的概率”。若只有两个事件A,B,那么, xx 事件发生时 yy 事件发生的概率: P(yy|x…

链式法则总结

链式法则(chain rule)微积分中求导法则,用于求复合函数的导数; 链式法则应用广泛,比如神经网络中的反向传播算法就是已链式法则为基础演变的;接下来先说说链式法则的概念然后通过链式法则的两种形式学习链式…

【深度学习数学基础之线性代数】研究使用链式法则进行反向传播的求导算法

链式法则 简单的说链式法则就是原本y对x求偏导,但是由于过程较为复杂,我们需要将函数进行拆分,通过链式进行分别求导,这样会使整个计算更为简单。 假设f k ( a b c ) f k(a bc)fk(abc) 通俗来说,链式法则表明&a…

微积分-链式法则

来看复合函数如何求导: 现实中要解决的问题,大多可以总结为这三种函数的组合 减法可以看做是加上某个函数的-1倍 除法可以转化为乘法 先来看加法 两个函数的和的导数,就是他们导数的和 两个函数sin(x)和 x 2 x…

求导——链式法则

参考文献:https://www.math.hmc.edu/calculus/tutorials/multichainrule/

【深入浅出】条件概率的链式法则:定义、公式与应用

前言 在概率论的研究中,条件概率是一种非常重要的概念。当多个随机事件发生时,我们有时需要考虑它们同时发生的概率。条件概率的链式法则就是一种用于计算多个随机事件同时发生的概率的方法。本文将会介绍条件概率的链式法则的定义、公式以及应用。 定…

深度学习基础6(微分,偏导,梯度,链式法则)

微积分 如下图所示,内接多边形的等长边越多,就越接近圆。 这个过程也被称为逼近法(method of exhaustion)。 事实上,逼近法就是**积分(integral calculus)**的起源 微积分的另一支&#xff0c…

浅谈神经网络之链式法则与反向传播算法

反向传播是训练神经网络最重要的算法,可以这么说,没有反向传播算法就没有深度学习的今天。但是反向传播算法涉及一大堆数据公式概念。所以我们了解导数计算过程以及要介绍的新的复合函数多层求导计算过程。 链式法则 简单的说链式法则就是原本y对x求偏…

链式法则-梯度更新公式推导(手写笔记)

虽然以前学过导数、偏导、梯度之类的相关知识,但时间久远导致总感觉晕晕乎乎的,于是自己推导一下具有一个隐藏层的神经网络的梯度反向传播公式,希望对大家有帮助。 笔记中指出了为什么会存在梯度消失以及梯度爆炸现象。 梯度消失 主要是由…

微积分拾遗——链式法则

链式法则(chain rule)微积分中求导法则,用于求复合函数的导数; 链式法则应用广泛,比如神经网络中的反向传播算法就是已链式法则为基础演变的;接下来先说说链式法则的概念然后通过链式法则的两种形式学习链式…

概率论 中的 链式法则

2个事件同时发生的概率: P(a, b) P(a | b) * P(b) 其中:P(a, b)表示 a和b事件同时发生的概率, P(a | b)是一个条件概率,表示在b事件发生的条件下,a发生的概率 3个事件的概率链式调用: P(a, b, c) P(a …

链式法则---微积分链式法则和概率链式法则

本篇介绍了微积分链式法则和概率链式法则。 一、概率链式法则 这里首先给出概率链式法则的公式:N个事件的概率链式法则如下, P(X1, X2, ... Xn) P(X1 | X2, X3 ... Xn) * P(X2 | X3, X4 ... Xn) ... P(Xn-1 | Xn) * P(Xn)。 概率链式法则的作用特别…

链式法则(chain rule)

链式法则 链式法则:两个函数组合起来的复合函数,导数等于里面函数代入外函数值的导乘以里面函数之导数; Quotient Rule Chain rule 代码实现

华硕路由器无线打印服务器怎么开启,华硕ASUS路由器无线中继模式设置教程

宽带路由器在一个紧凑的箱子中集成了路由器、防火墙、带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点。最近有用户想知道华硕(ASUS)路由器无线中继模式怎么设置,小编整理了详细教程,跟着步骤大家一定都能成功 具体介绍 一、确定主路由器参数…

华硕路由器配置虚拟服务器,华硕ASUS路由器无线中继模式设置步骤图解

原标题:"华硕ASUS路由器无线中继模式设置教程"相关路由器设置经验分享。 - 来源:191路由网 宽带路由器在一个紧凑的箱子中集成了路由器、防火墙、带宽控制和管理等功能,具备快速转发能力,灵活的网络管理和丰富的网络状态等特点。最近有用户想知道华硕(ASUS)路由器…

tplink迷你路由器中继模式_TP-Link无线路由器中继模式设置教程

在生活中,小伙伴们多多少少都会遇到在上洗手间、阳台上、或者信号比较差的地方,用手机上网,发现网络很差,通讯信号弱,WIFI信号强度几近于无,上网等加载条等半天,那种心如刀割的心情,确实让人恼火!今天呢,A君在这给大家科普一下中继模式(Repeater),教大家怎么让WIFI信…