ESP32 Bluetooth Applications Multiples - Combiner Toutes les Applications Bluetooth dans un Projet Tutoriel
Aperçu
L'exemple d'applications Bluetooth multiples démontre comment combiner plusieurs interfaces d'applications Bluetooth dans un seul projet ESP32. Exécutez Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge et Rotator toutes simultanément — accessibles via l'application DIYables Bluetooth STEM. Conçu pour les cartes ESP32 avec prise en charge de BLE (Bluetooth Low Energy) et des connexions Classic Bluetooth. C'est idéal pour les projets complexes nécessitant plusieurs interfaces de contrôle et d'affichage simultanément.
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 Classic Bluetooth. Utilisez BLE si vous avez besoin du support iOS.
Fonctionnalités
9 Applications en Une : Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge et Rotator fonctionnant simultanément
Callbacks Indépendants : Chaque application a ses propres gestionnaires d'événements
Timing Indépendant : Intervalles de mise à jour différents pour chaque application
Commutation d'Applications : Basculez librement entre les applications dans l'application mobile
BLE & Classic Bluetooth : Choisissez le mode Bluetooth qui convient à votre projet
Multi-plateforme : Le mode BLE fonctionne sur Android et iOS ; Classic Bluetooth fonctionne sur Android
Option Faible Consommation : Le mode BLE consomme moins d'énergie que Classic Bluetooth
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 avec un câble USB.
Lancez l'Arduino IDE sur votre ordinateur.
Sélectionnez la carte ESP32 appropriée et le port COM.
Naviguez vers l'icône Libraries dans la barre de gauche d'Arduino IDE.
Recherchez "DIYables Bluetooth", puis trouvez la bibliothèque DIYables Bluetooth par DIYables
Cliquez sur le bouton Install pour installer la bibliothèque.
Il vous sera demandé d'installer d'autres dépendances de bibliothèques
Cliquez sur le bouton Install All pour installer toutes les dépendances de bibliothèques.
> Important : Puisque cet exemple inclut de nombreuses bibliothèques d'applications Bluetooth, le sketch compilé est plus volumineux que d'habitude. Vous devez sélectionner le schéma de partition correct (voir ci-dessous).
Choisissez l'un des deux modes Bluetooth ci-dessous selon vos besoins :
Code ESP32 Classic Bluetooth (fonctionne avec l'application sur Android uniquement)
Note : Classic Bluetooth n'est PAS pris en charge sur iOS. Si vous avez besoin du support iOS, utilisez le code BLE ci-dessous.
Dans Arduino IDE, allez à File Examples DIYables Bluetooth Esp32Bluetooth_MultipleApps exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur d'Arduino IDE
Important : Allez à Tools > Partition Scheme et sélectionnez "Huge APP (3MB No OTA/1MB SPIFFS)". Ceci est requis car l'exemple d'applications multiples utilise significativement plus d'espace flash.
Cliquez sur le bouton Upload dans Arduino IDE pour télécharger le code vers l'ESP32
Ouvrez le Serial Monitor
Vérifiez le résultat dans le Serial Monitor. Cela ressemble à ceci :
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 Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Code ESP32 BLE (fonctionne avec l'application sur Android et iOS)
Dans Arduino IDE, allez à File Examples DIYables Bluetooth Esp32BLE_MultipleApps exemple, ou copiez le code ci-dessus et collez-le dans l'éditeur d'Arduino IDE
Important : Allez à Tools > Partition Scheme et sélectionnez "Huge APP (3MB No OTA/1MB SPIFFS)". Ceci est requis car l'exemple d'applications multiples utilise significativement plus d'espace flash.
Cliquez sur le bouton Upload dans Arduino IDE pour télécharger le code vers l'ESP32
Ouvrez le Serial Monitor
Vérifiez le résultat dans le Serial Monitor. Cela ressemble à ceci :
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 Multiple Apps Example
Waiting for Bluetooth connection...
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Application Mobile
Installez l'application DIYables Bluetooth sur votre smartphone : Android | iOS
Si vous utilisez le code ESP32 Classic Bluetooth, vous devez appairer l'ESP32 avec votre téléphone Android avant d'ouvrir l'application :
Allez dans les Paramètres > Bluetooth de votre téléphone
Assurez-vous que le Bluetooth est activé
Votre téléphone recherchera les appareils disponibles
Trouvez et appuyez sur "ESP32 Multi-App" dans la liste des appareils disponibles
Confirmez la demande d'appairage (aucun PIN requis)
Attendez jusqu'à ce que cela 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 DIYables Bluetooth
Lors de la première ouverture de l'application, elle demandera des autorisations. Veuillez accorder les autorisations suivantes :
Autorisation Appareils à proximité (Android 12+) / autorisation Bluetooth (iOS) - requis pour scanner et se connecter aux appareils Bluetooth
Autorisation de localisation (Android 11 et antérieurs uniquement) - requis par les anciennes versions 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 Connect. L'application recherchera les appareils BLE et Classic Bluetooth.
Trouvez et appuyez sur votre appareil dans les résultats de scan pour vous connecter :
Pour Classic Bluetooth : appuyez sur "ESP32 Multi-App"
Pour BLE : appuyez sur "ESP32BLE Multi-App"
Une fois connecté, l'application revient automatiquement à l'écran d'accueil. L'écran d'accueil montre toutes les applications disponibles. Les 9 applications initialisées dans le code Arduino répondront et fonctionneront — les autres applications sur l'écran d'accueil apparaîtront mais ne fonctionneront pas avec ce sketch.
Note : Vous pouvez appuyer sur 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.
Appuyez sur certaines des applications suivantes pour les ouvrir et interagir avec l'ESP32 : Monitor, Chat, Slider, Joystick, Temperature, Plotter, Table, Analog Gauge, Rotator
Basculez librement entre les applications — elles partagent toutes la même connexion Bluetooth
Maintenant regardez le Serial Monitor dans Arduino IDE. 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')
Personnalisation Créative - Adaptez le Code à Votre Projet
Comment Fonctionnent les Applications Multiples
Chaque application est créée comme un objet séparé et enregistrée avec le même serveur Bluetooth. Elles partagent la connexion Bluetooth unique mais fonctionnent indépendamment :
// Include all app headers#include <DIYables_BluetoothMonitor.h>#include <DIYables_BluetoothChat.h>#include <DIYables_BluetoothSlider.h>#include <DIYables_BluetoothJoystick.h>#include <DIYables_BluetoothTemperature.h>#include <DIYables_BluetoothPlotter.h>#include <DIYables_BluetoothTable.h>#include <DIYables_BluetoothAnalogGauge.h>#include <DIYables_BluetoothRotator.h>// Create app instancesDIYables_BluetoothMonitor bluetoothMonitor;DIYables_BluetoothChat bluetoothChat;DIYables_BluetoothSlider bluetoothSlider(0, 100, 1);DIYables_BluetoothJoystick bluetoothJoystick;DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter;DIYables_BluetoothTable bluetoothTable;DIYables_BluetoothAnalogGauge bluetoothGauge(0.0, 100.0, "km/h");DIYables_BluetoothRotator bluetoothRotator(ROTATOR_MODE_LIMITED, 0, 180);// Register all apps with the Bluetooth serverbluetoothServer.addApp(bluetoothMonitor);bluetoothServer.addApp(bluetoothChat);bluetoothServer.addApp(bluetoothSlider);bluetoothServer.addApp(bluetoothJoystick);bluetoothServer.addApp(bluetoothTemperature);bluetoothServer.addApp(bluetoothPlotter);bluetoothServer.addApp(bluetoothTable);bluetoothServer.addApp(bluetoothGauge);bluetoothServer.addApp(bluetoothRotator);
Configuration des Callbacks pour Chaque Application
Chaque application a ses propres gestionnaires d'événements :
Vous n'êtes pas obligé d'inclure les 9 applications. Choisissez seulement celles dont vous avez besoin :
// Example: Only Monitor + Slider + Temperature#include <DIYables_BluetoothMonitor.h>#include <DIYables_BluetoothSlider.h>#include <DIYables_BluetoothTemperature.h>DIYables_BluetoothMonitor bluetoothMonitor;DIYables_BluetoothSlider bluetoothSlider(0, 100, 1);DIYables_BluetoothTemperature bluetoothTemperature(-10.0, 50.0, "°C");voidsetup() {// ... Bluetooth server setup ... bluetoothServer.addApp(bluetoothMonitor); bluetoothServer.addApp(bluetoothSlider); bluetoothServer.addApp(bluetoothTemperature);// Only these 3 apps will appear in the mobile app}
Gérer les Événements de Connexion
bluetoothServer.setOnConnected([]() {Serial.println("Bluetooth connected!");// Send initial values for all apps bluetoothTemperature.send(currentTemperature); bluetoothGauge.send(currentGaugeValue); bluetoothRotator.send(currentAngle);});bluetoothServer.setOnDisconnected([]() {Serial.println("Bluetooth disconnected!");});
Comment Utiliser les Applications Multiples
Commutation d'Applications
Dans l'application DIYables Bluetooth :
L'écran d'accueil montre toutes les applications enregistrées sous forme de boutons
Appuyez sur n'importe quelle application pour l'ouvrir
Utilisez le bouton retour ou le bouton home pour revenir et basculer vers une autre application
Toutes les applications continuent de fonctionner sur l'ESP32 peu importe quelle application est affichée
Flux de Données
Applications d'Entrée (Slider, Joystick, Rotator, Chat) : Envoient des données du téléphone vers l'ESP32
Applications de Sortie (Monitor, Temperature, Plotter, Table, Gauge) : Envoient des données de l'ESP32 vers le téléphone
Applications Bidirectionnelles (Chat, Monitor) : Peuvent envoyer et recevoir des données
> Note pour les Applications Multiples : Puisque les applications multiples envoient des données simultanément, le débit plus élevé de Classic Bluetooth peut être bénéfique si vous avez de nombreuses applications à mise à jour rapide (par ex. plotter à 100ms). Pour les projets alimentés par batterie, BLE est toujours recommandé.
Dépannage
Problèmes Courants
1. Impossible de trouver l'appareil dans l'application
Assurez-vous que l'ESP32 est alimenté et le sketch téléchargé
Pour BLE : Assurez-vous que le Bluetooth et la Localisation de votre téléphone sont activés
Pour Classic Bluetooth : Appairez d'abord l'appareil dans les paramètres Bluetooth du téléphone
Vérifiez que le schéma de partition correct est sélectionné (Huge APP) — c'est critique pour les exemples multi-applications
2. Sketch trop volumineux / pas assez d'espace
Dans Arduino IDE, allez à Tools > Partition Scheme et sélectionnez "Huge APP (3MB No OTA/1MB SPIFFS)" ou "No OTA (Large APP)"
Le schéma de partition par défaut fournit seulement ~1,2MB pour le code de l'application, ce qui n'est pas suffisant pour l'exemple multi-applications
Ce paramètre donne ~3MB en sacrifiant la partition OTA (mise à jour par liaison radio)
Si c'est encore trop volumineux, supprimez les applications dont vous n'avez pas besoin
3. Certaines applications n'apparaissent pas dans l'application mobile
Assurez-vous que chaque application est enregistrée avec bluetoothServer.addApp()
Vérifiez que les en-têtes include correspondent aux objets d'applications créés
Vérifiez que toutes les applications sont enregistrées avant bluetoothServer.begin()
4. Les mises à jour de données sont lentes ou retardées
Réduisez le nombre d'applications envoyant des données simultanément
Augmentez les intervalles de mise à jour pour les applications moins critiques
BLE a une bande passante limitée — échelonnez les mises à jour dans le temps
5. L'ESP32 plante ou redémarre
Vérifiez la mémoire heap disponible avec ESP.getFreeHeap()
Réduisez le nombre de lignes de tableau ou d'échantillons de traceur
Assurez-vous que l'alimentation est adéquate (USB 3.0 ou alimentation externe)
6. La connexion se coupe fréquemment
Rapprochez-vous de l'ESP32 (réduisez la distance)
Réduisez la quantité totale de données envoyées
Échelonnez les intervalles de mise à jour pour que les applications n'envoient pas toutes en même temps
Maintenant que vous maîtrisez la combinaison de plusieurs applications Bluetooth, vous avez tous les outils pour construire des projets ESP32 complexes avec des interfaces mobiles riches. Explorez chaque tutoriel d'application individuelle pour une connaissance approfondie de l'API :
Moniteur Bluetooth - Moniteur série basé sur texte
Chat Bluetooth - Messagerie bidirectionnelle
Curseur Bluetooth - Contrôle des valeurs avec curseurs
Joystick Bluetooth - Entrée directionnelle 2D
Température Bluetooth - Affichage de jauge de température
Traceur Bluetooth - Tracé de données en temps réel
Tableau Bluetooth - Affichage de données structurées
Jauge analogique Bluetooth - Affichage de compteur analogique
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 !