BME280 temperatuur, vochtigheid en druk op Nextion-display
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Apps en online services
| ||||
|
Over dit project
Er zijn veel Display opties voor het toevoegen van een grafische gebruikersinterface aan Arduino planken. De meeste vereisen echter een aanzienlijke hoeveelheid geheugen en verwerkingstijd en zijn niet geschikt voor Arduino boards met beperkt geheugen en verwerkingskracht zoals Arduino UNO of Arduino Nano . Wanneer het geheugen beperkt is en een geavanceerde gebruikersinterface nodig is, kunnen de Smart Programmable Serial Nextion Displays zijn een populaire keuze. De Itead biedt een gratis Grafische Nextion Editor voor het ontwerpen van de gebruikersinterface van het display.
BME280 is een zeer nauwkeurige gecombineerde Temperatuur , Vochtigheid , en Barometrische druk sensor. Het kan worden verbonden met I2C of SPI interface,
Visuino heeft volledige Nextion Display ondersteuning, en ik heb een tutorial gepland voor de Nextion even ondersteunen. Ik wilde ook een tutorial maken voor de BME280 sensor. Uiteindelijk besloot ik ze te combineren en een enkele tutorial te maken met Temperatuur , Vochtigheid , en Barometrische druk van de BME280 op de 3 kanalen van een Scope (Golfvorm ) component op het Nextion Display .
Stap 1:Componenten
- Eén Arduino compatibel bord (ik gebruik Arduino Nano, omdat ik er een heb, maar elke andere is prima)
- Eén BME280-sensormodule
- Eén Nextion smartdisplay met seriële interface (Ik gebruikte NX4024K032_11 maar elke andere zou ook moeten werken)
- 4 vrouw-vrouw jumperdraden
- Om het display te programmeren heb je ook een 5V . nodig USB naar TTL seriële convertermodule
Stap 2:Sluit het Nextion Display aan op de USB seriële communicatiemodule
De Nextion Display programmeren met de Nextion Editor je moet het aansluiten met een USB naar TTL seriële converter naar uw computer:
- Verbind de Nextion Wires Connector naar het Display (Afbeelding 1 )
- Als uw USB naar seriële module is configureerbaar, zorg ervoor dat het is ingesteld om 5V stroom te leveren (Afbeelding 2 ) (In mijn geval moest ik het configureren met een vermogensselectiejumper)
- Verbind de aardingsdraad (Zwarte draad ) van het Nextion-scherm naar de Grondpen van de USB naar TTL seriële convertermodule (Afbeelding 2 )
- Sluit de Voedingsdraad (+5V) aan (Rode draad ) van het Nextion-scherm naar de Power(VCC/+5V) pin van de USB naar TTL seriële convertermodule (Afbeelding 2 )
- Sluit de RX-draad aan (Gele draad ) van het Nextion-scherm naar de TX-pin van de USB naar TTL seriële convertermodule (Afbeelding 2 )
- Sluit de TX-draad aan (Blauwe draad ) van het Nextion-scherm naar de RX-pin van de USB naar TTL seriële convertermodule (Afbeelding 2 )
- Sluit de USB naar TTL seriële convertermodule naar de computer met een USB-kabel (Afbeelding 3 )
Stap 3:Start de Nextion Editor en selecteer het weergavetype en de oriëntatie
De Nextion Display programmeren , moet u De Nextion Editor downloaden en installeren .
- Start de Nextion Editor (Afbeelding 1 )
- Van het Menu selecteer |BestandNieuw | (Afbeelding 1 )
- In de "Opslaan als ", typ de projectbestandsnaam en selecteer een locatie om het project op te slaan (Afbeelding 2 )
- Klik op de "Opslaan " knop (Afbeelding 2 )
- In de "Instellingen " dialoogvenster, selecteer het Weergavetype (In mijn geval NX4024K032_11 ) (Afbeelding 3 )
- Klik op de "DISPLAY " tabblad aan de linkerkant om de Weergave-instellingen . weer te geven (Afbeelding 4 )
- Selecteer Horizontaal oriëntatie voor het display (Afbeelding 4 )
- Klik op de "OK " om het dialoogvenster te sluiten (Afbeelding 4 )
Stap 4:In de Nextion Editor:Waveform(Scope) component toevoegen en configureren
We moeten een Scope-component toevoegen en deze configureren om 3 kanalen te hebben voor de Temperatuur , Druk , en Vochtigheid :
- In de "Toolbox " aan de linkerkant klik op de "Golfvorm " component (Afbeelding 1 ) om het toe te voegen aan het ontwerpgebied (Afbeelding 2 )
- Formaat van het onderdeel wijzigen om het scherm te vullen (Afbeelding 3 )
- In het "Kenmerk " toolbox, stel de waarde in van de "ch " attribuut aan "3 " (Afbeelding 3 )
- In het "Kenmerk " toolbox, stel de waarde in van de "dir " attribuut aan "van rechts naar links " (Afbeelding 4 )
Stap 5:In de Nextion Editor:upload het project naar de Nextion Display
- Klik op de "Uploaden " knop (Afbeelding 1 )
- In de "Uploaden naar Nextion-apparaat " dialoogvenster, klik op de "Ga " knop (Afbeelding 2 ) om de upload te starten (Afbeelding 3 )
- Als de upload is voltooid (Afbeelding 4 ), klik op de "Afsluiten " om het dialoogvenster te sluiten.
Stap 6:Start Visuino en selecteer het Arduino-bordtype
Sinds de Arduino Nano heeft slechts één seriële poort , en het is nodig om de Arduino . te programmeren , moet u de Arduino Nano . programmeren voor de Nextion-weergave is verbonden.
Om te beginnen met het programmeren van de Arduino, heb je de Arduino IDE . nodig geïnstalleerd vanaf hier:http://www.arduino.cc/ .
Houd er rekening mee dat er enkele kritieke bugs zijn in Arduino IDE 1.6.6.
Zorg ervoor dat je 1.6.7 of hoger installeert, anders werkt deze tutorial niet!
De Visuino :https://www.visuino.com moet ook worden geïnstalleerd.
- Start Visuino zoals op de eerste foto
- Klik op de "Extra " knop op de Arduino component (Afbeelding 1 ) in Visuino
- Als het dialoogvenster verschijnt, selecteert u Arduino Nano zoals getoond in Afbeelding 2
Stap 7:In Visuino:voeg Nextion Display-component en Scope-element toe
Om de Nextion Display te bedienen, moeten we de Nextion Display-component in Visuino toevoegen en er vervolgens een element aan toevoegen om de Scope te regelen:
- Typ "volgende " in het filtervak van de Component Toolbox en selecteer vervolgens de "Nextion Display " component (Afbeelding 1 ), en zet het in het ontwerpgebied
- Klik op de "Extra " knop van de DisplayNextion1 component (Afbeelding 2 )
- In de "Elementen " editor selecteer de “Scope(Wave) ”-element en klik vervolgens op de knop "" aan de linkerkant (Afbeelding 2 ) om Bereik toe te voegen element (Afbeelding 3 )
Stap 8:In Visuino:voeg 3 kanalen toe aan het Scope-element en sluit het Nextion-display aan
Vervolgens moeten we kanalen aan de Scope toevoegen.
- Klik in de Object Inspector op de "... " knop naast de waarde van de "Kanalen " subeigenschap van de Scope1 element (Afbeelding 1 )
- Selecteer in de Kanaleneditor "Kanaal ”-element aan de rechterkant en klik vervolgens 3 keer op de "" knop aan de linkerkant (Afbeelding 2 ) om 3 kanalen toe te voegen (Afbeelding 3 )
- Sluit de "Kanalen " en de weergave "Elementen " dialogen
- Sluit de "Out . aan " uitvoerpin van de DisplayNextion1 component naar de naar de "In " invoerpin van de "Serial[ 0 ] " kanaal van de Arduino component (Afbeelding 4 )
Stap 9:In Visuino:3 componenten van het kaartbereik toevoegen en configureren
De Nextion Display Scope-kanalen zijn ontworpen om waarden weer te geven tussen 0.0 en 1.0 . Om de temperatuur, vochtigheid en druk weer te geven, moeten we de waarden converteren naar de 0.0 tot 1.0 bereik. We kunnen hiervoor Map Range-componenten gebruiken:
- Typ "kaart " in het filtervak van de Component Toolbox en selecteer vervolgens de "Kaartbereik " component (Afbeelding 1 ), en laat 3 van hen vallen in het ontwerpgebied
- Selecteer de MapRange1 component (Afbeelding 2 )
- Breid in de Object Inspector het "Invoerbereik . uit " eigendom (Afbeelding 2 )
- Stel in de Object Inspector de waarde van de "Max . in " subeigenschap van de "Invoerbereik " eigendom naar "101000 " (Afbeelding 2 ) (Mogelijk moet u een andere waarde instellen als de luchtdruk op uw locatie veel anders is)
- Stel in de Object Inspector de waarde van de "Min . in " subeigenschap van de "Invoerbereik " eigendom naar "99000 " (Afbeelding 2 ) (Mogelijk moet u een andere waarde instellen als de luchtdruk op uw locatie veel anders is)
- Selecteer de MapRange2 component (Afbeelding 3 )
- Breid in de Object Inspector het "Invoerbereik . uit " eigendom (Afbeelding 3 )
- Stel in de Object Inspector de waarde van de "Max . in " subeigenschap van de "Invoerbereik " eigendom naar "100 " (Afbeelding 3 )
- Stel in de Object Inspector de waarde van de "Min . in " subeigenschap van de "Invoerbereik " eigendom naar "-20 " (Afbeelding 3 )
- Selecteer de MapRange3 component (Afbeelding 4 )
- Breid in de Object Inspector het "Invoerbereik . uit " eigendom (Afbeelding 4 )
- Stel in de Object Inspector de waarde van de "Max . in " subeigenschap van de "Invoerbereik " eigendom naar "100 " (Afbeelding 4 )
Stap 10:In Visuino:sluit de componenten van het kaartbereik aan op de Nextion-weergavekanalen
- Sluit de "Out . aan " uitvoerpin van de MapRange1 component naar de "In " invoerpin van de "Elements.Scope1.Channels.Channel1 " element van de DisplayNextion1 component (Afbeelding 1 )
- Sluit de "Out . aan " uitvoerpin van de MapRange2 component naar de "In " invoerpin van de "Elements.Scope1.Channels.Channel2 " element van de DisplayNextion1 component (Afbeelding 2 )
- Sluit de "Out . aan " uitvoerpin van de MapRange3 component naar de "In " invoerpin van de "Elements.Scope1.Channels.Channel3 " element van de DisplayNextion1 component (Afbeelding 3 )
Stap 11:In Visuino:BME280-component toevoegen en aansluiten
We moeten een component toevoegen om de gegevens van de BME280-module te lezen:
- Typ "280 " in het vak Filter van de Component Toolbox selecteer vervolgens de "Druk Temperatuur Vochtigheid BME280 I2C " component (Afbeelding 1 ), en zet het in het ontwerpgebied
- Mijn BME280-module heeft I2C-adres van 118 (0x76 ). Als uw modules een ander adres hebben, moet u de waarde van het "Adres . instellen " eigendom (Afbeelding 2 )
- Verbind de "Druk(Pa) " output pin van de PressureTemperatureHumidity1 component naar de naar de "In " pin van de MapRange1 component (Afbeelding 2 )
- Verbind de "Temperatuur " output pin van de PressureTemperatureHumidity1 component naar de naar de "In " pin van de MapRange2 component (Afbeelding 3 )
- Verbind de "Vochtigheid(%) " output pin van de PressureTemperatureHumidity1 component naar de naar de "In " pin van de MapRange3 component (Afbeelding 4 )
- Sluit de "Out . aan " output pin van de PressureTemperatureHumidity1 component naar de naar de "In " pin van de I2C kanaal van de Arduino component (Afbeelding 5 )
Stap 12:In Visuino:component Klokgenerator toevoegen, configureren en aansluiten
We kunnen het project gebruiken zoals het is, maar het zal de Scope de hele tijd zeer snel verversen. Het is beter als de Scope 10 keer per seconde als voorbeeld wordt geüpdatet. Hiervoor zullen we een klokcomponent toevoegen om de uitlezing van de sensor en het updaten van de Scope te klokken.
- Typ "klok " in het vak Filter van de Component Toolbox en selecteer vervolgens de "Klokgenerator " component (Afbeelding 1 ), en zet het in het ontwerpgebied
- Stel in de Object Inspector de waarde van de "Frequentie . in " eigendom van de ClockGenerator1 naar "10 " (Afbeelding 2 )
- Sluit de "Out . aan " output pin van de ClockGenerator1 component naar de "Klok " invoerpin van de PressureTemperatureHumidity1 component (Afbeelding 3 )
Stap 13:Genereer, compileer en upload de Arduino-code
- In Visuino , Druk op F9 of klik op de knop die wordt weergegeven op Afbeelding 1 om de Arduino-code te genereren en de Arduino IDE te openen
- In de Arduino IDE , klik op de Uploaden knop, om de code te compileren en te uploaden (Afbeelding 2 )
Stap 14:Sluit de BME280 temperatuur-, vochtigheids- en druksensor aan op Arduino
- Sluit 3V3 VCC-voeding aan (Rode draad ), Grond (Zwarte draad ),SDA (Groene draad ), en SCL (Gele draad ), naar de BME280-module (Afbeelding 1 )
- Verbind het andere uiteinde van de aardingsdraad (Zwarte draad ) naar Aarde speld van de Arduino Nano bord (Afbeelding 2 )
- Sluit het andere uiteinde van de 3V3 VCC-voedingsdraad aan (Rode draad ) naar de 3V3 powerpin van de Arduino Nano bord (Afbeelding 2 )
- Sluit het andere uiteinde van de SDA-draad aan (Groene draad ) naar SDA/analoge pin 4 van de Arduino Nano bord (Afbeelding 2 )
- Verbind het andere uiteinde van de SCL-draad (Gele draad ) naar SCL/analoge pin 5 van de Arduino Nano bord (Afbeelding 2 )
- Afbeelding 3 laat zien waar de Grond . is , 3V3 Voeding, SDA/analoge pin 4 , en SCL/analoge pin 5 , pinnen van de Arduino Nano
Stap 15:Verbind het Nextion-display met de Arduino
- Ontkoppel de Nextion Display draden van de USB naar TTL Seriële Converter Module
- Verbind de aarde
- Ontkoppel de Nextion Display draden van de USB naar TTL Seriële Converter Module
- Verbind de aardingsdraad (Zwarte draad ) van het Nextion-scherm naar de Grondpen van de Arduino Nano (Afbeelding 2 )
- Sluit de TX-draad aan (Blauwe draad ) van het Nextion-scherm naar de RX(D0)-pin van de Arduino Nano (Afbeelding 2 )
- Sluit de RX-draad aan (Gele draad ) van het Nextion-scherm naar de TX(D1)-pin van de Arduino Nano (Afbeelding 2 )
- Afbeelding 4 laat zien waar de Grond . is , 5V Voeding, RX/digitale pin 0 , en TX/digitale pin 1 , pinnen van de Arduino Nano
- Sluit de +5V voedingsdraad aan (Rode draad ) van het Nextion-scherm naar de 5V Power-pin van de Arduino Nano (Afbeelding 3 )
- Afbeelding 4 wordt weergegeven in Rood waar zijn de Grond , 5V Voeding, RX/digitale pin 0 , en TX/digitale pin 1 , pinnen van de Arduino Nano (in blauw worden de pinnen weergegeven die in de vorige stap zijn aangesloten)
Stap 16:En speel...
Gefeliciteerd! Je hebt het project voltooid.
Afbeelding 1 toont het aangesloten en ingeschakelde project. Zoals je kunt zien op de foto, en in de Video de Reikwijdte op het Nextion-scherm zal de Druk . plotten , de Temperatuur , en de Vochtigheid van de BME280-module .
Op Afbeelding 2 je kunt de volledige Visuino . zien diagram.
Bijgevoegd is de Visuino project, dat ik voor deze zelfstudie heb gemaakt. Je kunt het downloaden en openen in Visuino :https://www.visuino.com
In dezelfde zip zit ook de Nextion Editor project voor de Nextion Display .
FJE6Y04IWE4O3H6.zip
Productieproces
- Eenvoudige temperatuur en vochtigheid op Raspberry Pi
- Laboratorium 'Weerstation'
- Temperatuur- en vochtigheidsdatalogger
- Arduino Temp. Monitor en realtimeklok met 3.2-weergave
- Spelen met Nextion Display
- DIY voltmeter met Arduino en een Nokia 5110-display
- Sonar met arduino en weergave op verwerkings-IDE
- De temperatuur en vochtigheid op Blynk aflezen met DHT11
- Bouw de Fridgeye-app met een Nextion-display
- GPS-locatieweergave met GPS- en TFT-schermschilden
- Arduino OLED-temperatuurweergave met realtime klok