ESP32 Bluetooth Plotter Beispiel - Echtzeit-Datendiagramm Interface Tutorial
Übersicht
Das Bluetooth Plotter Beispiel bietet Echtzeit-Datenvisualisierung auf Ihrem Smartphone durch die DIYables Bluetooth STEM App. Entwickelt für ESP32 Boards mit Unterstützung für sowohl BLE (Bluetooth Low Energy) als auch Classic Bluetooth Verbindungen. Visualisieren Sie bis zu 10 Datenserien gleichzeitig mit konfigurierbaren Achsen, Auto-Skalierung, Legenden-Labels und scrollender Anzeige — perfekt für Sensorvisualisierung, Signalanalyse und Datenüberwachung.
Dieses Beispiel unterstützt zwei Bluetooth-Modi:
- ESP32 BLE (Bluetooth Low Energy): Funktioniert sowohl auf Android als auch iOS
- ESP32 Classic Bluetooth: Funktioniert nur auf Android. iOS unterstützt kein Classic Bluetooth. Verwenden Sie BLE, wenn Sie iOS-Unterstützung benötigen.

Features
- Mehrserien-Plotting: Visualisieren Sie bis zu 10 Datenserien gleichzeitig
- Echtzeit-Anzeige: Kontinuierlich scrollendes Diagramm mit Live-Updates
- Konfigurierbare Achsen: Setzen Sie benutzerdefinierten Y-Achsen-Bereich, Achsenbeschriftungen und Diagrammtitel
- Auto-Skalierung: Automatische Anpassung des Y-Achsen-Bereichs an die Daten
- Benutzerdefinierte Legenden: Beschriften Sie jede Datenserie zur einfachen Identifikation
- Einstellbare Samples: Konfigurieren Sie die Anzahl sichtbarer Datenpunkte
- BLE & Classic Bluetooth: Wählen Sie den Bluetooth-Modus, der zu Ihrem Projekt passt
- Plattformübergreifend: BLE-Modus funktioniert auf Android und iOS; Classic Bluetooth nur auf Android
Benötigte 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) |
ESP32 Code
Schnelle Schritte
Befolgen Sie diese Anweisungen Schritt für Schritt:
- Falls Sie zum ersten Mal den ESP32 verwenden, lesen Sie das Tutorial zur Einrichtung der Umgebung für ESP32 in der Arduino IDE.
- Verbinden Sie das ESP32 Board mit Ihrem Computer über ein USB-Kabel.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das entsprechende ESP32 Board und den COM-Port.
- Navigieren Sie zum Libraries Icon in der linken Leiste der Arduino IDE.
- Suchen Sie "DIYables Bluetooth", dann finden Sie die DIYables Bluetooth Bibliothek von DIYables
- Klicken Sie den Install Button, um die Bibliothek zu installieren.

- Sie werden aufgefordert, einige andere Bibliotheks-Abhängigkeiten zu installieren
- Klicken Sie Install All Button, um alle Bibliotheks-Abhängigkeiten zu installieren.

Wählen Sie einen der beiden Bluetooth-Modi unten, je nach Ihren Anforderungen:
ESP32 Classic Bluetooth Code (funktioniert mit der App nur auf Android)
Hinweis: Classic Bluetooth wird auf iOS NICHT unterstützt. Wenn Sie iOS-Unterstützung benötigen, verwenden Sie den BLE-Code unten.
- In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth Esp32Bluetooth_Plotter Beispiel, oder kopieren Sie den obigen Code und fügen ihn in den Editor der Arduino IDE ein
- Klicken Sie den Upload Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen
- Öffnen Sie den Serial Monitor
- Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
ESP32 BLE Code (funktioniert mit der App sowohl auf Android als auch iOS)
- In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth Esp32BLE_Plotter Beispiel, oder kopieren Sie den obigen Code und fügen ihn in den Editor der Arduino IDE ein
- Klicken Sie den Upload Button in der Arduino IDE, um den Code auf den ESP32 hochzuladen
- Öffnen Sie den Serial Monitor
- Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
Mobile App
- Wenn Sie den ESP32 Classic Bluetooth Code verwenden, müssen Sie den ESP32 vor dem Öffnen der App mit Ihrem Android-Telefon koppeln:
- Gehen Sie zu den Einstellungen > Bluetooth Ihres Telefons
- Stellen Sie sicher, dass Bluetooth eingeschaltet ist
- Ihr Telefon wird nach verfügbaren Geräten suchen
- Finden und tippen Sie "ESP32_Plotter" in der Liste verfügbarer Geräte
- Bestätigen Sie die Kopplungsanfrage (keine PIN erforderlich)
- Warten Sie, bis "Gekoppelt" unter dem Gerätenamen angezeigt wird
- Wenn Sie den ESP32 BLE Code verwenden, ist keine Kopplung erforderlich. Fahren Sie einfach mit dem nächsten Schritt fort.
- Öffnen Sie die DIYables Bluetooth App
- Beim ersten Öffnen der App wird nach Berechtigungen gefragt. Bitte gewähren Sie folgende:
- Nearby Devices Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
- Location Berechtigung (nur Android 11 und darunter) - erforderlich bei älteren Android-Versionen zum Scannen nach BLE-Geräten
- Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon eingeschaltet ist
- Tippen Sie auf dem Startbildschirm den Connect Button. Die App scannt nach BLE- und Classic Bluetooth-Geräten.

- Finden und tippen Sie Ihr Gerät in den Scan-Ergebnissen, um eine Verbindung herzustellen:
- Für Classic Bluetooth: tippen Sie "ESP32_Plotter"
- Für BLE: tippen Sie "ESP32BLE_Plotter"
- Nach der Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Plotter App aus dem App-Menü.

Hinweis: Sie können das Einstellungs-Icon auf dem Startbildschirm antippen, um Apps auf dem Startbildschirm ein-/auszublenden. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.
- Beobachten Sie das Echtzeit-Datendiagramm, das über den Bildschirm scrollt

Schauen Sie nun zurück zum Serial Monitor in der Arduino IDE. Sie werden sehen:
- Der Plotter zeigt Sinus-, Kosinus- und Rausch-Wellenformen in Echtzeit an
Kreative Anpassung - Passen Sie den Code an Ihr Projekt an
Diagramm-Einstellungen konfigurieren
Richten Sie das Diagramm-Erscheinungsbild vor der Verbindung ein:
Daten an Plotter senden
Mehrere Überladungen für das Senden von 1 bis 4+ Datenserien:
Datenanfrage von der App verarbeiten
Wenn die App eine Verbindung herstellt und den Plotter-Bildschirm öffnet, kann sie Daten anfordern:
Verbindungsereignisse verarbeiten
Verwendung des Plotters
App-Interface-Steuerungen
Das Plotter-Interface in der DIYables Bluetooth App bietet:
- Echtzeit-Diagramm: Scrollendes Liniendiagramm mit mehreren Serien
- Legende: Farbkodierte Labels für jede Datenserie
- Auto-Scroll: Scrollt kontinuierlich, um die neuesten Daten zu zeigen
Datenformat
Daten werden als kommagetrennte Float-Werte gesendet:
- Einzelserie: bluetoothPlotter.send(value)
- Mehrere Serien: bluetoothPlotter.send(val1, val2, val3)
- Datenrate: Empfohlenes 10-100ms Intervall für glattes Plotting
Programmierbeispiele
Einzelsensor-Diagramm
Multisensor-Beschleunigungsmesser-Diagramm
Analog Pin Plotter
Signalgenerator
Erweiterte Programmiertechniken
Moving Average Filter
Dynamische Diagramm-Konfiguration
BLE vs Classic Bluetooth - Welches wählen?
| Feature | BLE (Esp32BLE_Plotter) | Classic Bluetooth (Esp32Bluetooth_Plotter) |
|---|---|---|
| iOS-Unterstützung | ? Ja | ? Nein |
| Android-Unterstützung | ? Ja | ? Ja |
| Stromverbrauch | Niedrig | Höher |
| Reichweite | ~30-100m | ~10-100m |
| Datenrate | Niedriger | Höher |
| Kopplung erforderlich | Nein (Auto-Connect) | Ja (manuelle Kopplung) |
| Am besten für | Batteriebetrieben, plattformübergreifend | Hoher Durchsatz, nur Android |
Fehlerbehebung
Häufige Probleme
1. Gerät in der App nicht gefunden
- Stellen Sie sicher, dass der ESP32 eingeschaltet ist und der Sketch hochgeladen wurde
- Für BLE: Stellen Sie sicher, dass Bluetooth und Location Ihres Telefons aktiviert sind
- Für Classic Bluetooth: Koppeln Sie das Gerät zuerst in den Bluetooth-Einstellungen des Telefons
- Überprüfen Sie, dass das richtige Partition Scheme ausgewählt ist (Huge APP)
2. Diagramm wird nicht aktualisiert
- Überprüfen Sie den Bluetooth-Verbindungsstatus in der App
- Verifizieren Sie, dass bluetoothPlotter.send() in der Schleife aufgerufen wird
- Überprüfen Sie, dass bluetooth.isConnected() true zurückgibt
- Versuchen Sie zu trennen und wieder zu verbinden
3. Diagrammdaten sehen ruckelig aus
- Reduzieren Sie das Plot-Intervall (z.B. 50ms anstatt 500ms)
- Stellen Sie eine stabile Bluetooth-Verbindung sicher
- Reduzieren Sie die Anzahl der Datenserien, wenn die Bandbreite begrenzt ist
4. Y-Achsen-Bereich passt nicht zu den Daten
- Verwenden Sie enableAutoScale(true) für automatische Anpassung
- Oder setzen Sie einen breiteren Bereich mit setYAxisRange()
5. Legenden-Labels werden nicht angezeigt
- Rufen Sie setLegendLabels() auf, bevor die Verbindung hergestellt wird
- Passen Sie die Anzahl der Labels an die Anzahl der Datenserien an
6. Sketch zu groß / nicht genug Speicherplatz
- Gehen Sie in der Arduino IDE zu Tools > Partition Scheme und wählen Sie "Huge APP (3MB No OTA/1MB SPIFFS)" oder "No OTA (Large APP)"
- Das Standard-Partition-Scheme bietet nur ~1.2MB für App-Code, was für Bluetooth-Bibliotheken nicht ausreicht
- Diese Einstellung gibt ~3MB durch Verzicht auf die OTA (Over-the-Air Update) Partition
Debug-Tipps
Fügen Sie umfassendes Debugging hinzu:
Projektideen
Sensorüberwachung
- Temperatur- und Feuchtigkeitstrendanzeige
- Lichtpegel-Überwachung den ganzen Tag
- Beschleunigungsmesser-Bewegungsverfolgung
- Drucksensor-Datenvisualisierung
Signalanalyse
- Audio-Frequenz-Visualisierer
- Vibrationsüberwachung
- Puls-/Herzfrequenzanzeige
- Elektromagnetische Feldstärke
Bildung
- Sinus-, Kosinus- und Tangens-Wellenvergleich
- RC-Schaltkreis Lade-/Entladekurven
- PID-Controller-Antwort-Visualisierung
- Physikexperiment-Datenlogger
Industrie
- Maschinenvibrationsüberwachung
- Prozessvariablen-Trending
- Stromverbrauchsverfolgung
- Qualitätskontroll-Diagramme
Integration mit anderen Bluetooth-Apps
Kombination mit Bluetooth Slider
Verwenden Sie Slider zur Kontrolle der geploteten Signalparameter:
Kombination mit Bluetooth Table
Zeigen Sie aktuelle Werte in der Tabelle neben dem Diagramm:
Nächste Schritte
Nachdem Sie das Bluetooth Plotter Beispiel gemeistert haben, probieren Sie:
- Bluetooth Temperature - Für dedizierte Temperaturanzeige
- Bluetooth Analog Gauge - Für Messgeräte-Stil-Visualisierung
- Bluetooth Table - Für strukturierte numerische Daten
- Multiple Bluetooth Apps - Kombination des Plotters mit anderen Anzeigen
Support
Für zusätzliche Hilfe:
- Überprüfen Sie die API-Referenz-Dokumentation
- Besuchen Sie DIYables Tutorials
- Arduino Community-Foren