Bluetooth LE
L'ESP32 intègre le Bluetooth 4.0 LE Low Energy parfaitement adapté aux objets connectés. Le Bluetooth LE est une variante du Bluetooth qui engendre une consommation d'énergie extrêmement 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_v2.zip et l'installer (voir le tutoriel)
Exemples de programmes :
L'application Serial Bluetooth Terminal pour Android permet de faire des tests d'envoi / réception de données à partir d'un Smartphone.
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).
BluetoothLE UART envoi de données |
ESP32 Micropython programme pour envoyer en BluetoothLE des données
|
L'application Serial Bluetooth Terminal pour Android permet de faire des tests d'envoi / réception de données à partir d'un Smartphone.
Avec un terminal série on peut ajouter \n pour aller à la ligne : uart.write(str(val_tx) + '\n')
Pensez à personnaliser vos UUID dans le cas de l'utilisation de plusieurs périphériques.
BluetoothLE UART envoi et réception de données |
Programme ESP32 Micropython pour envoyer et recevoir en BluetoothLE des données
from esp_ble_uart import * nom = 'ESP32-ble-uart-gcworks'
|
L'application Serial Bluetooth Terminal pour Android permet de faire des tests d'envoi / réception de données à partir d'un Smartphone.
Bluetooth UART App Inventor pilotage Néopixels |
Programme App Inventor à télécharger : app_inventor_esp_ble_uart_neopixel.zip Version projet App Inventor aia esp_ble_uart_aia.zip Tutoriel App Inventor |
Programme ESP32 Micropython pour communiquer en Bluetooth avec App Inventor en UART émetteur Tx-récepteur Rx asynchrone + Néopixels
from esp_ble_uart import *
|
BluetoothLE UART App Inventor envoi et réception de données |
Programme App Inventor à télécharger : app_inventor_esp_ble_uart.zip Tutoriel App Inventor Utiliser le programme BluetoothLE UART envoi et réception de données |
Créé avec HelpNDoc Personal Edition: Produire des aides en ligne pour les applications Qt