Exemple de tableau Bluetooth ESP32 - Tutoriel sur l'interface d'affichage de données structurées
Vue d'ensemble
L'exemple Table Bluetooth offre une présentation structurée de données clé-valeur accessible via l'application STEM Bluetooth de DIYables. Conçu pour les cartes ESP32 avec prise en charge à la fois du BLE (Bluetooth Low Energy) et du Bluetooth Classic. Définissez des lignes nommées et mettez à jour leurs valeurs en temps réel — parfait pour les tableaux de bord, les panneaux d'état des capteurs, les moniteurs système et toute application nécessitant une présentation organisée des données.
Cet exemple prend en charge deux modes Bluetooth :
ESP32 BLE (Bluetooth Low Energy): Fonctionne sur Android et iOS
ESP32 Classic Bluetooth: Fonctionne sur Android uniquement. iOS ne prend pas en charge le Bluetooth Classic. Utilisez BLE si vous avez besoin d'une compatibilité avec iOS.
Fonctionnalités
Lignes structurées: jusqu'à 20 lignes d'attributs nommés
Mises à jour en temps réel: Mettre à jour les valeurs des lignes individuelles sans actualiser l'ensemble de la table
Attributs nommés: Chaque ligne possède une étiquette descriptive (par exemple « Température », « Statut »)
Valeurs dynamiques: Envoyez n'importe quelle valeur sous forme de chaîne pour chaque ligne
Synchronisation de la structure du tableau: L'application demande la configuration du tableau lors de la connexion
BLE et Bluetooth classique: Choisissez le mode Bluetooth qui convient à votre projet
Multiplateforme: Le mode BLE fonctionne sur Android et iOS; le Bluetooth classique fonctionne sur Android
Option à faible consommation d'énergie: Le mode BLE consomme moins d'énergie que le Bluetooth classique
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 ESP32 à votre ordinateur à l'aide d'un câble USB.
Lancez l'IDE Arduino sur votre ordinateur.
Sélectionnez la carte ESP32 appropriée et le port COM.
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 par DIYables
Cliquez sur le bouton Install pour installer la bibliothèque.
Vous serez invité à installer d'autres dépendances de bibliothèque
Cliquez sur le bouton Tout installer pour installer toutes les dépendances de bibliothèque.
Choisissez l’un des deux modes Bluetooth ci-dessous en fonction de vos besoins :
Code Bluetooth Classique ESP32 (fonctionne uniquement avec l'application sur Android)
Note : Le Bluetooth classique n'est pas pris en charge sur iOS. Si vous avez besoin d'une prise en charge iOS, utilisez le code BLE ci-dessous.
Dans l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth Esp32Bluetooth_Table exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * DIYables Bluetooth Library - ESP32 Classic Bluetooth Table Example * Works with DIYables Bluetooth STEM app on Android * Note: Classic Bluetooth is NOT supported on iOS. Use BLE examples for iOS support. * * 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: * - ESP32 (all variants with Classic Bluetooth) * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) 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_Esp32Bluetooth.h>// Create Bluetooth instancesDIYables_Esp32Bluetooth bluetooth("ESP32_Table");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(115200);delay(1000);Serial.println("DIYables Bluetooth - ESP32 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 Heap"); bluetoothTable.addRow("CPU Freq"); 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);// ESP32-specific: Free heap memory bluetoothTable.sendValueUpdate("Free Heap", String(ESP.getFreeHeap()) + " bytes");// ESP32-specific: CPU frequency bluetoothTable.sendValueUpdate("CPU Freq", String(ESP.getCpuFreqMHz()) + " MHz");// Status bluetoothTable.sendValueUpdate("Status", counter % 2 == 0 ? "Running" : "Active");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 sur l'ESP32
Ouvrez le moniteur série
Vérifiez le résultat sur le moniteur série. Il ressemble à ce qui suit :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - ESP32 Table Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Code BLE ESP32 (fonctionne avec l'application sur Android et iOS)
Dans l'IDE Arduino, allez dans Fichier Exemples DIYables Bluetooth Esp32BLE_Table exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Arduino
/* * DIYables Bluetooth Library - ESP32 BLE 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: * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * - ESP32-S3 * - ESP32-C3 * - Any ESP32 board supporting BLE * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) 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_Esp32BLE.h>// BLE Configurationconst char* DEVICE_NAME = "ESP32BLE_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_Esp32BLE 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;int counter = 0;voidsetup() {Serial.begin(115200);delay(1000);Serial.println("DIYables Bluetooth - ESP32 BLE Table Example");// Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin();// Add table app to server bluetoothServer.addApp(&bluetoothTable);// Define table structure bluetoothTable.addRow("Temperature"); bluetoothTable.addRow("Humidity"); bluetoothTable.addRow("Pressure"); bluetoothTable.addRow("Counter"); bluetoothTable.addRow("Uptime"); bluetoothTable.addRow("Free Heap"); bluetoothTable.addRow("Status");Serial.print("Table rows defined: ");Serial.println(bluetoothTable.getRowCount());// Set up connection event callbacks bluetoothServer.setOnConnected([]() {Serial.println("Bluetooth connected!"); bluetoothTable.sendTableStructure(); updateTableValues(); }); bluetoothServer.setOnDisconnected([]() {Serial.println("Bluetooth disconnected!"); }); bluetoothTable.onDataRequest([]() {Serial.println("App requested table data"); bluetoothTable.sendTableStructure(); updateTableValues(); });Serial.println("Waiting for Bluetooth connection...");}void updateTableValues() {float temperature = 20.0 + random(0, 100) / 10.0; bluetoothTable.sendValueUpdate("Temperature", String(temperature, 1) + " °C");int humidity = 40 + random(0, 21); bluetoothTable.sendValueUpdate("Humidity", String(humidity) + " %");int pressure = 1000 + random(0, 21); bluetoothTable.sendValueUpdate("Pressure", String(pressure) + " hPa"); bluetoothTable.sendValueUpdate("Counter", String(counter)); counter++;unsignedlong uptime = millis() / 1000;String uptimeStr = String(uptime / 3600) + "h " + String((uptime % 3600) / 60) + "m " + String(uptime % 60) + "s"; bluetoothTable.sendValueUpdate("Uptime", uptimeStr); bluetoothTable.sendValueUpdate("Free Heap", String(ESP.getFreeHeap()) + " bytes"); bluetoothTable.sendValueUpdate("Status", counter % 2 == 0 ? "Running" : "Active");Serial.println("Table values updated");}voidloop() { bluetoothServer.loop();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'ESP32
Ouvrez le moniteur série
Vérifiez le résultat dans le moniteur série. Il ressemble à ce qui suit :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - ESP32 BLE Table Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Application mobile
Installer l'application Bluetooth DIYables sur votre smartphone : Android | iOS
Si vous utilisez le code ESP32 Bluetooth classique, vous devez appairer l'ESP32 avec votre téléphone Android avant d'ouvrir l'application :
Accédez à Paramètres > Bluetooth de votre téléphone
Assurez-vous que le Bluetooth est activé
Votre téléphone va rechercher les appareils disponibles
Trouvez et touchez "ESP32_Table" dans la liste des appareils disponibles
Confirmez la demande d'appairage (aucun code PIN requis)
Attendez qu'il affiche "Paired" sous le nom de l'appareil
Si vous utilisez le code ESP32 BLE, aucun appairage n'est nécessaire. Passez simplement à l'étape suivante.
Ouvrez l'application Bluetooth DIYables
Lors de la première ouverture de l'application, elle vous demandera des autorisations. Veuillez accorder les suivantes :
Périphériques à proximité autorisation (Android 12+) / Bluetooth autorisation (iOS) - requise pour scanner et se connecter à des périphériques Bluetooth
Autorisation de localisation (Android 11 et versions antérieures uniquement) - requise par les anciennes versions d'Android pour rechercher des périphériques BLE
Assurez-vous que le Bluetooth est activé sur votre téléphone
Sur l'écran d'accueil, touchez le bouton Connect. L'application va rechercher à la fois les périphériques BLE et Bluetooth classiques.
Trouvez et touchez votre appareil dans les résultats du balayage pour vous connecter:
Pour Bluetooth classique : touchez "ESP32_Table"
Pour BLE : touchez "ESP32BLE_Table"
Une fois connecté, l'application retourne 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/afficher les applications sur l'écran d'accueil. Pour plus de détails, consultez le Manuel d'utilisation de l'application DIYables Bluetooth.
Le tableau se remplira avec les noms des attributs et leurs valeurs actuelles
Maintenant, revenez au Moniteur Série de l'IDE Arduino. Vous verrez :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Bluetooth connected!
App requested table data
Sent table structure
Temperature: 25.3
Humidity: 62%
Pressure: 1013 hPa
Counter: 1
Uptime: 0h 0m 5s
Free Heap: 245780
Status: Running
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Observez les valeurs du tableau qui se mettent à jour en temps réel dans l'application
Personnalisation créative - Adaptez le code à votre projet
Définir les lignes du tableau
Ajouter des lignes d'attributs au tableau (jusqu'à 20 lignes au maximum) :
// Add rows during setupbluetoothTable.addRow("Temperature");bluetoothTable.addRow("Humidity");bluetoothTable.addRow("Pressure");bluetoothTable.addRow("Status");bluetoothTable.addRow("Uptime");// Check row countint rows = bluetoothTable.getRowCount();Serial.println("Total rows: " + String(rows));// Get attribute name by indexString attr = bluetoothTable.getAttribute(0); // Returns "Temperature"
Mise à jour des valeurs de la ligne
Mettre à jour les valeurs de chaque ligne par nom d'attribut ou par indice :
// Update by attribute namebluetoothTable.sendValueUpdate("Temperature", "25.3 °C");bluetoothTable.sendValueUpdate("Humidity", "62%");bluetoothTable.sendValueUpdate("Status", "Running");// Update by row index (0-based)bluetoothTable.sendValueUpdate(0, "25.3 °C"); // First rowbluetoothTable.sendValueUpdate(1, "62%"); // Second row
Gérer les demandes de données de l'application
Lorsque l'application se connecte ou demande un rafraîchissement :
bluetoothTable.onDataRequest([]() {Serial.println("App requested table data"); bluetoothTable.sendTableStructure(); // Send row names// Send current values for all rows bluetoothTable.sendValueUpdate("Temperature", String(temperature, 1) + " °C"); bluetoothTable.sendValueUpdate("Humidity", String(humidity) + "%"); bluetoothTable.sendValueUpdate("Status", "Online");});
Vider et reconstruire la table
// Clear all rowsbluetoothTable.clearTable();// Add new rowsbluetoothTable.addRow("Sensor A");bluetoothTable.addRow("Sensor B");// Send updated structure to appbluetoothTable.sendTableStructure();
Connectez un capteur BME280 pour afficher la température, l'humidité et la pression dans le tableau.
Tableau de bord multi-capteurs
Connectez plusieurs capteurs (DHT22, BMP280, LDR, MQ-135) et affichez toutes les lectures sous forme de lignes.
Panneau d'informations sur l'appareil
Afficher les informations système de l'ESP32 : modèle de puce, taille de la mémoire flash, mémoire libre (heap), temps de fonctionnement et adresse MAC.
BLE vs Bluetooth Classique - Lequel faut-il choisir ?
Feature
BLE (Esp32BLE_Table)
Classic Bluetooth (Esp32Bluetooth_Table)
iOS Support
? Yes
? No
Android Support
? Yes
? Yes
Power Consumption
Low
Higher
Range
~30-100m
~10-100m
Data Rate
Lower
Higher
Pairing Required
No (auto-connect)
Yes (manual pairing)
Best For
Battery-powered, cross-platform
High throughput, Android-only
Tutoriel vidéo
La démo vidéo ci-dessous utilise le code ci-dessous :
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/esp32/esp32-diyables-bluetooth-app-table*//* * DIYables Bluetooth Library - ESP32 BLE 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: * - ESP32-WROOM-32 * - ESP32-DevKitC * - ESP32-WROVER * - ESP32-S3 * - ESP32-C3 * - Any ESP32 board supporting BLE * * Note: Select "Huge APP (3MB No OTA/1MB SPIFFS)" partition scheme * in Arduino IDE: Tools > Partition Scheme * * Setup: * 1. Upload the sketch to your ESP32 * 2. Open Serial Monitor (115200 baud) 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_Esp32BLE.h>#include <DHT.h>// BLE Configurationconst char* DEVICE_NAME = "ESP32BLE_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_Esp32BLE bluetooth(DEVICE_NAME, SERVICE_UUID, TX_UUID, RX_UUID);DIYables_BluetoothServer bluetoothServer(bluetooth);// Create Table app instanceDIYables_BluetoothTable bluetoothTable;#defineLED_BUILTIN 22#define DHTPIN 23 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE);// Variables for demo dataunsignedlong lastUpdate = 0;constunsignedlong UPDATE_INTERVAL = 1000;bool ledState = false;int counter = 0;voidsetup() {Serial.begin(115200);delay(1000);Serial.println("DIYables Bluetooth - ESP32 BLE Table Example");// Initialize built-in LEDpinMode(LED_BUILTIN, OUTPUT); dht.begin();// Initialize Bluetooth server with platform-specific implementation bluetoothServer.begin();// Add table app to server bluetoothServer.addApp(&bluetoothTable);// Define table structure bluetoothTable.addRow("Temperature"); bluetoothTable.addRow("Humidity"); bluetoothTable.addRow("LED Status"); bluetoothTable.addRow("Pressure"); bluetoothTable.addRow("Counter"); bluetoothTable.addRow("Uptime"); bluetoothTable.addRow("Free Heap"); bluetoothTable.addRow("Status");Serial.print("Table rows defined: ");Serial.println(bluetoothTable.getRowCount());// Set up connection event callbacks bluetoothServer.setOnConnected([]() {Serial.println("Bluetooth connected!"); bluetoothTable.sendTableStructure(); updateTableValues(); }); bluetoothServer.setOnDisconnected([]() {Serial.println("Bluetooth disconnected!"); }); bluetoothTable.onDataRequest([]() {Serial.println("App requested table data"); bluetoothTable.sendTableStructure(); updateTableValues(); });Serial.println("Waiting for Bluetooth connection...");}void updateTableValues() {//float temperature = 20.0 + random(0, 100) / 10.0;float temperature = dht.readTemperature(); bluetoothTable.sendValueUpdate("Temperature", String(temperature, 1) + " °C");//int humidity = 40 + random(0, 21);int humidity = dht.readHumidity(); bluetoothTable.sendValueUpdate("Humidity", String(humidity) + " %");// Check if any reads failed and exit early (to try again).if (isnan(humidity) || isnan(temperature)) {Serial.println(F("Failed to read from DHT sensor!"));return; }int pressure = 1000 + random(0, 21); bluetoothTable.sendValueUpdate("Pressure", String(pressure) + " hPa"); bluetoothTable.sendValueUpdate("Counter", String(counter)); counter++;unsignedlong uptime = millis() / 1000;String uptimeStr = String(uptime / 3600) + "h " + String((uptime % 3600) / 60) + "m " + String(uptime % 60) + "s"; bluetoothTable.sendValueUpdate("Uptime", uptimeStr); bluetoothTable.sendValueUpdate("Free Heap", String(ESP.getFreeHeap()) + " bytes"); bluetoothTable.sendValueUpdate("Status", counter % 2 == 0 ? "Running" : "Active");Serial.println("Table values updated");}voidloop() { bluetoothServer.loop();if (bluetooth.isConnected() && millis() - lastUpdate >= UPDATE_INTERVAL) { lastUpdate = millis(); updateTableValues(); }// Toggle LED every 3 secondsstaticunsignedlong lastLedToggle = 0;if (millis() - lastLedToggle > 3000) { ledState = !ledState;digitalWrite(LED_BUILTIN, ledState);// Send LED status update to web interface bluetoothTable.sendValueUpdate("LED Status", ledState ? "ON" : "OFF"); lastLedToggle = millis(); }delay(10);}
Dépannage
Problèmes courants
Impossible de trouver l'appareil dans l'application.
Assurez-vous que l'ESP32 est sous tension et que le sketch est téléversé
Pour le BLE : Assurez-vous que le Bluetooth et la localisation de votre téléphone sont activés
Pour le Bluetooth classique : appairez d'abord l'appareil dans les paramètres Bluetooth de votre téléphone
Vérifiez que le bon schéma de partition est sélectionné (Huge APP)
2. Le tableau ne montre aucune donnée
Assurez-vous que sendTableStructure() est appelée dans le rappel onDataRequest
Vérifiez que les lignes sont ajoutées avec addRow() avant l'envoi des mises à jour
Vérifiez le Moniteur Série pour le message "App requested table data"
3. Les valeurs ne se mettent pas à jour
Vérifiez que le nom de l'attribut dans sendValueUpdate() correspond exactement à celui qui a été ajouté avec addRow()
Vérifiez que votre minuterie d'intervalle de mise à jour fonctionne
Assurez-vous que le Bluetooth est toujours connecté
4. Lignes manquantes dans le tableau
Un maximum de 20 lignes est pris en charge
Vérifiez getRowCount() pour vous assurer que toutes les lignes ont été ajoutées
Les lignes doivent être ajoutées avant l'envoi de la structure du tableau
La connexion se coupe fréquemment
Approchez-vous de l'ESP32 (réduire la distance)
Pour le BLE : Vérifiez les interférences provenant d'autres appareils BLE
Pour le Bluetooth classique : Assurez une alimentation stable pour l'ESP32
Esquisse trop grande / pas assez d'espace
Dans l'IDE Arduino, allez dans Outils > Schéma de partition et sélectionnez "Huge APP (3MB No OTA/1MB SPIFFS)" ou "No OTA (Large APP)"
Le schéma de partition par défaut ne fournit qu'environ ~1,2 Mo pour le code d'application, ce qui n'est pas suffisant pour les bibliothèques Bluetooth
Ce réglage offre environ ~3 Mo en sacrifiant la partition OTA (mise à jour sans fil)
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 !