Arduino UNO R4 WiFi Bluetooth Tabelle Beispiel - Strukturierte Datenanzeige via BLE Tutorial

Überblick

Das Bluetooth Tabelle Beispiel bietet strukturierte Datenanzeige durch die DIYables Bluetooth STEM App. Entwickelt für Arduino UNO R4 WiFi mit BLE (Bluetooth Low Energy) zur Anzeige von Sensorwerten, Systemstatus und beliebigen Daten in einem sauberen Tabellenformat auf Ihrem Smartphone. Unterstützt benannte Zeilen mit Echtzeit-Werte-Updates. Perfekt für Dashboards, Systemüberwachung und Multi-Sensor-Anzeigen.

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 Tabelle Beispiel - Strukturierte Datenanzeige via BLE Tutorial

Funktionen

  • Benannte Zeilen: Definieren Sie Zeilen mit Labels (z.B. "Temperatur", "Feuchtigkeit")
  • Echtzeit-Updates: Effiziente Übertragung einzelner Werte-Updates
  • Struktur-Synchronisation: Automatisches Senden der Tabellenstruktur bei Verbindung
  • Flexible Daten: Anzeige beliebiger String- oder numerischer Daten
  • Bis zu 20 Zeilen: Unterstützung für mehrere Datenfelder
  • Funktioniert auf Android & iOS: BLE wird auf beiden Plattformen unterstützt
  • Keine Kopplung erforderlich: BLE verbindet sich 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

Schnelle Schritte

Befolgen Sie diese Anweisungen Schritt für Schritt:

  • Wenn Sie den Arduino UNO R4 WiFi zum ersten Mal verwenden, lesen Sie den Arduino UNO R4 WiFi Erste Schritte Leitfaden.
  • Verbinden Sie das Arduino UNO R4 WiFi Board mit Ihrem Computer über ein USB-Kabel.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino UNO R4 WiFi Board und den entsprechenden COM-Port.
  • Navigieren Sie zum Libraries Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie "DIYables Bluetooth", dann finden Sie die DIYables Bluetooth Bibliothek von DIYables
  • Klicken Sie auf Install, um die Bibliothek zu installieren.
Arduino UNO R4 DIYables Bluetooth library
  • Sie werden nach der Installation einiger anderer Bibliotheksabhängigkeiten gefragt
  • Klicken Sie auf Install All, um alle Bibliotheksabhängigkeiten zu installieren.
Arduino UNO R4 DIYables Bluetooth dependency

BLE Code

  • In der Arduino IDE gehen Sie zu File Examples DIYables Bluetooth ArduinoBLE_Table Beispiel, oder kopieren Sie den obigen Code und fügen Sie ihn in den Editor der Arduino IDE ein
/* * DIYables Bluetooth Library - Bluetooth Table Example * Works with DIYables Bluetooth STEM app on Android and iOS * * This example demonstrates the Bluetooth Table feature: * - Display structured data in a two-column table * - Real-time value updates for each row * - Perfect for sensor dashboards and status displays * * 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 table * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothTable.h> #include <platforms/DIYables_ArduinoBLE.h> // BLE Configuration const char* DEVICE_NAME = "Arduino_Table"; 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 Table app instance DIYables_BluetoothTable bluetoothTable; // Variables for demo data unsigned long lastUpdate = 0; const unsigned long UPDATE_INTERVAL = 1000; // Update every second int counter = 0; void setup() { Serial.begin(9600); while (!Serial); Serial.println("DIYables Bluetooth - Table Example"); // Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin(); // Add table app to server bluetoothServer.addApp(&bluetoothTable); // Define table structure (add rows with attribute names) bluetoothTable.addRow("Temperature"); bluetoothTable.addRow("Humidity"); bluetoothTable.addRow("Pressure"); bluetoothTable.addRow("Counter"); bluetoothTable.addRow("Uptime"); bluetoothTable.addRow("Free Memory"); bluetoothTable.addRow("Status"); Serial.print("Table rows defined: "); Serial.println(bluetoothTable.getRowCount()); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); // Send table structure bluetoothTable.sendTableStructure(); // Send initial values updateTableValues(); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); // Optional: Handle requests for table data bluetoothTable.onDataRequest([]() { Serial.println("App requested table data"); bluetoothTable.sendTableStructure(); updateTableValues(); }); Serial.println("Waiting for Bluetooth connection..."); } void updateTableValues() { // TODO: Replace with actual sensor readings // Simulated temperature (20-30°C) float temperature = 20.0 + random(0, 100) / 10.0; bluetoothTable.sendValueUpdate("Temperature", String(temperature, 1) + " °C"); // Simulated humidity (40-60%) int humidity = 40 + random(0, 21); bluetoothTable.sendValueUpdate("Humidity", String(humidity) + " %"); // Simulated pressure (1000-1020 hPa) int pressure = 1000 + random(0, 21); bluetoothTable.sendValueUpdate("Pressure", String(pressure) + " hPa"); // Counter value bluetoothTable.sendValueUpdate("Counter", String(counter)); counter++; // Uptime (in seconds) unsigned long uptime = millis() / 1000; String uptimeStr = String(uptime / 3600) + "h " + String((uptime % 3600) / 60) + "m " + String(uptime % 60) + "s"; bluetoothTable.sendValueUpdate("Uptime", uptimeStr); // Free memory (simulated) int freeMemory = 2048 - random(0, 512); bluetoothTable.sendValueUpdate("Free Memory", String(freeMemory) + " bytes"); // Status bluetoothTable.sendValueUpdate("Status", counter % 2 == 0 ? "Running" : "Active"); // Alternative: Update by index instead of attribute name // bluetoothTable.sendValueUpdate(0, String(temperature, 1) + " °C"); // bluetoothTable.sendValueUpdate(1, String(humidity) + " %"); Serial.println("Table values updated"); } void loop() { // Handle Bluetooth server communications bluetoothServer.loop(); // Update table values periodically (only when connected) if (bluetooth.isConnected() && millis() - lastUpdate >= UPDATE_INTERVAL) { lastUpdate = millis(); updateTableValues(); } delay(10); }
  • Klicken Sie auf Upload in der Arduino IDE, um den Code auf den Arduino UNO R4 WiFi hochzuladen
  • Öffnen Sie den Serial Monitor
  • Überprüfen Sie das Ergebnis im Serial Monitor. Es sieht folgendermaßen aus:
COM6
Send
DIYables Bluetooth - Table 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 abgefragt. Bitte gewähren Sie folgende:
    • Nearby Devices Berechtigung (Android 12+) / Bluetooth Berechtigung (iOS) - erforderlich zum Scannen und Verbinden von 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 aktiviert ist
  • Tippen Sie auf dem Startbildschirm auf Connect. Die App scannt nach BLE-Geräten.
DIYables Bluetooth App - Home Screen with Scan Button
  • Finden und tippen Sie auf "Arduino_Table" in den Scan-Ergebnissen, um sich zu verbinden.
  • Nach der Verbindung kehrt die App automatisch zum Startbildschirm zurück. Wählen Sie die Table App aus dem App-Menü.
DIYables Bluetooth App - Home Screen with Table App

Hinweis: Sie können das Einstellungen-Symbol auf dem Startbildschirm antippen, um Apps auf dem Startbildschirm zu verstecken/anzeigen. Für weitere Details siehe das DIYables Bluetooth App Benutzerhandbuch.

  • Sie sehen eine Tabelle mit Zeilen, die Temperatur, Feuchtigkeit, Druck, Zähler, Uptime, Freier Speicher und Status anzeigen — alle aktualisieren sich in Echtzeit
DIYables Bluetooth App - Table Screen

Schauen Sie jetzt zurück zum Serial Monitor in der Arduino IDE. Sie sehen:

COM6
Send
Bluetooth connected! Sending table updates... Temperature: 25.30 °C Humidity: 55.70 %
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Kreative Anpassung - Passen Sie den Code an Ihr Projekt an

Tabellenstruktur definieren

// Zeilen während setup hinzufügen bluetoothTable.addRow("Temperature", "-- °C"); bluetoothTable.addRow("Humidity", "-- %"); bluetoothTable.addRow("Pressure", "-- hPa"); bluetoothTable.addRow("Status", "Initializing...");

Werte aktualisieren

// Update nach Zeilenname bluetoothTable.sendValueUpdate("Temperature", "25.5 °C"); bluetoothTable.sendValueUpdate("Status", "Running"); // Update nach Zeilenindex (0-basiert) bluetoothTable.sendValueUpdate(0, "25.5 °C"); bluetoothTable.sendValueUpdate(3, "Running");

Tabellenstruktur senden

// Die vollständige Tabellenstruktur an die App senden bluetoothTable.sendTableStructure(); // Datenanfrage von App bearbeiten bluetoothTable.onDataRequest([]() { bluetoothTable.sendTableStructure(); });

Programmierbeispiele

Wetterstation Dashboard

DIYables_BluetoothTable bluetoothTable(bluetoothServer); void setup() { bluetoothTable.addRow("Temperature", "-- °C"); bluetoothTable.addRow("Humidity", "-- %"); bluetoothTable.addRow("Pressure", "-- hPa"); bluetoothTable.addRow("Wind Speed", "-- m/s"); bluetoothTable.addRow("Rain", "None"); bluetoothTable.onDataRequest([]() { bluetoothTable.sendTableStructure(); }); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 2000) { lastTime = millis(); bluetoothTable.sendValueUpdate("Temperature", String(readTemp(), 1) + " °C"); bluetoothTable.sendValueUpdate("Humidity", String(readHumidity(), 1) + " %"); bluetoothTable.sendValueUpdate("Pressure", String(readPressure(), 0) + " hPa"); } }

Systemstatus-Monitor

void setup() { bluetoothTable.addRow("Uptime", "0s"); bluetoothTable.addRow("Free RAM", "-- bytes"); bluetoothTable.addRow("WiFi RSSI", "-- dBm"); bluetoothTable.addRow("IP Address", "N/A"); bluetoothTable.addRow("Status", "Starting..."); } void loop() { bluetoothServer.loop(); static unsigned long lastTime = 0; if (millis() - lastTime >= 1000) { lastTime = millis(); unsigned long uptime = millis() / 1000; String uptimeStr = String(uptime / 3600) + "h " + String((uptime % 3600) / 60) + "m " + String(uptime % 60) + "s"; bluetoothTable.sendValueUpdate("Uptime", uptimeStr); bluetoothTable.sendValueUpdate("Status", "Running"); } }

Fehlerbehebung

Häufige Probleme

1. Kann das Gerät in der App nicht finden

  • Stellen Sie sicher, dass der Arduino UNO R4 WiFi eingeschaltet ist und der Sketch hochgeladen wurde
  • Vergewissern Sie sich, dass das Bluetooth Ihres Telefons aktiviert ist
  • Bei Android 11 und darunter aktivieren Sie auch die Standortdienste

2. Tabelle ist leer oder Zeilen werden nicht angezeigt

  • Stellen Sie sicher, dass addRow() in setup() vor der Verbindung aufgerufen wird
  • Implementieren Sie den onDataRequest Callback, um die Struktur erneut zu senden
  • Überprüfen Sie, dass sendTableStructure() aufgerufen wird

3. Werte werden nicht aktualisiert

  • Überprüfen Sie, dass sendValueUpdate() in der Schleife aufgerufen wird
  • Überprüfen Sie, dass der Zeilenname exakt übereinstimmt (case-sensitiv)
  • Stellen Sie sicher, dass bluetoothServer.loop() in jeder Schleifenwiederholung aufgerufen wird

4. Zeilennamen stimmen nicht überein

  • Zeilennamen sind case-sensitiv — "Temperature" ≠ "temperature"
  • Verwenden Sie den Zeilenindex (0-basiert) als Alternative zu Zeilennamen

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

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

Projektideen

  • Wetterstation Dashboard
  • System-Ressourcen-Monitor
  • Multi-Sensor Datenanzeige
  • Gerätekonfigurations-Panel
  • IoT Gerätestatus-Board

Nächste Schritte

Nachdem Sie das Bluetooth Tabelle Beispiel gemeistert haben, probieren Sie:

  1. Bluetooth Plotter - Für grafische Datenvisualisierung
  2. Bluetooth Monitor - Für textbasierte Interaktion
  3. Bluetooth Temperature - Für Anzeige im Gauge-Stil
  4. Mehrere Bluetooth Apps - Kombination von Tabelle 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!