【Proteus仿真】【51单片机】智能晾衣架设计

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD1604液晶、按键、蜂鸣器、L298N电机、PCF8591 ADC模块、DHT11温湿度传感器、雨滴传感器、风速、光线传感器等。
主要功能:
系统运行后,LCD1604显示传感器检测的温湿度、光线强度和风速,工作模式,以及相应阈值,系统工作状态等;系统默认为自动模式,
可通过K4键切换为手动模式,此时可通过K1键来控制晾衣架的开和关;若系统处于自动模式时,可通过K3键进入阈值设置模式,K1和K2键调节各阈值参数,K4确定保存。如果检测光线强度低于阈值,光线暗,晚上或阴雨天,此时晾衣架关闭;如果检测光线强度高于阈值,光线强,白天,此时如果下雨或大风,关闭晾衣架,否则如果温度高于阈值且湿度低于阈值,代表晴天,打开晾衣架;如果湿度高于阈值,则关闭晾衣架;手动模式下,可通过串口远程控制,发送十六进制0X11指令实现开关控制;


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///系统数据显示
void sys_data_show(void)
{while(1){	//温度显示lcd1604_show_nums(3,0,sys_ctrl.temp,2,0);//湿度显示lcd1604_show_nums(3,1,sys_ctrl.humi,2,0);//自动/手动状态显示if(sys_ctrl.auto_flag==1)lcd1604_show_string(14,0,"SD");else lcd1604_show_string(14,0,"Au");//下雨状态显示if(sys_ctrl.rain==1)lcd1604_show_string(14,1,"Y");else lcd1604_show_string(14,1,"N");//光线显示lcd1604_show_nums(3,2,sys_ctrl.light,2,0);//风速显示lcd1604_show_nums(3,3,sys_ctrl.wind,2,0);//开关状态显示if(sys_ctrl.run==1)lcd1604_show_string(13,3," ON");else lcd1604_show_string(13,3,"OFF");//温度阈值显示lcd1604_show_nums(7,0,sys_ctrl.temph,2,0);//湿度阈值显示lcd1604_show_nums(7,1,sys_ctrl.humil,2,0);	//光线阈值显示lcd1604_show_nums(7,2,sys_ctrl.lightl,2,0);//风速阈值显示lcd1604_show_nums(6,3,sys_ctrl.windh,2,0x80);		//阈值闪烁switch(sys_ctrl.mode){case 1://温度lcd1604_show_string(7,0,"  ");delay_ms(50);lcd1604_show_nums(7,0,sys_ctrl.temph,2,0);break;case 2://湿度lcd1604_show_string(7,1,"  ");delay_ms(50);lcd1604_show_nums(7,1,sys_ctrl.humil,2,0);break;case 3://光线lcd1604_show_string(7,2,"  ");delay_ms(50);lcd1604_show_nums(7,2,sys_ctrl.lightl,2,0);break;case 4://风速lcd1604_show_string(6,3,"  ");delay_ms(50);lcd1604_show_nums(6,3,sys_ctrl.windh,2,0x80);break;}break;			}
}//系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_scan(0);//确定/自动手动if(key==KEY4_PRESS){if(sys_ctrl.mode!=0)//确定{sys_ctrl.mode=0;}else//自动/手动 {sys_ctrl.auto_flag=!sys_ctrl.auto_flag;}}//自动模式if(sys_ctrl.auto_flag==0){//阈值设置if(key==KEY3_PRESS){sys_ctrl.mode++;if(sys_ctrl.mode>4)sys_ctrl.mode=1;}//加else if(key==KEY1_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph++;if(sys_ctrl.temph>99)sys_ctrl.temph=0;break;case 2://湿度sys_ctrl.humil++;if(sys_ctrl.humil>99)sys_ctrl.humil=0;break;case 3://光线sys_ctrl.lightl++;if(sys_ctrl.lightl>99)sys_ctrl.lightl=0;break;case 4://风速sys_ctrl.windh++;if(sys_ctrl.windh>10)sys_ctrl.windh=1;break;}}//减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph--;if(sys_ctrl.temph<0)sys_ctrl.temph=99;break;case 2://湿度sys_ctrl.humil--;if(sys_ctrl.humil<0)sys_ctrl.humil=99;break;case 3://光线sys_ctrl.lightl--;if(sys_ctrl.lightl<0)sys_ctrl.lightl=99;break;case 4://风速sys_ctrl.windh--;if(sys_ctrl.windh<0)sys_ctrl.windh=10;break;}}}//手动模式else{//开/关if(key==KEY1_PRESS){sys_ctrl.run=!sys_ctrl.run;if(sys_ctrl.run==1)//开{motor_fr_run();delay_ms(500);motor_stop();}else//关{motor_rev_run();delay_ms(500);motor_stop();}}}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

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

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

相关文章

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之Linux 进程管理 6》(10)

《Linux操作系统原理分析之Linux 进程管理 6》&#xff08;10&#xff09; 4 Linux 进程管理4.6 Linux 管道4.6.1 管道的概念4.6.2 无名管道1.终端使用2.程序中使用 4.6.2 命名管道1.终端使用2.程序中使用 4 Linux 进程管理 4.6 Linux 管道 4.6.1 管道的概念 1、管道是 linu…

2019年10月17日: Go生态洞察:在Go 1.13中处理错误

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

Mysql数据库多表数据查询问题

1、背景 线上某个业务数据分表存储在10个子表中&#xff0c;现在需要快速按照条件&#xff08;比如时间范围&#xff09;筛选出所有的数据&#xff0c;主要是想做一个可视化的数据查询工具&#xff0c;给产研团队使用。 2、实践 注意&#xff1a;不要在线上真实数据库操作&am…

用户选择PowerFlex的十大理由

既有高性能      满足AI、VDI、数据库等工作负载      又有开放架构      4个节点起步可扩展至上千节点      支撑起不断变化的新兴应用负载      还能与云互通      实现云上云下互联      Dell PowerFlex      连续八季度销量增长      …

提升企业文档处理效率,尽在Readiris PDF Corporate下载

在现代企业中&#xff0c;大量的文档处理工作是不可避免的。然而&#xff0c;传统的文档处理方法往往效率低下&#xff0c;浪费了企业宝贵的时间和资源。为了帮助企业提升文档处理效率&#xff0c;我们推荐使用Readiris PDF Corporate软件。 Readiris PDF Corporate是一款功能…

HarmonyOS 应用模型开发指南介绍

一、基本概念解析 新版文档中的知识点&#xff0c;介绍更全面&#xff0c;逻辑更清晰&#xff0c;提供了各类基本概念解析&#xff0c;帮助开发者更快学习、掌握系统能力。以下是新版文档部分概念展示。 1、HAP是什么&#xff1f; 开发者通过DevEco Studio把应用程序编译为一…

企企通相继出席首届百家新锐企业融通创新交流会与采购数字化创新沙龙,持续深化数字赋能

近期&#xff0c;企企通受邀分别参加了广州、上海业界重磅活动&#xff0c;针对新形势下企业数字化采购升级的新技术与新思路、产业链上下游协同发展等进行探讨&#xff0c;赋能数字化信息技术产业生态发展&#xff0c;并对各方主体如何协作共赢助推企业数字化发展建言献策。 0…

AMP State Evolution的计算:以伯努利先验为例

AMP State Evolution (SE)的计算 t 1 t1 t1时&#xff0c; E ( t ) E [ X 2 ] \mathcal E^{(t)} \mathbb E [X^2] E(t)E[X2]&#xff0c;SE的迭代式为 τ r ( t ) σ 2 1 δ E ( t ) E ( t 1 ) E ∣ η ( t ) ( X Z ) − X ∣ 2 , Z ∼ N ( 0 , τ r ( t ) ) \begin{a…

JVM运行时数据区域、对象内存分配、内存溢出异常总结

深入理解java虚拟机第二章 二、运行时数据区域2.2.1 程序计数器2.2.2 Java虚拟机栈2.2.3 本地方法栈2.2.4 Java堆2.2.5 方法区2.2.6 运行时常量池2.2.7 直接内存 三、HotSpot虚拟机对象解密2.3.1 对象的创建对象如何分配内存&#xff1f;对象的创建如何处理并发问题&#xff1f…

vue3父子组件通过$parent与ref通信

父组件 <template><div><h1>ref与$parents父子组件通信 {{ parentMoney }}</h1><button click"handler">点击我子组件的值会减20</button><hr><child ref"children"></child></div> </te…

深度学习之图像分类(十五)DINAT: Dilated Neighborhood Attention Transformer详解(一)

Dilated Neighborhood Attention Transformer Abstract Transformers 迅速成为跨模态、领域和任务中应用最广泛的深度学习架构之一。在视觉领域&#xff0c;除了对普通Transformer的持续努力外&#xff0c;分层Transformer也因其性能和易于集成到现有框架中而受到重视。这些模…

GPIO的使用--操作PF09 PF10 PF08实现呼吸灯、跑马灯、警报闪烁灯

先来个呼吸灯演示 呼吸灯 目录 一、GPIO的介绍 1.含义 2.控制原理 3.控制流程 二、LED控制 1.呼吸灯 操作代码 烧录结果 2.蜂鸣器红绿灯交替 操作代码 3.红绿灯交替闪烁 操作代码 一、GPIO的介绍 1.含义 GPIO(general porpose intput output),通用输入输出端口。…

AI超级个体:ChatGPT与AIGC实战指南

目录 前言 一、ChatGPT在日常工作中的应用场景 1. 客户服务与支持 2. 内部沟通与协作 3. 创新与问题解决 二、巧用ChatGPT提升工作效率 1. 自动化工作流程 2. 信息整合与共享 3. 提高决策效率 三、巧用ChatGPT创造价值 1. 优化产品和服务 2. 提高员工满意度和留任率…

Slf4j使用Logback时,Logback如何初始化

前言 Slf4j SLF4J&#xff0c;全称 Simple Logging Facade for Java&#xff0c;是一个用于Java编程语言的日志系统抽象层。它为多种现有日志框架&#xff08;例如Log4j、java.util.logging等&#xff09;提供了统一的接口, 但自身并不实现日志功能。 SLF4J 允许用户在部署时…

ArkUI 如何将$r(’app.string.xxx‘) 转成string字符串

一、正常引用字符串资源文件内容 在 ArkUI 中&#xff0c;string.json 中的字符串资源正常情况下使用如下方式引用&#xff1a; Entry Component struct LoginPage {build() {Column() {Text($r(app.string.title))}}}二、资源转string类型 上面的代码没问题是因为 Text(con…

如何通过内网穿透实现公网远程ssh连接kali系统

文章目录 1. 启动kali ssh 服务2. kali 安装cpolar 内网穿透3. 配置kali ssh公网地址4. 远程连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 简单几步通过[cpolar 内网穿透](cpolar官网-安全的内网穿透工具 | 无需公网ip | 远程访问 | 搭建网站)软件实现ssh远程连接kali 1…

销售流程中如何有效开发客户

在销售的海洋中&#xff0c;如何游刃有余地开发客户是一大关键。这需要深入了解你的目标客户&#xff0c;制定一份精细的销售计划&#xff0c;选择最合适的沟通方式&#xff0c;建立信任和信誉&#xff0c;并持续不断地跟进。 每一个潜在的客户都是一颗璀璨的星辰&#xff0c;…

【密码学引论】Hash密码

第六章 Hash密码 md4、md5、sha系列、SM3 定义&#xff1a;将任意长度的消息映射成固定长度消息的函数功能&#xff1a;确保数据的真实性和完整性&#xff0c;主要用于认证和数字签名Hash函数的安全性&#xff1a;单向性、抗若碰撞性、抗强碰撞性生日攻击&#xff1a;对于生日…

Ubuntu 设置Nginx开机自启

1.建立自启动服务文件 vim /usr/lib/systemd/system/nginx.service Descriptionnginx - high performance web server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typeforking ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx…

【libGDX】Mesh立方体贴图(6张图)

1 前言 本文通过一个立方体贴图的例子&#xff0c;讲解三维纹理贴图的应用&#xff0c;案例中使用 6 张不同的图片给立方体贴图&#xff0c;图片如下。 读者如果对 libGDX 不太熟悉&#xff0c;请回顾以下内容。 使用Mesh绘制三角形使用Mesh绘制矩形使用Mesh绘制圆形使用Mesh绘…