基于单片机的温湿度感应智能晾衣杆系统设计

news2024/12/28 20:45:46
[摘 要] 本设计拟开发一种湿度感应智能晾衣杆系统 此新型晾衣杆是以单片机为主控芯片
来控制的实时检测系统 该系统使用 DHT11 温湿度传感器来检测大气的温湿度 然后通过单
片机处理信息来控制 28BYJ - 48 型步进电动机完成收晾衣服的工作 并且由单片机控制蜂鸣
器实现报警 从而来实现智能收晾衣服以及报警的功能
[关键词] 单片机 ; DHT11 ; 温湿度 ; 28BYJ - 48 步进电动机
随着人们生活质量的提高 各种自动化电子电器设备在我们生活中变得随处可见, 如路灯自控装置、 塑料大棚自控装备 防盗系统自控 等等. 一直以来 人们都习惯于把洗好的衣服放到太阳下面晒干, 可是当我们在阳光明媚时候把衣服晾出去, 恰好我们又要出门 如果突然下起雨来, 那本来要干的衣服又被淋湿了 让人十分烦恼, 而如今的空气污染日益严重 雨滴中含有大量灰尘等物质. 随着电子智能的进步 我们希望有一个“ 的晾衣杆 在我们不在家而天气突然转阴或下雨时, 它能帮我们把衣服收起来 本设计基于 AT89S52 单片机的湿度感应自动收缩晾衣杆以期为人们解除苦恼.

1 基于单片机的湿度智能晾衣杆组成

该仪器主要由湿度测量 信号转换与输送系统、 伸缩系统 3 个部分组成 具体结构如图 1 所示. 首先 湿度测量部分的工作是由湿度传感器来实现的, 其可以实时地检测到的空气湿度情况提供给下一部分设备; 然后 信号转换与输送系统是由 AT89S52 单片机来完成的 单片机接受到传感器的湿度信号后将其处理转化为所需的稳定的电信号; 最后 经过分析处理后的电信号传输给单相异步电动机组成的伸缩系统后, 该系统根据大气的湿度来控制电动机带动车轮向室内移动或者向室外移动完成其伸缩功能. 具体结构如图 1 所示

这个系统是基于 AT89S52 单片机控制的实时检测系统, 具有价格低 比较实用 方便节能的优点, 对爱养花护花者来说具有实实在在的使用价值, 也对家庭自动化的发展起到一定的作用

2 系统工作原理

本湿度智能晾衣杆是以 AT89S52 单片机 : 8位 AD + PWM 输出为主控制器件 首先传感器经过信号放大, 再进入 ADC 转换 传给单片机处理. 选用的 HC02 电容型湿度传感器将检测到湿度情况并将其转化为具体的湿度参数, 将转化后的湿度信号传送给单片机, 单片机将采集到的信号经过处理后转化成电信号传送给射频通信电路; 然后 射频通信电路将接收到的数据输送给单相异步电动机所组成的伸缩系统, 伸缩系统再控制伸缩晾衣杆的伸缩即可

3 系统硬件设计

3. 1 温湿度传感器电路

3. 1. 1 DHT11 数字传感器性能与应用电路

DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器. 它应用专用的数字模块采集技术和温湿度传感技术, 确保产品具有极高的可靠性与卓越的长期稳定性. 传感器包括一个电阻式感湿元件和一个 NTC 测温元件, 并与一个高性能 8 位单片机相连接 因此该产品具有品质卓越、 超快响应 抗干扰能力强 、性价比极高等优点. 每个 DHT11 传感器都在极为精确的湿度校验室中进行校准. 校准系数以程序的形式储存在 OTP 内存中 传感器内部在检测信号的处理过程中要调用这些校准系数. 单线制串行接口, 使系统集成变得简易快捷 超小的体积、 极低的功耗 信号传输距离可达 20 m 以上, 使其成为各类应用甚至最为苛刻的应用场合的最佳选择. 产品为 4 针单排引脚封装 连接方便, 特殊封装形式可根据用户需求而提供 .接口说明如图 2 所示

3. 1. 2 DHT11

数字传感器电源引脚以及串行接口电源引脚: DHT11 的供电电压为 3 ~ 5. 5 V.传感器上电后, 要等待 1 s 以越过不稳定状态在此期间无需发送任何指令. 电 源 引 脚 ( VDD ,GND) 之间可增加一个 100 nF 的电容 用以去耦滤波.
串行接口 : DATA 用于微处理器与 DHT11 之间的通讯和同步, 采用单总线数据格式 一次通讯时间 4 ms 左右 数据分小数部分和整数部分 ,具体格式在下面说明, 当前小数部分用于以后扩展, 现读出为零 操作流程为一次完整的数据传输为 40 bit 高位先出 数据格式 : 8 bit 湿度整数数据 + 8 bit 湿度小数数据 + 8bit 温度整数数据+ 8 bit 温度小数数据 + 8 bit 校验和数据传送正确时校验和数据等于“ 8 bit 湿度整数数据 + 8 bit湿度小数数据 + 8 bit 温度整数数据 + 8 bit 温度小数数据” 所得结果的末 8
用户 MCU 发送一次开始信号后 DHT11 从低功耗模式转换到高速模式, 等待主机开始信号结束后, DHT11 发送响应信号 送出 40 bit 的数据, 并触发一次信号采集 用户可选择读取部分数据. 从模式下 DHT11 接收到开始信号触发一次温湿度采集, 如果没有接收到主机发送开始信号, DHT11 不会主动进行温湿度采集 采集数据后转换到低速模式,过程如图 3 所示.

总线空闲状态为高电平 主机把总线拉低等待 DHT11 响 应 主机把总线拉低必须大于 18ms, 保证 DHT11 能检测到起始信号 . DHT11 接收到主机的开始信号后, 等待主机开始信号结束 ,然后发送 80 μ s 低电平响应信号 主机发送开始信号 结 束 后, 延 时 等 待 20 ~ 40 μ s 读 取DHT11 的响应信号 主机发送开始信号后 可以切换到输入模式, 或者输出高电平均可 总线由上拉电阻拉高, 过程如图 4 所示

总线为低电平 说明 DHT11 发送响应信号 ,DHT11 发送响应信号后 再把总线拉高 80 μ s ,准备发送数据, 每一 bit 数据都以 50 μ s 低电平时隙开始, 高电平的长短定了数据位是 0 还是 1.格式如图 5 所示 如果读取响应信号为高电平 ,则 DHT11 没有响应 请检查线路是否连接正常。当最后一个 bit 数据传送完毕后,DHT11 拉低总 线 50 μ s 随后总线由上拉电阻拉高进入闲 状 态.

3. 2 单片机最小系统电路

复位电路和时钟电路都是单片机最小系统的基本部分. 复位电路通常采用上电自动复位和按键复位两种方式. 本系统选用按键手动复位 ,这种方式方便、 简单 容易操作 它是通过 RST端经电阻与电源 VCC 接通而实现的
单片机各功能部件的运行都是以时钟控制信号为基准, 有条不紊地一拍一拍地工作 因此 ,时钟频率直接影响单片机的速度, 时钟电路的质量也直接影响单片机的稳定性. 时钟电路设计有内部时钟方式和外部时钟方式两种 本系统采用内部时钟方式, 具体电路如图 6 所示

3. 3 液晶显示

液晶显示模块具有体积小 功耗低 显示内容丰富等特点, 现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件. 因此 在这里采用的是液晶 1602B 字母显示屏型 它可以显示2 行每行 16 个英文字符 8 位数据总线 D0- D7 和 RS R/W EN 3 个控制端口 工作电压为 5 V 并且带有字符对比度调节和背光 该模块也可以只用 D4 - D7 作为 4 位数据分两次传送 这样的话可以节省 MCU I/O 口资源 下面就对此型号的显示器进行简单的介绍.1602B 引脚说明如表 1 所示

3. 4 步进电机与驱动电路

步进电机是一种将电脉冲转化为角位移的执行机构. 当步进驱动器接收到一个脉冲信号 ,它就驱动步进电机按设定的方向转动一个固定的角度( 及步进角 ) 可以通过控制脉冲个来控制角位移量, 从而达到准确定位的目的 ; 同时可以通过控制脉冲频率来控制电机转动的速度和加速度, 从而达到调速的目的
步进电机 28BYJ48 4 8 拍电机 电压为DC5 ~ 12 V. 当对步进电机施加一系列连续不断的控制脉冲时, 它可以连续不断地转动 每一个脉冲信号对应步进电机的某一相或两相绕组的通电状态改变一次, 也就对应转子转过一定的角度( 一个步距角 ) .驱动模块电路, 由于单片机接口信号不够大需要通过 ULN2003 放大再连接到相应的电机接口 具体电路如图 7 所示

电机正反转部分程序如下
void motor_ccw ( void )
{ uchar i
j
;
for ( j = 0 ; j < 8 ; j + + ) / / 电机旋转一周 不是外面所
看到的一周 是里面的传动轮转了一周
{ if ( K3 = = 0 )
{
break ; / / 如果 K3 按下 退出此循环
}
for ( i = 0 ; i < 8 ; i + + ) / / 旋转 45°
{
P0 = CCW i ];
delaynms ( 10 ) ; / / 调节转速
} } }

4 系统软件设计和仿真图

4. 1 程序流程图

程序流程如图 8 所示

4. 2 程序设计

C 语言是一种计算机程序设计语言 它既有高级语言的特点, 又具有汇编语言的特点 它可以作为系统设计语言, 编写工作系统应用程序 ,也可以作为应用程序设计语言, 编写不依赖计算机硬件的应用程序. C 语言对操作系统和系统使用程序以及需要对硬件进行操作的场合, C 语言明显优于其它解释型高级语言. C 语言具有绘图能力强, 可移植性 并具备很强的数据处理能力, 因此适于编写系统软件 而且它是数值计算的高级语言. 所以本次设计采用 C 语言编程

4. 3 系统设计仿真图

系统设计仿真图如图 9 所示

5 结语

本设计采用 AT89S52 作为主控芯片 设计了一种智能的温湿度自动晾衣杆. 信号转换与输送系统是由单片机来完成的, 单片机接受到 DHT11温湿度传感器的温湿度信号后将其处理转化为所需的稳定电信号. 经过分析处理后的电信号传输给单相异步电动机组成的伸缩系统. 该系统根据大气的湿度来控制电动机带动传动轮向室内移动或者向室外移动完成其伸缩功能, 完全实现自动化控制.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置路由器支持Telnet操作 计网实验

实验要求: 假设某学校的网络管理员第一次在设备机房对路由器进行了初次配置后,他希望以后在办公室或出差时也可以对设备进行远程管理,现要在路由器上做适当配置,使他可以实现这一愿望。 本实验以一台R2624路由器为例,…

使用 Hugging Face 的 Transformers 库加载预训练模型遇到的问题

题意: Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Huggingface PyTorch 这个错误信息 "Size mismatch for embed_out.weight: copying a param with shape torch.Size([0]) from checkpoint - Hugg…

Redis管理禁用命令

在redis数据量比较大时,执行 keys * ,fluashdb 这些命令,会导致redis长时间阻塞,大量请求被阻塞,cpu飙升,严重可能导致redis宕机,数据库雪崩。所以一些命令在生产环境禁止使用。 Redis 禁用命令…

开始尝试从0写一个项目--前端(二)

修改请求路径的位置 将后续以及之前的所有请求全都放在同一个文件夹里面 定义axios全局拦截器 为了后端每次请求都需要向后端传递jwt令牌检验 ps:愁死了,翻阅各种资料,可算是搞定了,哭死~~ src\utils\request.js import axio…

【QML之·基础语法概述】

系列文章目录 文章目录 前言一、QML基础语法二、属性三、脚本四、核心元素类型4.1 元素可以分为视觉元素和非视觉元素。4.2 Item4.2.1 几何属性(Geometry):4.2.2 布局处理:4.2.3 键处理:4.2.4 变换4.2.5 视觉4.2.6 状态定义 4.3 Rectangle4.3.1 颜色 4.4…

互联网3.0时代的变革者:华贝甄选大模型创新之道

在当今竞争激烈的商业世界中,华贝甄选犹如一颗璀璨的明星,闪耀着独特的光芒。 华贝甄选始终将技术创新与研发视为发展的核心驱动力。拥有先进的研发团队和一流设施,积极探索人工智能、大数据、区块链等前沿技术,为用户提供高性能…

Knife4j的介绍与使用

目录 一、简单介绍1.1 简介1.2 主要特点和功能: 二、使用步骤:2.1 添加依赖:2.2 yml数据源配置2.3 创建knife4j配置类2.4 注解的作用 最后 一、简单介绍 1.1 简介 Knife4j 是一款基于Swagger的开源文档管理工具,主要用于生成和管…

【PTA天梯赛】L1-003 个位数统计(15分)

作者:指针不指南吗 专栏:算法刷题 🐾或许会很慢,但是不可以停下来🐾 文章目录 题目题解总结 题目 题目链接 题解 使用string把长度达1000位的数字存起来开一个代表个位数的数组 a[11]倒序计算最后一位,…

第16章 主成分分析:四个案例及课后习题

1.假设 x x x为 m m m 维随机变量,其均值为 μ \mu μ,协方差矩阵为 Σ \Sigma Σ。 考虑由 m m m维随机变量 x x x到 m m m维随机变量 y y y的线性变换 y i α i T x ∑ k 1 m α k i x k , i 1 , 2 , ⋯ , m y _ { i } \alpha _ { i } ^ { T } …

从微软 Word 中提取数据

从 Microsoft Word 文档中提取数据可以通过编程来实现,有几种常见的方法,其中之一是使用 Python 和 python-docx 库。python-docx 是一个处理 .docx 文件(Microsoft Word 文档)的 Python 库,可以读取和操作 Word 文档的…

泛微开发修炼之旅--36通过js控制明细表中同一列中多个浏览框的显示控制逻辑(明细表列中多字段显示逻辑控制)

文章链接:36通过js控制明细表中同一列中多个浏览框的显示控制逻辑(明细表列中多字段显示逻辑控制)

谷粒商城学习笔记-22-分布式组件-SpringCloud-OpenFeign测试远程调用

文章目录 一,OpenFeign的简介二,OpenFeign的使用步骤1,场景说明2,引入依赖2,开启OpenFeign3,编写Feign接口4,使用feign调用远程接口5,验证 错误记录 上一节学习了注册中心&#xff0…

变长输入神经网络设计

我对使用 PyTorch 可以轻松构建动态神经网络的想法很感兴趣,因此我决定尝试一下。 我脑海中的应用程序具有可变数量的相同类型的输入。对于可变数量的输入,已经使用了循环或递归神经网络。但是,这些结构在给定行的输入之间施加了一些顺序或层…

前端面试题31(TCP与UDP区别)

TCP (Transmission Control Protocol) 和 UDP (User Datagram Protocol) 是两种在网络通信中常用的传输层协议,它们在多个方面存在显著差异,主要体现在以下几个方面: 连接方式: TCP 是面向连接的协议。在数据传输开始之前&#xf…

STM32学习历程(day6)

EXTI外部中断使用教程 首先先看下EXTI的框图 看这个框图就能知道要先初始化GPIO外设 那么和前面一样 1、先RCC使能时钟 2、配置GPIO 选择端口为输入模式, 3、配置AFIO,选择我们用的GPIO连接到后面的EXTI 4、配置EXTI,选择边沿触发方式…

前端javascript中的排序算法之选择排序

选择排序(Selection Sort)基本思想: 是一种原址排序法; 将数组分为两个区间:左侧为已排序区间,右侧为未排序区间。每趟从未排序区间中选择一个值最小的元素,放到已排序区间的末尾,从…

从Helm到 Operator:Kubernetes应用管理的进化

🧰Helm 的作用 在开始前需要先对 kubernetes Operator 有个简单的认识。 以为我们在编写部署一些简单 Deployment 的时候只需要自己编写一个 yaml 文件然后 kubectl apply 即可。 apiVersion: apps/v1 kind: Deployment metadata: labels: app: k8s-combat …

Camera Raw:常规工具

在 Camera Raw 窗口右下角提供了四个常用的工具,它们分别是:缩放工具、抓手工具、切换取样器叠加以及切换网格叠加工具。 ◆ ◆ ◆ 缩放工具 Zoom Tool 用于放大或缩小预览图像,便于查看和编辑细节。 快捷键:Z 1、双击“缩放工具…

jvm 06 对象内存结构,指针压缩,调优

01 内存布局 mark word 32bit 4B 64bit 8B 类型指针 klass pointer 开启指针压缩 4B 关闭指针压缩 8B 数组长度 4B 没有这个区域 实例数据 bool 1B 1 true,0 false #define TRUE 1 byte 1B char 2B 1B int 4B float 4B long 8B double 8B 引用类型 开启指针压缩 4B …

部署前端项目

常见部署方式有:静态托管服务、服务器部署 1. 静态托管服务 使用平台部署代码,比如 GitHub。 | 创建一个仓库,仓库名一般是 yourGithubName.github.io。 | 将打包后的静态文件文件上传到仓库。 | 在“Settings”(选项&#xff0…