ESP32 prend en charge le double Bluetooth contenant Bluetooth Classic et le Bluetooth Low Energy (BLE). Dans cet article, nous discuterons du fonctionnement de ces deux Bluetooth.
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.
Voici les deux modes Bluetooth disponibles dans la carte ESP32:
1: ESP32 Bluetooth Classic avec Arduino IDE
La carte ESP32 est livrée avec un double support Bluetooth, un est Bluetooth Classic et le second est BLE (Bluetooth Low Energy). Aujourd'hui, nous discuterons de Bluetooth Classic uniquement. La seule différence qui existe entre les deux est que Bluetooth Classic peut gérer beaucoup de transfert de données, mais consomme la batterie à un taux plus élevé, mais Bluetooth Low Energy est une variante de conservation de puissance qui est utilisée pour une communication de courte distance. BLE reste en mode veille jusqu'à ce qu'il soit initialisé pour le transfert de données.
ESP32 Bluetooth Classic Serial Communication
ESP32 est livré avec des modules Bluetooth intégrés qui reçoivent d'abord des données, puis le transfèrent au processeur Xtensa. Donc, pour établir cette communication «BluetoothSerial» La bibliothèque est utilisée qui est similaire à la bibliothèque série Arduino, mais elle est juste dans ESP32. Voici quelques fonctions offertes par Bluetooth Serial Library:
LED contrôlée Bluetooth à l'aide d'ESP32
Écrivons un code simple qui peut contrôler une LED à l'aide de la communication sans fil Bluetooth mobile sur Bluetooth. Voici le matériel requis pour contrôler la LED à l'aide de la communication série Bluetooth:
Circuit
Connectez LED à la broche numérique 15 de ESP32 avec un terminal négatif connecté à GND de la carte ESP32. Pour une limite de courant sûre, nous pouvons également connecter la résistance (220 ohms) entre elles:
Code
Ouvrez Arduino IDE et sélectionnez la carte ESP32 dans le gestionnaire de cartes pour voir comment installer la carte ESP32 dans Arduino IDE Cliquez ici. Après avoir sélectionné la carte, écrivez le code ci-dessous dans la fenêtre de l'éditeur:
#include / * bibliothèque de communication série Bluetooth * / /Ici, dans le code ci-dessus, nous avons commencé par inclure la bibliothèque série Bluetooth pour ESP32. Ensuite, nous avons inclus des fonctions de bibliothèque série Bluetooth qui permettront le Bluetooth ESP32.
La broche LED suivante 15 est initialisée et en utilisant le pinMode () La broche LED de fonction est définie comme sortie.
Dans la partie de boucle du code, le programme vérifiera la disponibilité des données Bluetooth en série. Si les données d'entrée sont 1 LED s'allument et si les données reçues sont 0 LED s'éteindront.
Une fois le code téléchargé. Bluetooth de la carte ESP32 s'allume et le message suivant apparaîtra sur le moniteur série:
Installation du terminal Bluetooth en série sur le smartphone
Nous avons besoin d'un périphérique Bluetooth qui peut envoyer des instructions à ESP32 afin que nous utiliserons un smartphone Android pour l'interfacer avec ESP32 Bluetooth. Tout d'abord, nous devons installer un terminal série dans un téléphone Android. Suivez les étapes ci-dessous pour interfacer le téléphone Android avec ESP32:
Étape 1: Ouvrez Google Play Store sur votre smartphone et recherchez Terminal Bluetooth en série. Installez l'application ci-dessous:
Étape 2: Après l'installation, ouvrez les paramètres Bluetooth du téléphone mobile. Recherchez Bluetooth ESP32 et cliquez pour commencer à le jumeler avec votre smartphone en cliquant sur Paire:
Étape 3: Après avoir tapé sur un Paire, Le téléphone mobile commencera à s'associer avec ESP32 Bluetooth:
Étape 4: Ouvrez maintenant l'application de terminal Bluetooth en série et allez à Dispositifs Dans le menu latéralement:
Étape 5: Une fois l'option de périphérique ouverte, il demandera des autorisations ou appuyez sur le RAFRAÎCHIR bouton dans le coin supérieur droit:
Étape 6: La fenêtre contextuelle suivante viendra cliquer sur Paramètres et permettre l'autorisation qu'il demande:
Étape 7: Maintenant, la carte ESP32 est prête à prendre des instructions sur Bluetooth. Sous Bluetooth Classic Option Sélectionnez la carte ESP32:
Étape 8: Une fois ESP32 sélectionné, il commencera à se connecter et en cas de succès, un Connecté Le message apparaîtra:
Étape 9: Maintenant, nous pouvons envoyer des instructions en la tapant ici. Taper 1 Et cliquez sur le bouton Envoyer, la LED sur la carte ESP32 s'allumera. De même, en tapant 0 LED s'éteindra:
De même, nous pouvons voir la sortie sur le moniteur en série de l'arduino IDE ce qu'il reçoit:
Sortir
LED s'allume après avoir envoyé 1:
LED s'éteint après avoir envoyé 0:
Note: Nous pouvons également configurer des boutons pour des instructions spécifiques comme indiqué dans l'image ci-dessous. Pour ce faire, cliquez sur les boutons et définissez la valeur que vous souhaitez. Ici, nous avons établi deux boutons un pour un haut et un autre pour un état bas. Vous pouvez également configurer ces raccourcis en valeurs hexadécimales.
2: ESP32 Bluetooth Low Energy (BLE) avec Arduino IDE
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 la pression artérielle, la sécurité et la domotique. 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 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.
Serveur et client
Bluetooth Low Energy prend en charge l'appareil de deux manières différentes en raison de laquelle 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 a plus d'un 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: UUID (identifiant universellement unique) est donné à chaque service et 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 une carte 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 périphérique BLE nommé ESP32 et après cela, nous avons défini le périphérique BLE comme un serveur à l'aide du 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
Le code donné sera utilisé dans la carte scanner ESP32. Ouvrez IDE et téléchargez le code, n'oubliez pas de déconnecter d'autres cartes avant de télécharger le code du 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 Le 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 la technologie BLE pour communiquer avec différents appareils tels que la smartwatch, les appareils portables, les capteurs et autres appareils domestiques. Ici ESP32 est un point d'accès pour les appareils. 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é comme mentionné dans l'image ci-dessous:
Étape 6: Pour écrire toute nouvelle valeur caractéristique Cliquez W:
Étape 7: Une nouvelle fenêtre contextuelle apparaîtra ici où nous pourrons écrire n'importe quelle valeur caractéristique et cliquer D'accord:
Étape 8: La nouvelle valeur écrite apparaîtra comme indiqué dans l'image:
É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 deux Bluetooth qui sont Bluetooth Classic et Bluetooth Low Energy. Ici, dans cet article, nous avons discuté à la fois Bluetooth Classic et BLE et ses diverses applications et fonctionnant. Bluetooth Classic est utilisé pour un transfert de données élevé tandis que BLE (Bluetooth Low Energy) est utilisé pour de courtes distances avec moins de fonctions d'alimentation. Cet article donne un guide ultime du travail Bluetooth de la carte ESP32 et comment les configurer.