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

基于单片机的温控光控智能窗帘设计探讨

摘 要: 文章使用的核心原件是 AT89C52 单片机,以此为基础进行模块化的设计,在整个设计中通过加入光检测模块和温度检测模块,从而对室内的温度和光照强度进行检测,然后将检测得到的数据传输给单片机,单片机对电机的继电圈的通断进行控制,从而通过电机的正转和反转,从而实现对窗帘开合的设置。并且光检测模块和温度检测模块检测得到的数据可以传输给 LCD 显示器,还可以通过手动控制的方式对窗帘的开合进行设置,从而实现对窗帘开合的多模式的控制。文章使用的单片机的温控光控智能窗帘设计具有很好的抗干扰能力、稳定性,并且具结构简单,能够满足家居需求。
关键词: 单片机;温控;光控;智能窗帘

1 引言

随着人们生活水平的提高以及科学技术的飞速发展,在计算机技术、网络技术、通信技术等方面的技术也在突飞猛进,基本利用各种技术实现了生活智能化,使得人们的居住环境向着安全化、智能化和舒适化的方向发展,家居的智能化也在向着这个方向发展 。人们对家居生活的舒适度要求越来越高,能够根据温度、阳光进行自动开合的智能窗帘成了家庭生活的新宠儿。所以,文章主要是对基于单片机的温控光控智能窗帘进行设计方面的讨论。
文章选择使用的单片机为 AT89C52 控制芯片,使用的光照传感器为 BH1750FVI,温度传感器为 DHT11,温度传感器和光照传感器将收集到的数据传输给单片机,单片机将得到数据信号进行转化,输出的为电机信号,由电机驱动对电路的直流或者是交流进行控制,实现窗帘的自动拉合。并且用户也可以根据得到的显示信息进行手动控制,实现窗帘的手动控制。

2 智能窗帘在硬件方面的设计

智能窗帘的整合硬件系统主要分为八个不同的部分,包括温度检测部分、光线强度检测装置、输入部分、单片机部分、电机驱动模块、显示部分、射频部分和电机控制部分。其各个部分之间的关系如图 1 所示。

光照强度检测使用的装置是 BH1750FVI 光照强度传感器,是一种由两线相互串联形成总线,在连接接口而形成的电路 。这个传感器可以根据光线的强度对环境的光照强度进行检测,具有很高的分辨率,能够接受很大范围的光照强度,并且其接受光照的误差今仅在 20% 左右。
温度检测模块使用的 DHT11 湿度温度传感器,一般该模块能够将温度湿度的信息转换成数字信号,在电路中不需要通过 A/D 进行转换即可得到信息数据,并且转换的温度的量程在 0℃~ 50℃。
电机部分使用的直流电机对串联的开合进行自动的控制,这样能够实现对串联开合的简便控制,本设计使用了驱动电路,主要原因是单片机集成电路输出的总电流太小,不能带动电机的工作,所以需要使用驱动电机
本系统中使用的键盘模块的主要作用是在温控光控的基础上添加手动控制,从而使得自动化窗帘能够在自动控制的基础上有手动控制的功能。一般将返回功能和菜单切换功能显示在 LCD 的显示屏上,有助于手动对时间和窗帘的开合进行控制。
光控和温控的电机程序才是设计的主要关键部分,单片机的正转或者是反转主要是根据光照和温度所检测到的数值的变化。一般在这样程序的初始端时,会把整个程序初始化,对当前的光照强度、温度进行检测,若是不符合条件则需要返回初始值,若是符合设定的条件,电机就会正转,从而实
现将窗帘打开的自动化控制。所以在整个运行过程中接触到开关,电机的运行就会停止,若是没有接触到行程开关,电机的运行就不会停止,电机保持正转的方向,直到接触到行程开关之后。若是窗帘处于打开的状态,经过光照检测器的检查,光照强度高于设定值或者是温度高于设定值,电机就会开启反转的状态,窗帘闭合。当行程开关接触时,电机的运动就会停止,从而实现窗帘的温控、光控自动化控制。

3 结束语

文章设计的温度光照强度智能窗帘的设计功能概括如下:1)根据温度光照强度对窗帘的开合进行控制;2)可以显示温度时间等数据;3)具有定时功能,可以根据时间设定控制窗帘的开合;4)也可以通过遥控器和按键等手动操作方式对窗帘的开合进行手动化控制。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【React】基础数据回填--useForm与setFieldsValue详解
  • FL Studio 24.1.1.4234 (Windows) / 24.1.1.3884 (Mac OS X)
  • 基于antdesign封装一个react的上传组件
  • NPDP含金量高吗?什么人适合学习NPDP?
  • Python函数 之 模块和包
  • 设置DepthBufferBits和设置DepthStencilFormat的区别
  • 动手学深度学习54 循环神经网络
  • 企业微信群发消息高效指南,一文了解!
  • 新型开发语言的试用感受-仓颉语言发布之际
  • RedHat运维-Ansible自动化运维基础26-管理用户与认证
  • 体积大的快递怎么寄便宜?如何寄件寄包裹更省钱?
  • 贪心算法-以高校教材管理系统为例
  • Pandas中使用函数作为map函数的参数时为什么不用传入函数的参数的问题解答
  • 【R语言+Gephi】利用R语言和Gephi实现共发生网络的可视化
  • Web3时代的数字身份认证:安全性与隐私保护探讨
  • CSS魔法堂:Absolute Positioning就这个样
  • Druid 在有赞的实践
  • IndexedDB
  • mysql中InnoDB引擎中页的概念
  • MySQL主从复制读写分离及奇怪的问题
  • Spring-boot 启动时碰到的错误
  • ubuntu 下nginx安装 并支持https协议
  • Vue官网教程学习过程中值得记录的一些事情
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 给第三方使用接口的 URL 签名实现
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 聊聊sentinel的DegradeSlot
  • 删除表内多余的重复数据
  • 树莓派 - 使用须知
  • 思考 CSS 架构
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #stm32驱动外设模块总结w5500模块
  • $$$$GB2312-80区位编码表$$$$
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (SpringBoot)第二章:Spring创建和使用
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (计算机网络)物理层
  • (九)c52学习之旅-定时器
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)菜鸟学数据库(三)——存储过程
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .Net Core 微服务之Consul(三)-KV存储分布式锁
  • .net core控制台应用程序初识
  • .NET Remoting学习笔记(三)信道
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • ??javascript里的变量问题
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法