Innholdsfortegnelse:

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

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

Video: ESP8266 NodeMCU Med BME280 målere og diagram: 5 trinn
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 for ditt ESP8266 NodeMCU utviklingsbord med BME280 temperatur-, fuktighets- og trykksensor. Thingspeak vil lagre alle dataene dine i skyen for henting når som helst i årene (forhåpentligvis) som kommer. Målerne og diagrammet fylles ut fra dataene som er lagret på thingspeak og oppdateres automatisk hvert 5. minutt.

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 -telefonlader

Micro USB -kabel, gratis hvis du allerede har en

Arduino IDE, gratis nedlasting

Få.ino- og. HTML-kodefilene her

Trinn 1: Lag og sett opp dine Thingspeak -kanaler

Lag og konfigurer ThingsPeak -kanalene dine
Lag og konfigurer ThingsPeak -kanalene dine

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

2. Den nye kanalen skal ha tre felt som heter Temperaturfuktighetstrykk i den spesifikke rekkefølgen (Merk første bokstav med store bokstaver).

3. Legg merke til din nye "kanal -ID" XXXXXX under "Kanalinnstillinger"

4. Klikk på koblingen "API -nøkler", og noter deg "API -skrive" og "Les API -nøkler" XXXXXXXXXXXXXXX. Gjør også dette til en offentlig kanal under deling.

5. Lag en andre Thingspeak -kanal som vil inneholde "Today" (siden midnatt) High Low data. Kall det "BME280 Daily High Low Data"

6. Denne nye kanalen bør ha seks felt med navnet Tmax Tmin Hmax Hmin Pmax Pmin i den spesifikke rekkefølgen (Merk First Letter store bokstaver).

7. Legg merke til "BME280 Daily High Low Data" "channel ID", "Read" & "Write API keys" akkurat som i trinnene ovenfor.

Trinn 2: Sett opp Arduino IDE, biblioteker og konfigurer BME280

Sett opp Arduino IDE, biblioteker og konfigurer BME280
Sett opp Arduino IDE, biblioteker og konfigurer BME280

8. Følg instruksjonene for å installere Arduino IDE & ESP8266-kjernen på

9. Slå av Arduino IDE slik at vi kan installere de fire bibliotekene vi trenger.

10. Du trenger "Adafruit Unified Sensor Driver" -biblioteket, installer det i "Library Manager" i Arduino IDE. Menyskisse Inkluder bibliotek Administrer biblioteker søk etter Type = "Anbefalt" Emne = "Sensorer" og legg deretter ordene Adafruit Unified Sensor Driver i søkeboksen. Den du vil ha sier "Adafruit Unified Sensor Driver by Adafruit"

11. I tillegg må du også "Adafruit BME280 Library" installere det i "Library Manager" i Arduino IDE. Menyskisse Inkluder bibliotek Administrer biblioteker søk etter Type = "Anbefalt" Emne = "Sensorer" og legg deretter ordene Adafruit BME280 Library i søkeboksen. Den du vil ha sier "Adafruit BME280 Library by Adafruit"

12. Et annet bibliotek du trenger er Wire.h, installer det i "Library Manager" i Arduino IDE. Meny, Skisse Inkluder bibliotek Administrer biblioteker Søk etter Type = "Bidraget" Emne = "Signalinngang/utgang", og sett deretter ordet Wire i søkeboksen. Den du vil ha sier "Wire Built-in by Arduino" Mest sannsynlig nederst i utvalget.

13. Et bibliotek til, ESP8266WiFi, installer det i "Library Manager" i Arduino IDE. Meny, Skisse Inkluder bibliotek Administrer biblioteker Søk etter Type = "Bidraget" Emne = "Kommunikasjon", og legg deretter inn ordet ESP8266wifi i søkeboksen. Den du vil ha sier "ESP8266wifi Innebygd av Ivan Grokhotkov"

