基于单片机的智能风扇DIY总结【2020.06每月一练活动】
扫描二维码
随时随地手机看文章
经过一个月的时间,我们的第一次 “每月一练” 活动DIY内容完成了。
自从开号已经两个半月了,本号每天都有新的读者关注,也是你们的支持,让我分享的网文综合到一起,可以实现“智能风扇”这样一个综合实例。
感谢期间各位朋友对本人公众号文章的宣传,你们的每一次“在看”、转发和赞赏,都是对我劳动成果的认可,是我继续前进的动力,也希望各位朋友能一如既往的支持小哈,在此,小哈谢谢各位的支持,我会继续努力分享网文,带领各位从0走到1,走进嵌入式开发的大门。
下面我对“智能风扇”中涉及到的知识点进行梳理,方便大家对照代码和电路图进行学习,有不清楚的地方,可以加我微信号:chengxuyuanxiaoha(程序员小哈的全拼),大家一起学习,一起进步。
功能梳理
PCB线路板采用核心板+底板实现
核心板:排针引脚间距为2.54mm,2排,双排间距为2.54mm的倍数(方便与面包板联用),未使用引脚全部引出,核心板上的主芯片为STM32F103RET6。
目的:
方便与面包板配合使用; 核心板上预留两个2.54mm间距,4脚座和5脚座,部分传感器模块只需要这两个底座既可以实现模块功能。 核心板上的主芯片相对较贵,做成核心板之后,可以重复利用,方便大家一起跟着做,以后我们只需要修改底板的设计即可。
上图中各个模块简要说明:
-
标号1为ESP8266 WiFi模块,用于实现与阿里云物联网平台连接,实现风扇的远程控制功能; -
标号2为使用三极管实现风扇的控制; -
标号3为使用光耦+mos管的方式实现风扇的控制; -
标号4为电源座; -
标号5为底板上的5个按键,从下到上,按键功能分别为:风速+、风速-、风扇开关、风扇开及风扇关; -
标号6为核心板上预留的按键,用于实现模式的切换,本系统分为三个模式,默认为模式0,底板上的按键功能为上面的描述;模式1为修改系统时间功能,底板上的前三个按键用于调节实时时间的时分秒;模式2为修改定时时间功能,底板上的前三个按键用于调节定时时间的时分秒; -
标号7为JATG下载STM32程序接口,SW模式,只需要三个引脚即可; -
标号8为Micro USB底座,通过CH340C芯片与STM32的串口1相连,串口1一般用于系统调试信息的打印; -
标号9为电源选择方式跳线,当使用跳线帽短接时,系统供电来自于Micro USB接口;当跳线帽拔掉后,系统供电来源于标号4的电源座; -
标号10为红外接收头; -
标号11为OLED屏; -
标号12为DS18B20温度传感器模块,预留了两种接口,直插和防水线式DS18B20温度传感器都可以与底板连接。
后台回复关键词“每月一练”可以获得PCB工程文件,将下图框选的文件发给线路板加工厂家,可以直接打样。两个板子在嘉立创十元钱就可以搞定。
参考阅读:
STM32单片机最小系统详解
-
风扇调速功能
采用PWM调速的原理来实现风扇速度的控制,四挡风速的占空比分别为:15%、30%、60%和100%。
当风速选择0时,进入自动模式,温度分为22℃以下、22到25℃、25到28℃及28℃以上四个区间,对应风速的四个档位;
为了控制简单,大家可以安全操作,我们本次选用一个DC5V的风扇作为演示使用。
风扇调速原理,参考阅读:
利用PWM原理,实现呼吸灯功能
-
温度传感器 DS18B20
用来测量环境温度,实现自动功能。
STM32驱动DS18B20温度传感器,参考阅读:
DS18B20温度传感器时序图解析(STM32)
-
WiFi模块
选用ESP8266 WiFi模块,连接阿里云物联网平台。
功能:手机APP控制风扇的开启和关闭,风扇档位及实时室温显示。
ESP8266 WiFi模块的使用及连接阿里云物联网平台,参考阅读:
mini D1 WiFi模块Arduino开发简介
七步快速开启产品智能化
ESP8266连接阿里云物联网平台(Arduino方式)
Windows下AliOS Things环境搭建及ESP8266 固件下载
快速接入阿里云物联网平台技术方案分享
-
串口通信 STM32的串口1作为Debug串口; 串口5与ESP8266进行数据通信。
STM32串口通信的使用方法,参考阅读:
STM32F103 串口的使用方法
物联网模块ESP8266返回的数据格式为JSON字符串,对此字符串进行解析,参考阅读:
Keil环境下STM32工程加入cJSON
用cJSON解析心知天气返回的数据包
-
按键
实现切换手动或者自动模式;调节档位,档位加、档位减、切换(手动模式和自动模式切换)。
按键功能实现,参考阅读:
Proteus仿真STM32实例:简易抢答器
-
LCD显示
选用0.96寸 OLED屏 显示内容:当前温度、工作模式和档位模式。
参考阅读:
STM32驱动0.96寸OLED液晶屏
OLED液晶屏如何显示中文呢?
-
RTC
STM32自带RTC功能,选用此功能为了实现定时模式。
此部分文章暂未介绍
-
红外遥控
功能:实现红外遥控功能;
参考阅读:
红外遥控功能的实现
-
LED
作用:
电源指示灯 系统调试使用
LED驱动功能实现,参考阅读:
4行代码实现LED闪烁
完成了本设计之后,考虑一下实现的功能,其实这个设计完全可以改成“智能雾化器”,功能跟本设计基本相同,只需要将DS18B20温度传感器更换为温湿度传感器即可,使用PWM功能可以实现雾化量的控制。
温湿度传感器的使用,参考阅读:
DHT11及DHT21温湿度传感器时序图解析(STM32)
成果展示
资料获取
微信公众号后台回复“每月一练”,可以下载智能风扇的工程源码、PCB图及原理图资料。
免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!