Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Spelen met Nextion Display

Componenten en benodigdheden

Arduino Mega 2560
× 1
Arduino Mega Proto Shield
× 1
volgende HMI-scherm 2.4"
× 1
SD-kaartlezer
× 1
DHT22-temperatuursensor
× 1
SparkFun Atmosferische Sensor Breakout - BME280
× 1
DS3231 RTC-module
× 1
RXB6 superheterodyne 433MHz-ontvanger
× 1
Weerstand 10k ohm
× 1
Weerstand 475 ohm
× 1
ne555-timer
× 1
AC-DC voeding 5v
× 1

Benodigde gereedschappen en machines

Soldeerbout (algemeen)

Apps en online services

Arduino IDE
Nextion Editor

Over dit project

Kan het nextion-display programmaruimte besparen in Arduino?

Soms willen we kleurrijke afbeeldingen gebruiken om meer oogstrelende projecten te maken. Helaas vereisen de prachtige graphics een grote hoeveelheid bronnen, zoals controllergeheugen voor grafische bibliotheekroutines en externe opslag zoals een SD-kaartgeheugen om afbeeldingen op te slaan, enzovoort. De Arduino-controller daarentegen heeft een beperkte hoeveelheid middelen en is niet volledig geschikt voor de rijke grafische projecten. Om de resourcevereisten te verminderen, kunnen we de nextion-display gebruiken. In dit geval hebben we geen externe opslag nodig voor afbeeldingen en kunnen we de geheugenvereisten aanzienlijk verminderen.

Vanuit het oogpunt van de controller is het nextion-scherm slechts een serieel apparaat, niet duurder dan een gewoon zwart-wit lcd-scherm op de eerste plaats. Dus is het mogelijk om het weerstation op Arduino UNO en nextion-scherm te bouwen?

Het antwoord is niet precies. Je kunt er een bouwen, maar het zou zeer beperkte functionaliteit hebben vanwege een gebrek aan controllergeheugen. U kunt geen geschiedenisgrafiek of iets dergelijks opnemen. Om een ​​weerstation met rijke functionaliteit te bouwen, heb je een meer geavanceerde microcontroller nodig.

In dit artikel ga ik laten zien hoe je het aanbevolen weerstation kunt bouwen met aantrekkelijke graphics en datalogging dat de weergegevens ontvangt van veel draadloze weersensoren. Dit weerstation is gebaseerd op nextion display en arduino mega 2560.

Het belangrijkste idee

Laten we aannemen dat we de externe weersensoren al hebben, zoals deze of vervaardigd door de beroemde fabrikant OREGON, THGN123N. We gaan onze eigen centrale maken, die de weergegevens van deze externe sensoren ontvangt, de temperatuur, vochtigheid en de atmosfeerdruk weergeeft, periodiek de gegevens op de SD-kaart opslaat en de grafieken van de historische gegevens tekent. Ook maakt de centrale eenheid een soort weersvoorspelling op basis van drukveranderingen.

Het belangrijkste kenmerk van dit weerstation is dat het de achtergrondafbeelding gebruikt om de weersvoorspelling weer te geven, niet alleen het kleine pictogram zoals andere weerstations gewoonlijk doen.

Het display stunts

Het grote nadeel van het nextion-display is dat de transparante afbeeldingen niet worden ondersteund door de display-firmware. We kunnen dus geen ronde elementen maken. U moet een 'bijgesneden' achtergrond in uw tekstwidgets gebruiken om de tekstgegevens over een aangepaste afbeelding weer te geven. In mijn geval betekent dit dat wanneer de weergaveachtergrond veranderde, alle achtergronden van de tekstwidgets dienovereenkomstig moeten worden gewijzigd. We moeten dus verschillende volledige schermen maken voor elke weersvoorspelling.

Aan de andere kant kunnen we met behulp van drukveranderingen drie verschillende soorten weersvoorspellingen maken:helder, bewolkt of regen (sneeuw). Ook. er zijn twee belangrijke dagperiodes:dag en nacht. We hoeven dus slechts 8 verschillende schermen te maken:

  • zonnig (heldere lucht, dag)
  • maan (heldere lucht, nacht)
  • bewolkte dag
  • bewolkte nacht
  • regendag
  • regennacht
  • sneeuwdag
  • sneeuwnacht

Al deze schermen moeten in de nextion-display worden gemaakt met de nextion-editor. Al deze schermen delen dezelfde widgetnamen voor tekstvelden (temperatuur, vochtigheid, druk) voor onze sensorgegevens. Wanneer de controller het scherm bijwerkt, selecteert hij eerst het corresponderende scherm met de gewenste achtergrond en werkt vervolgens de sensorgegevens bij in de weergavewidgets.

Hoofdschermgegevens

Het hoofdscherm wordt opgesplitst in de drie hoofdgebieden. In de bovenste regel van het display vindt u interne sensorgegevens:temperatuur en vochtigheid in huis, luchtdruk, huidige tijd en datum. Het ging ervan uit dat we allemaal in huizen met gewone ramen wonen, zodat de atmosfeerdruk binnen en buiten hetzelfde huis is. De controller heeft dus slechts één druksensor in de hoofdmodule om de atmosfeerdruk nauwkeurig te meten.

Op de linkerhelft van het scherm vind je de belangrijkste sensorgegevens:temperatuur en vochtigheid. Het is handig om de belangrijkste externe sensorgegevens altijd op het scherm te zien. De ID van de hoofdsensor kan worden gedefinieerd in het instellingenscherm. U kunt de gewenste ID selecteren in de lijst met beschikbare sensor-ID's. Dus, wees geduldig en wacht tot alle externe sensoren de signalen naar de controller zouden sturen. Meestal duurt het ongeveer twee minuten.

Aan de rechterkant van het scherm vind je de gegevens van alle externe en interne sensoren:sensor-ID, temperatuur en vochtigheid. De informatie verandert periodiek, waardoor de gegevens van alle sensoren kunnen worden gecontroleerd. De controller ondersteunt maximaal 4 externe sensoren. Als u slechts één externe sensor heeft, worden de interne sensorgegevens ook aan de rechterkant van het hoofdscherm weergegeven.

De controller heeft een ingebouwde nauwkeurige real-time klokmodule, ds3231 die het mogelijk maakt om de werkelijke tijd en datum te verkrijgen. Deze klokgegevens worden gebruikt om de sensorgegevens samen met tijdstempel op de SD-kaart te loggen, de dag- en nachtvoorspelling op te bouwen en de helderheid van het display te regelen.

Andere schermen

Er zijn verschillende extra schermen in het nextion-scherm:

  • Het scherm met de tijd van zonsopgang en zonsondergang en de maanleeftijd;
  • Het scherm voor het instellen van de controller;
  • Het scherm om de realtime klok aan te passen;
  • Het scherm om geschiedenisgegevens van de sensoren weer te geven

Om naar het 'zonsopgang'-scherm te gaan, tikt u op het hoofdscherm op de huidige datum. Tik op de huidige tijd om de controller in te stellen en de klok aan te passen. Tik op temperatuur of druk om historische gegevens weer te geven.

Het geschiedenisloggegevensscherm

Er zijn twee modi voor het scherm met geschiedenisgegevens:een periode van 1 dag en een periode van 8 dagen. Tik op het grafiekgebied om de huidige modus te wijzigen.

Er zijn twee pictogram toolbox-menu's aan de linkerkant en bovenkant van het geschiedenisscherm. In het linker werkbalkmenu kunt u de gewenste sensor-ID selecteren (kies uit de beschikbare). De interne sensor heeft een ID die gelijk is aan 0. Op de bovenste werkbalk kunt u het gegevenstype wijzigen dat moet worden weergegeven:druk, temperatuur of vochtigheid.

Het instellingenscherm

Op het instellingenscherm kunt u:

  • pas de belangrijkste externe sensor-ID aan (wacht tot de controller de signalen van alle sensoren heeft ontvangen);
  • Stel de ochtend- en avondtijden in (wanneer de controller de helderheid van het scherm verandert);
  • Configureer de helderheid van het scherm.

Het vastlopen van de controller voorkomen

Om de stabiliteit van de controller te vergroten en het vastlopen van de controller te voorkomen, is in de schema's de externe watchdog-schakeling geïmplementeerd. Deze schakeling kan ook in de andere projecten worden geïmplementeerd, dus hier kun je de afzonderlijke afbeelding voor deze timer hieronder zien.

De timer zou de Arduino-controller in ongeveer 2-3 minuten resetten als hij het signaal niet via de Arduino A2-pin zou ontvangen.

Conclusie

Het weer heeft een rijke grafische weergave, zeer aantrekkelijk voor het oog, het station werkt ongeveer de helft van het jaar erg stabiel.

Code

De broncode
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino
De broncode
https://github.com/sfrwmaker/Weather_nextion/blob/master/Weather_nextion.ino

Schema's

Het volledige schema
https://github.com/sfrwmaker/Weather_nextion/blob/master/weather_mega_nextion.jpg

Productieproces

  1. Arduino Pong Game - OLED-scherm
  2. Bedien muntvangers met Arduino
  3. Arduino Temp. Monitor en realtimeklok met 3.2-weergave
  4. Arduino met Bluetooth om een ​​LED te bedienen!
  5. Hoe Arduino Mega te interfacen met NEO-6M GPS-module
  6. DIY voltmeter met Arduino en een Nokia 5110-display
  7. BME280 temperatuur, vochtigheid en druk op Nextion-display
  8. Arduino-trainingsplatform
  9. Bouw de Fridgeye-app met een Nextion-display
  10. Zonnestraling meten met Arduino
  11. GPS-locatieweergave met GPS- en TFT-schermschilden