Bluetooth LE - ESP32

-Présentation:


L'ESP32 intègre le Bluetooth 4.0 LE Low Energy parfaitement adapté aux objets connectés.


Le BluetoothLE ('BLE') est une variante du Bluetooth qui a une consommation d'énergie réduite. L'application principale du BLE est la transmission à courtes distances de petites quantités de données. La latence et le débit sont réduits par rapport au Bluetooth classique. Le BLE est utilisable en liaison point à point ou en réseau maillé.


/!\ Attention, Il faut activer la localisation sur le client (smartphone)

/!\ Attention, la version BLE a changé, cette bibliothèque a été testé avec le Firmware esp32-idf3-20200411-v1.12-357.bin et ne fonctionnera pas avec d'autres Firmwares.


Télécharger la bibliothèque : esp_ble_uart.zip et l'installer (voir le tutoriel)


-Principe serveur et client:


La communication est basée sur deux rôles :

    • Client : Un périphérique qui initie la communication, qui lance des commandes et des requêtes et accepte des réponses, par exemple un smartphone.

    • Serveur : Un périphérique qui est à l'écoute, qui reçoit des commandes et des demandes, et renvoie des réponses, par exemple un capteur de pulsation cardiaque.


Le serveur annonce son existence, afin qu'il puisse être trouvé par d'autres périphériques, et contient les données que le client peut lire.

Le client scanne les périphériques à proximité, et lorsqu'il trouve le serveur qu'il recherche, il établit une connexion et écoute les données entrantes. C'est ce qu'on appelle la communication point à point.


Exemple pour la bibliothèque Bluetooth UART :

Le serveur expose à un client des données, appelées service ou caractéristique. Elles sont identifiées par un nombre nommé UUID.

Ex : 6E400003-B5A3-F393-E0A9-E50E24DCCA9E On peut choisir un UUID aléatoire pour des utilisations propriétaires.


UART_TX

Le client peut demander une notification pour une caractéristique particulière du serveur. Le serveur peut alors envoyer la valeur au client dès qu’elle est disponible.

Par exemple, un serveur de pulsation cardiaque peut avertir son client chaque fois qu’il prend une mesure. Cela évite au client de devoir interroger le serveur et économise de l'énergie.


UART_RX

Le client écrit une donnée sur le serveur avec confirmation (OK).


-Programme ESP32 MicroPython pour envoyer et recevoir des données en BluetoothLE :

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-Pilotage par Smartphone Androïd


-Utiliser l'application Serial Bluetooth Terminal pour Android qui permet de faire des tests d'envoi / réception de données à partir d'un Smartphone.

ou

-Application AppInventor pour le pilotage du programme d'envoi et réception de données à télécharger : app_inventor_esp_ble_uart.zip