基于单片机的智能风扇设计

devtools/2024/9/22 19:38:40/
摘 要: 传统风扇无法根据周围环境的温度变化进行风速的调整,必须人为地干预才能达到需求 本文基于单片机的智能风扇主要解决以往风扇存在的问题,其有两种工作模式: 手动操作模式和自动运行模式,人们可以根据需要进行模式选择。 在自动运行模式下,风扇随周围环境温度的变化而自主调节风速,可实现 温度高,风速大; 温度低,风速小”。 同时,智能风扇在两种模式中都配置了定时功能,用户可以根据需要选择不同的定时时间 本次设计中对风扇的控制采用了触摸屏面板和无线通信技术,这将给用户带来便利。
关键词: 单片机; 智能风扇; 风速调整; 工作模式; 定时
在我们国家,电风扇是 80 年代才流行的一种家用小型电器,作为传统的清凉和解暑工具,电风扇具有价格低廉,占据空间少等特点。 受消费水平的制约,大多数家庭尤其在中小型城市和农村,风扇仍旧会占有很大的市场份额。 然而由于其功能单一且耗电量大,极大地限制了电风扇的发展空间。 近年来,单片机凭借其小巧、 抗干扰能力强 且易操作 成本低等特点,已经深入各领域,使用很广泛。 随着大型集成电路技术的进一步成熟,单片机的性能仍在快速地提高,未来单片机技术及传感器技术等的发展必将给电风扇的进一步发展带来突破性的变化。对于目前风扇的发展,采用单片机技术和传感器技术可以使风扇的功能更加完善、使用更加人性化。 传统的风扇,尤其是夏天晚上,风扇以不变的风速工作这样会使老年人和小孩着凉、 感冒,因为传统风扇风速的大小无法根据周围环境温度的变化作出调整,所以迫切需要一款能够满足现代人生活的风扇。

1 硬件电路设计与实现

1. 1 系统整体设计

系统整体框图如图 1 所示
本设计的整体思路: 系统设计主要包括两部分:
( 1 ) 终端( 接收命令) 部分: 温度传感器 ds18b20实时采集周围的温度,将微处理器读取的温度值实时显示在 LCD1602 无线收发模块通过串口与 51 单片机通信,将从 stm32 发来的数据读给 51单片机 51 单片机根据其接收的命令,控制与其相连的外设
(2 ) 控制端( 发送命令) 部分: 通过对 STM32 编程,在 TFTLCD 模块上做一个智能风扇系统的功能
界面,通过触摸模块界面的功能按钮,产生相应的数据。 产生的数据通过串口发送给无线收发模块,无线收发模块将从串口传来的数据发送出去。 同时,与 stm32 单片机连接的 DHT11 实时读取周围环境的温湿度,其中 stm32 通过单总线通信方式访问DHT11,将读取的温湿度数据实时显示在 LCD

1. 2 各部分电路设计

1. 2. 1 51 单片机最小系统电路

单片机最小应用系统即用很少的电路元件组成可以让单片机正常运行的系统。 对于 51 单片机,其最小系统一般包括: 微处理器、 晶振电路 复位电路 、电源电路。
( 1 ) 按键复位电路: 由按键 、10 uf 电容和电阻组 成,用来对单片机本身和其扩展模块进行复位,使程序重新执行。
( 2 ) 晶 振 电 路: 51 单 片 机 的 晶 振 一 般 取11. 0592 MHz,这样可以准确 产 生 9600 bps 和19200 bps,产生的波特率用于串口通信 外部晶振电路结合单片机内部电路产生单片机正常工作的时钟,单片机代码的执行都基于晶振电路产生的时钟频率。
( 3 ) 电源电路: 51 单片机采用 5 V 供电,由外部提供电源。

1. 2. 2 液晶 LCD1602 显示电路

液晶 LCD1602 是数字式的,因此和单片机连接的电路简洁,易编写程序。 液晶 LCD1602 51 单片机的通信使用 8 位数据口,采用并行方式,每次传输 8 bit 的数据
本次设计中 LCD1602 第一行显示周围环境温度,温度显示只有整数位。 第二行显示风扇的风速级别,风扇未开启时,显示为 - ; 风扇正常工作时显示的风速级别在数字 1 ~ 3 之间

1. 2. 3 温度采集电路

proteus 仿真软件上搭建的 ds18b20 温度采集电路如图 2 所示 由于其与单片机通信采用单总线方式,故只含数据端口 DQ

1. 2. 4 电机驱动模块电路

本次设计中采用 51 单片机的定时器模拟 PWM波输出数字信号,并利用电机驱动模块 L298N 来驱 动 12 V 的直流电机,通过改变 PWM 波的高电平所占的比例来实现风扇风速的调节。 实际生活中由于风扇只往一个方向转,所以对 L298N 模块的配置如图 3 所示

1. 2. 5 串口通信电路

在多机通信系统中,单片机之间的数据交换一般多采用串行通信方式。 本次系统中串口电路包括两部分: 一部分是 stm32 ZigBee 节点的串口通信电路: 系统设计中 stm32 通过其串口的 TX 端发送数据给 ZigBee 模块, ZigBee 模块只需要从串口的 RX端读取数据,故只使用了一条数据线,连接电路图如图 4 所示 另外一部分是 51 单片机 ZigBee 节点的串口通信电路: 系统设计中 ZigBee 模块从串口TX 端发送数据给 51 单片机 51 单片机从串口的RX 端读取数据,故只使用了一条数据线,连接电路图如图 5 所示

