INHOUDSOPGAWE:

ESP8266 NodeMCU Met BME280 -meters en grafiek: 5 stappe
ESP8266 NodeMCU Met BME280 -meters en grafiek: 5 stappe

Video: ESP8266 NodeMCU Met BME280 -meters en grafiek: 5 stappe

Video: ESP8266 NodeMCU Met BME280 -meters en grafiek: 5 stappe
Video: Собираем метеостанцию на ESP8266. Прошиваем и запускаем. 2024, November
Anonim
ESP8266 NodeMCU Met BME280 -meters en grafieke
ESP8266 NodeMCU Met BME280 -meters en grafieke
ESP8266 NodeMCU Met BME280 -meters en grafieke
ESP8266 NodeMCU Met BME280 -meters en grafieke

Fantastiese meters en grafieke vir u ESP8266 NodeMCU -ontwikkelbord met BME280 temperatuur-, humiditeits- en druksensor. Thingspeak sal te alle tye (hopelik) al u data in die wolk stoor vir opsporing te alle tye. Die meters en grafieke word ingevul uit die gegewens wat by thingspeak gestoor is en word elke 5 minute outomaties bygewerk.

Benodigde items:

ESP8266 NodeMCU Development board ($ 3,79 van Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 van Banggood.com Hong Kong)

Broodbordspringers ($ 3,09 van Banggood.com Hong Kong)

Breadboard ($ 2,28 van Banggood.com Hong Kong)

Kragtoevoer, gratis as u 'n mikro -USB -laaier het

Mikro -USB -kabel, gratis as u reeds een het

Arduino IDE, gratis aflaai

Kry die.ino- en. HTML-kode lêers hier

Stap 1: Skep en stel u Thingspeak -kanale op

Skep en stel u Thingspeak -kanale op
Skep en stel u Thingspeak -kanale op

1. Skep 'n gratis Thingspeak-rekening en 'n nuwe kanaal op https://thingspeak.com, noem die kanaal "ESP8266-NodeMCU-12E-BME280"

2. Die nuwe kanaal moet 3 velde met die naam Temperatuurvogdruk in die spesifieke volgorde hê (let op die hoofletter in die eerste letter).

3. Let op u nuwe "kanaal -ID" XXXXXX onder "Kanaalinstellings"

4. Klik op die skakel "API -sleutels" en let op u "API -skryf" en "Lees API -sleutels" XXXXXXXXXXXXXXX. Maak dit ook 'n openbare kanaal wat gedeel word.

5. Skep 'n tweede Thingspeak -kanaal wat die "Today" (sedert middernag) High Low data bevat. Noem dit "BME280 Daily High Low Data"

6. Hierdie nuwe kanaal moet 6 velde met die naam Tmax Tmin Hmax Hmin Pmax Pmin in die spesifieke volgorde hê (let op die eerste letter van die hoofletter).

7. Neem kennis van die "BME280 Daily High Low Data" "kanaal -ID", "Lees" en "Skryf API -sleutels", net soos in die bogenoemde stappe.

Stap 2: Stel die Arduino IDE, biblioteke op en stel die BME280 op

Stel die Arduino IDE, biblioteke op en stel die BME280 op
Stel die Arduino IDE, biblioteke op en stel die BME280 op

8. Volg die instruksies vir die installering van die Arduino IDE & ESP8266-kern op

9. Skakel die Arduino IDE aan sodat ons die vier biblioteke wat ons benodig, kan installeer.

10. U benodig die "Adafruit Unified Sensor Driver" -biblioteek, installeer dit in die "Library Manager" in Arduino IDE. Spyskaartskets Sluit biblioteek in Bestuur biblioteke soek na Type = "Recommended" Onderwerp = "Sensors" en plaas dan die woorde Adafruit Unified Sensor Driver in die soekkassie. Die een wat u wil hê, sê "Adafruit Unified Sensor Driver by Adafruit"

11. Boonop benodig u ook die "Adafruit BME280 -biblioteek" om dit in die "Biblioteekbestuurder" in Arduino IDE te installeer. Spyskaartskets Sluit biblioteek in Bestuur biblioteke soek na Type = "Recommended" Topic = "Sensors" en plaas dan die woorde Adafruit BME280 Library in die soekkassie. Die een wat u wil hê, sê "Adafruit BME280 Library by Adafruit"

12. 'n Ander biblioteek wat u benodig, is Wire.h, installeer dit in die "Library Manager" in Arduino IDE. Spyskaart, skets Sluit biblioteek in Bestuur biblioteke Soek volgens Type = "Bydrae" Onderwerp = "Invoer/uitvoer van sein" en plaas dan die woord Wire in die soekkassie. Die een wat u wil hê, sê "Wire Built-in by Arduino" Waarskynlik onderaan die keuse.

13. Nog 'n biblioteek, ESP8266WiFi, installeer dit in die "Library Manager" in Arduino IDE. Spyskaart, skets Sluit biblioteek in Bestuur biblioteke Soek volgens Type = "Bydrae" Onderwerp = "Kommunikasie" en plaas die woord ESP8266wifi in die soekkassie. Die een wat u wil hê, sê "ESP8266wifi Ingeboude deur Ivan Grokhotkov"

14. Die I2C -adres vir BME280 is in die lêer Adafruit_BME280.h (kyk vir die reël #define BME280_ADDRESS 0x77) in die Adafruit_BME280_Library lêergids. Die BME-sensormodules van Adafruit is vasgebind om die I2C-adres van 0x77 te gebruik. Maar die BME280 kan 'n effens ander I2C -adres hê (0x76) as die eksterne SDO -pen daarvan gegrond is. As u die sensormodules van 'n derde party gebruik, is dit waarskynlik dat die adres nie ooreenstem met die standaardwaarde in die Adafruit -biblioteek nie. Byvoorbeeld, vir die meeste BME280 -sensormodules wat op eBay of Aliexpress beskikbaar is, het hul I2C -adres 0x76. As u nie 'n antwoord van die sensor ontvang met behulp van die standaardadres wat in die Adafruit_BME280.h -lêer gestel is nie, moet u dit moontlik verander na 0x76.

BME280 & ESP8266 Verbindingspunte. ESP8266 3.3V na BME280 Vin, ESP8266 GND tot BME280 GND, ESP8266 D4 tot BME280 SCL, ESP8266 D3 tot BME280 SDA. 15. Maak die verskafde ESP8266-NodeMCU-12E-BME280.html-lêer oop in 'n teksredakteur en voer u "ESP8266-NodeMCU-12E-BME280" (die eerste kanaal wat u geskep het) "Channel ID" en "Read API Key" in vir die veranderlikes key1 & chan1. Voer ook die 'Lees API -sleutel' en 'Kanaal -ID' in vir 'BME280 Daily High Low Data' (die tweede kanaal wat u geskep het) vir key2 en chan2. Voer ook u tydsversakering vanaf UTC in. Soos in -5 vir my. Al die waardes moet binne die gegewe enkele aanhalings 'XXXXX' wees. Stoor en verlaat die teksredakteur.

Koppel u ESP8266 met die USB -kabel aan op u rekenaar en kies dan die seriële poort om die USB -poort te wees.

Linux -gebruikers moet moontlik die eienaarskap van die USB -poort verander om met die /dev /ttyUSB0 te kommunikeer, soos in 'sudo chown yourusername /dev /ttyUSB0' of wat u ooit as u poort in die opstelling gekies het.

Stap 3: Programmeer die ESP8266 met die Arduino IDE

Programmeer die ESP8266 met die Arduino IDE
Programmeer die ESP8266 met die Arduino IDE

16. Vervolgens sal ons die ESP8266 programmeer. Koppel 'n USB -kabel tussen u ESP8266 en u rekenaar.

Laai die verskafde New_BME_Sensor.ino -lêer in die Arduino IDE. Jou BME280 -sensor moet op die ESP8266 gekoppel wees aan D3 (SDA) en D4 (SCL). Voer u "ESP8266-NodeMCU-12E-BME280" (die eerste kanaal wat u geskep het) "Skryf sleutel" "Draadlose SSID" en "wagwoord" in die korrekte gedeelte van die skets in. Klik dan op die kieslysitem "Skets" en "Laai op". Nadat u die skets (vordering tot 100%) na u ESP8266 opgelaai het, kan u die seriële monitor oopmaak (ikoon regs bo lyk soos 'n vergrootglas) en u data na 5 minute, elke 5 minute, sien afdruk. Die data word met tussenposes van 5 minute na thingspeak gestuur, so dit sal 'n rukkie neem voordat u betekenisvolle grafiekdata het, maar u moet na 5 minute meetmetings hê.

Maak seker dat u die korrekte lesings van die BME280 in die seriële monitor kry.

Die eerste meting sal waarskynlik 'n ongeldige nan wees.

Wag 'n paar minute tot die volgende lesing en kyk of die lesings goed lyk.

Stap 4: Gaan terug na die Thingspeak om data -aanpassing te doen

Gaan terug na die Thingspeak om data -aanpassing te doen
Gaan terug na die Thingspeak om data -aanpassing te doen

17. Nou, terwyl die data stadig oplaai na thingspeak, kan ons 'n paar aanpassings doen om ekstra data te kry van wat opgelaai word. Gaan terug na die thingspeak -webwerf en op die Thingspeak "BME280 Daily High Low Data" -kanaalbladsy (die tweede kanaal wat u geskep het), klik op die groen "MATLAB Analysis" -knoppie. Kies die sjabloon "Pasgemaak (geen beginkode)"

18. Noem die MATLAB -analise "Bereken min maks. Sedert middernag".

19. Kopieer die MATLAB Analysis.txt -kode in die gegewe ruimte. Voer die "kanaal-ID" vir "ESP8266-NodeMCU-12E-BME280" (die eerste kanaal wat u geskep het) in "readChannelID" in. Voer die 'BME280 Daily High Low Data' in (die tweede kanaal wat u geskep het) Skryf 'Channel ID' en 'Write Key' in writeNewChannelID & writeAPIKey respekvol. Ek weet dit klink verwarrend (lees dit weer). Klik op stoor en hardloop. As u dit korrek gedoen het en die leeskanaal openbaar is, sien u geen foute nie en druk dit die waardes suksesvol af. Let wel: u kan 'n fout sien as daar nog geen data na die kanaal opgelaai is nie. Ten spyte van die fout, gaan voort. As u wil, kan u weer klik Klik op stoor en voer uit om seker te maak dat dit werk sodra data opgelaai is.

20. Vervolgens moet ons elke 5 minute 'n "Tydbeheer" skep om hierdie kode af te vuur, en ons data word na die kanaal "BME280 Daily High Low Data" (die tweede kanaal wat u geskep het) geskryf. Kies Apps bo -aan op die hoofblad van "BME280 Daily High Low Data" (Die tweede kanaal wat u geskep het). Onder aksies, kies "TimeControl" en dan die groen knoppie "New TimeControl". Noem dit "Stuur hoë lae temp ESP8266". Kies u tydsone indien nodig en kies "Herhalend" onder Frekwensie. Kies Minute onder Herhaling. Stel om elke 5 minute te hardloop. Die aksie moet MATLAB -analise wees, en 'Uit te voer kode' is 'Bereken min maks. Sedert middernag'. Bespaar tydsbeheer.

Stap 5: Wysig die verskafde HTML -lêer

Wysig die verskafde HTML -lêer
Wysig die verskafde HTML -lêer

Wysig die HTML -lêers en soek opmerkings wat sê "******** Change Me 1 of 8 *********" Verander dit na u voorkeur.

Notas:

Sommige van die teksvelde en die weeklikse grafiek word nie korrek ingevul totdat u 'n volle dag en 'n volle week se data vir die 24 uur en week -afdeling en grafiek het nie. Sodra u 'n klomp data het, kan u met die muiswiel op die kaarte inzoomen (regsklik om terug te stel). U kan ook 'n vierde meter (soos in die skermkiekies) van 'n ander sensor van 'n ander kanaal hê, maar ek het die betrokke gedeeltes verwyder. As u slim voel, skakel dit in. Daar is ook 'n paar tydsberekeningskwessies wat u moet weet. U het waarskynlik nie die absolute mees onlangse data nie, maar dit moet altyd minder as 5 minute oud wees. Dit kom van wanneer die tydsberekening afgeskakel word, wanneer die data vanaf die ESP8266 gestuur is en die webblad gelaai / verfris is.

Maak die verskafde ESP8266-NodeMCU-12E-BME280.html-lêer in u webblaaier oop, en u moet die meters en grafieke sien vul.

Kry die.ino- en. HTML-kode lêers hier

Aanbeveel: