Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren

Komponenten und Materialien

Arduino Mega 2560 1
Arduino Mega Proto Shield 1
Nextion HMI Display 2,4" 1
SD-Kartenleser 1
DHT22 Temperatursensor 1
SparkFun Atmosphärischer Sensor BME280 1
DS3231 RTC Modul 1
RXB6 Superheterodyn 433MHz Empfänger 1
Widerstand 10k Ohm 1
Widerstand 475 Ohm 1
NE555 Timer 1
AC-DC Netzteil 5V 1

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Über dieses Projekt

Kann das Nextion Display Programmspeicher im Arduino sparen?

Manchmal möchte man farbenfrohe Grafiken für attraktivere Projekte nutzen. Leider benötigen schöne Grafiken viele Ressourcen: Controllerspeicher für Grafikbibliotheken und externen Speicher wie SD-Karten für Bilder. Der Arduino-Controller hat begrenzte Ressourcen und eignet sich nicht vollständig für grafikintensive Projekte. Um den Ressourcenbedarf zu reduzieren, kann man das Nextion Display verwenden. Hier benötigt man keinen externen Speicher für Bilder und kann die Speicheranforderungen erheblich senken.

Aus Sicht des Controllers ist das Nextion Display lediglich ein serielles Gerät, nicht ressourcenintensiver als ein gewöhnliches schwarz-weißes LCD. Ist es also möglich, eine Wetterstation mit Arduino UNO und Nextion Screen zu bauen?

Die Antwort: Nicht ganz. Man kann eine bauen, aber sie hätte wegen Controllerspeichermangel sehr begrenzte Funktionalität. Historiengrafiken oder ähnliche Features lassen sich nicht einbinden. Für eine funktionsreiche Wetterstation braucht man einen leistungsfähigeren Mikrocontroller.

In diesem Artikel zeige ich, wie man eine voll ausgestattete Wetterstation mit attraktiver Grafik und Datenlogging baut, die Wetterdaten von vielen drahtlosen Sensoren empfängt. Basis: Nextion Display und Arduino Mega 2560.

Die Hauptidee

Angenommen, wir haben bereits externe Wettersensoren (z. B. Oregon THGN123N). Wir bauen eine eigene Zentraleinheit, die Daten von diesen Sensoren empfängt, Temperatur, Luftfeuchtigkeit und Luftdruck anzeigt, Daten regelmäßig auf der SD-Karte speichert und historische Graphen zeichnet. Zudem erstellt die Zentrale eine Wettervorhersage basierend auf Druckänderungen.

Das Hauptmerkmal: Die Wettervorhersage wird als Hintergrundbild angezeigt, nicht nur als kleines Icon wie bei anderen Stationen.

Die Display-Tricks

Der große Nachteil des Nextion Displays: Transparente Bilder werden von der Firmware nicht unterstützt. Runde Elemente lassen sich nicht erstellen. Man muss „zugeschnittene“ Hintergründe in Text-Widgets nutzen, um Textdaten über benutzerdefinierten Bildern anzuzeigen. Wenn sich der Display-Hintergrund ändert, müssen alle Text-Widget-Hintergründe entsprechend angepasst werden. Deshalb müssen wir für jede Wettervorhersage komplette Screens erstellen.

Basierend auf Druckänderungen können wir drei Vorhersagetypen treffen: klar, bewölkt, Regen (Schnee). Dazu zwei Tageszeiten: Tag und Nacht. Das ergibt 8 verschiedene Screens:

Alle Screens werden im Nextion Editor erstellt. Alle teilen sich dieselben Widget-Namen für Textfelder (Temperatur, Luftfeuchtigkeit, Druck). Beim Aktualisieren wählt der Controller erst den passenden Screen mit dem gewünschten Hintergrund, dann aktualisiert er die Sensordaten in den Display-Widgets.

Hauptbildschirm-Daten

Der Hauptbildschirm teilt sich in drei Bereiche. In der oberen Zeile: Interne Sensordaten (Raumtemperatur, -feuchte, Luftdruck, aktuelle Zeit und Datum). Da wir in Häusern mit normalen Fenstern leben, ist der Luftdruck drinnen und draußen identisch. Ein Drucksensor im Hauptmodul misst den Atmosphärendruck präzise.

Auf der linken Bildschirmhälfte: Hauptsensordaten (Temperatur, Luftfeuchtigkeit). Praktisch, um die wichtigsten externen Sensordaten immer im Blick zu haben. Die ID des Hauptsensors lässt sich im Setup-Bildschirm definieren – man wählt die gewünschte ID aus der Liste verfügbarer Sensor-IDs. Geduld: Es dauert ca. 2 Minuten, bis alle externen Sensoren Signale senden.

Auf der rechten Seite: Daten aller externen und internen Sensoren (Sensor-ID, Temperatur, Luftfeuchtigkeit). Die Info wechselt periodisch, um alle Sensoren zu überwachen. Der Controller unterstützt bis zu 4 externe Sensoren. Bei nur einem externen Sensor werden auch die internen Sensordaten rechts angezeigt.

Ein eingebautes präzises Echtzeit-Uhr-Modul (DS3231) liefert aktuelle Zeit und Datum – genutzt für Logging mit Zeitstempel, Tag/Nacht-Vorhersage und Display-Helligkeitssteuerung.

Weitere Bildschirme

Navigation: Auf das aktuelle Datum tippen → Sonnenaufgangsbildschirm. Auf die aktuelle Zeit tippen → Setup und Uhr einstellen. Auf Temperatur oder Druck tippen → Historiendaten.

Der Historie-Log-Datenbildschirm

Zwei Modi: 1-Tage-Periode und 8-Tage-Periode. Zum Wechsel auf Graphenbereich tippen.

Zwei Icon-Toolbars links und oben: Links Sensor-ID wählen (interner Sensor = ID 0). Oben Datentyp wechseln: Druck, Temperatur, Luftfeuchtigkeit.

Der Setup-Bildschirm

Controller-Absturz verhindern

Zur Erhöhung der Stabilität und Vermeidung von Hängern wurde ein externer Watchdog-Schaltkreis im Schaltplan implementiert. Dieser setzt den Arduino in ca. 2–3 Minuten zurück, wenn kein Signal am Arduino Pin A2 eingeht. Dieser Schaltkreis lässt sich auch in anderen Projekten nutzen.

Fazit

Die Wetterstation mit reichhaltiger Grafik, sehr augenfreundlich, läuft seit etwa einem halben Jahr sehr stabil.

Code

Quellcode: GitHub Repository

Schaltplan

Kompletter Schaltplan: GitHub Repository

Herstellungsprozess

  1. Klassisches Pong-Spiel auf Arduino UNO mit OLED-Display bauen – Schritt-für-Schritt-Tutorial
  2. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  3. Arduino Temperaturoverwachung & Echtzeituhr mit 3,2″ TFT-Display
  4. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  5. Arduino Mega mit NEO‑6M GPS-Modul verbinden: Schritt-für-Schritt-Anleitung
  6. DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
  7. BME280 Temperatur, Luftfeuchte & Druck auf Nextion Touchscreen anzeigen
  8. Umfassendes Arduino-Trainingskit mit Mega 2560, Sensoren, Motoren & Custom PCB
  9. Fridgeye-App mit Nextion-Display bauen: Schritt-für-Schritt-Anleitung
  10. Präzise Solareinstrahlungsmessung mit Arduino UNO & Ethernet Shield