电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>采用Toit和ESP32打造的温控风扇

采用Toit和ESP32打造的温控风扇

2022-11-02 | zip | 0.55 MB | 次下载 | 2积分

资料介绍

描述

背景

夏天到了!夏天来了……特别是在我的卧室里。问题是,在阳光明媚的一天后该睡觉的时候,我卧室的温度在 30°C 以上,但当我早上醒来时,却是冰冷的。解决方法:温控风扇!这个想法是有一个风扇,可以在晚上最大限度地提高空气流通,并随着温度的下降逐渐降低速度。此外,最好有一个显示当前温度和温度历史的显示器。

托伊特

与其浪费宝贵的时间设置外围设备和通信,我们将在这个上选择 Toit。这为构建增加了独特的响应能力。借助 Toit 平台,开发人员可以将 ESP32 视为普通计算机,使用系统内置的 OTA 功能并行安装多个应用程序。由于 Toit 使用高级语言,因此可以轻松测试功能和应用程序,而 Toit 平台可确保设备无论如何都能正常运行。

开始使用 Toit

首先,您需要获得一个 Toit 帐户并使用 Toit 配置您的 ESP32:在toit.io上单击“立即开始”获得一个免费的 Toit 帐户。

poYBAGNhz52ALAXOAAJilaiwCy4129.png
 

登录后,转到文档并按照快速入门指南在您的计算机上安装 Toit

请注意,您可以使用 Web 用户界面轻松配置 ESP32

注意:配置 ESP32 后,它会上线并且不需要连接到您的计算机,除非您想通过 USB 为其供电。所有通信都通过 Toit 云进行。

现在你已经准备好连接一些硬件了!

连接硬件

在下面,您将看到所有连接的 Fritzing 电路。请注意,L298H 板上的 5VEN 跳线应闭合。这意味着该板将由 6V 电池组供电另外,在直流电机端子之间加一个 0.1 uF 的电容这减少了由电机引起的电噪声。

poYBAGNhz6uAJzuLAAQhPOBE_8g238.jpg
 

使用了以下 ESP32 GPIO 引脚:

  • GPIO 16 - L298H 电机驱动板上的 IN1 引脚
  • GPIO 17 - L298H 电机驱动板上的 IN2 引脚
  • GPIO 19 - L298H 电机驱动板上的 ENA(启用)引脚
  • GPIO 21 - BME280 传感器板和 OLED 显示屏上的 SDA
  • GPIO 22 - BME280 传感器板和 OLED 显示屏上的 SCL

L298H 上的 IN1(输入 1)和 IN2(输入 2)控制电机旋转方向如下:

pYYBAGNhz6-ASlpiAABdlEAeBRQ354.png
 

ENA(启用)启动和停止电机。如果将 PWM 信号应用于此输入,则电机以相应的速度旋转。请注意,如果 PWM 设置得非常低,电机将不会启动,并且您可能会听到它发出滴答声,因为输入电机的功率不足以使其旋转。对于此设置,PWM > 0.16 足以启动发动机。

BME280 传感器和 ESP32 通过 I2C 进行通信,由于 Toit 为该传感器提供了驱动程序,因此使用它非常简单:只需将其连接到相应的 GPIO 即可。OLED 显示屏也是如此:只需将 SDA 和 CLK 连接到相应的 GPIO,就可以了。但是,市面上有大量基于 SSD1306 的 OLED 显示器,它们可能有不同的功率要求。此构建中使用的电路板需要 5V 至 Vin。3.3V 是不够的。在此处阅读更多信息https ://learn.adafruit.com/monochrome-oled-breakouts/power-requirements

托特守则

首先,我们需要安装 OLED 显示屏和 BME280 传感器所需的软件包。在命令提示符下,在 Toit 代码所在的文件夹中,运行以下命令:

$ toit pkg init --app
$ toit pkg install pixel_display
$ toit pkg install ssd1306

这个项目的实际代码相对简单。整个代码可在GitHub 上获得以下摘录用于说明具体功能。

BME280 传感器和 OLED 显示器共享相同的 I2C 总线,分别使用两个不同的地址:0x77 和 0x3d。请注意,您的硬件可能使用不同的地址,如果是这样,则必须相应地更改代码。

scl := gpio.Pin 22
sda := gpio.Pin 21
bus := i2c.Bus
  --sda=sda
  --scl=scl

oled := SSD1306 (bus.device 0x3d)
thp_device := bus.device 0x77

用于风扇速度控制的引脚 (GPIO 19) 必须设置为 PWM:

pwm := gpio.Pwm
  --frequency=50
chan1 := pwm.start
  gpio.Pin 19

此外,控制风扇方向的引脚(GPIO 16 和 17)应设置为输出引脚:

//set up fan direction control pins
in1 := gpio.Pin.out 16
in2 := gpio.Pin.out 17
//Set direction of fan
in1.set 0
in2.set 1

为了实现可变风扇速度,我们将合适的温度区间(例如 25°C 到 30°C)映射到 PWM 占空比区间 [0.0...1.0]:

input_start := 25.0
input_end := 30.0
output_start := 0.0
output_end := 1.0

df = (temp - input_start) / (input_end - input_start) * (output_end - output_start) + output_start

此外,为了获得一个漂亮的温度历史直方图,我们将合适的温度区间 [20...35] 映射到某个直方图高度,然后将温度读数添加到直方图:

//Mapping of temp to histogram range
histo_input_start := 20.0
histo_input_end := 35.0
histo_output_start := 5.0
histo_output_end := 50.0

histo_data = (temp - histo_input_start) / (histo_input_end - histo_input_start) * (histo_output_end - histo_output_start) + histo_output_start

要在 ESP32 上安装应用程序,您只需部署 yaml 文件:

$ toit device -d nameofmydevice deploy tempfan.yaml

Yaml 文件

Toit 使用 .yaml 文件来安排何时应在 ESP32 上执行 Toit 代码。在这个项目中,当我们安装它时,应用程序应该会立即连续运行,如果 ESP32 重启也是如此。我们将应用程序命名为“ Fan Control ”并指向包含 Toit 代码的文件:

name: "Fan Control"
entrypoint: tempfan.toit
triggers:
  on_install: true
  on_boot: true

要访问整个代码,请访问GitHub

 

 

 


评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费