Exemple applications Bluetooth multiples Arduino Nano ESP32 - Tutoriel BLE tout-en-un
Vue d'ensemble
Cet exemple démontre l'exécution de 9 widgets d'application Bluetooth simultanément sur un seul Arduino Nano ESP32 en utilisant le BLE. En utilisant le BLE (Bluetooth Low Energy), le sketch combine Moniteur, Chat, Curseur, Joystick, Température, Traceur, Tableau, Jauge analogique et Rotateur dans un seul sketch. Tous les widgets partagent une seule connexion BLE et peuvent interagir entre eux. Convient aux tableaux de bord complets, projets IoT complexes et apprentissage de plusieurs types de widgets à la fois.
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.
Fonctionnalités
9 widgets en un : Moniteur, Chat, Curseur, Joystick, Température, Traceur, Tableau, Jauge analogique, Rotateur
Interaction entre widgets : Le curseur met à jour la jauge et le tableau ; le joystick met à jour le tableau, etc.
Connexion BLE unique : Tous les widgets partagent une connexion efficacement
Mises à jour en temps réel : Chaque widget se met à jour à son propre intervalle configuré
Tableau de bord complet : Consultez toutes les données depuis un seul appareil
Support Android et iOS : Le BLE est compatible avec les deux plateformes
Pas de couplage requis : Le BLE se connecte sans couplage 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.
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
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
DIYables Bluetooth - Multiple Apps 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.
Appuyez sur "DIYables Multi-App" dans les résultats du scan.
Après la connexion, l'écran d'accueil affiche tous les widgets d'application disponibles. Les 9 widgets initialisés dans le sketch Arduino répondront et fonctionneront — les autres widgets sur l'écran d'accueil apparaîtront mais ne fonctionneront pas avec ce sketch.
Ouvrez l'un des widgets suivants pour interagir avec l'Arduino : Moniteur, Chat, Curseur, Joystick, Température, Traceur, Tableau, Jauge analogique, Rotateur.
Passez librement entre les widgets — tous partagent la même connexion BLE.
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
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Bluetooth connected!
Monitor: System running, uptime: 5s
Chat message: Hello
Slider value: 128
Joystick: X=0.50, Y=-0.30
Temperature: 22.50 °C
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
Comment ça fonctionne
Initialisation des applications
Chaque widget est créé avec sa propre configuration et ses callbacks :
// All apps share the same Bluetooth serverDIYables_BluetoothServer bluetoothServer(bluetooth);// Create individual appsDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothChat bluetoothChat(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 255, 1);DIYables_BluetoothJoystick bluetoothJoystick(bluetoothServer, false, 5);DIYables_BluetoothTemperature bluetoothTemp(bluetoothServer, -10.0, 50.0, "°C");DIYables_BluetoothPlotter bluetoothPlotter(bluetoothServer);DIYables_BluetoothTable bluetoothTable(bluetoothServer);DIYables_BluetoothAnalogGauge bluetoothGauge(bluetoothServer, 0.0, 100.0, "%");DIYables_BluetoothRotator bluetoothRotator(bluetoothServer, ROTATOR_MODE_CONTINUOUS);
Interaction entre applications
Les applications peuvent interagir entre elles. Lorsqu'un widget reçoit une entrée, il peut mettre à jour d'autres widgets :
L'exemple crée un tableau avec 10 lignes affichant les données de toutes les applications :
Ligne
Étiquette
Description
0
Statut
Statut de connexion/fonctionnement
1
Durée de fonctionnement
Temps depuis le démarrage
2
Curseur 1
Valeur actuelle du curseur
3
Curseur 2
Valeur du deuxième curseur
4
Joystick X
Position X du joystick
5
Joystick Y
Position Y du joystick
6
Température
Température actuelle
7
Valeur jauge
Pourcentage actuel de la jauge
8
Angle rotateur
Angle de rotation actuel
9
Messages
Nombre de messages de chat
Personnalisation créative - Adaptez le code à votre projet
Ajouter ou supprimer des widgets
N'incluez que les widgets nécessaires à votre projet :
// Minimal setup: just Monitor and SliderDIYables_BluetoothMonitor bluetoothMonitor(bluetoothServer);DIYables_BluetoothSlider bluetoothSlider(bluetoothServer, 0, 100, 1);// That's it! The app will only show these two
Logique personnalisée entre applications
// Example: Temperature alarm via Monitorvoid checkTemperatureAlarm(float temp) {if (temp > 40.0) { bluetoothMonitor.send("⚠️ HIGH TEMP ALERT: " + String(temp, 1) + "°C"); bluetoothChat.send("Temperature alarm triggered!"); }}
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. Certains widgets ne s'affichent pas dans le menu
Tous les widgets initialisés apparaîtront automatiquement
Vérifiez que chaque objet widget est correctement créé
L'application découvre les widgets disponibles depuis l'Arduino
3. Les mises à jour semblent lentes
Chaque widget a différents intervalles de mise à jour par conception
La bande passante BLE est limitée ; trop de mises à jour rapides peuvent causer une congestion
Réduisez la fréquence de mise à jour pour les widgets qui ne nécessitent pas de données en temps réel
4. Les mises à jour entre widgets ne fonctionnent pas
Vérifiez que les fonctions de callback sont correctement enregistrées
Vérifiez que les noms de lignes de tableau correspondent exactement (sensible à la casse)
Confirmez que l'objet widget cible est accessible dans la portée du callback
5. Problèmes de mémoire ou plantages
L'exécution de 9 widgets utilise une mémoire significative
Supprimez les widgets inutilisés pour libérer des ressources
Réduisez le nombre de lignes du tableau si nécessaire
6. 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
Tableau de bord IoT complet
Panneau de contrôle de robot (joystick + moniteur + curseurs)
Station météo (température + jauge + traceur + tableau)
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 !