ESP32 WebPlotter-Beispiel – Tutorial zur Visualisierung von Echtzeitdaten
Überblick
Das WebPlotter-Beispiel erstellt eine Echtzeit-Datenvisualisierungsoberfläche, die über jeden Webbrowser zugänglich ist. Es ist für die ESP32-Bildungsplattform konzipiert und bietet erweiterte Datenverarbeitungsfähigkeiten, Echtzeit-Plot-Funktionen und eine nahtlose Integration in Sensorüberwachungssysteme. Ideal zur Visualisierung von Sensordaten, zum Debuggen von Algorithmen oder zur Überwachung der Systemleistung in Echtzeit.

Funktionen
- Echtzeit-Datenvisualisierung: Sensorendaten in Echtzeit visualisieren, die direkt vom Arduino gestreamt werden
- Mehrere Datenreihen: Bis zu 8 verschiedene Datenströme gleichzeitig darstellen
- Auto-Skalierung: Automatische Skalierung der Y-Achse basierend auf dem Wertebereich der Daten
- Interaktive Oberfläche: Zoomen, Verschieben und Analysieren von Daten-Trends
- WebSocket-Kommunikation: Sofortige Updates mit minimaler Latenz
- Responsives Design: Funktioniert auf Desktop-, Tablet- und Mobilgeräten
- Anpassbare Konfiguration: Plot-Titel, Achsenbeschriftungen und Bereiche
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
| 1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Installationsanweisungen
Schnelle Schritte
Folgen Sie diesen Anweisungen Schritt für Schritt:
- Wenn Sie das ESP32 zum ersten Mal verwenden, lesen Sie das Tutorial zur Einrichtung der ESP32-Umgebung in der Arduino IDE.
- Schließen Sie das ESP32-Board über ein USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das passende ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
- Navigieren Sie zum Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
- Suchen Sie "DIYables ESP32 WebApps", und finden Sie dann die DIYables ESP32 WebApps-Bibliothek von DIYables.
- Klicken Sie auf die Schaltfläche Installieren, um die Bibliothek zu installieren.

- Sie werden aufgefordert, weitere Bibliotheksabhängigkeiten zu installieren.
- Klicken Sie auf die Schaltfläche Alle installieren, um alle Bibliotheksabhängigkeiten zu installieren.

- In der Arduino IDE, gehen Sie zu Datei Beispiele DIYables ESP32 WebApps WebPlotter Beispeil, oder kopieren Sie den obigen Code und fügen ihn in den Editor der Arduino IDE ein
- Konfigurieren Sie die WiFi-Zugangsdaten im Code, indem Sie diese Zeilen aktualisieren:
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP32 hochzuladen
- Öffnen Sie den seriellen Monitor
- Überprüfen Sie das Ergebnis im seriellen Monitor. Es sieht wie folgt aus:
- Wenn Sie nichts sehen, starten Sie das ESP32-Board neu.
- Notieren Sie sich die angezeigte IP-Adresse und geben Sie diese Adresse in die Adresszeile eines Webbrowsers auf Ihrem Smartphone oder PC ein.
- Beispiel: http://192.168.0.2
- Sie sehen die Startseite wie im unten gezeigten Bild:

- Klicken Sie auf den Link zum Web Plotter, dann sehen Sie die Benutzeroberfläche der Web Plotter-App wie unten:

- Oder Sie können die Seite auch direkt über die IP-Adresse aufrufen, gefolgt von /web-plotter. Zum Beispiel: http://192.168.0.2/web-plotter
- Beobachten Sie, wie der ESP32 simulierte Sensordaten erzeugt und sie in Echtzeit grafisch darstellt. Sie werden mehrere farbige Linien sehen, die verschiedene Datenströme repräsentieren.
Kreative Anpassung – Visualisieren Sie Ihre Daten kreativ
Passe die Plot-Schnittstelle an deine einzigartigen Projektanforderungen an und erstelle beeindruckende Datenvisualisierungen:
Konfiguration der Datenquelle
Ersetzen Sie simulierte Daten durch echte Sensordaten:
Methode 1: Sensorwert eines einzelnen Sensors
Methode 2: Mehrere Sensoren
Methode 3: Array von Werten
Diagrammanpassung
Benutzerdefiniertes Diagramm-Aussehen
Dynamische Konfiguration
Fortgeschrittene Datenverarbeitung
Gleitender Durchschnittsfilter
Datenprotokollierung mit Zeitstempeln
Integrationsbeispiele
Umweltmonitoring
Rückmeldung zur Motorsteuerung
PID-Regler-Visualisierung
Leistungsoptimierung
Effiziente Datenübertragung
Bedingte Datenübermittlung
Projektideen
Wissenschaftliche Anwendungen
- Datenlogger: Temperatur, Luftfeuchtigkeit und Druck im Zeitverlauf aufzeichnen
- Schwingungsanalyse: Beschleunigungsdaten für mechanische Systeme überwachen
- pH-Überwachung: Wasserqualität in Aquaponik-Systemen überwachen
- Solarmodul-Effizienz: Spannungsausgang und Stromausgang im Verhältnis zur Sonneneinstrahlung überwachen
Bildungsprojekte
- Physikexperimente: Pendelbewegung visualisieren, Federschwingungen visualisieren
- Chemielabor: Reaktionsgeschwindigkeiten und Temperaturänderungen überwachen
- Biologiestudien: Pflanzenwachstumssensoren und Umweltfaktoren überwachen
- Mathematik: Mathematische Funktionen und algorithmische Ergebnisse darstellen
Heimautomatisierung
- Energieüberwachung: Stromverbrauchsmuster verfolgen
- Gartenautomatisierung: Bodenfeuchtigkeit und Lichtverhältnisse überwachen
- HLK-Steuerung: Temperatur- und Feuchtigkeitsverläufe visualisieren
- Sicherheitssystem: Bewegungsmelderaktivitäten darstellen
Robotik und Regelung
- Roboternavigation: Positionen und Orientierungsdaten visualisieren
- Motorsteuerung: Geschwindigkeit, Drehmoment und Effizienz überwachen
- Sensorfusion: Mehrere Sensorwerte kombinieren
- Pfadplanung: Bewegungsalgorithmen des Roboters visualisieren
Fehlerbehebung
Häufige Probleme
- Auf dem Diagramm werden keine Daten angezeigt.
- WLAN-Verbindungsstatus überprüfen
- WebSocket-Verbindung in der Browser-Konsole überprüfen
- Stellen Sie sicher, dass sendPlotData() regelmäßig aufgerufen wird
- Seriellen Monitor nach Fehlermeldungen prüfen
- Der Plot wirkt sprunghaft oder unberechenbar.
- Datenfilterung implementieren (gleitender Durchschnitt)
- Sendehäufigkeit der Daten reduzieren
- Auf Sensorrauschen oder Verbindungsprobleme prüfen
- Stabilität der Stromversorgung überprüfen
3. Leistungsprobleme im Browser
- Reduziere die maximale Anzahl der Samples (setMaxSamples())
- Reduziere die Datenübertragungsrate
- Schließe andere Browser-Tabs
- Verwende die Hardwarebeschleunigung im Browser
4. WebSocket-Verbindungsabbrüche
- WLAN-Signalstärke überprüfen
- Router-Einstellungen verifizieren (Firewall, Port-Blockierung)
- Wiederverbindungslogik im eigenen Code implementieren
- Speicherverbrauch des ESP32 überwachen
Debug-Tipps
Detaillierte Protokollierung aktivieren
Testdaten-Generierung
Erweiterte Funktionen
Benutzerdefinierte Datenformatierung
Integration mit anderen Web-Apps
Echtzeitsteuerung mit Plotten
Nächste Schritte
Nachdem Sie das WebPlotter-Beispiel gemeistert haben, erkunden Sie:
- MultipleWebApps - Plotten mit Bedienoberflächen kombinieren
- WebMonitor - Debugging-Funktionen neben dem Plotten hinzufügen
- Custom Applications - Eigene spezialisierte Plotting-Werkzeuge erstellen
- Data Analysis - Statistische Analyse der geplotteten Daten implementieren
Unterstützung
Für weitere Hilfe:
- Überprüfen Sie die API-Referenzdokumentation
- Besuchen Sie DIYables Tutorials: https://esp32io.com/tutorials/diyables-esp32-webapps
- ESP32-Community-Foren
- WebSocket-Debugging-Tools in der Browser-Entwicklerkonsole