当前位置: 首页 > news >正文

基于单片机的土壤温湿度控制系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、温湿度控制系统的整体规划
    • 2.3系统的总体构架
  • 二、温度湿度控制系统硬件设计
    • 3.1系统硬件概述
  • 三、 温湿度系统软件设计
    • 4.1系统软件设计概述
  • 四、结论

概要

   课题选择的核心控制芯片是STC89C52单片机,信息呈现窗口采用LCD1602液晶显示屏,通过土壤湿度、温度传感器来采集数据信息。用户操作界面通过外部键盘实现,从而实现系统的参数设置和操控。当温度或湿度超过预设值时将触发警告功能。根据系统硬件的设计方案,选择性能符合的元器件进行组装,同时根据实际情况进行相关模块的电路设计。软件设计部分使用C语言程序实现温湿度监控工程。
通过实物的验证测试,系统各模块功能实现很好,实验简单方便操作,对土壤温湿度的采集和研究具有一定的参考意义。

关键词:STC89C52;温湿度控制系统;温湿度数据采集

一、温湿度控制系统的整体规划

系统可以完成以下三种任务:
(1)温湿度传感器用来及时收集土壤的温湿度数值。根据空间大小和实际需要,在多个位置设置合理的收集点[2]。收集点的传感器将及时收集温度和湿度,无线传输模块将数据进行传递到单片机配置好的单片机后进行数据分析和管理,经过LCD呈现当前值。
(2)若所测得的温度的数据不在开始设定的范围内,单片机就会做出反应,通过温湿度的调节模块,启动洒水装置,向当前土壤洒水降温并补充水分,从而改进土壤的温度和湿度。及时收集温度和湿度,并将数据传递到单片机进行解决。当数据不合理时,将启动调节装置,直到温度和湿度到达合适的值为止。此刻,单片机将发送和关上温度和湿度调节装置,并通过这两个功能轮回作用,协同将土壤的温度和湿度维持在合理范围内。
(3)通过水位检查装置,当水泵的水位超过拟定的最低水位时,将触发水位报警器,并会发出峰鸣警报,提醒我们补充水泵,以防止水位过高。水位太低会导致水量不足。调节土壤的温度和湿度。

2.3系统的总体构架

温度湿度的控制系统需要完成以下四个目的:进行温湿度的数据采集,对于数据进行处理与分析,保存数据入库,分析后进行温度和湿度的调整并且进行蜂鸣器警告。系统的构建必须能够自动进行数据的采集与分析并且对电路进行控制,同时能够与人机通信,因此需要具有强大的管理能力,高可靠性和简易系统结构的CPU作为系统处理器[5]。有许多芯片可以满足此要求,例如使用十分普遍的单芯片微型计算机。系统是基于STC89C52单片机设计的。
构建系统的基本框架如下图所示,由图可以看出系统主要分为以下板块:湿度数据采集板块,温度数据采集板块,喷水板块,蜂鸣器报警板块,检测水位板块。
在这里插入图片描述

2-1系统总体框图
系统采用单片机STC89C52,通过DS18B20温度传感器获取温度信息,从电容式湿度传感器获取土壤的湿度信息,从而实现对土壤温度和湿度的检测。

二、温度湿度控制系统硬件设计

3.1系统硬件概述

本文选择使用基于STC89C52系列单片机的核心处理器作为硬件平台,在这一平台之上进行系统的拓展。在系统搭建上最基本的板块是输出显示和数据输入板块。利用温湿度传感器实时收集土壤的温湿度,然后ADC转换收集的数据并存储有效数据。最后,在LCD显示屏上呈现出有效的数据。其中,温度传感器为DS18B20,湿度传感器为电容式湿度传感器。图3-1为系统的硬件数据处理结构图,图3-2为系统所需的硬件的电路图。
在这里插入图片描述

3-1系统硬件处理结构图
在这里插入图片描述

3-2系统硬件所需的电路图

三、 温湿度系统软件设计

4.1系统软件设计概述

