電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>采用Toit和ESP32打造的溫控風扇

采用Toit和ESP32打造的溫控風扇

2022-11-02 | zip | 0.55 MB | 次下載 | 2積分

資料介紹

描述

背景

夏天到了!夏天來了……特別是在我的臥室里。問題是,在陽光明媚的一天后該睡覺的時候,我臥室的溫度在 30°C 以上,但當我早上醒來時,卻是冰冷的。解決方法:溫控風扇!這個想法是有一個風扇,可以在晚上最大限度地提高空氣流通,并隨著溫度的下降逐漸降低速度。此外,最好有一個顯示當前溫度和溫度歷史的顯示器。

托伊特

與其浪費寶貴的時間設置外圍設備和通信,我們將在這個上選擇 Toit。這為構建增加了獨特的響應能力。借助 Toit 平臺,開發(fā)人員可以將 ESP32 視為普通計算機,使用系統(tǒng)內置的 OTA 功能并行安裝多個應用程序。由于 Toit 使用高級語言,因此可以輕松測試功能和應用程序,而 Toit 平臺可確保設備無論如何都能正常運行。

開始使用 Toit

首先,您需要獲得一個 Toit 帳戶并使用 Toit 配置您的 ESP32:在toit.io上單擊“立即開始”獲得一個免費的 Toit 帳戶。

poYBAGNhz52ALAXOAAJilaiwCy4129.png
?

登錄后,轉到文檔并按照快速入門指南在您的計算機上安裝 Toit

請注意,您可以使用 Web 用戶界面輕松配置 ESP32

注意:配置 ESP32 后,它會上線并且不需要連接到您的計算機,除非您想通過 USB 為其供電。所有通信都通過 Toit 云進行。

現(xiàn)在你已經(jīng)準備好連接一些硬件了!

連接硬件

在下面,您將看到所有連接的 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 設置得非常低,電機將不會啟動,并且您可能會聽到它發(fā)出滴答聲,因為輸入電機的功率不足以使其旋轉。對于此設置,PWM > 0.16 足以啟動發(fā)動機。

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

為了實現(xiàn)可變風扇速度,我們將合適的溫度區(qū)間(例如 25°C 到 30°C)映射到 PWM 占空比區(qū)間 [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

此外,為了獲得一個漂亮的溫度歷史直方圖,我們將合適的溫度區(qū)間 [20...35] 映射到某個直方圖高度,然后將溫度讀數(shù)添加到直方圖:

//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 上執(zhí)行 Toit 代碼。在這個項目中,當我們安裝它時,應用程序應該會立即連續(xù)運行,如果 ESP32 重啟也是如此。我們將應用程序命名為“ Fan Control ”并指向包含 Toit 代碼的文件:

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

要訪問整個代碼,請訪問GitHub

?

?

?


評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  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開發(fā)指南
  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數(shù)字電路基礎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次下載  |  免費