Indholdsfortegnelse:

ESP8266 NodeMCU Med BME280 målere og diagram: 5 trin
ESP8266 NodeMCU Med BME280 målere og diagram: 5 trin

Video: ESP8266 NodeMCU Med BME280 målere og diagram: 5 trin

Video: ESP8266 NodeMCU Med BME280 målere og diagram: 5 trin
Video: Lesson 15: Using Soil Moisture Sensor with Arduino SunFounder Kit | Robojax 2024, Juli
Anonim
ESP8266 NodeMCU med BME280 målere og diagram
ESP8266 NodeMCU med BME280 målere og diagram
ESP8266 NodeMCU med BME280 målere og diagram
ESP8266 NodeMCU med BME280 målere og diagram

Fancy målere og diagram til dit ESP8266 NodeMCU Development board med BME280 temperatur-, luftfugtigheds- og tryksensor. Thingspeak gemmer alle dine data i skyen til hentning når som helst i årevis (forhåbentlig) fremover. Målerne og diagrammet udfyldes ud fra de data, der er gemt på thingspeak, og opdateres automatisk hvert 5. minut.

Nødvendige varer:

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

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

Breadboard Jumpers ($ 3,09 fra Banggood.com Hong Kong)

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

Strømforsyning, gratis, hvis du har en mikro -USB telefonoplader

Micro USB -kabel, gratis hvis du allerede har et

Arduino IDE, gratis download

Hent.ino- og. HTML-kodefilerne her

Trin 1: Opret og konfigurer dine Thingspeak -kanaler

Opret og konfigurer dine Thingspeak -kanaler
Opret og konfigurer dine Thingspeak -kanaler

1. Opret en gratis Thingspeak-konto og ny kanal på https://thingspeak.com, kald kanalen "ESP8266-NodeMCU-12E-BME280"

2. Den nye kanal skal have 3 felter, der hedder Temperaturfugtighedstryk i den specifikke rækkefølge (bemærk store bogstaver i første bogstav).

3. Bemærk dit nye "kanal -id" XXXXXX under "Kanalindstillinger"

4. Klik på linket "API -nøgler", og noter din "API -skrivning" og "Læs API -nøgler" XXXXXXXXXXXXXXX. Gør også dette til en offentlig kanal under deling.

5. Opret en anden Thingspeak -kanal, der vil holde "Today" (siden midnat) High Low data. Kald det "BME280 Daily High Low Data"

6. Denne nye kanal skal have 6 felter, der hedder Tmax Tmin Hmax Hmin Pmax Pmin i den specifikke rækkefølge (bemærk store bogstaver i første bogstav).

7. Bemærk "BME280 Daily High Low Data" "kanal -ID", "Read" & "Write API -nøgler" ligesom i ovenstående trin.

Trin 2: Konfigurer Arduino IDE, biblioteker og konfigurer BME280

Konfigurer Arduino IDE, biblioteker og konfigurer BME280
Konfigurer Arduino IDE, biblioteker og konfigurer BME280

8. Følg instruktionerne for installation af Arduino IDE & ESP8266-kernen på

9. Tænd for Arduino IDE, så vi kan installere de fire biblioteker, vi får brug for.

10. Du skal bruge biblioteket "Adafruit Unified Sensor Driver", installer det i "Library Manager" i Arduino IDE. Menu Skitse Inkluder bibliotek Administrer biblioteker foretag en søgning efter Type = "Anbefalet" Emne = "Sensorer" og sæt derefter ordene Adafruit Unified Sensor Driver i søgefeltet. Den, du vil have, siger "Adafruit Unified Sensor Driver fra Adafruit"

11. Derudover skal du også "Adafruit BME280 Library" installere det i "Library Manager" i Arduino IDE. Menu Skitse Inkluder bibliotek Administrer biblioteker foretag en søgning efter Type = "Anbefalet" Emne = "Sensorer" og sæt derefter ordene Adafruit BME280 Library i søgefeltet. Den du vil have siger "Adafruit BME280 Library by Adafruit"

12. Et andet bibliotek, du har brug for, er Wire.h, installer det i "Library Manager" i Arduino IDE. Menu, skitse Inkluder bibliotek Administrer biblioteker Søg efter Type = "Bidraget" Emne = "Signalindgang/-output", og sæt derefter ordet Wire i søgefeltet. Den, du vil have, siger "Wire Built-in by Arduino" Mest sandsynligt i bunden af udvalget.

13. Endnu et bibliotek, ESP8266WiFi, installer det i "Library Manager" i Arduino IDE. Menu, skitse Inkluder bibliotek Administrer biblioteker Søg efter Type = "Bidraget" Emne = "Kommunikation", og sæt derefter ordet ESP8266wifi i søgefeltet. Den, du vil have, siger "ESP8266wifi Built-in by Ivan Grokhotkov"

14. I2C -adressen til BME280 er hardkodet i filen Adafruit_BME280.h (se efter linjen #define BME280_ADDRESS 0x77) inde i mappen Adafruit_BME280_Library. Adafruits BME-sensormoduler er hardwired til at bruge I2C-adressen 0x77. Men BME280 kan have en lidt anden I2C -adresse (0x76), hvis dens eksterne SDO -pin er jordet. Hvis du bruger sensormodulerne fra en tredjepart, er det sandsynligt, at dens adresse ikke matcher standardværdien i Adafruit -biblioteket. For eksempel har de fleste BME280 -sensormoduler, der er tilgængelige på eBay eller Aliexpress, deres I2C -adresse til at være 0x76. Hvis du ikke får et svar fra sensoren ved hjælp af standardadressen, der er angivet i filen Adafruit_BME280.h, skal du muligvis ændre den til 0x76.

BME280 & ESP8266 forbindelsespunkter. ESP8266 3.3V til BME280 Vin, ESP8266 GND til BME280 GND, ESP8266 D4 til BME280 SCL, ESP8266 D3 til BME280 SDA. 15. Åbn den medfølgende ESP8266-NodeMCU-12E-BME280.html-fil i et tekstredigeringsprogram, og indtast din "ESP8266-NodeMCU-12E-BME280" (Den første kanal, du oprettede) "Kanal-id" og "Læs API-nøgle" for variabler key1 & chan1. Indtast også "Læs API -nøglen" og "Kanal -id" for "BME280 Daily High Low Data" (Den anden kanal, du har oprettet) for key2 og chan2. Desuden skal du indtaste din tidszone -forskydning fra UTC. Som i -5 for mig. Alle værdierne skal være inde i de angivne enkelte anførselstegn 'XXXXX'. Gem og afslut teksteditoren.

Tilslut din ESP8266 med USB -kablet til din computer, og vælg derefter din serielle port som USB -port.

Linux -brugere skal muligvis ændre ejeransvar af USB -porten for at kommunikere med /dev /ttyUSB0 som i 'sudo chown yourusername /dev /ttyUSB0' eller hvad du nogensinde har valgt som din port i opsætningen.

Trin 3: Programmer ESP8266 med Arduino IDE

Programmer ESP8266 med Arduino IDE
Programmer ESP8266 med Arduino IDE

16. Dernæst programmerer vi ESP8266. Tilslut et USB -kabel mellem din ESP8266 og din computer.

Indlæs den medfølgende New_BME_Sensor.ino -fil i Arduino IDE. Din BME280 -sensor skal være tilsluttet D3 (SDA) og D4 (SCL) på ESP8266. Indtast din "ESP8266-NodeMCU-12E-BME280" (Den første kanal, du oprettede) "Skriv nøgle" "Trådløs SSID" og "Adgangskode" i den korrekte sektion af skitsen. Klik derefter på menupunktet "Skitse" og "Upload". Når du har uploadet skitsen (Fremskridt når 100%) til din ESP8266 kan du åbne den serielle skærm (ikonet øverst til højre ligner et forstørrelsesglas) og se dine data udskrives efter 5 minutter, hvert 5. minut. Dataene bliver sendt til thingspeak med 5 minutters mellemrum, så det vil tage noget tid, før du har meningsfulde diagramdata, men du skal have måleraflæsninger efter 5 min.

Sørg for, at du får de korrekte aflæsninger fra BME280 i den serielle skærm.

Den første måling vil sandsynligvis være en ugyldig nan.

Vent et par minutter til den næste læsning, og kontroller, at aflæsningerne ser godt ud.

Trin 4: Gå tilbage til Thingspeak for at lave nogle datajusteringer

Gå tilbage til Thingspeak for at lave nogle datajusteringer
Gå tilbage til Thingspeak for at lave nogle datajusteringer

17. Nu, mens dataene langsomt uploades til thingspeak, kan vi lave nogle justeringer for at få yderligere data fra det, der uploades. Gå tilbage til thingspeak -webstedet og på Thingspeak "BME280 Daily High Low Data" -kanalsiden (Den anden kanal, du har oprettet) klikker du på den grønne "MATLAB -analyse" -knap. Vælg skabelon "Brugerdefineret (ingen startkode)"

18. Navngiv MATLAB -analysen "Beregn min maks. Siden midnat".

19. Kopier MATLAB Analysis.txt -koden til det angivne rum. Indtast "kanal-id" for "ESP8266-NodeMCU-12E-BME280" (Den første kanal, du oprettede) i "readChannelID". Indtast "BME280 Daily High Low Data" (Den anden kanal, du har oprettet) Skriv "Channel ID" og "Write Key" i writeNewChannelID & writeAPIKey respektfuldt. Jeg ved, at det lyder forvirrende (læs det igen). Klik på Gem og Kør. Hvis du gjorde det korrekt, og læsningskanalen er offentlig, ser du ingen fejl, og den udskriver værdierne. Bemærk! Du kan muligvis se en fejl, hvis der endnu ikke er uploadet data til den kanal. Trods fejlen fortsæt. Hvis det ønskes, kan du besøge igen Klik på Gem og Kør for at sikre, at det fungerer, når data er uploadet.

20. Dernæst skal vi oprette en "Time Control" for at affyre denne kode hvert 5. minut, og vores data bliver skrevet til kanalen "BME280 Daily High Low Data" (Den anden kanal, du har oprettet). Vælg Apps øverst på hovedsiden i "BME280 Daily High Low Data" (Den anden kanal, du har oprettet). Under handlinger vælges "TimeControl" og derefter den grønne knap "New TimeControl". Navngiv det "Send høje lave temperaturer ESP8266". Vælg din tidszone, hvis det er nødvendigt, og vælg "Tilbagevendende" under Frekvens. Vælg Minut under Gentagelse. Indstillet til at køre hvert 5. minut. Handling skal være MATLAB -analyse, og "Code to Execute" er "Beregn min maks. Siden midnat". Spar tidskontrol.

Trin 5: Rediger den leverede HTML -fil

Rediger den leverede HTML -fil
Rediger den leverede HTML -fil

Rediger HTML -filerne, og kig efter kommentarer, der siger "******** Skift mig 1 af 8 *********" Skift disse til din præference.

Bemærkninger:

Nogle af tekstfelterne og det ugentlige diagram udfyldes ikke korrekt, før du har en hel dag og en hel uge med data til 24 -timers og uges sektion og diagram. Når du har en masse data, kan du zoome ind på diagrammerne med musehjulet (Højreklik for at nulstille). Du kan også få en fjerde måler (som det ses på skærmbillederne) fra en anden sensor fra en anden kanal, men jeg har fjernet de relevante portioner. Hvis du føler dig savy, skal du tilslutte det. Der er også nogle timingproblemer at være opmærksom på. Du har sandsynligvis ikke de absolut mest aktuelle data, men de skal altid være mindre end 5 minutter gamle. Dette kommer fra, når timekontrollen bliver affyret, Da dataene blev sendt fra ESP8266, og da du indlæste / opdaterede websiden.

Åbn den medfølgende ESP8266-NodeMCU-12E-BME280.html-fil i din webbrowser, og du skal se målere og diagrammet udfyldt.

Hent.ino- og. HTML-kodefilerne her

Anbefalede: