Arduino Nano ESP32 Bluetooth Plotter Beispiel - Echtzeitdatenvisualisierung über BLE Tutorial

Übersicht

Dieses Beispiel streamt Echtzeitdaten an die DIYables Bluetooth STEM App zur Live-Visualisierung auf dem Arduino Nano ESP32 mit BLE (Bluetooth Low Energy). Zeichnen Sie Sensorwerte, Wellenformen und Multi-Channel-Daten als Live-Grafiken auf einem Smartphone auf. Geeignet für Datenprotokollierung, Signalanalyse, Sensorkalibrierung und wissenschaftliche Experimente.

Hinweis: Der Arduino Nano ESP32 unterstützt nur BLE — Klassisches Bluetooth wird nicht unterstützt. Die DIYables Bluetooth App funktioniert mit Android und iOS mit BLE.

Arduino Nano ESP32 Bluetooth Plotter Beispiel - Echtzeitdatenvisualisierung über BLE Tutorial

Funktionen

  • Multi-Channel-Diagramme: Bis zu 6 Datenkanäle gleichzeitig
  • Konfigurierbare Achsen: Benutzerdefinierte Titel, Beschriftungen und Y-Achsen-Bereich
  • Legende Beschriftungen: Benennen Sie jeden Datenkanal für Klarheit
  • Stichprobenlimit: Legen Sie die maximale Anzahl der angezeigten Stichproben fest
  • Schnelles Streaming: Bis zu 10 Updates pro Sekunde (100 ms Intervall)
  • Android & iOS Support: BLE ist mit beiden Plattformen kompatibel
  • Keine Kopplung erforderlich: BLE verbindet sich ohne manuelle Kopplung

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB Kabel Typ-C
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Arduino Nano ESP32 Code

Schnelle Schritte

  • Neu beim Arduino Nano ESP32? Beginnen Sie mit dem Arduino Nano ESP32 Einsteigerhandbuch.
  • Verbinden Sie den Arduino Nano ESP32 mit Ihrem Computer über USB.
  • Öffnen Sie Arduino IDE.
  • Wählen Sie das Board Arduino Nano ESP32 und den richtigen COM-Port.
  • Klicken Sie auf das Symbol Bibliotheken in der linken Seitenleiste.
  • Suchen Sie nach "DIYables Bluetooth" und wählen Sie die DIYables Bluetooth-Bibliothek von DIYables.
  • Klicken Sie auf Installieren.
Arduino Nano ESP32 DIYables Bluetooth-Bibliothek
  • Wenn Sie aufgefordert werden, Abhängigkeiten zu installieren, klicken Sie auf Alle installieren.
Arduino Nano ESP32 DIYables Bluetooth Abhängigkeit

BLE Code

  • Öffnen Sie in Arduino IDE Datei Beispiele DIYables Bluetooth ArduinoBLE_Plotter, oder fügen Sie den Code in den Editor ein.
/* * DIYables Bluetooth Library - ESP32 BLE Plotter Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Plotter feature: * - Real-time data plotting via Bluetooth * - Plot multiple data series simultaneously * - Configurable plot settings * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothPlotter.h> #include <platforms/DIYables_Esp32BLE.h> // BLE Configuration const char* DEVICE_NAME = "ESP32BLE_Plotter"; const char* SERVICE_UUID = "19B10000-E8F2-537E-4F6C-D104768A1214"; const char* TX_UUID = "19B10001-E8F2-537E-4F6C-D104768A1214"; const char* RX_UUID = "19B10002-E8F2-537E-4F6C-D104768A1214"; // Create Bluetooth instances DIYables_Esp32BLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID); DIYables_BluetoothServer bluetoothServer(bluetooth); // Create Plotter app instance DIYables_BluetoothPlotter bluetoothPlotter; // Variables for generating sample data unsigned long lastPlotTime = 0; const unsigned long PLOT_INTERVAL = 100; float phase = 0; void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 BLE Plotter Example"); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add plotter app to server bluetoothServer.addApp(&bluetoothPlotter); // Configure plotter settings bluetoothPlotter.setPlotTitle("Sensor Data"); bluetoothPlotter.setAxisLabels("Time", "Value"); bluetoothPlotter.setYAxisRange(-15, 30); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothPlotter.onDataRequest([]() { Serial.println("App requested plot data"); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); float sine = sin(phase); float cosine = cos(phase); float tangent = tan(phase) * 0.3; bluetoothPlotter.send(sine, cosine, tangent); Serial.print(sine, 2); Serial.print(" "); Serial.print(cosine, 2); Serial.print(" "); Serial.println(tangent, 2); phase += 0.1; if (phase > 2 * PI) { phase = 0; } } delay(10); }
  • Klicken Sie auf Hochladen, um die Skizze auf das Board zu flashen.
  • Öffnen Sie den seriellen Monitor.
  • Die Ausgabe des seriellen Monitors sollte wie folgt aussehen:
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Plotter Example Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Mobile App

  • Installieren Sie die DIYables Bluetooth App auf Ihrem Smartphone: Android | iOS

Hinweis: Die DIYables Bluetooth App funktioniert mit Android und iOS über BLE. Keine manuelle Kopplung erforderlich.

  • Starten Sie die DIYables Bluetooth App.
  • Gewähren Sie beim ersten Start die folgenden Berechtigungen:
    • Nahegelegene Geräte (Android 12+) / Bluetooth (iOS) — erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
    • Standort (nur Android 11 und älter) — erforderlich von älteren Android-Versionen zum Scannen nach BLE
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Gerät aktiviert ist.
  • Tippen Sie auf Verbinden auf dem Startbildschirm. Die App scannt nach BLE-Geräten.
DIYables Bluetooth App - Startbildschirm mit Scan-Schaltfläche
  • Tippen Sie auf "Arduino_Plotter" in den Scanergebnissen.
  • Nach dem Verbinden kehren Sie zum Startbildschirm zurück und öffnen Sie die App Plotter.
DIYables Bluetooth App - Startbildschirm mit Plotter App

Tippen Sie auf das Einstellungssymbol auf dem Startbildschirm, um Apps anzuzeigen oder auszublenden. Weitere Informationen finden Sie im DIYables Bluetooth App Benutzerhandbuch.

  • Ein Echtzeit-Diagramm von Sinus-, Kosinus- und Tangenswellenformen wird angezeigt.
DIYables Bluetooth App - Plotter-Bildschirm

Schauen Sie jetzt auf den seriellen Monitor in Arduino IDE zurück. Sie werden sehen:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected! Sending plot data... Sine: 0.00, Cosine: 10.00, Tangent: 0.00
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Kreative Anpassung - Passen Sie den Code an Ihr Projekt an

Passen Sie das Diagrammaussehen an

// Diagrammtitel festlegen bluetoothPlotter.setPlotTitle("My Sensor Data"); // Achsenbeschriftungen festlegen bluetoothPlotter.setAxisLabels("Time", "Value"); // Y-Achsen-Bereich festlegen bluetoothPlotter.setYAxisRange(-100, 100); // Maximale anzuzeigende Stichproben festlegen bluetoothPlotter.setMaxSamples(200); // Legendenbeschriftungen für jeden Kanal festlegen bluetoothPlotter.setLegendLabels("Temperature", "Humidity", "Pressure");

Datenpunkte senden

// Einen einzelnen Wert senden bluetoothPlotter.send(sensorValue); // Zwei Werte senden bluetoothPlotter.send(temperature, humidity); // Drei Werte senden bluetoothPlotter.send(value1, value2, value3); // Bis zu sechs Werte senden bluetoothPlotter.send(ch1, ch2, ch3, ch4, ch5, ch6);

Behandeln Sie eine Datenanforderung

bluetoothPlotter.onDataRequest([]() { Serial.println("App requested data"); // App just connected or needs initial config });

Programmierbeispiele

Temperatur- und Feuchtemessungsprotokoll

DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer); void setup() { bluetoothPlotter.setPlotTitle("Environment Monitor"); bluetoothPlotter.setAxisLabels("Time", "Value"); bluetoothPlotter.setYAxisRange(0, 100); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Temp (°C)", "Humidity (%)"); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 1000) { lastTime = millis(); float temp = readTemperature(); float humidity = readHumidity(); bluetoothPlotter.send(temp, humidity); } }

Analoger Eingangsplotter

void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 100) { lastTime = millis(); int a0 = analogRead(A0); int a1 = analogRead(A1); int a2 = analogRead(A2); bluetoothPlotter.send(a0, a1, a2); } }

Fehlerbehebung

Häufig auftretende Probleme

1. Gerät ist in der App nicht sichtbar

  • Bestätigen Sie, dass das Board eingeschaltet und die Skizze hochgeladen ist
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon aktiviert ist
  • Aktivieren Sie bei Android 11 und älter auch Standortdienste

2. Diagramm wird nicht aktualisiert

  • Überprüfen Sie, ob Daten innerhalb von loop() gesendet werden
  • Bestätigen Sie, dass bluetoothServer.loop() aufgerufen wird
  • Stellen Sie sicher, dass die App auf dem Plotter-Bildschirm ist

3. Daten sehen falsch oder verrauscht aus

  • Überprüfen Sie die Sensorverdrahtung und Messwerte
  • Bestätigen Sie, dass der Y-Achsen-Bereich mit Ihrem Datenbereich übereinstimmt
  • Erwägen Sie, Glättung oder Filterung auf die Daten anzuwenden

4. Diagrammtitel oder Beschriftungen werden nicht angezeigt

  • Legen Sie die Diagrammkonfiguration in setup() vor einer Verbindung fest
  • Verwenden Sie den onDataRequest Callback, um die Konfiguration bei Bedarf erneut zu senden

5. Upload fehlgeschlagen oder Board wird nicht erkannt

  • Installieren Sie das neueste Arduino Nano ESP32 Board-Paket über Board Manager
  • Versuchen Sie es mit einem anderen USB-Kabel oder Port

Projektideen

  • Umweltüberwachung (Temperatur, Luftfeuchtigkeit, Druck)
  • Beschleunigungsmesser-/Gyroskop-Datenvisualisierung
  • Sensorkalibrierungs-Tool
  • Signalanalyse und Vergleich
  • Wissenschaftliches Datenprotokoll-Tool

Nächste Schritte

Erkunden Sie nach Abschluss des Bluetooth Plotter-Beispiels:

  1. Bluetooth Tabelle — Strukturierte Datenanzeige
  2. Bluetooth Monitor — Textbasierte Datenausgabe
  3. Bluetooth Temperatur — Gaußstil-Temperaturanzeige
  4. Mehrere Bluetooth Apps — Kombinieren Sie Plotter mit anderen App-Widgets

Unterstützung

Weitere Hilfe:

  • Überprüfen Sie die API-Referenzdokumentation
  • Besuchen Sie DIYables Tutorials
  • Arduino Community Foren

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!