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

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

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

引言

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

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 结束语

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

相关文章:

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

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

Python实战项目:天气数据爬取+数据可视化(完整代码)

一、选题的背景 随着人们对天气的关注逐渐增加,天气预报数据的获取与可视化成为了当今的热门话题,天气预报我们每天都会关注,天气情况会影响到我们日常的增减衣物、出行安排等。每天的气温、相对湿度、降水量以及风向风速是关注的焦点。通过…...

知识改变命运 数据结构【链表面试题】

1. 删除链表中等于给定值 val 的所有节点。 OJ链接 public ListNode removeElements(ListNode head, int val) {if (headnull) {return null;}ListNode curhead.next;ListNode prehead;while(cur!null) {if(cur.valval) {pre.nextcur.next;curcur.next;}else {precur;curcur.ne…...

计算机毕业设计 医院问诊系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…...

掌握CSS的:any-link伪类:统一链接样式的高效方法

在网页设计中,链接是用户导航和交互的重要组成部分。CSS提供了多种伪类选择器来定义链接的不同状态,例如:link用于选择未访问的链接,:visited用于选择已访问的链接。然而,有时候我们需要同时为所有状态的链接设置统一的样式&#…...

虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)

虚幻5|在连招基础上,给角色添加武器并添加刀光|在攻击的时候添加武器并返回背后(第一部分,下一部分讲刀光)_unreal 如何给角色添加攻击-CSDN博客 目的:捡起各种不同的武器,捡起的武器跟装备的武器相匹配 …...

防火墙技术与地址转换

文章目录 前言一、四种区域二、实验拓扑图基础配置防火墙配置测试结果 前言 防火墙是计算机网络中的一种安全设备或软件功能,旨在监控和控制进出网络的网络流量。其核心目的是保护内部网络免受外部攻击或不必要的访问。防火墙通过设定一系列安全规则,允…...

C++11中的Lambda表达式

文章目录 C11中的Lambda表达式1.lambda表达式形式2.向lambda传递参数3.使用捕获列表4.lambda捕获和返回1.值捕获2.引用捕获3.隐式捕获4.可变lambda5.指定lambda的返回类型 C11中的Lambda表达式 1.lambda表达式形式 lambda表达式具有以下形式 [capture list] (parameter list)…...

Unity图形系统

Unity的图形系统是一个复杂且功能强大的模块,它支持多种渲染技术和API,能够满足从移动设备到高端游戏机和桌面平台的各种需求。以下是关于Unity图形系统的详细解析: 渲染流程与技术 Unity的渲染流程可以分为应用程序阶段(CPU&…...

Ceph篇之利用shell脚本实现批量创建bucket桶

Ceph创建bucket桶 在 Ceph 中创建桶(bucket)需要使用 Ceph 对象网关(RGW)。 注:如果查看shell批量创建脚本请直接参见目录3 1. 利用radosgw-admin工具创建桶 确保 Ceph 集群和对象网关已正确配置 确保你的 Ceph 集群…...

周末总结(2024/08/17)

工作 人际关系核心实践: 要学会随时回应别人的善意,执行时间控制在5分钟以内 坚持每天早会打招呼 遇到接不住的话题时拉低自己,抬高别人(无阴阳气息) 朋友圈点赞控制在5min以内,职场社交不要放在5min以内 职场的人际关系在面对利…...

SQL高级编程:掌握自定义函数和过程的艺术

标题:SQL高级编程:掌握自定义函数和过程的艺术 在SQL的世界里,数据操作不仅仅局限于简单的查询和更新。通过自定义函数(User-Defined Functions, UDFs)和存储过程(Stored Procedures)&#xff…...

python监听环境内是否有声音

python监听环境内是否有声音 首先使用pyaudio打开麦克风,并开始录音。然后使用一个while循环来不断读取麦克风录取的音频数据,然后使用numpy来分析音频数据是否有声音。当检测到有声音时,会打印"有声音"并退出循环。最后关闭录音流…...

合并两个有序链表--力扣

题目如下: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例如下: 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4]示例 2: 输入:l1 [], l2 …...

【自用】Python爬虫学习(三):图片下载、使用代理、防盗链视频下载、多线程与多进程

Python爬虫学习(三) 使用BeautifulSoup解析网页并下载图片模拟用户登录处理使用代理视频下载,防盗链的处理多线程与多进程 使用BeautifulSoup解析网页并下载图片 目的:对某网站的某个专栏页面的图片进行下载得到高清图。 思路&am…...

#Datawhale AI夏令营第4期#AIGC方向Task3

在之前的任务中,我们已经对baseline进行了精读,并生成了,我们自己的八图故事。 在Task3中,我们的主要任务有两个:part1:工具初探一ComfyUI应用场景探索;Part2:Lora微调。 微调是一…...

【docker综合篇】关于我用docker搭建了6个应用服务的事

最近一直在捣鼓docker,利用测试服务器,本着犯错就重来(重装系统)的大无畏精神,不断尝试,总结经验,然后在网上搜寻一些关于docker有关的服务镜像,并搭建起来。看着一个个服务在我的服务器跑起来,…...

【sgCreateAPIFunction】自定义小工具:敏捷开发→自动化生成API接口方法代码片段脚本(接口方法代码生成工具)

sgCreateAPIFunction源码 <template><!-- 前往https://blog.csdn.net/qq_37860634/article/details/141159084 查看使用说明 --><div :class"$options.name"><div class"sg-head">接口方法生成工具<el-dropdown:show-timeou…...

Vue2图片懒加载(vue-lazyload)

参考文档&#xff1a;vue-lazyload 安装插件 npm install vue-lazyload # or yarn add vue-lazyload # or pnpm add vue-lazyload使用 使用方式 一&#xff1a; 所有懒加载图片的占位图使用同一张默认图片 引入并注册 // main.js import VueLazyload from vue-lazyload Vue…...

Jenkins-拉取代码

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Jenkins环境配置&#xff08;一&#xff09;配置Maven环境&#xff08;1&#xff09;Maven下载&#xff08;2&#xff09;将Maven上传服务器&#xff08;3&…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...