Exemple de tableau Arduino UNO R4 WiFi et Bluetooth - Tutoriel d'affichage de données structurées via BLE
Aperçu
L'exemple Table Bluetooth offre un affichage structuré des données via l'application DIYables Bluetooth STEM. Conçu pour Arduino UNO R4 WiFi utilisant BLE (Bluetooth Low Energy) pour afficher les relevés de capteurs, l'état du système et toutes les données dans un format de tableau clair sur votre smartphone. Prend en charge des lignes nommées avec des mises à jour de valeurs en temps réel. Parfait pour les tableaux de bord, la surveillance du système et les affichages multi-capteurs.
Remarque : L'Arduino UNO R4 WiFi ne prend en charge que le BLE (Bluetooth Low Energy). Il ne prend pas en charge le Bluetooth classique. L'application Bluetooth DIYables prend en charge à la fois le BLE et le Bluetooth classique sur Android, et le BLE sur iOS. Puisque cette carte utilise le BLE, l'application fonctionne sur à la fois Android et iOS.
Fonctionnalités
Lignes nommées: Définir des lignes avec des étiquettes (par exemple « Température », « Humidité »)
Mises à jour en temps réel: Envoyer efficacement les mises à jour de valeurs individuelles
Synchronisation de la structure: Envoi automatique de la structure du tableau lors de la connexion
Données flexibles: Afficher n'importe quelle chaîne de caractères ou données numériques
Jusqu'à 20 lignes: Prise en charge de plusieurs champs de données
Fonctionne sur Android & iOS: BLE est pris en charge sur les deux plateformes
Aucun appairage nécessaire: BLE se connecte automatiquement sans appairage manuel
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.
Connectez la carte Arduino UNO R4 WiFi à votre ordinateur à l'aide d'un câble USB.
Lancez l'IDE Arduino sur votre ordinateur.
Sélectionnez la carte Arduino UNO R4 WiFi et le port COM approprié.
Accédez à l'icône Libraries dans la barre de gauche de l'IDE Arduino.
Recherchez "DIYables Bluetooth", puis trouvez la bibliothèque DIYables Bluetooth de DIYables.
Cliquez sur le bouton Install pour installer la bibliothèque.
Il vous sera demandé d'installer d'autres dépendances de la bibliothèque.
Cliquez sur le bouton Tout installer pour installer toutes les dépendances de la bibliothèque.
Code BLE
Sur l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth ArduinoBLE_Table exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * 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 Configurationconst 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 instancesDIYables_ArduinoBLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID);DIYables_BluetoothServer bluetoothServer(bluetooth);// Create Table app instanceDIYables_BluetoothTable bluetoothTable;// Variables for demo dataunsignedlong lastUpdate = 0;constunsignedlong UPDATE_INTERVAL = 1000; // Update every secondint counter = 0;voidsetup() {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)unsignedlong 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");}voidloop() {// 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);}
Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers l'Arduino UNO R4 WiFi
Ouvrez le moniteur série
Vérifiez le résultat dans le moniteur série. Voici à quoi cela ressemble :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Table Example
Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
Application mobile
Installez l'application Bluetooth DIYables sur votre smartphone : Android | iOS
Remarque : L’application Bluetooth DIYables prend en charge à la fois le BLE et le Bluetooth classique sur Android, et le BLE sur iOS. Comme l’Arduino UNO R4 WiFi utilise le BLE, l’application fonctionne sur les deux plateformes Android et iOS. Aucun appairage manuel n’est nécessaire pour le BLE — il suffit de scanner et de se connecter.
Ouvrez l'application Bluetooth DIYables
Lors de la première ouverture de l'application, des autorisations vous seront demandées. Veuillez accorder les suivantes :
Autorisation des périphériques à proximité (Android 12+) / Autorisation Bluetooth (iOS) - nécessaire pour scanner et se connecter aux appareils Bluetooth
Autorisation de localisation (Android 11 et versions antérieures uniquement) - requise par les anciennes versions d'Android pour scanner les appareils BLE
Assurez-vous que le Bluetooth est activé sur votre téléphone
Sur l'écran d'accueil, appuyez sur le bouton Se connecter. L'application va scanner les appareils BLE.
Trouvez et touchez "Arduino_Table" dans les résultats du balayage pour vous connecter.
Une fois connecté, l’application revient automatiquement à l’écran d’accueil. Sélectionnez l’application Table dans le menu des applications.
Remarque : Vous pouvez toucher l'icône des paramètres sur l'écran d'accueil pour masquer ou afficher les applications sur l'écran d'accueil. Pour plus de détails, consultez le Manuel d'utilisation de l'application Bluetooth DIYables.
Vous verrez un tableau avec des lignes affichant Température, Humidité, Pression, Compteur, Temps de fonctionnement, Mémoire libre et État — toutes se mettent à jour en temps réel
Regardez à nouveau le Moniteur série dans l'IDE Arduino. Vous verrez :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
Bluetooth connected!
Sending table updates...
Temperature: 25.30 °C
Humidity: 55.70 %
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
Personnalisation créative - Adaptez le code à votre projet
// Update by row namebluetoothTable.sendValueUpdate("Temperature", "25.5 °C");bluetoothTable.sendValueUpdate("Status", "Running");// Update by row index (0-based)bluetoothTable.sendValueUpdate(0, "25.5 °C");bluetoothTable.sendValueUpdate(3, "Running");
Envoyer la structure de la table
// Re-send the full table structure to the appbluetoothTable.sendTableStructure();// Handle data request from appbluetoothTable.onDataRequest([]() { bluetoothTable.sendTableStructure();});
N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !