基于单片机的智能晾衣系统设计

摘 要 :在网络信息技术的推动下,智能家居得到了广泛应用,文章根据当前的市场动态,针对基于单片机的智能晾衣系统设计展开论述,具体包括两个方面的内容———硬件设计和软件设计。
关键词 :单片机;智能晾衣系统;硬件设计;软件设计

引言

结合当前晾衣架系统研究发展现状,本文设计了一种智能晾衣架系统,可以帮助人们摆脱传统繁琐的晾衣程序。本次系统操作十分简单,占地空间比较小,具有美观实用的特点。本文主要从硬件设计和软件设计两个方面进行论述,为当前单片机的智能晾衣系统进一步优化设计提供借鉴。

1 硬件设计

本次单片机采用了光照和雨滴两个天气信号,然后控制旋转衣架。整个系统主要利用步进电机进行控制,在天晴的时候,可以把衣架转出,进行衣物的晾晒;在没有阳光或者在下雨的时候,就会自动转到室内,防止衣服被淋湿。

1.1 整体设计图

本次整体设计图如图 1 所示,整个系统在实际运行过程中,利用光照传感器和雨滴传感器感知周围的天气,然后进行判断,做出相应的动作。设计人员设计出光照和雨滴的阈值;单片机就会控制衣架来回转动,从而实现智能控制。

1.2 光照传感器

为了对外部光照强度进行精准的测量,保证系统正常运行,在本次设计中,主要利用光敏电阻测量光照,随着光照逐渐的增强,光敏电阻逐渐减小,通过实际测量,可以分析光敏电阻的电子变化范围。在光照强度增强到很大的情况下,光敏电阻就会达到几百兆欧姆。在黑暗的条件下,光敏电阻的阻值为几兆欧姆。为了实现最为理想控制效果,保证光敏电阻阻值与实际操作向匹配,本次设计采用 10K 电阻,作为上拉电阻。根据实际实验的情况,在光照强度达到很大的条件下,光敏电阻值就非常小;在光照强度达到很小的条件下,就是周围非常黑暗,光敏电阻值就会很大。电压信号输出以后,通过电容滤波,就会保证信号波形更加平滑,提升了单片机信号处理的速度,避免由于光照强度不稳定导致系统出现误判的问题,如图2 所示。

1.3 雨滴传感器设计

这种传感器又被称为雨滴检测传感器,主要是为了是否下雨、对雨滴冲击量、静电电容量以及光亮变的进行精确的检测,为系统做出下一步的动作提供帮助。在本次系统使用的雨滴传感器中,一旦有雨滴滴落在检测极板上,相应的电阻就会出现新的变化,传感器就会对输出的电压进行检测。在雨滴传感器运行过程中,主要利用上拉 10K 电阻的方式,把电阻变化转化成电压变化,实现信号的调控。通过 LED的指示说明,可以明确整个电路运行的基本情况。如图 3 所示。

1.4 衣架位置传感器

本次设计主要采用红外传感器对衣架的具体位置进行 判断,在衣架运动到红外传感器范围内,红外传感器就会发出 信号,单片机就会读取衣架的具体位置。 为了保证信号能够正常运行,本次设计在室内和室外分 别安装一个红外检测传感器。在衣架位于室内时,为了保证位 置在相应的范围内,红外传感器就对衣架的位置进行判断,防 止出现移动过度或者不到位的问题。

1.5 STM32 控制器

STM32 控制器性能很强,可以投入少量的成本,属于一种低耗能的单片机。本次设计主要采用 STM32F103C8T6 单片机。在 STM32 系列单片机运用过程中,主要采用集成 AD模块,通过控制器运行,就能实现 AD 转化和音频数据编码,对红外发射电路进行控制。

1.6 步进电机驱动电路设计

本次系统步进电机主要采用 ULN2003 驱动,具有耐高压和高性能的特点,主要由 NPN 复合晶体管组成,芯片运行原理图如图 4 所示。

在单片机运行过程中,主要利用 IO 控制输出驱动,进行信号输入。ULN2003 输出的信号就会传输到步进电机的引脚上。如图 5 所示。

1.7 液晶显示屏

本次设计主要采用 Nokia5110 液晶,具有很高的性价比,接口简单便利,效果好,稳定性比较强。

2 软件设计

本次软件设计主要采用 C 语言。根据只能晾衣系统的要求,单片机会自动采集光照和雨滴两个天气信号,通过步进电机衣架的旋转,在天气晴朗没有下雨的条件下,系统就会把衣架转到室外,进行衣物的晾晒;在没有阳光、下雨的条件或者天黑的条件下,系统就会把衣架转到室内,防止被雨淋湿。

2.1 系统整体分析

如遇下雨天气,系统动作会进行转移到室内的操作;如遇未下雨阳光充足的天气,则将进行转移到室外的操作。系统会根据天气情况,做出相应的动作,为人们提供便利,减少了人为的操作。

2.2 软件算法

经过系统初始化、外设初始化计算以后,设计人员主要根据阳光与雨滴设计相应的阈值,从而进一步分析光照强度和雨滴强度,让系统做出判断,是否出去晾晒。在阳光强度没有达到要求、下雨以及天黑等条件下,系统不会晾晒衣物。但是根据系统实际运行的情况,需要进行定期的检查,防止被东西卡住。算法流程图如图 6 所示。

2.3 软件容错处理

本次系统主要采用时间累计的方式,对系统故障进行判断,根据实际实验的结果,衣架从而完成整个移动动作的时间大概为 20 秒,一旦累计时间超出了设计的时间( 30 秒),证明衣架位置传感器没有检测到衣架的位置,说明出现了故障,需要维护人员及时调整。

3 结束语

综上所述,通过对单片机智能晾衣系统的设计分析,系统会根据外面的天气情况做出转移到室内和转移到室外的动作,真正实现了无人操作,满足智能家居的设计要求。为了满足实际使用的要求,在未来设计中,还可以增加前后伸缩和上下伸缩的设计,不断完善现有系统性能,为客户提供更加便利的服务。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构篇】~顺序表

