基于51单片机的室内湿度加湿温度声光报警智能自动控制装置设计

wx供重浩:创享日记
对话框发送:单片机湿度
获取完整无水印论文报告(内含电路原理图和源程序代码)


在日常生活中加湿器得到了广泛的应用,但是现有的加湿器都需要手工控制开启和关闭并且不具备对室内空气温湿度的监测,人们在使用过程中存在过度加湿和干烧的问题,不仅给室内空气舒适度造成负面影响并且还存在安全隐患。因此开发设计一种价格低廉、功耗低、具有自动控制功能的加湿器显得尤为必要。本设计采用智能控制,以AT89C51单片机为核心,外接辅助电路,通过实现加湿器的防干烧、声光报警、智能开启和关闭以及室内温湿度的显示功能基本实现加湿器的智能化。
在这里插入图片描述


第一章 任务来源意义及目的

在日常生活中加湿器得到了广泛的应用,但是现有的加湿器都需要手工控制开启和关闭并且不具备对室内空气温湿度的监测,人们在使用过程中存在过度加湿和干烧的问题,不仅给室内空气舒适度造成负面影响并且还存在安全隐患。因此开发设计一种价格低廉、功耗低、具有自动控制功能的加湿器显得尤为必要。

本设计采用智能控制,以AT89C51单片机为核心,外接辅助电路,通过实现加湿器的防干烧、声光报警、智能开启和关闭以及室内温湿度的显示功能基本实现加湿器的智能化。


第二章 设计方案

2.1 总体设计
智能加湿器需满足以下要求:
1)相对湿度低于40%时自动加湿;
2)用户可以设置系统温湿度报警值;
3)由5V稳压直流电源供电,提供温湿度调节控制信号,实现自动控制;
4)检测得到的数据可以通过显示模块显示。

硬件设计不仅要满足系统需求,还要满足功能和外形尺寸要求。
根据设计要求确定了系统的总体方案,包系统由两个DS18B20温度传感器一个水位传感器、单片机、1602LCD液晶显示屏、声光报警器、以及一个光电耦合开关等部分组成。系统功能原理图如图1-1所示,两个温度传感器分别采集室内空气的干湿球温度,并将采集的温度传送至单片机。单片机对这两个数据加以处理并结合室内湿度要求参数控制加湿器的开启和闭合。另外,水位传感器还能监测水位,单片机根据水位高低控制声光报警装置。自动加湿器包括加湿模块、报警模块、自动断电模块。
在这里插入图片描述

2.2 实现方式自动加湿器功能原理图

要达到自动加湿器功能要做好硬件和软件设计和调试三个方面的工作。首先硬件方面,通过合理的设计单片机管脚及其他外围电路的链接,使之既有I/O口的功能,又有控制型号的功能。由于时间仓促,没有找到合适的水位传感器,在开发过程中利用三个按钮开关代替水位传感器分别代表高、中、低水位,而加湿器开关则由一发光二级管代替,在方正过程中更容易观察系统开发效果。这方面的内容详见硬件设计部分内容。其次软件方面,通过合理设计软件的结构和安排子程序,使程序以最简洁有效的方式实现目的。最后,调试方面,程序编辑用LAC51系列开发与仿真环境,编辑过程可使用软件仿真观察,并对其进行调试。在程序编辑完成之后使用硬件仿真,最终用烧录器将程序写入单片机进行实测。

本系统分信号的主要有温度传感器的输入信号和单片机输出的控制信号构成。首先由单片机向温度传感器发出读信号,随后温度传感器做出响应,单片机待DS18B20完成收集到得温度信息进行AD处理并存储为数字信号后,开始读取温度值,并对其信号做位处理使之达到用户需求的精度以及计算得到相对湿度,最后通过1602LCD显示温湿度值。另外,系统在运行过程中还有专门的控制声光报警系统、光电耦合开关的控制信号。

2.3 理论基础(详见下载)


第三章 硬件设计

