Comment configurer et programmer l'ESP32 pour communiquer avec un smartphone Android via Bluetooth

Comment Configurer Et Programmer L Esp32 Pour Communiquer Avec Un Smartphone Android Via Bluetooth



ESP32 est une carte microcontrôleur dotée d'une vaste gamme de capacités. Il dispose de modules Wi-Fi et Bluetooth intégrés. En utilisant ces deux modules, vous pouvez programmer l'ESP32 sans fil. Avec cela, vous n'avez pas à vous soucier des connexions à long fil pour contrôler les périphériques ESP32.

Dans cet article, nous allons connecter une carte ESP32 à un téléphone Android et communiquer des données via Bluetooth. De plus, nous contrôlerons une LED connectée aux broches GPIO de l'ESP32 directement via le smartphone Android.

Contenu:







Qu'est-ce que l'ESP32 Bluetooth LE

ESP32 est une carte microcontrôleur qui prend en charge à la fois Bluetooth Classic et Bluetooth Low Energy, également connu sous le nom de Bluetooth intelligent. Le BLE ou Smart Bluetooth est spécifique pour les communications économes en énergie ou conçu pour les communications à courte portée ou les petits transferts de données.



La fonctionnalité BLE de l'ESP32 lui permet d'agir en tant que serveur ou client dans les communications Bluetooth. Il peut gérer des tâches telles que des services de lecture et d’écriture. Il peut également crypter les connexions et établir les connexions Serial Port Profile (SPP) pour la transmission de données en mode pass-through UART-BLE. L'ESP32 Bluetooth prend en charge les protocoles 4.2, ce qui signifie qu'il est compatible avec différentes couches comme la couche physique (PHY) et la couche de liaison (LL). Il prend également en charge l'interface du contrôleur hôte (HCI), entre autres.



Consultez le tableau des différences pour ESP32 Classic et BLE Bluetooth.





Fonctionnalité Bluetooth classique Bluetooth basse consommation (BLE)
Type de communication Communication soutenue et bidirectionnelle Salves de données intermittentes, principalement unidirectionnelles
Portée opérationnelle Peut atteindre jusqu'à 100 mètres Fonctionne généralement à moins de 100 mètres
Consommation d'énergie Consomme jusqu'à 1 Watt Varie de 10 milliwatts à 500 milliwatts
Vitesse de transfert Les taux de transfert de données varient de 1 à 3 mégabits par seconde Prend en charge 125 kilobits par seconde à 2 mégabits par seconde
Temps de réponse Latence autour de 100 millisecondes Réponse rapide avec une latence de 6 millisecondes
Assistance vocale Equipé d'une transmission vocale Manque de fonctionnalité de transmission vocale

Consultez ces articles Bluetooth ESP32 pour en savoir plus.

Comment programmer l'ESP32 pour communiquer via Bluetooth avec un smartphone Android

Pour programmer l'ESP32 afin qu'il puisse communiquer avec un téléphone Android à l'aide du protocole Bluetooth, vous devez configurer la bibliothèque série Bluetooth ESP32. Pour cela, vous devez disposer d'une configuration Arduino IDE avec une carte ESP32 installée.



Après avoir configuré l'ESP32 Bluetooth, vous devez installer l'application Android série Bluetooth. Cela vous permettra d'envoyer des instructions depuis un téléphone Android vers l'ESP32 en utilisant la communication série Bluetooth.

Examinons de plus près chacune de ces étapes :

Étapes pour connecter l'ESP32 Bluetooth avec un téléphone Android

Pour programmer la carte ESP32 pour la communication Bluetooth, suivez ces étapes :

Étape 1 : Installation de la carte ESP32 dans l'IDE Arduino

Pour installer l'ESP32 sur l'IDE Arduino, suivez simplement le guide fourni dans cet article.

Installation de la carte ESP32 dans l'IDE Arduino

Après l'installation, la carte ESP32 peut être connectée et programmée à l'aide de l'IDE Arduino.

Étape 2 : Téléchargez le code Bluetooth ESP32

Une fois la carte ESP32 installée, vous verrez différentes bibliothèques préinstallées et leurs exemples dans l'IDE Arduino. Toutes ces bibliothèques sont liées à la carte ESP32. Pour la communication série Bluetooth, nous allons utiliser l'ESP32 BluetoothSerial.h exemple de code de bibliothèque.

Pour ouvrir l'exemple de code, ouvrez l'IDE Arduino et accédez à : Fichier > Exemples > BluetoothSerial > SerialtoSerialBT

Pour ouvrir cet exemple de code, assurez-vous que la carte ESP32 est sélectionnée.

Après avoir ouvert l'exemple de code, vous verrez le code suivant dans la fenêtre de votre IDE Arduino :

//Bienvenue sur Linuxindice

#include 'BluetoothSerial.h'

//#define USE_PIN // Décommentez ceci si vous souhaitez un code PIN lors de l'appairage
const carboniser * épingle = '1234' ; // Définir un code PIN d'appairage personnalisé

Chaîne nom_appareil = 'ESP32' ;

#if !défini(CONFIG_BT_ENABLED) || !défini(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth n'est pas activé ! Exécutez `make menuconfig` pour l'activer
#fin si

#if !défini(CONFIG_BT_SPP_ENABLED)
#error Bluetooth série manquant ou non activé. Il n'est disponible que pour la puce ESP32.
#fin si

BluetoothSérie SérieBT ;

vide installation ( ) {
En série. commencer ( 115200 ) ;
SérieBT. commencer ( nom de l'appareil ) ; //Nom de l'appareil Bluetooth
En série. imprimer ( 'Le dispositif ' % s ' a démarré. \n Commencez à coupler votre appareil ! \n ' , nom de l'appareil. c_str ( ) ) ;
//Serial.printf('Le périphérique '%s' avec l'adresse MAC %s est démarré.\nDémarrez le couplage avec Bluetooth !\n', device_name.c_str(), SerialBT.getMacString());
#ifdef USE_PIN
SérieBT. définirPin ( épingle ) ;
En série. imprimer ( 'Utiliser le code PIN' ) ;
#fin si
}

vide boucle ( ) {
si ( En série. disponible ( ) ) {
SérieBT. écrire ( En série. lire ( ) ) ;
}
si ( SérieBT. disponible ( ) ) {
En série. écrire ( SérieBT. lire ( ) ) ;
}
retard ( vingt ) ;
}

Après avoir téléchargé le code, vous verrez le message suivant à l'écran. Ce message indique que votre carte ESP32 est prête pour le couplage.

Étape 3 : Explication du code

Le code a commencé par inclure les bibliothèques nécessaires et vérifier la disponibilité de Bluetooth. Il configure également des variables pour le nom et le code PIN du périphérique Bluetooth.

Dans le installation() fonction, la communication série en bauds est définie et le périphérique Bluetooth est initialisé avec son nom. Un code PIN personnalisé peut être défini pour l'authentification lors du couplage.

Le boucle() La fonction vérifie en permanence les données sur les connexions série et Bluetooth. Cela lui permet d'établir une communication bidirectionnelle entre l'ESP32 et un appareil Bluetooth couplé.

Étape 4 : Installez l'application Android

Une fois le code téléchargé, l'étape suivante consiste à installer et configurer l'application Android pour la connexion Bluetooth.

Ouvrez le Play Store et installez le Terminal Bluetooth série application.

Après l'installation, ouvrez les paramètres Bluetooth du smartphone et connectez votre téléphone avec ESP32 Bluetooth. Si vous avez défini un code PIN dans le code Arduino IDE, vous devez saisir le code PIN sinon il se connectera directement.

Ouvrez maintenant l'application Serial Bluetooth et sélectionnez le Dispositifs option.

Dans le menu nouvellement ouvert, sélectionnez le périphérique ESP32. Cette liste affiche tous les appareils Bluetooth actuellement actifs.

Comme vous pouvez le constater, l'ESP32 Bluetooth est connecté à votre smartphone Android.

Pour tester la connexion, nous allons envoyer une chaîne. Ici, j'ai envoyé deux chaînes différentes.

Vous remarquerez que les deux mêmes chaînes seront également affichées sur le terminal Arduino IDE.

Allons maintenant plus loin et contrôlons un périphérique externe comme une LED à l'aide du Bluetooth ESP32 via le smartphone Android.

Étape 5 : contrôler une LED à l'aide d'un téléphone Android via Bluetooth

Pour contrôler une LED à l'aide de l'ESP32 et d'Android Bluetooth, modifiez d'abord le code ci-dessus et définissez une broche GPIO pour la LED. Après cela, vous devez définir les valeurs pour allumer et éteindre la LED.

Téléchargez le code ci-dessous pour continuer.

#include // Inclut la bibliothèque de communication série Bluetooth

#define LED_PIN 15 // Définir la broche LED

BluetoothSérie SérieBT ; // Crée un objet BluetoothSerial
octet BT_INP ; // Variable pour stocker l'entrée Bluetooth

// Vérifiez si Bluetooth et Bluedroid sont activés dans la configuration du SDK
#if !défini(CONFIG_BT_ENABLED) || !défini(CONFIG_BLUEDROID_ENABLED)
#erreur Bluetooth n'est pas activé. Exécutez `make menuconfig` pour l'activer.
#fin si

vide installation ( ) {
mode pin ( LED_PIN , SORTIR ) ; // Définit la broche LED comme sortie
En série. commencer ( 115200 ) ;
SérieBT. commencer ( 'ESP32' ) ; // Initialisez Bluetooth avec le nom 'ESP32'
En série. imprimer ( 'Le périphérique Bluetooth est prêt à être couplé.' ) ; // Indique que Bluetooth est prêt
}

vide boucle ( ) {
// Vérifiez s'il y a des données disponibles à lire depuis Bluetooth
si ( SérieBT. disponible ( ) ) {
BT_INP = SérieBT. lire ( ) ; // Lire l'octet entrant depuis Bluetooth
En série. écrire ( BT_INP ) ; // Répercute l'octet lu sur le moniteur série
}

// Vérifiez les données Bluetooth reçues et définissez l'état de la LED
si ( BT_INP == '1' ) {
écriture numérique ( LED_PIN , HAUT ) ; // Allume la LED si '1' est reçu
} autre si ( BT_INP == '0' ) {
écriture numérique ( LED_PIN , FAIBLE ) ; // Éteint la LED si '0' est reçu
}
}

Ce code permet à un microcontrôleur ESP32 de contrôler une LED via Bluetooth. Il comprend une bibliothèque pour la communication Bluetooth. Ensuite, il définit la broche LED et configure Bluetooth avec un appareil nommé ESP32. La boucle principale lit les données Bluetooth et allume ou éteint la LED en fonction de la commande reçue (1 pour ON, 0 pour OFF).

Schéma

Le schéma de circuit est simple, avec une LED connectée à la broche J15 de l'ESP32. Vous pouvez définir n'importe quel autre GPIO pour le contrôle des LED.

En rapport: Référence de brochage ESP32 – Guide ultime

Matériel

Côté matériel, vous aurez besoin d'une maquette, d'une carte ESP32 et d'une LED. Connectez l'ESP32 au système et téléchargez-y le programme.

Envoyez maintenant 1 et 0 depuis l'application de communication série Bluetooth du téléphone Android.

Vous verrez la même entrée sur le terminal Arduino IDE reçue du téléphone Android.

Sortir

Une fois que vous envoyez la valeur haute ou 1, la LED s'allumera, de même lorsque vous envoyez la valeur basse, la LED s'éteindra.

Définir un bouton personnalisé

Vous pouvez également définir un bouton personnalisé dans l'application Serial Bluetooth. Par exemple, un bouton de valeurs ÉLEVÉES et FAIBLES peut être créé. De cette façon, vous n’avez pas besoin de saisir manuellement les valeurs. Au lieu de cela, il vous suffit d'appuyer sur le bouton de raccourci et il exécutera l'instruction que vous avez définie.

Note: Pour ouvrir les paramètres du bouton, appuyez longuement sur le bouton.

Pour définir la valeur du bouton HIGH, définissez les paramètres suivants.

Similitude pour la valeur du bouton FAIBLE, vous devez définir les paramètres ci-dessous.

Nous avons connecté avec succès la carte ESP32 à un téléphone Android via Bluetooth. Vous pouvez désormais créer de nombreux projets en l'utilisant. Par exemple, vous pouvez contrôler vos appareils électroménagers à l’aide du Bluetooth ESP32 via un circuit de relais.

En rapport: Relais avec ESP32 utilisant l'IDE Arduino

Conclusion

ESP32 est une carte microcontrôleur avancée dotée de capacités Wi-Fi et Bluetooth. Ces deux modules intégrés vous aident à concevoir des projets avancés et à contrôler les périphériques sans fil. De même, vous pouvez connecter l'ESP32 à un téléphone Android et effectuer différentes opérations. Pour cela, vous devrez installer l’application Bluetooth Serial Android. Une fois installé, ouvrez l'exemple de code pour ESP32 Bluetooth et téléchargez-le sur votre carte. Une fois le code téléchargé, vous pouvez le coupler à votre carte via un téléphone Android.