Arduino UNO R4 WiFi Bluetooth Plotter Beispiel - Echtzeit-Datenvisualisierung über BLE Tutorial

Überblick

Das Bluetooth Plotter Beispiel streamt Echtzeit-Daten an die DIYables Bluetooth STEM App für Live-Visualisierung. Entwickelt für Arduino UNO R4 WiFi mit BLE (Bluetooth Low Energy) zum Darstellen von Sensorwerten, Wellenformen und Mehrkanaldiagrammen als Echtzeit-Graphen auf Ihrem Smartphone. Ideal für Datenprotokollierung, Signalanalyse, Sensorkalibrierung und wissenschaftliche Experimente.

Hinweis: Der Arduino UNO R4 WiFi unterstützt nur BLE (Bluetooth Low Energy). Er unterstützt kein Classic Bluetooth. Die DIYables Bluetooth App unterstützt sowohl BLE als auch Classic Bluetooth auf Android und BLE auf iOS. Da dieses Board BLE verwendet, funktioniert die App auf sowohl Android als auch iOS.

Arduino UNO R4 WiFi Bluetooth Plotter Beispiel - Echtzeit-Datenvisualisierung über BLE Tutorial

Funktionen

  • Mehrkanaldiagramme: Bis zu 6 Datenkanäle gleichzeitig
  • Konfigurierbare Achsen: Benutzerdefinierte Titel, Beschriftungen und Y-Achsenbereich
  • Legendenbeschriftungen: Benennen Sie jeden Datenkanal für mehr Klarheit
  • Stichprobenlimit: Legen Sie die maximale Anzahl angezeigter Stichproben fest
  • Schnelles Streaming: Bis zu 10 Updates pro Sekunde (100ms Intervall)
  • Funktioniert auf Android & iOS: BLE wird auf beiden Plattformen unterstützt
  • Kein Pairing erforderlich: BLE verbindet automatisch ohne manuelle Kopplung

Benötigte Hardware

1×Arduino UNO R4 WiFi
1×Alternativ: DIYables STEM V4 IoT
1×USB Kabel Type-C
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno R4
1×(Empfohlen) Breadboard-Shield für Arduino Uno R4
1×(Empfohlen) Gehäuse für Arduino Uno R4
1×(Empfohlen) Stromverteiler für Arduino Uno R4
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V4 IoT Starter-Kit (Arduino enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
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 UNO R4 WiFi Code

Schnellanleitung

Befolgen Sie diese Anweisungen Schritt für Schritt:

  • Falls Sie den Arduino UNO R4 WiFi zum ersten Mal verwenden, lesen Sie den Arduino UNO R4 WiFi Einstiegsleitfaden.
  • Verbinden Sie das Arduino UNO R4 WiFi Board über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino UNO R4 WiFi Board und den entsprechenden COM-Port aus.
  • Navigieren Sie zum Bibliotheken Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie nach "DIYables Bluetooth" und finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie auf Installieren um die Bibliothek zu installieren.
Arduino UNO R4 DIYables Bluetooth Bibliothek
  • Sie werden gefragt, ob Sie weitere Bibliotheksabhängigkeiten installieren möchten
  • Klicken Sie auf Alle installieren um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 DIYables Bluetooth Abhängigkeit

BLE Code

  • In der Arduino IDE gehen Sie zu Datei Beispiele DIYables Bluetooth ArduinoBLE_Plotter Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - Bluetooth 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 * * Compatible Boards: * - Arduino UNO R4 WiFi * - Arduino Nano 33 BLE / BLE Sense * - Arduino Nano 33 IoT * - Arduino MKR WiFi 1010 * - Arduino Nano RP2040 Connect * - Any board supporting the ArduinoBLE library * * Setup: * 1. Upload the sketch to your Arduino * 2. Open Serial Monitor to see connection status * 3. Use DIYables Bluetooth App to connect and view the plot * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothPlotter.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_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_ArduinoBLE 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; // Plot every 100ms float phase = 0; void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - 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); // Fixed range bluetoothPlotter.setMaxSamples(100); // Show last 100 samples bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Custom legend labels // Uncomment to enable auto-scaling instead of fixed range: // bluetoothPlotter.enableAutoScale(true); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for current plot data (when app loads) bluetoothPlotter.onDataRequest([]() { // Send initial data when app requests it Serial.println("App requested plot data"); // Could send recent historical data here if needed }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Send plot data at regular intervals if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); // Generate sample data (sine and cosine waves) float sine = sin(phase); float cosine = cos(phase); float tangent = tan(phase) * 0.3; // Scaled down // Send data to Bluetooth plotter (multiple series) // You can send 1 to 4 values, or use array for more bluetoothPlotter.send(sine, cosine, tangent); // Also print to Serial for Arduino IDE Serial Plotter comparison // Format: value1 value2 value3 (space-separated for Serial Plotter) Serial.print(sine, 2); Serial.print(" "); Serial.print(cosine, 2); Serial.print(" "); Serial.println(tangent, 2); // Alternative methods: // bluetoothPlotter.send(sine); // Single value // bluetoothPlotter.send(sine, cosine); // Two values // float values[] = {sine, cosine, tangent}; // bluetoothPlotter.send(values, 3); // Array of values phase += 0.1; if (phase > 2 * PI) { phase = 0; } // TODO: Replace sample data with your actual sensor readings // Examples: // - Temperature sensor: bluetoothPlotter.send(temperature); // - Accelerometer: bluetoothPlotter.send(accelX, accelY, accelZ); // - Multiple sensors: bluetoothPlotter.send(sensor1, sensor2, sensor3); } delay(10); }
  • Klicken Sie auf die Hochladen Taste in der Arduino IDE, um den Code auf den Arduino UNO R4 WiFi hochzuladen
  • Öffnen Sie den Seriellen Monitor
  • Überprüfen Sie das Ergebnis im Seriellen Monitor. Es sieht so aus:
COM6
Send
DIYables Bluetooth - Plotter Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobile App

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

Hinweis: Die DIYables Bluetooth App unterstützt sowohl BLE als auch Classic Bluetooth auf Android und BLE auf iOS. Da der Arduino UNO R4 WiFi BLE verwendet, funktioniert die App auf sowohl Android als auch iOS. Für BLE ist keine manuelle Kopplung erforderlich — einfach scannen und verbinden.

  • Öffnen Sie die DIYables Bluetooth App
  • Beim ersten Öffnen der App werden Berechtigungen angefordert. Gewähren Sie bitte folgende:
    • Bluetooth-Geräte in der Nähe Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden mit Bluetooth-Geräten
    • Standort Berechtigung (nur Android 11 und älter) - von älteren Android-Versionen zum Scannen nach BLE-Geräten benötigt
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon aktiviert ist
  • Tippen Sie auf dem Startbildschirm auf die Verbinden Taste. Die App scannt nach BLE-Geräten.
DIYables Bluetooth App - Startbildschirm mit Scan Button
  • Finden Sie "Arduino_Plotter" in den Scan-Ergebnissen und tippen Sie darauf, um sich zu verbinden.
  • Nach der Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Plotter App aus dem App-Menü.
DIYables Bluetooth App - Startbildschirm mit Plotter App

Hinweis: Sie können das Einstellungssymbol auf dem Startbildschirm antippen, um Apps ein-/auszublenden. Weitere Details finden Sie im DIYables Bluetooth App Benutzerhandbuch.

  • Sie sehen ein Echtzeit-Diagramm von Sinus-, Kosinus- und Tangens-Wellenformen
DIYables Bluetooth App - Plotter Bildschirm

Schauen Sie nun zurück zum Seriellen Monitor in der Arduino IDE. Sie werden sehen:

COM6
Send
Bluetooth connected! Sending plot data... Sine: 0.00, Cosine: 10.00, Tangent: 0.00
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Kreative Anpassung - Code an Ihr Projekt anpassen

Diagramm-Erscheinungsbild konfigurieren

// Diagrammtitel setzen bluetoothPlotter.setPlotTitle("Meine Sensordaten"); // Achsenbeschriftungen setzen bluetoothPlotter.setAxisLabels("Zeit", "Wert"); // Y-Achsen-Bereich setzen bluetoothPlotter.setYAxisRange(-100, 100); // Maximale anzuzeigende Stichproben setzen bluetoothPlotter.setMaxSamples(200); // Legendenbeschriftungen für jeden Kanal setzen bluetoothPlotter.setLegendLabels("Temperatur", "Luftfeuchtigkeit", "Druck");

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);

Datenanfrage behandeln

bluetoothPlotter.onDataRequest([]() { Serial.println("App requested data"); // App gerade verbunden oder benötigt Anfangskonfiguration });

Programmierbeispiele

Temperatur- und Luftfeuchtigkeitslogger

DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer); void setup() { bluetoothPlotter.setPlotTitle("Umgebungsmonitor"); bluetoothPlotter.setAxisLabels("Zeit", "Wert"); bluetoothPlotter.setYAxisRange(0, 100); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Temp (°C)", "Luftfeuchtigkeit (%)"); } 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); } }

Analog Input Plotter

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äufige Probleme

1. Das Gerät kann in der App nicht gefunden werden

  • Stellen Sie sicher, dass der Arduino UNO R4 WiFi eingeschaltet ist und der Sketch hochgeladen wurde
  • Stellen Sie sicher, dass Bluetooth auf Ihrem Telefon aktiviert ist
  • Aktivieren Sie auf Android 11 und älter auch die Standortdienste

2. Diagramm wird nicht aktualisiert

  • Überprüfen Sie, dass Daten in der loop() Funktion gesendet werden
  • Überprüfen 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 Sensorverkabelung und -werte
  • Überprüfen Sie, dass der Y-Achsenbereich zu Ihrem Datenbereich passt
  • Erwägen Sie Datenglättung/Filterung

4. Diagrammtitel oder -beschriftungen erscheinen nicht

  • Setzen Sie die Diagrammkonfiguration in setup() vor der Verbindung
  • Stellen Sie sicher, dass der onDataRequest Callback die Konfiguration bei Bedarf erneut sendet

5. Upload schlägt fehl oder Board wird nicht erkannt

  • Installieren Sie das neueste Arduino UNO R4 Board-Paket über den Board Manager
  • Versuchen Sie ein anderes USB-Kabel oder einen anderen Port

Projektideen

  • Umgebungsüberwachung (Temperatur, Luftfeuchtigkeit, Druck)
  • Beschleunigungsmesser/Gyroskop-Datenvisualisierung
  • Analogsensor-Kalibrierungstool
  • Signalanalyse und -vergleich
  • Datenlogger für wissenschaftliche Experimente

Nächste Schritte

Nach dem Beherrschen des Bluetooth Plotter Beispiels versuchen Sie:

  1. Bluetooth Table - Für strukturierte Datenanzeige
  2. Bluetooth Monitor - Für textbasierte Datenanzeige
  3. Bluetooth Temperature - Für Temperaturanzeige im Messgeräte-Stil
  4. Mehrere Bluetooth Apps - Kombination von Plotter mit anderen Apps

Support

Für zusätzliche Hilfe:

  • Überprüfen Sie die API-Referenz Dokumentation
  • 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!