3.1 设计方案
在这里插入图片描述
3.2 电路图
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。系统电路原理图如图2所示。本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路、复位电路、LCD显示电路以及温度传感器电路。
控制电路的核心器件是由美国Atmel公司生产的AT89C51单片机,属于MCS-51系列。AT89C51是一种低功耗、高性能的CMOS8位微控制器,具有2K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。
在这里插入图片描述
系统的声光报器电路(警蜂鸣和LED发光二极管组成)、振落电路、复位电路。显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,电路图如图所示。1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示内容多样化。由于时间仓促,没有找到合适的水位传感器,在开发过程中利用三个按钮开关代替水位传感器分别代表高、中、低水位,而加湿器开关则由一发光二级管代替,在方正过程中更容易观察系统开发效果。

3.3 信号分析
本系统分信号的主要有温度传感器的输入信号和单片机输出的控制信号构成。首先由单片机向温度传感器发出读信号,随后温度传感器做出响应,单片机待DS18B20完成收集到得温度信息进行AD处理并存储为数字信号后,开始读取温度值,并对其信号做位处理使之达到用户需求的精度以及计算得到相对湿度,最后通过1602LCD显示温湿度值。另外,系统在运行过程中还有专门的控制声光报警系统、光电耦合开关的控制信号,这些控制信号比较简单,不再一一论述。

3.4 功能描述
参考舒适性空调的相对湿度采用40%—65%的要求[x],在功能设计过程中以40%为最适相对湿度参考值。单片机一方面通过监测加湿器内部的水位,达到加湿器防干烧的功能,即只有在水位在水位下限以上时加湿器才能通电工作。另一方面通过处理两个温度传感器测得的干湿球温度得到室内相对湿度,并和人体最适相对湿度做比较。在水位符合要求的前提下,若室内相对湿度高于人体最适值则控制加湿器不动作,反之则对加湿器通电开始加湿,直到室内空气达到最适湿度时断电。另外,单片机通过和声光报警器以及1602LCD显示屏相连,还具有了温湿度及水位的显示功能。总之,在现有的加湿器内加入此单片机将实现加湿器的防干烧、声光报警、智能开启和关闭以及室内温湿度的显示功能基本实现加湿器的智能化。

3.5 复位电路
复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。图3-3所示的RC复位电路可以实现上述基本功能,图3为其输入-输出特性。但解决不了电源毛刺(A点)和电源缓慢下降(电池电压不足)等问题 而且调整 RC 常数改变延时会令驱动能力变差。左边的电路为高电平复位有效 右边为低电平Sm为手动复位开关 Ch可避免高频谐波对电路的干扰。
在这里插入图片描述
3.6液位定位及光电开关(详见下载)
3.7 1602显示屏(详见下载)
3.8 DS18B20温度传感器(详见下载)


第四章 软件设计

4.1整体设计及说明
系统单片机代码采用汇编语言编译,以伟福仿真器V8/L为开发环境。系统软件实现的功能:
1)通过LCD显示温湿度值及水位;
2)比较监测到的水位,发现低水位时自动掉电并声光报警;
3)根据相对湿度值控制加湿器的开关。
根据监控系统功能要求,系统软件流程图设计如图所示。
在这里插入图片描述
初始化开始,然后载入程序,根据显示数据读出干球温度T,湿球温度TS,根据干湿球温度求出相对湿度D,然后读出显示的水位H,判断水位H是否大于最小水位Ho:若H<=Ho,则声光报警并关闭加湿器,然后显示温湿度,再读出一个干球温度T,湿球温度TS,计算出相对湿度D,读出水位H循环,直至H>Ho成立后,判断相对湿度D与最小湿度Do的大小比较,若D<=Do则开启加湿器,显示温湿度,循环直至相对湿度D<=Do,关闭加湿器,然后显示温湿度过程循环。

4.2 DS18B20流程设计
每个DS18B20温度传感器的流程图设计如下:
在这里插入图片描述
传感器DS18B20复位,跳过ROM匹配后启动温度转换,DS18B20复位然后跳过ROM匹配,再读取温度后进行温度处理,保留一位小数。读取数据及传送的程序如下:(详见下载)

4.3 1602字符型LCD流程设计
1602字符型LCD流程设计如下:
在这里插入图片描述
显示器1602初始化后延时15ms,显示模式设置,再延时5ms,显示关闭,延时5ms显示清屏,再延时5ms显示光标移动设置延时5ms显示开及光标设置,然后显示位置设置,延时,显示温度各位数值。此部分主要程序过长,参见附录一。


第五章 系统调试

系统与LAC51系列的仿真环境下开发,编程过程中利用软件仿真调试系统,当软仿通过则利用该仿真器仿真,并按顺序检查错误进行修改,最终将程序的HEX文件烧录进入单片机进行实测。

(附录及其它详见下载)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/3540.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【微信小程序】-- 页面导航 -- 编程式导航(二十三)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

堆及其多种接口与堆排序的实现

我们本期来讲解堆结构 目录 堆的结构 堆的初始化 堆的销毁 堆的插入 向上调整算法 堆的删除 向下调整算法 取堆顶元素 判断堆是否为空 堆中元素个数 堆排序 向下调整与向上调整效率计算 Top-K问题 全部代码 堆的结构 堆是一种用数组模拟二叉树的结构 逻辑结构是…

Linux命令scp用法

本文主要讲的是scp用法如果哪里不对欢迎指出&#xff0c;主页https://blog.csdn.net/qq_57785602?typeblogscp 可以在win系统使用&#xff0c;本文百分之八十写的是win系统怎么使用&#xff0c;在本地上到服务器文件,从服务器下载文件到本地用工具连接到公司服务器时&#xff…

主线程与子线程之间相互通信(HandlerThread)

平时&#xff0c;我们一般都是在子线程中向主线程发送消息&#xff08;要在主线程更新UI&#xff09;&#xff0c;从而完成请求的处理。那么如果需要主线程来向子线程发送消息&#xff0c;希望子线程来完成什么任务。该怎么做&#xff1f;这就是这篇文章将要讨论的内容。 一、…

Unity 之 使用原生UGUI实现随手移动摇杆功能经典实例

Unity 之 使用原生UGUI实现随手移动摇杆功能实现效果一&#xff0c;实现思路1.1 原理解析1.2 思路概述二&#xff0c;实现代码2.1 随手落下2.2 摇杆转动三&#xff0c;源码分享3.1 场景搭建3.2 完整代码3.3 实现效果实现效果 本文最终实现效果&#xff1a; 一&#xff0c;实现…

【数据结构】千字深入浅出讲解栈(附原码 | 超详解)

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;C语言实现数据结构 &#x1f4ac;总结&#xff1a;希望你看完…

K8S + GitLab + Jenkins自动化发布项目实践(一)

K8S GitLab Jenkins自动化发布项目实践&#xff08;一&#xff09;发布流程设计安装Docker服务部署Harbor作为镜像仓库部署GitLab作为代码仓库常用Git命令发布流程设计 #mermaid-svg-pe9VmFytb9GmqMvG {font-family:"trebuchet ms",verdana,arial,sans-serif;font-…

微软Bing加入ChatGPT后如何用?教你12种问法黄金公式学会了,又能研究新副业赚钱又能加快学习速度

自从Bing连上chatgpt之后&#xff0c;chatgpt的回答不再像之前那样模棱两可&#xff0c;变得准确起来&#xff0c;至少给出的答案比起往常的会有更多一些的参考价值&#xff0c;也可以帮助大家能够更加深入细节去问问题和梳理问题的流程和解答的方式 当然问法不同得出的答案也是…

不做孔乙己也不做骆驼祥子

对教书育人的探讨前言一、为什么要“育人”1.育人为先2.育人是快乐的二、怎么“育人”前言 借着本次师德师风建设的主题&#xff0c;跟各位老师谈一谈对于“育人”的一些观点&#xff0c;和教育的一些看法。本文仅代表自己的观点&#xff0c;有不到位的地方&#xff0c;大家可以…

Linux虚拟机安装MySQL教程

文章目录一、安装步骤如下一、安装步骤如下 新建文件夹/opt/mysql&#xff0c;并cd进去运行wget http:/dev.mysql.com/get/mysq1-5.7.26-1.el7.x86_64.rpm-bundle.tar&#xff0c;下载mysql安装包 PS: centos7.6自带的类mysql数据库是mariadb&#xff0c;会跟mysql 冲突&…

单片机 | 51单片机原理

【金善愚】 单片机应用原理篇 笔记整理 课程视频 &#xff1a;https://space.bilibili.com/483942191/channel/collectiondetail?sid51090 文章目录一、引脚分布介绍1.分类2.电源引脚3.时钟引脚(2根)4.控制引脚(4根)5.端口引脚(32根)二、存储器结构及空间分布介绍1.存储器的划…

Android 14 新功能之 HighLights:快速实现文本高亮~

日常开发中可能会遇到给 TextView 的全部或部分文本增加高亮效果的需求&#xff0c;以前可能是通过 Spannable 或者 Html 标签实现。 升级 Android 14 后就不用这么迂回了&#xff0c;因其首次引入直接设置高亮的 API&#xff1a;HighLights。需要留意的是 HighLights API 和 …

香橙派5使用NPU加速yolov5的实时视频推理(二)

三、将best.onnx转为RKNN格式 这一步就需要我们进入到Ubuntu20.04系统中了&#xff0c;我的Ubuntu系统中已经下载好了anaconda&#xff0c;使用anaconda的好处就是可以方便的安装一些库&#xff0c;而且还可以利用conda来配置虚拟环境&#xff0c;做到环境与环境之间相互独立。…

STM32开发基础知识入门

C语言基础 位操作 对基本类型变量可以在位级别进行操作。 1) 不改变其他位的值的状况下&#xff0c;对某几个位进行设值。 先对需要设置的位用&操作符进行清零操作&#xff0c;然后用|操作符设值。 2) 移位操作提高代码的可读性。 3) ~取反操作使用技巧 可用于对某…

【UML】软件需求说明书

目录&#x1f981; 故事的开端一. &#x1f981; 引言1.1编写目的1.2背景1.3定义1.4参考资料二. &#x1f981; 任务概述2.1目标2.2用户的特点2.3假定和约束三. &#x1f981; 需求规定3.1 功能性需求3.1.1系统用例图3.1.2用户登录用例3.1.3学员注册用例3.1.4 学员修改个人信息…

基于 PyTorch + LSTM 进行时间序列预测(附完整源码)

时间序列数据&#xff0c;顾名思义是一种随时间变化的数据类型。 例如&#xff0c;24小时内的温度、一个月内各种产品的价格、某家公司一年内的股票价格等。深度学习模型如长短期记忆网络&#xff08;LSTM&#xff09;能够捕捉时间序列数据中的模式&#xff0c;因此可以用于预…

【C/C++】程序的内存开辟

在C/C语言中&#xff0c;不同的类型开辟的空间区域都是不一样的. 这节我们就简单了解下开辟不同的类型内存所存放的区域在哪里. 文章目录栈区&#xff08;stack&#xff09;堆区&#xff08;heap&#xff09;数据段&#xff08;静态区&#xff09;常量存储区内存开辟布局图栈区…

批量保存网页为单个网页文件

有时候&#xff0c;总有会遇到一些奇怪的需求&#xff0c;各种搜索都找不到答案&#xff0c;本次记录批量保存网页到单个网页文件。使用背景&#xff1a;只想简单的解决问题&#xff0c;不涉及编程网页带格式,将网页存为PDF格式会变量太大&#xff0c;一个个的处理太累涉及技术…

《毫无意义的工作》读书思考——互联网中,技术管理岗的价值或作用是什么?

目录 一、背景 二、书中咋说的 三、价值或作用可以从哪些方面思考&#xff1f; 四、写在最后 一、背景 日常工作中&#xff0c;自己经历的、身边人的吐槽&#xff0c;常常会有对纯技术管理者意义的怀疑。工作若干年&#xff0c;遇到各种各样的管理者&#xff0c;但让人吐槽…

【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一

相关链接 【2023年第十一届泰迪杯数据挖掘挑战赛】B题&#xff1a;产品订单的数据分析与需求预测 建模及python代码详解 问题一 【2023年第十一届泰迪杯数据挖掘挑战赛】B题&#xff1a;产品订单的数据分析与需求预测 建模及python代码详解 问题二 1 题目 一&#xff0e;问题…