Talaan ng mga Nilalaman:

ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart: 5 Mga Hakbang
ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart: 5 Mga Hakbang

Video: ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart: 5 Mga Hakbang

Video: ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart: 5 Mga Hakbang
Video: Introduction to NodeMCU ESP8266 WiFi Development board with HTTP Client example- Robojax 2024, Nobyembre
Anonim
ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart
ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart
ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart
ESP8266 NodeMCU Na May Mga BME280 Gauge at Tsart

Mga Fancy Gauge at Tsart para sa iyong ESP8266 NodeMCU Development board na may BME280 Temperature, Humidity at Pressure sensor. Itatago ng Thingspeak ang lahat ng iyong data sa cloud para sa pagkuha sa anumang oras sa loob ng maraming taon (sana) darating. Ang mga gauge at tsart ay na-populate mula sa data na nakaimbak sa mga bagay na bagay at awtomatikong nai-update tuwing 5 mga minuet.

Mga Kinakailangan na Item:

ESP8266 NodeMCU Development board ($ 3.79 mula sa Banggood.com Hong Kong)

Bosch BME280 ($ 5.63 mula sa Banggood.com Hong Kong)

Mga Breadboard Jumper ($ 3.09 mula sa Banggood.com Hong Kong)

Breadboard ($ 2.28 mula sa Banggood.com Hong Kong)

Power Supply, Libre kung mayroon kang isang micro USB charger ng telepono

Micro USB cable, Libre kung mayroon ka na

Arduino IDE, Libreng Pag-download

Kunin ang mga file ng.ino &. HTML code dito

Hakbang 1: Lumikha at mag-set up ng iyong Mga Channels ng Thingspeak

Lumikha at I-set up ang iyong Mga Channels ng Thingspeak
Lumikha at I-set up ang iyong Mga Channels ng Thingspeak

1. Lumikha ng isang libreng Thingspeak account at bagong channel sa https://thingspeak.com, Tumawag sa channel na "ESP8266-NodeMCU-12E-BME280"

2. Ang bagong channel ay dapat magkaroon ng 3 mga patlang na pinangalanang Temperatura Humidity Pressure sa partikular na pagkakasunud-sunod (Tandaan ang malaking titik ng Liham).

3. Itala ang iyong bagong "channel ID" XXXXXX sa ilalim ng "Mga Setting ng Channel"

4. I-click ang link na "API Keys" at tandaan ang iyong "API Writing" at "Read API Keys" XXXXXXXXXXXXXXX. Gayundin, gawin itong isang pampublikong channel sa ilalim ng pagbabahagi.

5. Lumikha ng isang pangalawang channel ng Thingspeak na hahawak sa "Ngayon" (mula hatinggabi) Mataas na Mababang data. Tawagin itong "BME280 Daily High Low Data"

6. Ang bagong channel na ito ay dapat mayroong 6 na patlang na pinangalanang Tmax Tmin Hmax Hmin Pmax Pmin sa tiyak na pagkakasunud-sunod na iyon (Tandaan ang malaking titik ng Liham).

7. Tandaan ang "BME280 Daily High Low Data" "channel ID", "Basahin" at "Sumulat ng mga API key" tulad sa mga hakbang sa itaas.

Hakbang 2: I-setup ang Arduino IDE, Mga Aklatan at I-configure ang BME280

I-setup ang Arduino IDE, Mga Aklatan at I-configure ang BME280
I-setup ang Arduino IDE, Mga Aklatan at I-configure ang BME280

8. Sundin ang mga tagubilin para sa pag-install ng Arduino IDE & ESP8266 core sa

9. Sunogin ang Arduino IDE upang mai-install namin ang apat na aklatan na kakailanganin namin.

10. Kakailanganin mo ang library ng "Adafruit Unified Sensor Driver", i-install ito sa "Library Manager" sa Arduino IDE. Menu Sketch Isama ang Library Manage Library gumawa ng paghahanap ayon sa Type = "Inirekumendang" Paksa = "Mga Sensor" pagkatapos ay ilagay ang mga salitang Adafruit Unified Sensor Driver sa search box. Ang nais mo ay nagsabing "Adafruit Unified Sensor Driver by Adafruit"

11. Bilang karagdagan, kakailanganin mo rin ang "Adafruit BME280 Library" na i-install ito sa "Library Manager" sa Arduino IDE. Menu Sketch Isama ang Library Pamahalaan ang mga Library ay gumawa ng isang paghahanap ayon sa Type = "Inirekumendang" Paksa = "Mga Sensor" pagkatapos ay ilagay ang mga salitang Adafruit BME280 Library sa box para sa paghahanap. Ang nais mo ay nagsabing "Adafruit BME280 Library by Adafruit"

12. Ang isa pang library na kailangan mo ay Wire.h, i-install ito sa "Library Manager" sa Arduino IDE. Menu, Sketch Isama ang Library Pamahalaan ang Mga Aklatan Gumawa ng isang paghahanap ayon sa Uri = "Naambag" Paksa = "Signal Input / Output" pagkatapos ay ilagay ang salitang Wire sa search box. Ang nais mo ay nagsabing "Wire Built-in ni Arduino" Malamang na nasa ilalim ng pagpipilian.

13. Isa pang library, ESP8266WiFi, i-install ito sa "Library Manager" sa Arduino IDE. Menu, Sketch Isama ang Library Pamahalaan ang Mga Aklatan Gumawa ng isang paghahanap ayon sa Uri = "Naambag" Paksa = "Komunikasyon" pagkatapos ay ilagay ang salitang ESP8266wifi sa search box. Ang nais mo ay nagsabing "ESP8266wifi Built-in ni Ivan Grokhotkov"

14. Ang I2C address para sa BME280 ay hardcoded sa Adafruit_BME280.h file (hanapin ang linya na # tukuyin ang BME280_ADDRESS 0x77) sa loob ng Adafruit_BME280_Library folder. Ang mga module ng sensor ng BME ng Adafruit ay hard-wired upang magamit ang I2C address na 0x77. Ngunit ang BME280 ay maaaring magkaroon ng isang bahagyang naiibang I2C address (0x76) kung ang panlabas na SDO pin ay saligan. Kung gumagamit ka ng mga module ng sensor mula sa isang third party, malamang na ang address na ito ay hindi tumugma sa default na halaga sa Adafruit library. Halimbawa, para sa karamihan ng mga BME280 sensor module na magagamit sa eBay o Aliexpress ay mayroong kanilang I2C address na 0x76. Kung hindi ka makakakuha ng isang tugon mula sa sensor gamit ang default na address na nakatakda sa Adafruit_BME280.h file, maaaring kailanganin mong baguhin ito sa 0x76.

Mga puntos sa Koneksyon ng BME280 & ESP8266. Ang ESP8266 3.3V sa BME280 Vin, ESP8266 GND sa BME280 GND, ESP8266 D4 hanggang BME280 SCL, ESP8266 D3 hanggang BME280 SDA. 15. Buksan ang ibinigay na file na ESP8266-NodeMCU-12E-BME280.html sa isang text editor at ipasok ang iyong "ESP8266-NodeMCU-12E-BME280" (Ang unang channel na nilikha mo) "Channel ID" & "Read API Key" para sa variable variable1 at chan1. Ipasok din ang "Basahin ang API Key" at "Channel ID" para sa "BME280 Daily High Low Data" (Ang pangalawang channel na nilikha mo) para sa key2 at chan2. Bilang karagdagan, ipasok ang iyong timezone offset mula sa UTC. As in -5 para sa akin. Ang lahat ng mga halaga ay dapat nasa loob ng ibinigay na solong mga quote na 'XXXXX'. I-save at lumabas sa text editor.

I-plug ang iyong ESP8266 gamit ang USB cable sa iyong computer pagkatapos ay piliin ang iyong serial port upang maging USB port.

Ang mga gumagamit ng Linux ay maaaring kailangang baguhin ang pagmamay-ari ng USB port upang makipag-usap sa / dev / ttyUSB0 tulad ng sa 'sudo chown yourusername / dev / ttyUSB0' o kung ano ang napili mo bilang iyong port sa pag-set up.

Hakbang 3: I-program ang ESP8266 Gamit ang Arduino IDE

Program ang ESP8266 Gamit ang Arduino IDE
Program ang ESP8266 Gamit ang Arduino IDE

16. Susunod na ipo-program namin ang ESP8266. Ikonekta ang isang USB cable sa pagitan ng iyong ESP8266 at ng iyong computer.

I-load ang ibinigay na New_BME_Sensor.ino file sa Arduino IDE. Ang iyong sensor ng BME280 ay dapat na nakakabit sa D3 (SDA) & D4 (SCL) sa ESP8266. Ipasok ang iyong "ESP8266-NodeMCU-12E-BME280" (Ang unang channel na iyong nilikha) "Isulat ang Key" "Wireless SSID" & "Password" sa tamang seksyon ng sketch. Pagkatapos i-click ang item sa menu na "Sketch" & "I-upload". Matapos mong i-upload ang sketch (umabot ang 100%) sa iyong ESP8266 maaari mong buksan ang serial monitor (Icon sa kanang tuktok ay parang isang magnifiying glass) at makita ang iyong data na naka-print pagkatapos ng 5 Minuto, bawat 5 Minuto. Ipinadala ang data sa mga bagay na bagay sa 5 agwat ng agwat kaya't magtatagal bago ka magkaroon ng makabuluhang data ng tsart ngunit dapat kang magkaroon ng mga pagbabasa ng sukat pagkatapos ng 5 minuto.

Siguraduhin na nakakakuha ka ng isang tamang pagbabasa mula sa BME280 sa serial monitor.

Ang unang pagsukat ay malamang na isang hindi wastong nan.

Maghintay ng ilang mga minuet hanggang sa susunod na pagbabasa at i-verify ang mga pagbabasa na maganda ang hitsura.

Hakbang 4: Bumalik sa Thingspeak upang Gumawa ng Ilang Data Tweaking

Bumalik sa Thingspeak upang Gumawa ng Ilang Data Tweaking
Bumalik sa Thingspeak upang Gumawa ng Ilang Data Tweaking

17. Ngayon, habang ang data ay dahan-dahang nag-a-upload sa mga bagay na bagay ay hinahayaan na gumawa ng ilang pag-aayos upang makakuha ng ilang karagdagang data mula sa kung ano ang nai-upload. Bumalik sa website ng mga bagay at sa pahina ng channel ng Thingspeak na "BME280 Daily High Low Data" na pahina (Ang pangalawang channel na iyong nilikha) i-click ang berdeng "Pagsusuri ng MATLAB". Piliin ang Template na "Pasadya (Walang Starter Code)"

18. Pangalanan ang Pagsusuri ng MATLAB na "Kalkulahin ang Min Max Mula Hatinggabi".

19. Kopyahin ang MATLAB Analysis.txt code sa ibinigay na puwang. Ipasok ang "channel ID" para sa "ESP8266-NodeMCU-12E-BME280" (Ang unang channel na nilikha mo) sa "readChannelID". Ipasok ang "BME280 Daily High Low Data" (Ang pangalawang channel na iyong nilikha) Isulat ang "Channel ID" & "Key Key ng Pagsulat" sa writeNewChannelID & writeAPIKey nang may paggalang. Alam kong nakalilito ito (basahin itong muli). I-click ang i-save at patakbuhin. Kung ginawa mo ito nang tama at ang nabasa na channel ay publiko hindi ka makakakita ng mga pagkakamali at matagumpay itong na-print ang mga halaga. Tandaan, Maaari kang makakita ng isang error kung wala pang data na na-upload sa channel na iyon. Sa kabila ng error na magpatuloy. Kung ninanais maaari mong muling bisitahin ang I-click ang i-save at tumakbo upang matiyak na gumagana ito sa sandaling na-upload ang data.

20. Susunod, kailangan naming lumikha ng isang "Time Control" upang mapagana ang code na ito tuwing 5 minuto at ang aming data ay nakasulat sa channel na "BME280 Daily High Low Data" (Ang pangalawang channel na iyong nilikha). Mula sa pangunahing pahina ng "BME280 Daily Daily Low Low Data" (Ang pangalawang channel na iyong nilikha) piliin ang Apps sa tuktok. Sa ilalim ng mga aksyon piliin ang "TimeControl" pagkatapos ay ang berdeng pindutan na "Bagong TimeControl". Pangalanan ito ng "Magpadala ng Mataas na Mababang Temps ESP8266". Piliin ang iyong time zone kung kinakailangan at piliin ang "Umuulit" sa ilalim ng Frequency. Piliin ang Minuto sa ilalim ng Pag-ulit. Itakda upang patakbuhin ang bawat 5 Minuto. Ang pagkilos ay dapat na Pagsusuri ng MATLAB at ang "Code na Isagawa" ay "Kalkulahin ang Min Max Dahil Hatinggabi". Makatipid ng TimeControl.

Hakbang 5: I-edit ang Provided HTML File

I-edit ang Ibinigay na HTML File
I-edit ang Ibinigay na HTML File

I-edit ang mga HTML file at hanapin ang mga komentong nagsasabing "******** Palitan Ako ng 1 **** 8 *****" Baguhin ang mga ito sa iyong kagustuhan.

Mga Tala:

Ang ilan sa mga patlang ng teksto at ang lingguhang tsart ay hindi mamalagi nang tama hanggang sa magkaroon ka ng isang buong araw at buong linggong data para sa seksyong 24 Hr at Linggo at tsart. Kapag mayroon kang isang pangkat ng data maaari kang mag-zoom in sa mga tsart gamit ang mouse wheel (Right Click to Reset). Maaari ka ring magkaroon ng isang pang-apat na sukat (tulad ng nakikita sa mga screenshot) mula sa isa pang sensor mula sa ibang channel ngunit naipadala ko ang mga nauugnay na bahagi. Kung sa tingin mo ay savy, hook up ito. Mayroon ding ilang mga isyu sa oras na dapat magkaroon ng kamalayan. Malamang na hindi ka magkakaroon ng ganap na pinakabagong data ngunit dapat itong laging mas mababa sa 5 Minuto. Ito ay nagmula sa kapag ang kontrol sa tiyempo ay napaputok, Kapag ang data ay ipinadala mula sa ESP8266 at kapag na-load / na-refresh mo ang web page.

Buksan ang ibinigay na file na ESP8266-NodeMCU-12E-BME280.html sa iyong web browser at dapat mong makita ang mga gauge at tsart na napuno.

Kunin ang mga file ng.ino &. HTML code dito

Inirerekumendang: