Exemple de traceur Bluetooth Arduino Nano ESP32 - Visualisation de données en temps réel via tutoriel BLE

Vue d'ensemble

Cet exemple diffuse des données en temps réel vers l'application DIYables Bluetooth STEM pour une visualisation en direct sur l'Arduino Nano ESP32 en utilisant le BLE (Bluetooth Low Energy). Tracez des lectures de capteurs, des formes d'onde et des données multi-canaux sous forme de graphiques en direct sur un smartphone. Convient à l'enregistrement de données, l'analyse de signaux, la calibration de capteurs et les expériences scientifiques.

Remarque : L'Arduino Nano ESP32 prend en charge le BLE uniquement — le Bluetooth Classique n'est pas pris en charge. L'application Bluetooth DIYables fonctionne sur Android et iOS avec le BLE.

Exemple de traceur Bluetooth Arduino Nano ESP32 - Visualisation de données en temps réel via tutoriel BLE

Fonctionnalités

  • Traçage multi-canal : Jusqu'à 6 canaux de données simultanément
  • Axes configurables : Titres, étiquettes et plage de l'axe Y personnalisés
  • Étiquettes de légende : Nommez chaque canal de données pour plus de clarté
  • Limite d'échantillons : Définissez le nombre maximum d'échantillons affichés
  • Diffusion rapide : Jusqu'à 10 mises à jour par seconde (intervalle de 100 ms)
  • Support Android et iOS : Le BLE est compatible avec les deux plateformes
  • Pas de couplage requis : Le BLE se connecte sans couplage manuel

Matériel nécessaire

1×Arduino Nano ESP32
1×Câble USB Type-A vers Type-C (pour PC USB-A)
1×Câble USB Type-C vers Type-C (pour PC USB-C)
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano ESP32

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
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.

Code Arduino Nano ESP32

Étapes rapides

  • Nouveau sur l'Arduino Nano ESP32 ? Commencez par le Installation du logiciel Arduino Nano ESP32..
  • Connectez l'Arduino Nano ESP32 à votre ordinateur via USB.
  • Ouvrez l'Arduino IDE.
  • Sélectionnez la carte Arduino Nano ESP32 et le port COM correct.
  • Cliquez sur l'icône Bibliothèques dans la barre latérale gauche.
  • Recherchez "DIYables Bluetooth" et sélectionnez la bibliothèque Bluetooth DIYables par DIYables.
  • Cliquez sur Installer.
Bibliothèque Bluetooth DIYables Arduino Nano ESP32
  • Lorsqu'on vous demande d'installer les dépendances, cliquez sur Tout installer.
Dépendance Bluetooth DIYables Arduino Nano ESP32

Code BLE

  • Dans l'Arduino IDE, ouvrez Fichier Exemples DIYables Bluetooth ArduinoBLE_Plotter, ou collez le code dans l'éditeur.
/* * DIYables Bluetooth Library - ESP32 BLE 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 * * Tutorial: https://diyables.io/bluetooth-app * Author: DIYables */ #include <DIYables_BluetoothServer.h> #include <DIYables_BluetoothPlotter.h> #include <platforms/DIYables_Esp32BLE.h> // BLE Configuration const char* DEVICE_NAME = "ESP32BLE_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_Esp32BLE 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; float phase = 0; void setup() { Serial.begin(115200); delay(1000); Serial.println("DIYables Bluetooth - ESP32 BLE 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); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Sine", "Cosine", "Tangent"); // Set up connection event callbacks bluetoothServer.setOnConnected([]() { Serial.println("Bluetooth connected!"); }); bluetoothServer.setOnDisconnected([]() { Serial.println("Bluetooth disconnected!"); }); bluetoothPlotter.onDataRequest([]() { Serial.println("App requested plot data"); }); Serial.println("Waiting for Bluetooth connection..."); } void loop() { bluetoothServer.loop(); if (millis() - lastPlotTime >= PLOT_INTERVAL) { lastPlotTime = millis(); float sine = sin(phase); float cosine = cos(phase); float tangent = tan(phase) * 0.3; bluetoothPlotter.send(sine, cosine, tangent); Serial.print(sine, 2); Serial.print(" "); Serial.print(cosine, 2); Serial.print(" "); Serial.println(tangent, 2); phase += 0.1; if (phase > 2 * PI) { phase = 0; } } delay(10); }
  • Cliquez sur Téléverser pour flasher le sketch sur la carte.
  • Ouvrez le Moniteur Série.
  • La sortie du Moniteur Série devrait ressembler à :
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Plotter Example Waiting for Bluetooth connection...
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Application mobile

  • Installez l'application Bluetooth DIYables sur votre smartphone : Android | iOS

Remarque : L'application Bluetooth DIYables fonctionne sur Android et iOS avec le BLE. Aucun couplage manuel n'est requis.

  • Lancez l'application Bluetooth DIYables.
  • Au premier lancement, accordez les autorisations suivantes :
    • Appareils à proximité (Android 12+) / Bluetooth (iOS) — requis pour scanner et se connecter aux appareils Bluetooth
    • Localisation (Android 11 et versions antérieures uniquement) — requis par les anciennes versions Android pour scanner le BLE
  • Assurez-vous que le Bluetooth est activé sur votre appareil.
  • Appuyez sur Connecter sur l'écran d'accueil. L'application va scanner les appareils BLE.
Application Bluetooth DIYables - Écran d'accueil avec bouton de scan
  • Appuyez sur "Arduino_Plotter" dans les résultats du scan.
  • Après la connexion, revenez à l'écran d'accueil et ouvrez l'application Traceur.
Application Bluetooth DIYables - Écran d'accueil avec l'application Traceur

Appuyez sur l'icône des paramètres sur l'écran d'accueil pour afficher ou masquer les applications. Consultez le Manuel utilisateur de l'application Bluetooth DIYables pour plus de détails.

  • Un tracé en temps réel des formes d'onde Sinus, Cosinus et Tangente apparaîtra.
Application Bluetooth DIYables - Écran du traceur

Regardez maintenant le Moniteur Série dans l'Arduino IDE. Vous verrez :

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected! Sending plot data... Sine: 0.00, Cosine: 10.00, Tangent: 0.00
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Personnalisation créative - Adaptez le code à votre projet

Configurer l'apparence du tracé

// Set plot title bluetoothPlotter.setPlotTitle("My Sensor Data"); // Set axis labels bluetoothPlotter.setAxisLabels("Time", "Value"); // Set Y-axis range bluetoothPlotter.setYAxisRange(-100, 100); // Set maximum samples to display bluetoothPlotter.setMaxSamples(200); // Set legend labels for each channel bluetoothPlotter.setLegendLabels("Temperature", "Humidity", "Pressure");

Envoyer des points de données

// Send a single value bluetoothPlotter.send(sensorValue); // Send two values bluetoothPlotter.send(temperature, humidity); // Send three values bluetoothPlotter.send(value1, value2, value3); // Send up to six values bluetoothPlotter.send(ch1, ch2, ch3, ch4, ch5, ch6);

Gérer les requêtes de données

bluetoothPlotter.onDataRequest([]() { Serial.println("App requested data"); // App just connected or needs initial config });

Exemples de programmation

Enregistreur de température et humidité

DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer); void setup() { bluetoothPlotter.setPlotTitle("Environment Monitor"); bluetoothPlotter.setAxisLabels("Time", "Value"); bluetoothPlotter.setYAxisRange(0, 100); bluetoothPlotter.setMaxSamples(100); bluetoothPlotter.setLegendLabels("Temp (°C)", "Humidity (%)"); } 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); } }

Traceur d'entrée analogique

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

Dépannage

Problèmes courants

1. L'appareil n'est pas visible dans l'application

  • Confirmez que la carte est alimentée et que le sketch est téléversé
  • Vérifiez que le Bluetooth est activé sur votre téléphone
  • Sur Android 11 et versions antérieures, activez également les services de localisation

2. Le tracé ne se met pas à jour

  • Vérifiez que les données sont envoyées dans loop()
  • Confirmez que bluetoothServer.loop() est appelé
  • Assurez-vous que l'application est sur l'écran du Traceur

3. Les données semblent incorrectes ou bruitées

  • Vérifiez le câblage du capteur et les lectures
  • Confirmez que la plage de l'axe Y correspond à votre plage de données
  • Envisagez d'appliquer un lissage ou un filtrage aux données

4. Le titre du tracé ou les étiquettes n'apparaissent pas

  • Définissez la configuration du tracé dans setup() avant qu'une connexion soit établie
  • Utilisez le callback onDataRequest pour renvoyer la configuration si nécessaire

5. Le téléversement échoue ou la carte n'est pas reconnue

  • Installez le dernier paquet de carte Arduino Nano ESP32 via le Gestionnaire de cartes
  • Essayez un câble USB ou un port différent

Idées de projets

  • Surveillance environnementale (température, humidité, pression)
  • Visualisation de données d'accéléromètre/gyroscope
  • Outil de calibration de capteur analogique
  • Analyse et comparaison de signaux
  • Enregistreur de données pour expériences scientifiques

Prochaines étapes

Après avoir terminé l'exemple de traceur Bluetooth, explorez :

  1. Tableau Bluetooth — Affichage de données structurées
  2. Moniteur Bluetooth — Sortie de données basée sur du texte
  3. Température Bluetooth — Affichage de température de type jauge
  4. Applications Bluetooth multiples — Combinez le traceur avec d'autres widgets d'application

Support

Pour une aide supplémentaire :

  • Consultez la documentation de référence API
  • Les forums de la communauté Arduino

※ NOS MESSAGES

  • 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 !