- Qu'est-ce que BLE et Bluetooth Beacon?
- Comment la technologie BLE fonctionne-t-elle et est-elle utilisée avec les balises?
- Qu'est-ce que Eddystone Beacon?
- Exigences
- Configurer Raspberry Pi pour Eddystone Beacon
- Optimiser la puissance du signal d'émission en calibrant la puissance Tx
- Applications de la balise Bluetooth Eddystone
Bluetooth est l'une des technologies révolutionnaires pour transférer sans fil les données, contrôler d'autres appareils, construire des systèmes domotiques, etc. checkout etc. Il existe un protocole développé par Google pour effectuer la tâche qui peut être facilement déployé dans Raspberry Pi pour en faire un diffuseur Bluetooth Beacon.
Dans ce tutoriel, nous apprendrons à connaître BLE (Bluetooth Low Energy) et la balise Bluetooth et installerons la balise Bluetooth Eddystone dans Raspberry Pi pour diffuser une URL. Il est très facile de convertir Raspberry Pi en une balise Bluetooth car il a Bluetooth intégré.
Qu'est-ce que BLE et Bluetooth Beacon?
Le Bluetooth Low Energy, comme son nom l'indique, consomme moins d'énergie que le Bluetooth classique. Il est réalisé en envoyant des données au besoin avec des mises à jour périodiques prédéfinies. Mais contrairement au Bluetooth classique, il n'est pas utilisé pour transférer des fichiers ou de la musique. Un appareil BLE fonctionne avec Bluetooth V4.0 et peut fonctionner avec une faible consommation en tant que serveur ou en tant que client, ce qui fait de BLE un choix idéal pour les balises, les montres intelligentes, les bracelets de fitness, etc. Protocole Bluetooth que nous utilisons pour transférer des fichiers et d'autres données. Presque tous les appareils BLE sont associés à la fonctionnalité Bluetooth classique. Nous avons précédemment expliqué BLE en détail avec ESP32.
Balises Bluetooth:
Les balises sont les dispositifs matériels qui diffusent certains messages aux dispositifs électroniques à proximité et se comportent comme un diffuseur. Cette technologie permet aux appareils portables d'effectuer certaines actions lorsqu'ils sont à proximité immédiate d'un dispositif de balise. Désormais, les balises peuvent être implémentées en utilisant BLE et Bluetooth classique. Depuis, la plupart des smartphones et autres appareils électroniques sont compatibles avec BLE et peuvent être utilisés comme récepteur Beacon, donc la mise en œuvre de la balise BLE est plus efficace que la balise Bluetooth classique pour réduire la consommation d'énergie.
En moyenne, une balise Bluetooth Low Energy peut transmettre des signaux BLE jusqu'à 80 mètres.
Comment la technologie BLE fonctionne-t-elle et est-elle utilisée avec les balises?
BLE est une technologie à faible consommation d'énergie conçue pour les communications à courte portée et est préférable lorsque la durée de vie de la batterie est un facteur plus important qu'un débit de données élevé. Le transfert de données dans cette communication est à sens unique. La balise BLE transmet de petits paquets de données à des intervalles de temps réguliers. Ces paquets de données sont reçus et décodés par l'application de scanner de balises installée dans les smartphones. Ces données reçues déclenchent des actions telles que la promotion d'un produit ou l'envoi d'un message.
Dans la balise Bluetooth, un numéro d'identification est transmis 10 fois par seconde par le via les canaux BLE. Ensuite, ce numéro d'identification est reçu par l'appareil compatible Bluetooth et reconnu par l'application du scanner de balises, il le lie à une action, telle que télécharger une application ou un élément de contenu stocké sur le cloud, et l'affiche sur le smartphone.
Qu'est-ce que Eddystone Beacon?
Eddystone est un protocole développé par Google qui permet de diffuser des messages à sens unique vers les appareils BLE. Le cadre Eddystone-URL forme l'épine dorsale du Web physique, ce qui aide à la découverte du contenu Web dans les environs. Beacon peut diffuser quatre types de données en utilisant le protocole Eddystone. Ils sont les suivants:
- Eddystone-URL pour la diffusion d'adresses URL
- Eddystone-UID pour la diffusion des identifiants des balises
- Eddystone-TLM pour la diffusion de la télémétrie des balises comme la température de l'appareil, la puissance de la batterie, etc.
- Eddystone-EID pour la sécurité.
Il existe également d'autres types de balises comme iBeacon, qui est destiné aux appareils pris en charge par iOS, mais Eddystone est uniquement destiné aux appareils Android. Notez également que Google a arrêté les notifications à proximité, l'utilisateur devra désormais installer une application de scanner de balises spécialisée qui affichera le contenu diffusé.
Dans ce tutoriel, nous utiliserons Raspberry Pi comme balise Eddystone et nous concentrerons sur la diffusion d'adresse URL à l'aide de l'URL Eddystone afin que tout le monde puisse facilement accéder aux informations diffusées à l'aide de leurs appareils Android.
Exigences
Ici, seul Raspberry Pi est nécessaire pour construire cette balise Bluetooth. Il devrait s'agir de Raspberry Pi 2 ou plus récent avec Raspbian Jessie ou un OD plus récent installé.
Ici, nous utiliserons SSH pour accéder à Raspberry Pi sur l'ordinateur portable. Vous pouvez utiliser la connexion VNC ou Remote Desktop sur l'ordinateur portable, ou connecter votre Raspberry pi à un moniteur. En savoir plus sur la configuration de Raspberry Pi sans tête ici sans moniteur.
Configurer Raspberry Pi pour Eddystone Beacon
Il est très facile de configurer le diffuseur Eddystone sur Raspberry Pi. Il n'implique que 3 commandes.
Cela peut être fait en configurant le HCI (Host Controller Interface) qui peut être accessible à l'aide de la commad hciconfig. Pour vérifier ce qui peut être fait à l'aide de cette commande, entrez la commande ci-dessous dans le terminal.
hciconfig -h
1. Tout d'abord, nous devons activer le périphérique Bluetooth sur notre Raspberry Pi en utilisant la commande ci-dessous.
sudo hciconfig hci0 vers le haut
2. Maintenant, nous devons configurer le Bluetooth pour "annoncer et non connectable" appareil en utilisant la commande ci-dessous.
sudo hciconfig hci0 leadv 3
3. Les commandes ci-dessus permettent à l'appareil d'exécuter un service de diffusion, il vous suffit maintenant de saisir les données de la balise dans la commande suivante qui contient différentes informations sur les trames et l'URL au format hexadécimal. Exécutez la commande ci-dessous pour démarrer la diffusion des balises.
sudo hcitool -i hci0 cmd 0x08 0x0008 1c 02 01 06 03 03 aa fe 14 16 aa fe 10 00 02 63 69 72 63 75 69 74 64 69 67 65 73 74 07 00 00 00
Cette commande diffusera l'URL
Pour vérifier le message diffusé sur votre téléphone intelligent, téléchargez l'application Web physique ou le scanner Beacon sur votre smartphone Android et lancez la numérisation. Vous verrez le lien diffusé dans l'application comme indiqué ci-dessous. Cliquez sur le lien pour visiter et ouvrir le site Web dans le navigateur.
Maintenant, comprenons le codage hexadécimal du message. Dans le tableau ci-dessous, nous avons donné une explication de chaque valeur présente dans le code:
Valeur |
La description |
---|---|
0x08 |
#OGF = Champ du groupe d'opérations = Groupe de commandes Bluetooth = 0x08 |
0x0008 |
#OCF = Champ de commande d'opération = HCI_LE_Set_Advertising_Data = 0x0008 |
1c |
Longueur. Le 1c hexadécimal est converti en 23 décimal qui est le nombre d'octets qui suivent. |
02 |
Longueur |
01 |
Indique la valeur du type de données |
06 |
Drapeaux des données |
03 |
Longueur |
03 |
Liste complète des valeurs de type de données UUID de service 16 bits |
aa |
UUID Eddystone 16 bits |
fe |
UUID Eddystone 16 bits |
14 |
Longueur. L'hexadécimal 14 se convertit en 15 décimal qui est le nombre d'octets qui suivent |
16 |
Valeur du type de données Service Data |
aa |
UUID Eddystone 16 bits |
fe |
UUID Eddystone 16 bits |
dix |
Type de cadre = URL |
00 |
TX Power (cela doit être calibré) |
02 |
Schéma d'URL (http: // = 0x02) |
63 |
'c' en hexadécimal |
69 |
'i' en hexadécimal |
72 |
'r' en hexadécimal |
63 |
'c' en hexadécimal |
75 |
'u' en hexadécimal |
69 |
'i' en hexadécimal |
74 |
't' en hexadécimal |
64 |
'd' en hexadécimal |
69 |
'i' en hexadécimal |
67 |
'g' en hexadécimal |
65 |
'e' en hexadécimal |
73 |
's' en hexadécimal |
74 |
't' en hexadécimal |
07 |
.com (.com = 0x07) |
00 |
|
00 |
|
00 |
Pour diffuser une URL personnalisée à l'aide de la balise Bluetooth Raspberry Pi, convertissez simplement les caractères de l'URL en hexadécimal à l'aide de n'importe quel outil en ligne et placez-le dans la commande ci-dessus. Le nombre maximum de caractères pouvant être transmis est de 16, si l'URL est trop longue, raccourcissez-la à l'aide de n'importe quel service de raccourcissement d'URL comme bitly.com, puis ajustez les données dans le tableau ci-dessus.
Il est très fastidieux et chronophage de convertir chaque caractère en équivalent hexadécimal. Donc, pour faire votre travail facilement, il existe un calculateur de commandes URL Eddystone où il vous suffit d'entrer l'URL que vous souhaitez diffuser et vous obtiendrez votre commande comme celle-ci.
La balise Bluetooth diffuse maintenant l'URL et fonctionne bien, mais il y a une autre chose à calibrer qui est la puissance Tx qui est l'une des valeurs de la commande ci-dessus pour obtenir la distance précise de la balise Bluetooth.
Optimiser la puissance du signal d'émission en calibrant la puissance Tx
Dans la trame Eddystone, il y a peu de composants qui sont transmis et la puissance Tx est l'un d'entre eux qui indique la force du signal. En décodant la force du signal, le récepteur trouve la distance du diffuseur Beacon. La valeur de la puissance Tx peut être comprise entre -12 et 10. Nous devons trouver la valeur par touche et méthode d'essai pour obtenir la distance précise. Pour cela, ajustez la valeur de la puissance Tx dans la commande de message Eddystone et placez votre smartphone à une distance de 1 m avec l'application de scanner Beacon ouverte. Maintenant, commencez à mettre les valeurs de puissance Tx dans la commande de 0 à des valeurs négatives. N'oubliez pas de convertir les valeurs décimales au format hexadécimal, pour cela, utilisez les outils de conversion de valeur en ligne pour un décodage facile et prenez les deux derniers chiffres de la valeur convertie. Dans mon cas, la valeur hexa est f4. Vérifiez la distance dans l'application de numérisation, ajustez les valeurs jusqu'à ce qu'elle affiche environ 1 m et après cela, vous devez utiliser le diffuseur d'URL Eddystone avec une distance précise.
Applications de la balise Bluetooth Eddystone
Voici quelques cas d'utilisation de la balise BLE:
- Vente au détail compatible BLE: Cette technologie peut être utilisée pour attirer les clients à proximité des magasins en annonçant les offres et les ventes intéressantes.
- Événements activés par la balise BLE: il peut être utilisé pour faciliter les inscriptions aux événements et dans les stades avec des paiements faciles.
- Balises BLE dans l'immobilier: vous pouvez obtenir tous les détails des propriétés disponibles près de chez vous et réserver en une seule touche.
Il existe de nombreuses autres applications auxquelles vous pouvez penser et implémenter en fonction des besoins.
Voici donc comment le Raspberry Pi peut être utilisé pour diffuser n'importe quel message ou URL en le convertissant en balise Bluetooth à l'aide d'Eddystone. Regardez la vidéo de démonstration ci-dessous.
/>