软件的正常运行除了合理的电路设计作为基础,软件的设计与应用也是十分重要的。设计的系统之中我们包括了许多不同的小板块,所有的板块的有机结合之后成为一个整体,对所有小板块进行各自的编程,计算和测试,使得所有小板块能够实现各自的功能,然后合理组合所有板块就构成了一个完整的系统。采取这样的方式可以在之后的改进和更新换代之中较为便利的改变和调整各个模块的位置与作用,这样我们的系统就可以根据不同的情况进行不同的调整,所以组装完成后对其进行初始化进行通电。初始化主要是对单片机的各个部位的工作设置。随后系统通过温湿度传感器将数据传输处理之后显示,并且进行洒水或者进行报警处理。主要流程图如图4.1。
在这里插入图片描述

4-1主程序流程图
系统先编写1602主程序模块、温度采集主程序模块、湿度采集子程序模块等程序模块,然后编写主程序模块。软件编程完成后,调试软件。调试完成后,根据硬件进行软件和硬件的调试。经过多次调试,系统的程序更加完善,最终完成了产品的软、硬件联合调试。

四、结论

  系统的控制系统是STC89C52单片机,从而通过温湿度传感器的作用,实现土壤温湿度数据的收集。通过LCD的人机交互界面对温湿度信息进行呈现,还具有水位报警功能。课题介绍了整体系统的研究设计方法,主要包括整个系统的软件和硬件的设计方案。
在研究开始,以系统的硬件设计方案为基础,分别给出了不同功能的板块的研究设计方式,主要包含数据收集和水位报警模块等几部分。课题通过每个模块的需求来挑选适合的芯片,再根据不同板块功能来设计电路模块。随后在系统的软件设计方案之中介绍了系统的整体设计方案以及各部分的软件设计方式。最后再根据具体情况对系统进行微调。

相关文章:

基于单片机的土壤温湿度控制系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、温湿度控制系统的整体规划2.3系统的总体构架 二、温度湿度控制系统硬件设计3.1系统硬件概述 三、 温湿度系统软件…...

服务器数据库中了elbie勒索病毒怎么办,elbie勒索病毒解密,数据恢复

网络技术的不断成熟,为企业的生产运营提供了强有力的支撑,但是,随之而来的网络安全威胁也不断增加。云天数据恢复中心陆陆续续接到很多企业的求助,企业的服务器数据库e遭到了elbie勒索病毒攻击,导致企业计算机系统瘫痪…...

接口测试及接口测试工具

首先,什么是接口呢? 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你…...

JUC包工具类介绍二

JUC包工具类介绍二 异步任务 Callable Callable接口定义一个异步任务,当Callable接口提交到ExecutorService进行异步执行时,返回结果通过Java Future获取。Callable接口同样可以获取任务执行时的异常。 public class MyCallable implements Callable&…...

第8章_聚合函数

文章目录 1 聚合函数介绍1.1 AVG和SUM函数1.2 MIN和Max函数1.3 COUNT函数演示代码 2 GROUP BY2.1 基本使用2.2 使用多个列分组2.3 演示代码 3 HAVING3.1 基本使用3.2 WHERE和HAVING的对比3.3 演示代码 4 SELECT的执行过程4.1 查询的结构4.2 SELECT执行顺序4.3 SQL的执行原理演示…...

Mysql8与mariadb的安装与常用设置

一、v10服务器mariadb的安装与常用设置 V10服务器默认安装了mariadb数据库。也可使用命令sudo yum install mariadb手动安装或升级默认安装的版本。 1.1 修改数据库密码 systemctl restart mariadb,重启mariadb服务;mysql -u root -p,要求输入密码直接回车&#…...

深入剖析Golang中单例模式

前言 虽说Golang并不是C、Java这种传统的面向对象语言,而是偏向于面向接口编程的语言。但是Golang依旧有接口、结构体、组合等概念去模拟所谓面向对象中非常重要的设计模式。基于面向对象的模型去编写代码往往能编写成高内聚、低耦合、扩展性极强、难出bug的高质量…...

Java之SpringCloud Alibaba【八】【Spring Cloud微服务Gateway整合sentinel限流】

一、Gateway整合sentinel限流 网关作为内部系统外的一层屏障,对内起到-定的保护作用&#xff0c;限流便是其中之- - .网关层的限流可以简单地针对不同路由进行限流,也可针对业务的接口进行限流,或者根据接口的特征分组限流。 1、添加依赖 <dependency><groupId>c…...

深入解析 Redis 分布式锁原理

一、实现原理 1.1 基本原理 JDK 原生的锁可以让不同线程之间以互斥的方式来访问共享资源&#xff0c;但如果想要在不同进程之间以互斥的方式来访问共享资源&#xff0c;JDK 原生的锁就无能为力了。此时可以使用 Redis 来实现分布式锁。 Redis 实现分布式锁的核心命令如下&am…...

[unity]多脚本情况下update函数的执行顺序

序 有的时候&#xff0c;执行某些脚本时会有先后顺序的要求。unity是按什么顺序来执行脚本的&#xff1f;如何设置&#xff1f; 默认的执行顺序 官方文档里面有个很长的图&#xff1a; Unity - Manual: Order of execution for event functions (unity3d.com) 根据文档&…...

Maven中<scope>中等级的区别

标签指定了依赖项的级别吗&#xff0c;默认是compile &#xff08;编译&#xff09;。意味着依赖项将会在编译时和运行时都被包含在项目中 <scope> 标签指定了依赖项的级别为 import 。除了 import 级别&#xff0c;Maven还支持以下几种级别&#xff1a; compile &#x…...

小明和完美序列(HashMap、Map、Entry)

小明和完美序列 知识点&#xff1a; //导包&#xff1a;HashMap、Map、Entry import java.util.HashMap; import java.util.Map; import java.util.Map.Entry;public class Main {public static void main(String [] args) { //创建Map&#xff08;HashMap&#xff09;对象 M…...

【hexo博客配置】hexo icarus主题配置

配置icarus 步骤一&#xff1a;下载icarus github网址&#xff1a;[hexo-theme-icarus](ppoffice/hexo-theme-icarus: A simple, delicate, and modern theme for the static site generator Hexo. (github.com)) 可以从这个网址上下载zip文件&#xff0c;解压后&#xff0c…...

建表时如何合理选择字段类型

前言 我们在建表的时候关于字段类型的选择会有这么几类人&#xff1a; 严谨型 严格调研每个字段可能的大小&#xff0c;然后根据不同字段类型的限制&#xff0c;进行选择&#xff0c;这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…...

Qt Creator插件

这里以Qt Creator 4.15.2版本的源码为示例进行分析 源码结构如下&#xff0c;为了追溯其插件加载过程&#xff0c;从main.cpp入手 Qt Creator的插件目录&#xff0c;生成的插件&#xff0c;好几十个呢 Qt Creator插件的读取 int main(int argc, char **argv)中以下代码创建插…...

AI全栈大模型工程师(十九)Semantic Kernel

文章目录 Semantic KernelSK 的开发进展SK 的生态位SK 基础架构后记 Semantic Kernel 先比较下 Semantic Kernel 和 LangChain。 Semantic KernelLangChain出品公司微软LangChain AI支持语言Python、C#、Java、TypeScriptPython、TypeScript开源协议MITMIT被应用在Microsoft …...

Dubbo 的服务请求失败怎么处理?

本文引用mic老师面试文档 今天分享的面试题&#xff0c;几乎是 90%以上的互联网公司都会问到的问题。 “Dubbo 的服务请求失败怎么处理”&#xff1f; 对于这个问题&#xff0c;我们来看一下普通人和高手的回答。 普通人 嗯… 我记得&#xff0c; Dubbo 请求处理失败以后&a…...

存储虚拟化讲解

目录 存储虚拟化的分类 按照虚拟化发生的位置分类 基于主机的虚拟化 基于存储设备的虚拟化 基于网络的虚拟化 按照虚拟化实现方式分类 带内虚拟化 带外虚拟化 按照虚拟化的对象分类 虚拟机磁盘类型 按照磁盘的特性分类 按照磁盘的安全性分类 什么是虚拟化 存储虚拟…...

[云原生案例2.1 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】节点部分

文章目录 1. 常见的K8S安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署 2. Kubernetes单master集群架构 ---- &#xff08;二进制安装部署&#xff09;2.1 前置准备2.2 操作系统初始化2.3 部署 docker引擎 ---- &#xff08;所有 node 节点&#xff09;2.4 部署 etcd 集…...

Apache ActiveMQ 远程代码执行漏洞影响范围

漏洞相关信息 项目内容漏洞名称Apache ActiveMQ 远程代码执行漏洞 漏洞描述 组件名称&#xff1a;Apache ActiveMQ 漏洞类型&#xff1a;远程代码执行 利用条件&#xff1a; 1、用户认证&#xff1a;不需要用户认证 2、触发方式&#xff1a;网络可访问 ActiveMQ的61616端…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...