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

article/2025/9/20 2:25:57

目录

一、项目需求

二、仿真

三、程序

四、资料清单

资料下载地址:基于51单片机的自动浇花系统

一、项目需求

1、自动检测土壤湿度、温度、光照强度;

2、土壤湿度过低驱动水泵进行浇花;

3、LCD1602显示当前土壤湿度、温度、光照强度;

4、当光强、温度超过一定范围后报警;

二、仿真

 

三、程序

部分程序

enum { TEMP,HUMI };
typedef union              		//定义共用同类型
{unsigned int i;float f;
}value;int display = 0;
void delay(uchar ms) 
{  // 延时子程序 
uchar i; 
while(ms--) 
{ for(i = 0;i<250;i++);  
} 
}char ShtWriteByte(unsigned char value)
{unsigned char i,error=0;for(i=128;i>0;i>>=1)  // 高位为1,循环右移{if (i&value)Data_P=1;       	// 和要发送的数相与,结果为发送的位elseData_P=0;Sck_P=1;_nop_();						// 延时3us_nop_();_nop_();Sck_P=0;}Data_P=1;    					// 释放数据线Sck_P=1;error=Data_P;  				// 检查应答信号,确认通讯正常_nop_();_nop_();_nop_();Sck_P=0;Data_P=1;return error; 				// error=1 通讯错误
}char ShtReadByte(unsigned char ack)
{unsigned char i,val=0;Data_P=1; 						// 释放数据线for(i=0x80;i>0;i>>=1)	// 高位为1,循环右移{Sck_P=1;if(Data_P)val=(val|i);    	// 读一位数据线的值Sck_P=0;}Data_P=!ack;    			// 如果是校验,读取完后结束通讯Sck_P=1;_nop_();							// 延时3us_nop_();_nop_();Sck_P=0;_nop_();_nop_();_nop_();Data_P=1; 						// 释放数据线return val;
}void ShtTransStart(void)
{Data_P=1;Sck_P=0;_nop_();Sck_P=1;_nop_();Data_P=0;_nop_();Sck_P=0;_nop_();_nop_();_nop_();Sck_P=1;_nop_();Data_P=1;_nop_();Sck_P=0;
}void ShtConnectReset(void)
{unsigned char i;Data_P=1; 		   		//准备Sck_P=0;for(i=0;i<9;i++)  	//DATA保持高,SCK时钟触发9次,发送启动传输,通迅即复位{Sck_P=1;Sck_P=0;}ShtTransStart();   	//启动传输
}char ShtMeasure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode)
{unsigned error=0;unsigned int i;ShtTransStart();  		// 启动传输switch(mode)       		// 选择发送命令{case 1 :   					// 测量温度error+=ShtWriteByte(0x03);break;case 2 :   					// 测量湿度error+=ShtWriteByte(0x05);break;default:break;}for(i=0;i<65535;i++)if(Data_P==0)break;  					// 等待测量结束if(Data_P)error+=1;   			// 如果长时间数据线没有拉低,说明测量错误*(p_value) =ShtReadByte(1);  		// 读第一个字节,高字节 (MSB)*(p_value+1)=ShtReadByte(1); 		// 读第二个字节,低字节 (LSB)*p_checksum =ShtReadByte(0);  	// read CRC校验码return error;  									// error=1 通讯错误
}void CalcSHT11(float *p_humidity ,float *p_temperature)
{const float C1=-4.0;	 			// 12位湿度精度 修正公式const float C2=+0.0405;			// 12位湿度精度 修正公式const float C3=-0.0000028;	// 12位湿度精度 修正公式const float T1=+0.01;	 			// 14位温度精度 5V条件 修正公式const float T2=+0.00008;	 	// 14位温度精度 5V条件 修正公式float rh=*p_humidity;	 			// rh: 12位 湿度float t=*p_temperature;			// t:  14位 温度float rh_lin;								// rh_lin: 湿度 linear值float rh_true;							// rh_true: 湿度 ture值float t_C;	 								// t_C : 温度 ℃t_C=t*0.01 - 40;	 					//补偿温度rh_lin=C3*rh*rh + C2*rh + C1;					//相对湿度非线性补偿rh_true=(t_C-25)*(T1+T2*rh)+rh_lin;		//相对湿度对于温度依赖性补偿*p_temperature=t_C;	 				//返回温度结果*p_humidity=rh_true;	 			//返回湿度结果
}

 四、资料清单


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

相关文章

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

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

条件概率的链式法则

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

链式法则总结

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

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

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

微积分-链式法则

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

求导——链式法则

参考文献&#xff1a;https://www.math.hmc.edu/calculus/tutorials/multichainrule/

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

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

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

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

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

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

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

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

微积分拾遗——链式法则

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

概率论 中的 链式法则

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

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

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

链式法则(chain rule)

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

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

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

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

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

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

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

华硕路由搭建php网站,华硕路由器操作模式

*无线路由器 在无线路由器模式中&#xff0c;RT-AC88U 透过 PPPoE、DHCP、PPTP、L2TP 或静态 IP 连接至网络&#xff0c;并且将无线网络分享至 LAN 客户端或设备。 在此模式中&#xff0c;NAT、防火墙与 DHCP 服务器默认为开启。支持 UPnP 与动态 DNS 适用于 SOHO 与家庭使用者…

android 路由模式设置,安卓手机设置路由器的方法教程步骤图

现在很多人使用的智能手机都是安卓系统的&#xff0c;很多时候我们在使用安卓手机连接路由器之后直接就可以对路由器进行设置&#xff0c;不需要通过电脑了&#xff0c;下面是学习啦小编整理的安卓手机设置路由器的方法&#xff0c;供您参考。 安卓手机设置路由器的方法 首先&a…