在实际的硬件电路测试中发现,两个单片机系统在进行数据通信时,必须要共地,否则数据传输出错或无法接收到数据。

2 软件设计与实现

程序的编写都使用的是 C 语言, C 语言程序本身不取决于硬件资源,基本上稍做修改就可以将用户程序从不同的硬件系统平台上移植。

2. 1 主程序设计

主程序是整个设计的中心,它是将各个子模块通过逻辑判断相互结合起来构成的。 由于基于单机的智能风扇系统采用无线通信方式,故主程序 为两部分: 一部分是执行控制命令端的主程序,这一部分的程序设计是以对 51 单片机编程为基础构成的,主要包括: 风扇模式选择及风速调节、51 单片机与 ZigBee 模块之间的数据通信、 51 单片机定时读取ds18b20 采集的温度值 LCD1602 显示温度值及风扇的风速档位、 定时器模拟 PWM 波输出等,该主程序流程图如图 6 所示 另一部分是发送控制命令端的主程序,这一部分的程序设计是以对 stm32 单片机编程为基础构成的,主要包括: TFTLCD 触摸屏界面设计与显示、 DHT11 采集温湿度 、stm32 与 ZigBee模块之间的数据通信等,该主程序流程图如图 7 所示。

2.2 触摸屏界面以及 LCD 显示子程序设计

该部分完成的主要功能包括: 汉字 字符串的显示,图片的加载与显示,触摸屏触摸的实现。 完成这些功能,涉及的知识特别多,包括 TFTLCD 显示 、SPI通信、 触摸屏的触摸实现 内存管理 SD FATFS文件系统模块、 汉字显示原理以及汉字字库的制作 、图片的解码等相关知识。 该部分的设计流程图如图8 所示

2.3  51 单片机读取 ds18b20 采集的温度子程序 设计

通过单总线方式 51 单片机 ds18b20 进行数据通信,由于 stc89c52 单片机在硬件上不支持单总线通信方式,故选取编程的方法来演示单总线通信方式来完成对温度传感器的访问。
单总线协议规定了以下时序: 初始化时序 读数据时序、 写命令时序 全部时序都将控制器作主机,单总线器件( 例如: 传感器等) 作从机。 特别要说明的是: 每次命令和数据的交换都是主机自动开启写时序,若单总线器件回复数据,则在结束写命令后,主设备要开始读时序完成数据的接收。 该部分程序设计的流程图如图 9 所示

http://www.ppmy.cn/devtools/92024.html

相关文章

手表运动报告生成以及手机展示

一.运动报告组成部分 一般一份运动健康的报告包括以下信息: 1.运动轨迹区。2.报告数据区。(运动总体概览,如距离,时长,训练表现等)3.曲线图表区。(心率曲线,海拔曲线,速度,配速曲线) 二.组成部…

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流

FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流 合集 - FFmpeg开发实战(46) 1.FFmpeg开发笔记(一)搭建Linux系统的开发环境2023-04-162.FFmpeg开发笔记(二)搭建Windows系统的开发环境2023-04-29…

RuoYi-Vue-Plus (全网最详细 :监控中心 Spring Actuator 配置、接入项目)

界面展示、以及使用: 注册的应用: 点击展示详情:堆内存 垃圾回收 线程等情况 监控请求: 配置属性:查看系统使用未使用的的配置属性,比如查看redis配置 线程监控: 黄色是阻塞,绿色代表运行中,可以显示堆栈信息 一、概述 Actuator为Spring Boot应用提供了生产级别的…

大数据-Big Data(二):核心技术详解

目录 1. 大数据架构的基础 1.1 分布式存储系统 1.2 分布式计算框架 2. 数据存储与管理技术 2.1 NoSQL数据库 2.2 数据仓库技术 3. 大数据处理与分析 3.1 数据处理的关键技术 3.2 机器学习与大数据 4. 大数据的实时处理技术 4.1 流处理框架 4.2 数据流处理 5. 大数…

第14节课:HTML5表单增强——提升用户体验与数据准确性

目录 HTML5表单增强概述新输入类型emailurlnumberrangedate 表单验证requiredpattern 实践:创建一个增强型HTML5表单结语 随着HTML5的推出,表单功能得到了显著增强,提供了新的输入类型和验证特性,这不仅提升了用户的填写体验&…

flutter 压缩图片,修改图片尺寸,修改图片格式

最近需要用到flutter压缩图片 网上大部分教程基于 image_compression_flutter , flutter_image_compress 这两个扩展不好用,他们只能压缩图片质量(不能修改图片尺寸),这样压缩效果不好.其实移动端不需要分辨率太高的图片, 在网上找到了一篇文章 https://juejin.cn/post/723…

【Material-UI】Checkbox组件:图标设置详解

文章目录 一、Checkbox 组件与图标自定义概述1. 组件介绍2. 基本用法 二、图标自定义的详细解读1. icon 和 checkedIcon 属性2. 自定义图标的优势3. 使用Material-UI图标库 三、应用场景与实践1. 表单中的个性化选项2. 内容管理与标记3. 游戏与娱乐应用 四、最佳实践与注意事项…

python3基本数据类型说明一

一. 简介 本文简单学习一下 python3的变量。主要学习 python语言中如何创建变量。 二. python3基本数据类型 1. python中 变量 Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变量&am…