Inhoudsopgave:
- Stap 1: Creëer en stel uw Thingspeak-kanalen in
- Stap 2: Stel de Arduino IDE, bibliotheken in en configureer de BME280
- Stap 3: Programmeer de ESP8266 met de Arduino IDE
- Stap 4: Ga terug naar de Thingspeak om wat gegevens te tweaken
- Stap 5: Bewerk het verstrekte HTML-bestand
Video: ESP8266 NodeMCU Met BME280 Meters & Grafiek - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Mooie meters en grafiek voor uw ESP8266 NodeMCU-ontwikkelbord met BME280 temperatuur-, vochtigheids- en druksensor. Thingspeak slaat al uw gegevens op in de cloud om ze op elk moment voor de komende jaren (hopelijk) te kunnen ophalen. De meters en grafiek worden ingevuld op basis van de gegevens die zijn opgeslagen in thingspeak en worden automatisch elke 5 minuten bijgewerkt.
Benodigde artikelen:
ESP8266 NodeMCU-ontwikkelbord ($ 3,79 van Banggood.com Hong Kong)
Bosch BME280 ($ 5,63 van Banggood.com Hong Kong)
Breadboard Jumpers ($ 3,09 van Banggood.com Hong Kong)
Breadboard ($ 2,28 van Banggood.com Hong Kong)
Voeding, gratis als je een micro-USB-telefoonoplader hebt
Micro-USB-kabel, gratis als je er al een hebt
Arduino IDE, gratis download
Download hier de.ino- en. HTML-codebestanden
Stap 1: Creëer en stel uw Thingspeak-kanalen in
1. Maak een gratis Thingspeak-account en een nieuw kanaal aan op https://thingspeak.com, bel het kanaal "ESP8266-NodeMCU-12E-BME280"
2. Het nieuwe kanaal moet 3 velden hebben met de naam Temperatuur Vochtigheid Druk in die specifieke volgorde (let op hoofdletters in de eerste letter).
3. Noteer je nieuwe "kanaal-ID" XXXXXX onder "Kanaalinstellingen"
4. Klik op de link "API Keys" en noteer uw "API Write" en "Read API Keys" XXXXXXXXXXXXXXX. Maak dit ook een openbaar kanaal onder delen.
5. Maak een tweede Thingspeak-kanaal dat de "Vandaag" (sinds middernacht) Hoog Laag-gegevens zal bevatten. Noem het "BME280 Daily High Low Data"
6. Dit nieuwe kanaal moet 6 velden hebben met de naam Tmax Tmin Hmax Hmin Pmax Pmin in die specifieke volgorde (let op hoofdletters in de eerste letter).
7. Noteer de "BME280 Daily High Low Data", "channel ID", "Read" & "Write API keys", net zoals in de bovenstaande stappen.
Stap 2: Stel de Arduino IDE, bibliotheken in en configureer de BME280
8. Volg de instructies voor het installeren van de Arduino IDE & ESP8266 core op
9. Start de Arduino IDE zodat we de vier benodigde bibliotheken kunnen installeren.
10. U hebt de "Adafruit Unified Sensor Driver"-bibliotheek nodig, installeer deze in de "Library Manager" in Arduino IDE. Menuschets Bibliotheek opnemen Beheer Bibliotheken zoek op Type = "Aanbevolen" Topic = "Sensors" en plaats de woorden Adafruit Unified Sensor Driver in het zoekvak. Degene die je wilt zegt "Adafruit Unified Sensor Driver by Adafruit"
11. Daarnaast moet u ook de "Adafruit BME280 Library" installeren in de "Library Manager" in Arduino IDE. Menuschets Bibliotheek opnemen Beheer Bibliotheken zoek op Type = "Aanbevolen" Topic = "Sensoren" en plaats de woorden Adafruit BME280 Bibliotheek in het zoekvak. Degene die je wilt zegt "Adafruit BME280 Library by Adafruit"
12. Een andere bibliotheek die je nodig hebt is Wire.h, installeer deze in de "Library Manager" in Arduino IDE. Menu, Schets Inclusief Bibliotheek Bibliotheken beheren Zoek op Type = "Bijgedragen" Topic = "Signaalinvoer/uitvoer" en plaats het woord Draad in het zoekvak. Degene die je wilt, zegt "Wire Built-in by Arduino" Waarschijnlijk onderaan de selectie.
13. Nog een bibliotheek, ESP8266WiFi, installeer deze in de "Bibliotheekmanager" in Arduino IDE. Menu, Schets Inclusief Bibliotheek Beheer Bibliotheken Zoek op Type = "Bijgedragen" Topic = "Communicatie" en plaats het woord ESP8266wifi in het zoekvak. Degene die je wilt zegt "ESP8266wifi ingebouwd door Ivan Grokhotkov"
14. Het I2C-adres voor BME280 is hardcoded in het Adafruit_BME280.h-bestand (zoek naar de regel #define BME280_ADDRESS 0x77) in de map Adafruit_BME280_Library. De BME-sensormodules van Adafruit zijn bedraad om het I2C-adres van 0x77 te gebruiken. Maar de BME280 kan een iets ander I2C-adres (0x76) hebben als de externe SDO-pin geaard is. Als u de sensormodules van een derde partij gebruikt, komt het adres waarschijnlijk niet overeen met de standaardwaarde in de Adafruit-bibliotheek. Voor de meeste BME280-sensormodules die beschikbaar zijn op eBay of AliExpress, is hun I2C-adres bijvoorbeeld 0x76. Als u geen reactie krijgt van de sensor met het standaardadres dat is ingesteld in het Adafruit_BME280.h-bestand, moet u dit mogelijk wijzigen in 0x76.
BME280 & ESP8266 Aansluitpunten. ESP8266 3.3V naar BME280 Vin, ESP8266 GND naar BME280 GND, ESP8266 D4 naar BME280 SCL, ESP8266 D3 naar BME280 SDA. 15. Open het meegeleverde ESP8266-NodeMCU-12E-BME280.html-bestand in een teksteditor en voer uw "ESP8266-NodeMCU-12E-BME280" (het eerste kanaal dat u hebt gemaakt) "Channel ID" & "Read API Key" in voor de variabelen key1 & chan1. Voer ook de "Read API Key" en "Channel ID" in voor "BME280 Daily High Low Data" (het tweede kanaal dat u hebt gemaakt) voor key2 en chan2. Voer daarnaast uw tijdzone-offset van UTC in. Zoals in -5 voor mij. Alle waarden moeten tussen de opgegeven enkele aanhalingstekens 'XXXXX' staan. Sla op en verlaat de teksteditor.
Sluit uw ESP8266 met de USB-kabel aan op uw computer en selecteer vervolgens uw seriële poort als USB-poort.
Linux-gebruikers moeten mogelijk het eigendom van de USB-poort wijzigen om te communiceren met de /dev/ttyUSB0 zoals in 'sudo chown yourusername /dev/ttyUSB0' of wat je ook hebt geselecteerd als je poort in de setup.
Stap 3: Programmeer de ESP8266 met de Arduino IDE
16. Vervolgens gaan we de ESP8266 programmeren. Sluit een USB-kabel aan tussen uw ESP8266 en uw computer.
Laad het meegeleverde New_BME_Sensor.ino-bestand in de Arduino IDE. Uw BME280-sensor moet worden aangesloten op D3 (SDA) & D4 (SCL) op de ESP8266. Voer uw "ESP8266-NodeMCU-12E-BME280" (het eerste kanaal dat u hebt gemaakt) "Write Key" "Wireless SSID" & "Password" in het juiste gedeelte van de schets in. Klik vervolgens op menu-item "Sketch" & "Upload". Nadat je de schets hebt geüpload (voortgang bereikt 100%) naar je ESP8266, kun je de seriële monitor openen (het pictogram rechtsboven ziet eruit als een vergrootglas) en je gegevens worden na 5 minuten, elke 5 minuten afgedrukt. De gegevens worden met tussenpozen van 5 minuten naar Thingspeak gestuurd, dus het zal enige tijd duren voordat u zinvolle kaartgegevens hebt, maar u zou na 5 minuten meetwaarden moeten hebben.
Zorg ervoor dat u de juiste aflezingen krijgt van de BME280 in de seriële monitor.
De eerste meting zal waarschijnlijk een ongeldige nan zijn.
Wacht een paar minuten tot de volgende meting en controleer of de meetwaarden er goed uitzien.
Stap 4: Ga terug naar de Thingspeak om wat gegevens te tweaken
17. Nu, terwijl de gegevens langzaam worden geüpload naar Thingspeak, laten we wat tweaken om wat extra gegevens te krijgen van wat wordt geüpload. Ga terug naar de thingspeak-website en klik in de Thingspeak "BME280 Daily High Low Data"-kanaalpagina (het tweede kanaal dat u hebt gemaakt) op de groene "MATLAB-analyse"-knop. Selecteer sjabloon "Aangepast (geen startcode)"
18. Noem de MATLAB-analyse "Bereken Min Max sinds middernacht".
19. Kopieer de MATLAB Analysis.txt-code naar de daarvoor bestemde ruimte. Voer de "kanaal-ID" in voor "ESP8266-NodeMCU-12E-BME280" (het eerste kanaal dat u hebt gemaakt) in "readChannelID". Voer de "BME280 Daily High Low Data" in (het tweede kanaal dat u hebt gemaakt) Schrijf respectievelijk "Channel ID" & "Write Key" in writeNewChannelID & writeAPIKey. Ik weet dat het verwarrend klinkt (lees het nog eens). Klik op opslaan en uitvoeren. Als je het correct hebt gedaan en het leeskanaal is openbaar, zie je geen fouten en worden de waarden met succes afgedrukt. Let op: je ziet mogelijk een foutmelding als er nog geen gegevens naar dat kanaal zijn geüpload. Ondanks de fout doorgaan. Indien gewenst kunt u opnieuw klikken op Opslaan en uitvoeren om te controleren of het werkt zodra de gegevens zijn geüpload.
20. Vervolgens moeten we een "Time Control" maken om deze code elke 5 minuten af te vuren en onze gegevens worden geschreven naar het kanaal "BME280 Daily High Low Data" (het tweede kanaal dat u hebt gemaakt). Op de hoofdpagina van "BME280 Daily High Low Data" (het tweede kanaal dat u hebt gemaakt) selecteert u bovenaan Apps. Selecteer onder acties "TimeControl" en vervolgens de groene knop "Nieuwe TimeControl". Noem het "Send High Low Temps ESP8266". Selecteer indien nodig uw tijdzone en selecteer "Terugkerend" onder Frequentie. Selecteer Minuut onder Herhaling. Stel in om elke 5 minuten te lopen. De actie moet MATLAB-analyse zijn en "Uit te voeren code" is "Bereken Min Max sinds middernacht". Bespaar TimeControl.
Stap 5: Bewerk het verstrekte HTML-bestand
Bewerk de HTML-bestanden en zoek naar opmerkingen met de tekst "******* Change Me 1 of 8 *********" Wijzig deze naar uw voorkeur.
Opmerkingen:
Sommige tekstvelden en de weekgrafiek worden pas correct ingevuld als u een volledige dag en een volledige week aan gegevens hebt voor de sectie 24 uur en week en de grafiek. Als je eenmaal een heleboel gegevens hebt, kun je met het muiswiel inzoomen op de grafieken (rechts klikken om te resetten). Je kunt ook een vierde meter hebben (zoals te zien in de schermafbeeldingen) van een andere sensor van een ander kanaal, maar ik heb de relevante delen eruit gehaald. Als je je veilig voelt, sluit het dan aan. Er zijn ook enkele timingproblemen om rekening mee te houden. U beschikt waarschijnlijk niet over de absoluut meest actuele gegevens, maar deze moeten altijd minder dan 5 minuten oud zijn. Dit komt van wanneer de timingcontrole wordt geactiveerd, wanneer de gegevens zijn verzonden vanaf de ESP8266 en wanneer u de webpagina hebt geladen / vernieuwd.
Open het meegeleverde ESP8266-NodeMCU-12E-BME280.html-bestand in uw webbrowser en u zou de meters en de grafiek moeten zien ingevuld.
Download hier de.ino- en. HTML-codebestanden
Aanbevolen:
Realtime grafiek plotten op Android vanaf Arduino via HC-05: 3 stappen
Realtime grafiek plotten op Android van Arduino via HC-05: Hallo, hier is een tutorial over hoe je een realtime grafiek met waarden van een microcontroller zoals een Arduino naar de app kunt plotten. Het gebruikt een Bluetooth-module zoals de HC-05 om te fungeren als een berichtenapparaat om de gegevens tussen de Ar
Bitcoin-ticker met grafiek: 8 stappen
Bitcoin Ticker With Graph: ik heb dit gemaakt op basis van een project voor een BTC-prijsticker, die prijsinformatie verkrijgt van coinmarketcap.com, oorspronkelijk geschreven door Brian Lough. Hij gebruikte de ESP8266, een Arduino-compatibel bord met ingebouwde WiFi. Zoals hij beschrijft
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: 3 stappen (met afbeeldingen)
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: Hallo! Hier op instructables zijn al weerstations geïntroduceerd. Ze tonen de huidige luchtdruk, temperatuur en vochtigheid. Wat ze tot nu toe misten, was een presentatie van de cursus in de afgelopen 1-2 dagen. Dit proces zou de a
Gegevens loggen en online een grafiek plotten met NodeMCU, MySQL, PHP en Chartjs.org: 4 stappen
Log gegevens en plot een grafiek online met NodeMCU, MySQL, PHP en Chartjs.org: deze Instructable beschrijft hoe we het Node MCU-bord kunnen gebruiken om gegevens van meerdere sensoren te verzamelen, deze gegevens naar een gehost PHP-bestand te sturen dat de gegevens vervolgens toevoegt aan een MySQL-database. De gegevens kunnen vervolgens online als een grafiek worden bekeken, met behulp van chart.js.A ba
Een grafiek maken in MS Excel 2016: 6 stappen
Een grafiek maken in MS Excel 2016: deze stapsgewijze instructies leggen uit hoe u een grafiek maakt met Microsoft Excel. Elke gebruiker met een set gegevens en toegang tot het Excel-programma kan een grafiek maken door deze instructies nauwkeurig te volgen. Elke schriftelijke instructie is acc