顺序表前言 想要学好数据结构的三大基本功:1.结构体2.指针3.动态内存开辟,这三样将是贯彻整个数据结构的工具。(可以去这里了解这三大基本功) 顺序表也是线性表的一种,那线性表又是什么呢? 线性表(linear …

应急响应-DDOS-技术指南

初步预判 通常,可从以下几方面判断服务器/主机是否遭受DDoS攻击查看防火墙、流量监控设备、网络设备等是否出现安全告警或大量异常数据包。如图所示,通过流量对比,发现在异常时间段存在大量UDP数据包,并且与业务无关。 通过安全设…

uniapp多图上传uni.chooseImage上传照片uni.uploadFile,默认上传9张图

uniapp多图上传uni.chooseImage上传照片uni.uploadFile 代码示例: /**上传照片 多图*/getImage() {uni.chooseImage({count: 9, //默认9sizeType: [original, compressed], //可以指定是原图还是压缩图,默认二者都有sourceType: [album], //从相册选择/…

8 Java常用API(基本语法6)-- Object和Objects类、Math、System、浅克隆和深克隆、手动下载导入第三方jar包

文章目录 前言一、Math(工具类)1 属性2 常见方法二、System(工具类,和系统相关的)1 public static void exit(int status) --- 终止当前运行的 Java 虚拟机。2 public static long currentTimeMillis() --- 以毫秒为单位返回当前unix时间。3 public static void arraycopy(Obj…

在Windows上配置VSCode MinGW+CMake(包括C++多线程编程的两套API:posix和win32)

创建目录 首先,需要电脑上安装VSCode, 并且创建三个文件夹:cmake、MinGW-posix、MinGW-w32 文件下载 下载posix-seh posix和win32分别是c多线程变成的两套API,可根据不同需求安装,现在先下载配置环境需要的几个文件 百度搜索MinGW-64 点…

Apache--简介与基本使用

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、Apache简介 Apache HTTP Server(在Red Hat发行版中俗称Apache或httpd)是由Apache Software Foundation在Apache License…

WPF打印控件内容

当我们想打印控件内容时&#xff0c;如一个Grid中的内容&#xff0c;可以用WPF中PrintDialog类的PrintVisual()方法来实现 界面如下&#xff1a; XAML代码如下 <Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition Width"300"…

pygame开发课程系列(4): 游戏元素

第四章 游戏元素 在本章中&#xff0c;我们将深入探讨如何在 Pygame 中处理游戏元素&#xff0c;包括键盘输入、鼠标输入、图像加载和声音播放。这些元素是构建互动游戏的基础&#xff0c;能够让你的游戏变得更生动、更有趣。 4.1 处理键盘输入 键盘输入是控制游戏角色或元素…

Redis相关介绍

本文介绍了Redis&#xff0c;一种开源的内存数据结构存储系统&#xff0c;强调其高性能、多种数据结构支持、内存存储、持久化策略、发布订阅功能及工作原理。 一、Redis的介绍 Redis&#xff08;Remote Dictionary Server&#xff09;&#xff0c;即远程字典服务&#xff0c…

[000-01-030].第7节:Zookeeper工作原理

1.Zookeeper工作原理&#xff1a; 1.1.Zookeeper的工作机制 1.Zookeeper从设计模式角度来理解&#xff1a;是一个基于观察者模式设计的分布式服务管理框架&#xff1b;2.Zookeeper负责存储和管理大家都关心的数据&#xff0c;然后接受观察者的注册&#xff0c;一旦这些数据的…

Unity Recttransform操作

1、拉伸铺满 RectTransform rect GetComponent<RectTransform>();rect.anchorMin Vector2.zero;rect.anchorMax Vector2.one;rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, Screen.width);rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Verti…

Ciallo~(∠・ω・ )⌒☆第二十篇 入门mysql 数据库

要入门MySQL数据库&#xff0c;首先需要了解数据库的基本概念和原理。MySQL是一种广泛使用的开源关系型数据库管理系统&#xff0c;它能够处理大量的数据&#xff0c;并提供了多种功能。 一、创建数据库 连接到MySQL后&#xff0c;你可以使用SQL语句来创建数据库。例如&#x…

【leetcode】删除链表的倒数第 N 个结点-25-5

方法&#xff1a;递归 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), ne…

css 文字图片居中及网格布局

以下内容纯自已个人理解&#xff0c;直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><…

微信小程序实例代码解读

以微信 小程序开发工具给的示例代码为例&#xff1a; 主页代码&#xff1a; index.wxml 这个文件是一个微信小程序页面的 WXML 结构,主要功能是展示一个快速开始教程的步骤和内容。 源代码&#xff1a; <!--index.wxml--> <view class"container">&l…

GAMES104:07游戏中渲染管线、后处理和其他的一切-学习笔记

文章目录 前言一&#xff0c;Ambient Occlusion环境光遮蔽1.1 Precomputed AO1.2 Screen Space Ambient Occlusion(SSAO)1.3 Horizon-based Ambient Occlusion(HBAO)1.4 Ground Truth-based Ambient Occlusion(GTAO)1.5 Rat-Tracing Ambient Occlusion 二&#xff0c;雾效2.1 D…

Spring——AOP前言(写一个小demo为了好学习AOP)

1.AOP的概念 1.1 AOP简单样例 我们来先通过一个例子来对AOP进行理解&#xff0c;这个例子就是有关Spring的事务的一个样例&#xff0c;有关Spring是怎么实现事务的&#xff0c;这个事务其实本质上就是对于我们代码的一个增强。废话不多说&#xff0c;上程序&#xff0c;请各位…

SOAP @WebService WSDL

SOAP & WebService & WSDL SOAP&#xff08;Simple Object Access Protocol&#xff09;WebService&#xff08;Web服务&#xff09;WSDL&#xff08;Web Services Description Language&#xff09; SOAP&#xff08;Simple Object Access Protocol&#xff09; **是一…

Ciallo~(∠・ω・ )⌒☆第十七篇 Ubuntu基础使用 其一

Ubuntu是一种基于Linux的操作系统&#xff0c;它是开源的、免费的&#xff0c;并且具有广泛的用户群体。 基本文件操作&#xff1a;Ubuntu使用命令行工具来进行文件操作。以下是一些常用的命令&#xff1a; 切换到用户主目录&#xff1a; cd ~ 切换到上级目录&#xff1a; cd .…

解密键盘输入:探索设备控制器的奥秘

流程初探 键盘是我们最常用的输入硬件设备之一。作为程序员&#xff0c;你知道当我们敲击键盘上的字母"A"时&#xff0c;操作系统会发生什么吗&#xff1f;下面我将简要介绍整个过程&#xff0c;以便你更容易理解为什么需要这些组件。 首先&#xff0c;让我们来看看…