当前位置:首页 > 公众号精选 > 程序员小哈
[导读]经过一个月的时间,我们的第一次 “每月一练” 活动DIY内容完成了。 自从开号已经两个半月了,本号每天都有新的读者关注,也是你们的支持,让我分享的网文综合到一起,可以实现“智能风扇”这样一个综合实例。 感谢期间各位朋友对本人公众号文章的宣传,你们

经过一个月的时间,我们的第一次 “每月一练” 活动DIY内容完成了。

自从开号已经两个半月了,本号每天都有新的读者关注,也是你们的支持,让我分享的网文综合到一起,可以实现“智能风扇”这样一个综合实例。

感谢期间各位朋友对本人公众号文章的宣传,你们的每一次“在看”、转发赞赏,都是对我劳动成果的认可,是我继续前进的动力,也希望各位朋友能一如既往的支持小哈,在此,小哈谢谢各位的支持,我会继续努力分享网文,带领各位从0走到1,走进嵌入式开发的大门。

下面我对“智能风扇”中涉及到的知识点进行梳理,方便大家对照代码和电路图进行学习,有不清楚的地方,可以加我微信号:chengxuyuanxiaoha(程序员小哈的全拼),大家一起学习,一起进步。

功能梳理

  • PCB线路板采用核心板+底板实现

核心板:排针引脚间距为2.54mm,2排,双排间距为2.54mm的倍数(方便与面包板联用),未使用引脚全部引出,核心板上的主芯片为STM32F103RET6。
目的:

  • 方便与面包板配合使用;
  • 核心板上预留两个2.54mm间距,4脚座和5脚座,部分传感器模块只需要这两个底座既可以实现模块功能。
  • 核心板上的主芯片相对较贵,做成核心板之后,可以重复利用,方便大家一起跟着做,以后我们只需要修改底板的设计即可。

上图中各个模块简要说明:

  1. 标号1为ESP8266 WiFi模块,用于实现与阿里云物联网平台连接,实现风扇的远程控制功能;
  2. 标号2为使用三极管实现风扇的控制;
  3. 标号3为使用光耦+mos管的方式实现风扇的控制;
  4. 标号4为电源座;
  5. 标号5为底板上的5个按键,从下到上,按键功能分别为:风速+、风速-、风扇开关、风扇开及风扇关;
  6. 标号6为核心板上预留的按键,用于实现模式的切换,本系统分为三个模式,默认为模式0,底板上的按键功能为上面的描述;模式1为修改系统时间功能,底板上的前三个按键用于调节实时时间的时分秒;模式2为修改定时时间功能,底板上的前三个按键用于调节定时时间的时分秒;
  7. 标号7为JATG下载STM32程序接口,SW模式,只需要三个引脚即可;
  8. 标号8为Micro USB底座,通过CH340C芯片与STM32的串口1相连,串口1一般用于系统调试信息的打印;
  9. 标号9为电源选择方式跳线,当使用跳线帽短接时,系统供电来自于Micro USB接口;当跳线帽拔掉后,系统供电来源于标号4的电源座;
  10. 标号10为红外接收头;
  11. 标号11为OLED屏;
  12. 标号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获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭
关闭