14. I2C -adressen for BME280 er hardkodet i Adafruit_BME280.h -filen (se etter linjen #define BME280_ADDRESS 0x77) inne i Adafruit_BME280_Library -mappen. Adafruits BME-sensormoduler er hardkablede for å bruke I2C-adressen til 0x77. Men BME280 kan ha en litt annen I2C -adresse (0x76) hvis den eksterne SDO -pinnen er jordet. Hvis du bruker sensormodulene fra en tredjepart, er det sannsynlig at adressen ikke stemmer overens med standardverdien i Adafruit -biblioteket. For eksempel har de fleste BME280 -sensormodulene som er tilgjengelige på eBay eller Aliexpress, at deres I2C -adresse er 0x76. Hvis du ikke får svar fra sensoren ved hjelp av standardadressen som er angitt i Adafruit_BME280.h -filen, må du kanskje endre den til 0x76.

BME280 & ESP8266 Tilkoblingspunkter. ESP8266 3.3V til BME280 Vin, ESP8266 GND til BME280 GND, ESP8266 D4 til BME280 SCL, ESP8266 D3 til BME280 SDA. 15. Åpne den medfølgende ESP8266-NodeMCU-12E-BME280.html-filen i et tekstredigeringsprogram, og skriv inn "ESP8266-NodeMCU-12E-BME280" (Den første kanalen du opprettet) "Kanal-ID" og "Les API-nøkkel" for variabler key1 & chan1. Skriv også inn "Read API Key" og "Channel ID" for "BME280 Daily High Low Data" (Den andre kanalen du opprettet) for key2 og chan2. I tillegg angir du tidssone -offset fra UTC. Som i -5 for meg. Alle verdiene må være inne i de angitte enkle anførselstegnene 'XXXXX'. Lagre og avslutt tekstredigeringsprogrammet.

Koble ESP8266 med USB -kabelen til datamaskinen og velg deretter den serielle porten som USB -port.

Linux -brukere må kanskje endre sitt eget ansvar for USB -porten for å kommunisere med /dev /ttyUSB0 som i 'sudo chown yourusername /dev /ttyUSB0' eller hva du noen gang valgte som porten i oppsettet.

Trinn 3: Programmer ESP8266 med Arduino IDE

Programmer ESP8266 med Arduino IDE
Programmer ESP8266 med Arduino IDE

16. Deretter skal vi programmere ESP8266. Koble en USB -kabel mellom ESP8266 og datamaskinen.

Last den medfølgende New_BME_Sensor.ino -filen inn i Arduino IDE. BME280 -sensoren din skal være koblet til D3 (SDA) og D4 (SCL) på ESP8266. Skriv inn "ESP8266-NodeMCU-12E-BME280" (Den første kanalen du opprettet) "Skriv nøkkel" "Trådløs SSID" og "Passord" i den riktige delen av skissen. Klikk deretter på menyelementet "Skisse" og "Last opp". Etter at du har lastet opp skissen (Fremskritt når 100%) til ESP8266 kan du åpne den serielle skjermen (ikonet øverst til høyre ser ut som et forstørrelsesglass) og se dataene skrives ut etter 5 minutter, hvert 5. minutt. Dataene blir sendt til thingspeak med 5 minutters mellomrom, så det vil ta litt tid før du har meningsfylte kartdata, men du bør ha måleravlesninger etter 5 minutter.

Sørg for at du får riktige avlesninger fra BME280 i den serielle skjermen.

Den første målingen vil trolig være en ugyldig nan.

Vent noen minutter til neste lesning og kontroller at avlesningene ser bra ut.

Trinn 4: Gå tilbake til Thingspeak for å gjøre noen datajusteringer

Gå tilbake til Thingspeak for å gjøre noen datajusteringer
Gå tilbake til Thingspeak for å gjøre noen datajusteringer

17. Nå, mens dataene sakte lastes opp til thingspeak, kan vi gjøre noen justeringer for å få ytterligere data fra det som lastes opp. Gå tilbake til thingspeak -nettstedet og på Thingspeak "BME280 Daily High Low Data" -kanalsiden (Den andre kanalen du opprettet) klikker du på den grønne "MATLAB Analysis" -knappen. Velg mal "Egendefinert (ingen startkode)"

18. Gi MATLAB -analysen navnet "Beregn min maks. Siden midnatt".

19. Kopier MATLAB Analysis.txt -koden til den angitte plassen. Skriv inn "kanal-ID" for "ESP8266-NodeMCU-12E-BME280" (Den første kanalen du opprettet) i "readChannelID". Skriv inn "BME280 Daily High Low Data" (Den andre kanalen du opprettet) Skriv "Channel ID" og "Write Key" i writeNewChannelID & writeAPIKey respektfullt. Jeg vet at det høres forvirrende ut (les det igjen). Klikk på lagre og kjør. Hvis du gjorde det riktig og lesekanalen er offentlig, vil du ikke se noen feil, og den skriver ut verdiene. Merk: Du kan se en feil hvis det ikke er lastet opp data til den kanalen ennå. Til tross for feilen fortsette. Hvis du ønsker det, kan du gå tilbake Klikk på lagre og kjør for å sikre at det fungerer når data er lastet opp.

20. Deretter må vi opprette en "Tidskontroll" for å utløse denne koden hvert 5. minutt, og dataene våre blir skrevet til kanalen "BME280 Daily High Low Data" (Den andre kanalen du opprettet). Fra hovedsiden til "BME280 Daily High Low Data" (Den andre kanalen du opprettet) velger du Apps øverst. Under handlinger velger du "TimeControl" og deretter den grønne knappen "New TimeControl". Gi den navnet "Send høy lav temperatur ESP8266". Velg tidssonen din om nødvendig, og velg "Tilbakevendende" under Frekvens. Velg Minutt under Gjentakelse. Sett til å kjøre hvert 5. minutt. Handlingen bør være MATLAB -analyse og "Code to Execute" er "Calculate Min Max since Midnight". Spar tidskontroll.

Trinn 5: Rediger den medfølgende HTML -filen

Rediger den medfølgende HTML -filen
Rediger den medfølgende HTML -filen

Rediger HTML -filene og se etter kommentarer som sier "******** Endre meg 1 av 8 *********" Endre disse til dine preferanser.

Merknader:

Noen av tekstfeltene og ukediagrammet vil ikke fylle ut riktig før du har en hel dag og en hel uke med data for 24 -timers og ukes seksjon og diagram. Når du har en haug med data, kan du zoome inn på diagrammene med musehjulet (Høyreklikk for å tilbakestille). Du kan også ha en fjerde måler (sett på skjermbildene) fra en annen sensor fra en annen kanal, men jeg har fjernet de relevante delene. Hvis du føler deg villig, kan du koble den til. Det er også noen timingproblemer å være oppmerksom på. Du vil sannsynligvis ikke ha de absolutt mest aktuelle dataene, men den bør alltid være mindre enn 5 minutter gammel. Dette kommer fra når tidskontrollen blir avfyrt, Når dataene ble sendt fra ESP8266 og når du lastet inn / oppdaterte nettsiden.

Åpne den medfølgende ESP8266-NodeMCU-12E-BME280.html-filen i nettleseren din, og du bør se målere og diagrammet fylt ut.

Få.ino- og. HTML-kodefilene her

Anbefalt: