基于单片机的土壤温湿度控制系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 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限流 网关作为内部系统外的一层屏障,对内起到-定的保护作用,限流便是其中之- - .网关层的限流可以简单地针对不同路由进行限流,也可针对业务的接口进行限流,或者根据接口的特征分组限流。 1、添加依赖 <dependency><groupId>c…...
深入解析 Redis 分布式锁原理
一、实现原理 1.1 基本原理 JDK 原生的锁可以让不同线程之间以互斥的方式来访问共享资源,但如果想要在不同进程之间以互斥的方式来访问共享资源,JDK 原生的锁就无能为力了。此时可以使用 Redis 来实现分布式锁。 Redis 实现分布式锁的核心命令如下&am…...
[unity]多脚本情况下update函数的执行顺序
序 有的时候,执行某些脚本时会有先后顺序的要求。unity是按什么顺序来执行脚本的?如何设置? 默认的执行顺序 官方文档里面有个很长的图: Unity - Manual: Order of execution for event functions (unity3d.com) 根据文档&…...
Maven中<scope>中等级的区别
标签指定了依赖项的级别吗,默认是compile (编译)。意味着依赖项将会在编译时和运行时都被包含在项目中 <scope> 标签指定了依赖项的级别为 import 。除了 import 级别,Maven还支持以下几种级别: compile &#x…...
小明和完美序列(HashMap、Map、Entry)
小明和完美序列 知识点: //导包: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(HashMap)对象 M…...
【hexo博客配置】hexo icarus主题配置
配置icarus 步骤一:下载icarus github网址:[hexo-theme-icarus](ppoffice/hexo-theme-icarus: A simple, delicate, and modern theme for the static site generator Hexo. (github.com)) 可以从这个网址上下载zip文件,解压后,…...
建表时如何合理选择字段类型
前言 我们在建表的时候关于字段类型的选择会有这么几类人: 严谨型 严格调研每个字段可能的大小,然后根据不同字段类型的限制,进行选择,这一类人在创建关系型数据表的时候是没有问题的。图自己省事型 把所有字段都设置为String&a…...
Qt Creator插件
这里以Qt Creator 4.15.2版本的源码为示例进行分析 源码结构如下,为了追溯其插件加载过程,从main.cpp入手 Qt Creator的插件目录,生成的插件,好几十个呢 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老师面试文档 今天分享的面试题,几乎是 90%以上的互联网公司都会问到的问题。 “Dubbo 的服务请求失败怎么处理”? 对于这个问题,我们来看一下普通人和高手的回答。 普通人 嗯… 我记得, Dubbo 请求处理失败以后&a…...
存储虚拟化讲解
目录 存储虚拟化的分类 按照虚拟化发生的位置分类 基于主机的虚拟化 基于存储设备的虚拟化 基于网络的虚拟化 按照虚拟化实现方式分类 带内虚拟化 带外虚拟化 按照虚拟化的对象分类 虚拟机磁盘类型 按照磁盘的特性分类 按照磁盘的安全性分类 什么是虚拟化 存储虚拟…...
[云原生案例2.1 ] Kubernetes的部署安装 【单master集群架构 ---- (二进制安装部署)】节点部分
文章目录 1. 常见的K8S安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署 2. Kubernetes单master集群架构 ---- (二进制安装部署)2.1 前置准备2.2 操作系统初始化2.3 部署 docker引擎 ---- (所有 node 节点)2.4 部署 etcd 集…...
Apache ActiveMQ 远程代码执行漏洞影响范围
漏洞相关信息 项目内容漏洞名称Apache ActiveMQ 远程代码执行漏洞 漏洞描述 组件名称:Apache ActiveMQ 漏洞类型:远程代码执行 利用条件: 1、用户认证:不需要用户认证 2、触发方式:网络可访问 ActiveMQ的61616端…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
解锁数据库简洁之道:FastAPI与SQLModel实战指南
在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
