ESP32 prend en charge la basse énergie Bluetooth Classic et Bluetooth. Ici, nous nous concentrerons sur Bluetooth à faible énergie. Voyons-le en détail.
Qu'est-ce que Bluetooth à faible énergie
Ble ou Bluetooth Low Energy est un mode d'économie d'énergie de Bluetooth. Son application principale comprend le transfert de données sur de courtes distances telles que l'entrée de porte, les montres intelligentes, les appareils portables, le moniteur de pression artérielle, la sécurité et les autorités domestiques. BLE peut transférer des données limitées.
Contrairement à Bluetooth Classic qui reste activé pendant tout le temps que BLE reste en mode veille, sauf lorsqu'il est appelé ou que la connexion est initiée. Cela rend le BLE très économe en puissance et consomme 100 fois moins de puissance que la puissance classique.
Voici une brève comparaison de Bluetooth Classic avec Bluetooth Low Energy:
spécification | Bluetooth Classic | Bluetooth basse énergie / ble |
Taux de transfert des données | 2-3Mbps | 1Mbps |
Gamme | ~ 10-100m | ~ 50m |
Fréquence de fonctionnement | 79 RF | 40 RF |
Consommation de courant maximal | ~ 30mA | <15mA |
Consommation d'énergie | 1W | 0.01-0.5W |
Temps total pour envoyer des données | 100 ms | 3 ms |
Applications | Audio, diffusion de musique | Capteur, portables |
Pour une comparaison plus détaillée, cliquez ici pour visiter le site officiel de Bluetooth.
Serveur et client
Bluetooth Low Energy prend en charge l'appareil de deux manières différentes: serveur et client. ESP32 peut agir en tant que serveur ainsi que client pour Bluetooth à faible énergie.
Support BLE suivant les modes de communication:
Lorsque vous agissez en tant que serveur, ESP32 annonce son existence aux appareils clients à proximité. Une fois que les périphériques clients ont scrutant les périphériques Bluetooth disponibles, le serveur établit une connexion entre eux et transfère les données du serveur au périphérique client. Cette communication est appelée point à point.
Dans ce tutoriel, nous prendrons un exemple de communication point à point entre deux planches ESP32.
Termes importants dans BLE
Voici quelques termes importants que l'on devrait connaître tout en travaillant avec des applications ESP32 BLE:
GATT: GATT ou Attributs génériques qui définissent une structure hiérarchique pour les transferts de données entre les appareils BLE en utilisant le service et les caractéristiques. Il définit la façon dont deux appareils communiquent les données entre eux.
Service BLE: Le niveau supérieur à l'intérieur de la hiérarchie GATT est un profil qui contient un ou plusieurs services. Ble contient plus d'un seul service. Chacun de ces services a ses propres caractéristiques qui peuvent également agir comme référence pour d'autres services.
Caractéristique ble: La caractéristique est un groupe d'informations toujours détenues par le service; C'est là que les données réelles sont stockées dans la hiérarchie (valeur). Il contient toujours deux attributs:
Uuid: L'UUID (identifiant universellement unique) est une pièce d'identité unique donnée à un service et à une caractéristique. Il s'agit d'un identifiant 128 bits unique qui peut être généré à l'aide de n'importe quel générateur UUID en ligne. Vérifiez ce générateur UUID gratuit. Un échantillon UUID ressemble à ceci:
583F8B30-74B4-4757-8143-56048FD88B25Un groupe d'intérêt spécial Bluetooth universel (SIG) a prédéfini certains des UUID raccourcis pour différents types de services et de profil pour les lire Cliquez ici.
Configurez BLE dans ESP32 avec Arduino IDE
Pour comprendre le fonctionnement de BLE, nous utiliserons deux cartes ESP32 différentes, l'un d'eux agira comme serveur et annoncer un signal Bluetooth tandis que l'autre ESP32 qui agit comme un client essaiera de connecter le serveur Bluetooth.
Arduino IDE a des exemples distincts pour le scanner et le serveur.
Pour voir comment installer un ESP32 avec Arduino IDE dans Windows, cliquez ici.
ESP32 BLE Server
Tout d'abord, nous téléchargerons un exemple d'exemple de serveur dans notre première carte ESP32 qui agit comme un serveur.
Pour ouvrir l'exemple du serveur BLE, allez à: Fichier> Exemples> ESP32 BLE ARDUINO> BLE_SERVER:
Le code donné ci-dessous sera ouvert dans Arduino IDE.
Code de serveur
Téléchargez le code ci-dessous dans la carte ESP32 à l'aide d'Arduino IDE. Mais assurez-vous de déconnecter la deuxième carte pendant un certain temps pour éviter de télécharger le même code sur une seule carte.
#inclureLe code commence par inclure les fichiers de bibliothèque Bluetooth nécessaires. Ensuite, l'UUID est défini pour le service et la caractéristique. Vous pouvez aller avec l'UUID par défaut ou générer en utilisant le générateur UUID gratuit. La prochaine communication série est initialisée en définissant le taux de bauds.
Ensuite, nous avons créé un appareil BLE nommé ESP32. Après cela, nous avons défini le périphérique BLE comme un serveur en utilisant le createServer () fonction et plus tard nous définissons la valeur caractéristique. À la dernière étape, nous avons commencé le service en le publiant pour que d'autres appareils puissent le rechercher.
Scanner ESP32 BLE
Nous allons maintenant télécharger un exemple de numérisation ESP32 dans la deuxième carte ESP32. Pour ce faire, allez à: Fichier> Exemples> ESP32 BLE ARDUINO> BLE_SCAN
Le code ci-dessous sera ouvert dans Arduino IDE Editor.
Code de scanner
#inclureLe code ci-dessus recherchera le nombre d'appareils disponibles totaux pour BLE et affichera leur nombre total avec des adresses. Après le téléchargement du code dans la carte de scanner ESP32, appuyez sur le Activer Bouton, la carte ESP32 recherchera automatiquement les appareils disponibles.
Sortir
Une fois que l'ESP32 a analysé les appareils disponibles, le résultat suivant apparaîtra. Ici ESP32 a scanné 9 appareils parmi lesquels un est une carte ESP32 avec du code BLE_SERVER et un autre appareil est MI Band 6. Le reste de tous les appareils sont disponibles près de mon ESP32.
Comment corriger la bibliothèque de numérisation ESP32 BLE sans compter les appareils
L'exemple de bibliothèque ESP32 Scan a un bug de ne pas compter le nombre total d'appareils. Pour rectifier ce problème, accédez à l'emplacement mentionné et remplacez le code ci-dessous.
C: \ Users \ username \ appdata \ local \ arduino15 \ packages \ esp32 \ matériel \ esp32 \ 1.0.6 \ bibliothèques \ ble \ src \ blescan.cppSe souvenir de inutile Tous les dossiers car le dossier AppData à l'intérieur du répertoire C reste caché par défaut. Après avoir ouvert le fichier source BLE_SCAN .cpp Remplacez l'état donné ci-dessous à l'intérieur du code.
if (m_padvertiseddeviceCallbacks)Test du serveur ESP32 BLE avec téléphone intelligent
La plupart des smartphones modernes fonctionnent avec BLE Technology pour communiquer avec différents appareils tels que Smartwatch, les appareils portables, les capteurs et autres appareils domestiques. Ici, la carte ESP32 agira comme un point d'accès. Nous allons donc connecter un téléphone Android avec une carte ESP32.
Code de serveur BLE pour l'accès au smartphone ESP32
Téléchargez le code donné ci-dessous dans la carte ESP32.
#include / * bibliothèque Bluetooth incluse * /Installation de l'application BLE dans un smartphone Android
Les étapes suivantes vous guideront vers l'installation d'applications BLE dans les smartphones et aideront à interface des appareils mobiles avec des cartes ESP32.
Étape 1: Installation d'ouvrir Google Play Store Scanner BLE application.
Étape 2: Après l'installation, ouvrez l'application et autorisez toute l'autorisation requise et n'oubliez pas d'activer le Bluetooth mobile.
Étape 3: Méalienne maintenant pour les appareils Bluetooth disponibles. Connectez la carte ESP32.
Étape 4: Une fois que la carte ESP32 est connectée au smartphone après que la spécification de la carte ESP32 apparaîtra. Ici, nous pouvons voir les adresses UUID et lire et écrire de nouvelles valeurs caractéristiques.
Étape 5: Pour lire la valeur caractéristique enregistrée, cliquez R. Le résultat sera affiché.
Étape 6: Pour écrire toute nouvelle valeur caractéristique Cliquez W.
Étape 7: Une nouvelle fenêtre contextuelle apparaîtra ici, nous pouvons écrire n'importe quelle valeur caractéristique et cliquer D'accord.
Étape 8: Une nouvelle valeur écrite apparaîtra.
Étape 9: De plus, nous pouvons voir la même nouvelle valeur caractéristique imprimée sur le moniteur en série d'Arduino IDE.
Nous avons réussi à connecter un appareil avec ESP32 BLE.
Conclusion
ESP32 est livré avec du double Bluetooth qui est classique et à faible énergie. Ici, dans cet article, nous avons discuté de BLE et de ses diverses applications et de travail. Plus tard, nous avons configuré BLE avec deux cartes ESP32 différentes avec l'un agissant comme serveur et autre comme scanner. Enfin, nous avons connecté notre smartphone avec le serveur ESP32 et avons écrit une nouvelle valeur caractéristique.