Innehållsförteckning:

ESP8266 NodeMCU med BME280 -mätare och diagram: 5 steg
ESP8266 NodeMCU med BME280 -mätare och diagram: 5 steg

Video: ESP8266 NodeMCU med BME280 -mätare och diagram: 5 steg

Video: ESP8266 NodeMCU med BME280 -mätare och diagram: 5 steg
Video: Использование LCD1602 или LCD2004 с ESP32 2024, Juli
Anonim
ESP8266 NodeMCU med BME280 mätare och diagram
ESP8266 NodeMCU med BME280 mätare och diagram
ESP8266 NodeMCU med BME280 mätare och diagram
ESP8266 NodeMCU med BME280 mätare och diagram

Snygga mätare och diagram för din ESP8266 NodeMCU utvecklingskort med BME280 temperatur-, luftfuktighets- och trycksensor. Thingspeak kommer att lagra all din data i molnet för hämtning när som helst i många år (förhoppningsvis) framöver. Mätarna och diagrammet fylls i från data som lagras på thingspeak och uppdateras automatiskt var 5: e minut.

Objekt som behövs:

ESP8266 NodeMCU Development board ($ 3,79 från Banggood.com Hong Kong)

Bosch BME280 ($ 5,63 från Banggood.com Hong Kong)

Breadboard Jumpers ($ 3,09 från Banggood.com Hong Kong)

Breadboard ($ 2,28 från Banggood.com Hong Kong)

Strömförsörjning, gratis om du har en mikro -USB -telefonladdare

Micro USB -kabel, gratis om du redan har en

Arduino IDE, gratis nedladdning

Hämta.ino- och. HTML-kodfilerna här

Steg 1: Skapa och konfigurera dina Thingspeak -kanaler

Skapa och konfigurera dina Thingspeak -kanaler
Skapa och konfigurera dina Thingspeak -kanaler

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

2. Den nya kanalen bör ha tre fält med namnet Temperaturfuktighetstryck i den specifika ordningen (Notera första bokstaven).

3. Notera ditt nya "kanal -ID" XXXXXX under "Kanalinställningar"

4. Klicka på länken "API -nycklar" och notera din "API -skrivning" och "Läs API -nycklar" XXXXXXXXXXXXXXX. Gör också detta till en offentlig kanal under delning.

5. Skapa en andra Thingspeak -kanal som innehåller "Today" (sedan midnatt) High Low data. Kalla det "BME280 Daily High Low Data"

6. Denna nya kanal bör ha 6 fält med namnet Tmax Tmin Hmax Hmin Pmax Pmin i den specifika ordningen (Notera första bokstaven).

7. Notera "BME280 Daily High Low Data" "kanal -ID", "Read" & "Write API -nycklar" precis som i ovanstående steg.

Steg 2: Konfigurera Arduino IDE, bibliotek och konfigurera BME280

Konfigurera Arduino IDE, bibliotek och konfigurera BME280
Konfigurera Arduino IDE, bibliotek och konfigurera BME280

8. Följ instruktionerna för att installera Arduino IDE & ESP8266-kärnan på

9. Slå på Arduino IDE så att vi kan installera de fyra bibliotek vi behöver.

10. Du behöver biblioteket "Adafruit Unified Sensor Driver", installera det i "Library Manager" i Arduino IDE. Meny Skiss Inkludera bibliotek Hantera bibliotek sök efter Typ = "Rekommenderad" Ämne = "Sensorer" och lägg sedan in orden Adafruit Unified Sensor Driver i sökrutan. Den du vill ha säger "Adafruit Unified Sensor Driver by Adafruit"

11. Dessutom kommer du också att behöva "Adafruit BME280 Library" installera det i "Library Manager" i Arduino IDE. Meny Skiss Inkludera bibliotek Hantera bibliotek sök efter Typ = "Rekommenderad" Ämne = "Sensorer" och lägg sedan in orden Adafruit BME280 Library i sökrutan. Den du vill ha säger "Adafruit BME280 Library by Adafruit"

12. Ett annat bibliotek du behöver är Wire.h, installera det i "Library Manager" i Arduino IDE. Meny, skiss Inkludera bibliotek Hantera bibliotek Sök efter Typ = "Bidraget" Ämne = "Signalinmatning/utmatning" och lägg sedan in ordet tråd i sökrutan. Den du vill ha säger "Wire Built-in by Arduino" Mest troligt längst ner i urvalet.

13. Ett bibliotek till, ESP8266WiFi, installera det i "Library Manager" i Arduino IDE. Meny, Skiss Inkludera bibliotek Hantera bibliotek Sök efter Typ = "Bidraget" Ämne = "Kommunikation" och lägg sedan in ordet ESP8266wifi i sökrutan. Den du vill ha säger "ESP8266wifi Inbyggt av Ivan Grokhotkov"

14. I2C -adressen för BME280 är hårdkodad i filen Adafruit_BME280.h (leta efter raden #define BME280_ADDRESS 0x77) i mappen Adafruit_BME280_Library. Adafruits BME-sensormoduler är hårda för att använda I2C-adressen 0x77. Men BME280 kan ha en något annan I2C -adress (0x76) om dess externa SDO -pin är jordad. Om du använder sensormodulerna från en tredje part är det troligt att adressen inte matchar standardvärdet i Adafruit -biblioteket. Till exempel, för de flesta BME280 -sensormoduler som finns på eBay eller Aliexpress har deras I2C -adress 0x76. Om du inte får något svar från sensorn med standardadressen som anges i filen Adafruit_BME280.h kan du behöva ändra den till 0x76.

BME280 & ESP8266 Anslutningspunkter. ESP8266 3.3V till BME280 Vin, ESP8266 GND till BME280 GND, ESP8266 D4 till BME280 SCL, ESP8266 D3 till BME280 SDA. 15. Öppna den medföljande ESP8266-NodeMCU-12E-BME280.html-filen i en textredigerare och ange din "ESP8266-NodeMCU-12E-BME280" (den första kanalen du skapade) "Kanal-ID" och "Läs API-nyckel" för variabler key1 & chan1. Ange också "Läs API -nyckel" och "Kanal -ID" för "BME280 Daily High Low Data" (Den andra kanalen du skapade) för key2 och chan2. Dessutom anger du din tidszonförskjutning från UTC. Som i -5 för mig. Alla värden måste finnas i de angivna enkla citaten "XXXXX". Spara och avsluta textredigeraren.

Anslut din ESP8266 med USB -kabeln till din dator och välj sedan din seriella port som USB -port.

Linux -användare kan behöva ändra ägaransvaret för USB -porten för att kommunicera med /dev /ttyUSB0 som i 'sudo chown yourusername /dev /ttyUSB0' eller vad du någonsin valde som din port vid installationen.

Steg 3: Programmera ESP8266 med Arduino IDE

Programmera ESP8266 med Arduino IDE
Programmera ESP8266 med Arduino IDE

16. Därefter programmerar vi ESP8266. Anslut en USB -kabel mellan din ESP8266 och din dator.

Ladda den medföljande New_BME_Sensor.ino -filen i Arduino IDE. Din BME280 -sensor ska vara ansluten till D3 (SDA) och D4 (SCL) på ESP8266. Ange ditt "ESP8266-NodeMCU-12E-BME280" (den första kanalen du skapade) "Skriv nyckel" "Trådlöst SSID" och "Lösenord" i rätt sektion av skissen. Klicka sedan på menyalternativet "Sketch" & "Upload". När du har laddat upp skissen (framsteg når 100%) till din ESP8266 kan du öppna den seriella bildskärmen (ikonen längst upp till höger ser ut som ett förstoringsglas) och se dina data skrivas ut efter 5 minuter, var 5: e minut. Data skickas till thingspeak med 5 minuters mellanrum så det kommer att dröja innan du har meningsfulla diagramdata men du bör ha mätvärden efter 5 minuter.

Se till att du får korrekta avläsningar från BME280 i den seriella bildskärmen.

Den första mätningen kommer sannolikt att vara en ogiltig nan.

Vänta några minuter till nästa läsning och kontrollera att avläsningarna ser bra ut.

Steg 4: Gå tillbaka till Thingspeak för att göra lite data -tweaking

Gå tillbaka till Thingspeak för att göra lite data -tweaking
Gå tillbaka till Thingspeak för att göra lite data -tweaking

17. Nu, medan data långsamt laddas upp till thingspeak kan vi göra några justeringar för att få ytterligare data från det som laddas upp. Gå tillbaka till thingspeaks webbplats och på Thingspeak "BME280 Daily High Low Data" kanalsida (Den andra kanalen du skapade) klicka på den gröna "MATLAB Analysis" -knappen. Välj mall "Anpassad (ingen startkod)"

18. Namnge MATLAB -analysen "Beräkna min max sedan midnatt".

19. Kopiera MATLAB Analysis.txt -koden till det angivna utrymmet. Ange "kanal-ID" för "ESP8266-NodeMCU-12E-BME280" (Den första kanalen du skapade) i "readChannelID". Ange "BME280 Daily High Low Data" (den andra kanalen du skapade) Skriv "Channel ID" & "Write Key" i writeNewChannelID & writeAPIKey respektfullt. Jag vet att det låter förvirrande (läs det igen). Klicka på Spara och kör. Om du gjorde det korrekt och läskanalen är offentlig ser du inga fel och värdena skrivs ut. Obs! Du kan se ett fel om ingen data har laddats upp till kanalen ännu. Trots felet fortsätter. Om så önskas kan du återvända Klicka på spara och kör för att se till att det fungerar när data har laddats upp.

20. Därefter måste vi skapa en "Tidskontroll" för att avfyra denna kod var 5: e minut och våra data skrivs till kanalen "BME280 Daily High Low Data" (Den andra kanalen du skapade). Från startsidan i "BME280 Daily High Low Data" (den andra kanalen du skapade) väljer du appar överst. Under åtgärder väljer du "TimeControl" och sedan den gröna knappen "New TimeControl". Ge den namnet "Skicka höga låga temp ESP8266". Välj din tidszon om det behövs och välj "Återkommande" under Frekvens. Välj Minut under Återkommande. Inställt för att köra var 5: e minut. Åtgärd bör vara MATLAB -analys och "Code to Execute" är "Calculate Min Max since Midnight". Spara tidskontroll.

Steg 5: Redigera den tillhandahållna HTML -filen

Redigera den tillhandahållna HTML -filen
Redigera den tillhandahållna HTML -filen

Redigera HTML -filerna och leta efter kommentarer som säger "******** Ändra mig 1 av 8 *********" Ändra dessa efter dina önskemål.

Anmärkningar:

Några av textfälten och veckodiagrammet fylls inte i korrekt förrän du har en hel dag och en hel vecka med data för avsnittet och diagrammet 24 timmar och veckor. När du har en massa data kan du zooma in på diagrammen med mushjulet (högerklicka för att återställa). Du kan också ha en fjärde mätare (sett på skärmdumparna) från en annan sensor från en annan kanal men jag har tagit bort de relevanta delarna. Om du känner dig rädd, anslut det. Det finns också några tidsfrågor att vara medvetna om. Du kommer sannolikt inte att ha den absolut senaste informationen, men den bör alltid vara mindre än 5 minuter gammal. Detta kommer från när tidtagningskontrollen avfyras, när data skickades från ESP8266 och när du laddade / uppdaterade webbsidan.

Öppna den medföljande ESP8266-NodeMCU-12E-BME280.html-filen i din webbläsare och du bör se mätare och diagram fyllt.

Hämta.ino- och. HTML-kodfilerna här

Rekommenderad: