Arduino UNO R4 WiFi Bluetooth Tabel Voorbeeld - Gestructureerde Gegevensweergave via BLE Tutorial

Overzicht

Het Bluetooth Tabel voorbeeld biedt gestructureerde gegevensweergave via de DIYables Bluetooth STEM app. Ontworpen voor Arduino UNO R4 WiFi met BLE (Bluetooth Low Energy) om sensorwaarden, systeemstatus en alle gegevens in een overzichtelijk tabelformaat op uw smartphone weer te geven. Ondersteunt benoemde rijen met real-time waarde-updates. Perfect voor dashboards, systeembewaking en multi-sensor displays.

Opmerking: De Arduino UNO R4 WiFi ondersteunt alleen BLE (Bluetooth Low Energy). Het ondersteunt geen Classic Bluetooth. De DIYables Bluetooth App ondersteunt zowel BLE als Classic Bluetooth op Android, en BLE op iOS. Omdat dit board BLE gebruikt, werkt de app op zowel Android als iOS.

Arduino UNO R4 WiFi Bluetooth Tabel Voorbeeld - Gestructureerde Gegevensweergave via BLE Tutorial

Functies

  • Benoemde Rijen: Definieer rijen met labels (bijv. "Temperatuur", "Luchtvochtigheid")
  • Real-Time Updates: Efficiënte individuele waarde-updates verzenden
  • Structuur Synchronisatie: Auto-verzend tabelstructuur bij verbinding
  • Flexibele Gegevens: Toon tekst- of numerieke gegevens
  • Tot 20 Rijen: Ondersteuning voor meerdere gegevensvelden
  • Werkt op Android & iOS: BLE wordt ondersteund op beide platforms
  • Geen Koppeling Vereist: BLE verbindt automatisch zonder handmatige koppeling

Arduino UNO R4 WiFi Code

Snelle Stappen

Volg deze instructies stap voor stap:

  • Nieuw bij Arduino UNO R4 WiFi? Begin met onze Arduino UNO R4 WiFi aan de slag gids om eerst de basis te leren.
  • Verbind het Arduino UNO R4 WiFi board met uw computer via een USB-kabel.
  • Start de Arduino IDE op uw computer.
  • Selecteer Arduino UNO R4 WiFi board en de juiste COM-poort.
  • Navigeer naar het Libraries pictogram in de linkerbalk van de Arduino IDE.
  • Zoek "DIYables Bluetooth", vind dan de DIYables Bluetooth bibliotheek van DIYables
  • Klik op de Install knop om de bibliotheek te installeren.
Arduino UNO R4 DIYables Bluetooth library
  • U wordt gevraagd om enkele andere bibliotheek-afhankelijkheden te installeren
  • Klik op de Install All knop om alle bibliotheek-afhankelijkheden te installeren.
Arduino UNO R4 DIYables Bluetooth dependency

BLE Code

  • Ga in Arduino IDE naar File Examples DIYables Bluetooth ArduinoBLE_Table voorbeeld, of kopieer de bovenstaande code en plak deze in de editor van Arduino IDE
/* * 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); }
  • Klik op de Upload knop in Arduino IDE om de code naar de Arduino UNO R4 WiFi te uploaden
  • Open de Serial Monitor
  • Bekijk het resultaat in de Serial Monitor. Het ziet er als volgt uit:
COM6
Send
DIYables Bluetooth - Table Example Waiting for Bluetooth connection...
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mobiele App

  • Installeer de DIYables Bluetooth App op uw smartphone: Android | iOS

Opmerking: De DIYables Bluetooth App ondersteunt zowel BLE als Classic Bluetooth op Android, en BLE op iOS. Omdat de Arduino UNO R4 WiFi BLE gebruikt, werkt de app op zowel Android als iOS. Handmatige koppeling is niet nodig voor BLE — scan gewoon en verbind.

  • Open de DIYables Bluetooth App
  • Bij het eerste gebruik van de app worden machtigingen gevraagd. Verleen de volgende machtigingen:
    • Nearby Devices machtiging (Android 12+) / Bluetooth machtiging (iOS) - vereist om Bluetooth apparaten te scannen en er verbinding mee te maken
    • Location machtiging (alleen Android 11 en lager) - vereist door oudere Android versies om BLE apparaten te scannen
  • Zorg ervoor dat Bluetooth is ingeschakeld op uw telefoon
  • Tik op het hoofdscherm op de Connect knop. De app scant naar BLE apparaten.
DIYables Bluetooth App - Home Screen with Scan Button
  • Zoek en tik op "Arduino_Table" in de scanresultaten om verbinding te maken.
  • Zodra verbonden, gaat de app automatisch terug naar het hoofdscherm. Selecteer de Table app uit het app-menu.
DIYables Bluetooth App - Home Screen with Table App

Opmerking: U kunt op het instellingenpictogram op het hoofdscherm tikken om apps op het hoofdscherm te verbergen/tonen. Voor meer details, zie de DIYables Bluetooth App Gebruikershandleiding.

  • U ziet een tabel met rijen die Temperatuur, Luchtvochtigheid, Druk, Teller, Uptime, Vrij Geheugen en Status tonen — allemaal real-time updates
DIYables Bluetooth App - Table Screen

Kijk nu terug naar de Serial Monitor in Arduino IDE. U ziet:

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

Creatieve Aanpassingen - Pas de Code aan voor Uw Project

Tabelstructuur Definiëren

// Voeg rijen toe tijdens setup bluetoothTable.addRow("Temperature", "-- °C"); bluetoothTable.addRow("Humidity", "-- %"); bluetoothTable.addRow("Pressure", "-- hPa"); bluetoothTable.addRow("Status", "Initializing...");

Waarden Updaten

// Update op rijnaam bluetoothTable.sendValueUpdate("Temperature", "25.5 °C"); bluetoothTable.sendValueUpdate("Status", "Running"); // Update op rijindex (0-gebaseerd) bluetoothTable.sendValueUpdate(0, "25.5 °C"); bluetoothTable.sendValueUpdate(3, "Running");

Tabelstructuur Verzenden

// Verzend de volledige tabelstructuur opnieuw naar de app bluetoothTable.sendTableStructure(); // Behandel gegevensverzoek van app bluetoothTable.onDataRequest([]() { bluetoothTable.sendTableStructure(); });

Programmeervoorbeelden

Weerstation 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"); } }

Systeemstatus 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"); } }

Probleemoplossing

Veelvoorkomende Problemen

1. Kan het apparaat niet vinden in de app

  • Zorg ervoor dat de Arduino UNO R4 WiFi ingeschakeld is en de sketch geüpload is
  • Controleer dat Bluetooth op uw telefoon ingeschakeld is
  • Op Android 11 en lager, schakel ook Locatieservices in

2. Tabel is leeg of rijen worden niet getoond

  • Zorg ervoor dat addRow() wordt aangeroepen in setup() voordat u verbinding maakt
  • Implementeer de onDataRequest callback om de structuur opnieuw te verzenden
  • Verifieer dat sendTableStructure() wordt aangeroepen

3. Waarden worden niet geüpdatet

  • Controleer of sendValueUpdate() wordt aangeroepen in de loop
  • Verifieer dat de rijnaam exact overeenkomt (hoofdlettergevoelig)
  • Zorg ervoor dat bluetoothServer.loop() in elke loop-iteratie wordt aangeroepen

4. Rijnamen komen niet overeen

  • Rijnamen zijn hoofdlettergevoelig — "Temperature" ≠ "temperature"
  • Gebruik rijindex (0-gebaseerd) als alternatief voor rijnamen

5. Upload mislukt of board wordt niet herkend

  • Installeer het nieuwste Arduino UNO R4 board pakket via Board Manager
  • Probeer een andere USB-kabel of poort

Projectideeën

  • Weerstation dashboard
  • Systeembronnen monitor
  • Multi-sensor gegevensweergave
  • Apparaatconfiguratiepaneel
  • IoT apparaatstatusbord

Volgende Stappen

Na het beheersen van het Bluetooth Tabel voorbeeld, probeer:

  1. Bluetooth Plotter - Voor grafische gegevensvisualisatie
  2. Bluetooth Monitor - Voor tekst-gebaseerde interactie
  3. Bluetooth Temperature - Voor meetinstrument-stijl weergave
  4. Meerdere Bluetooth Apps - Tabel combineren met andere apps

Ondersteuning

Voor aanvullende hulp:

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!