Depuis plus d’un an tout le monde parle de iBeacon, souvent sans avoir testé… J’ai donc rapidement fait un Proof of Concept pour comprendre.
iBeacon c’est quoi ?
C’est un petit objet connecté, qui joue le rôle de balise de détresse en envoyant un signal Bluetooth Low Energy (BLE) toutes les X millisecondes. Plus précisément iBeacon est le nom du protocole inventé par Apple.
J’ai acheté des beacons Estimote et StickNFind. Il y a plein d’autres modèles ! Les Estimotes semblent être les plus utilisées mais sont TRES grosses.
A quoi ça sert ?
Apple a proposé 2 cas d’usages, que les entreprises se sont empressées de suivre:
Geofencing
Le principe est d’installer des iBeacons dans les rayons des magasins. Quand un mobile (iPhone / Android) s’approche à une certaine distance de la balise (1 mètre), une application vous propose une promotion Nutella ou une documentation Leroy Merlin…
Geolocalisation
Le principe est d’installer la balise dans le c__ollier de paflechat. Puis de tracker la distance qui sépare le mobile de l’objet jusqu’à ce que paflechat.
La portée théorique des beacons varie de 30 à 80 mètres. Mais les applis mobile trackent tous les beacons de la marque pour mailler les beacons des autres utilisateurs.
Proof of Concept !
La maison gère un nombre fini de personne. Ces personnes n’ont pas toujours un mobile sur eux. L’idée est donc de faire un reverse beacon.
Le principe est de mettre les beacons sur les gens et leurs objets. Puis de les tracker via des iPhones dans les pièces.
Problème
Le iBeacon est un émetteur, mais pourquoi devoir utiliser un p**** de mobile à 1000€ comme récepteur ?
C’est l’effet moutons, les fabricants font des SDK pour mobile pour surfer sur le marketing d’Apple et profiter des communautés de développeur. Mais rien pour les machines fixe. L’iPhone a quand même un « plus » technique avec un signal BLE précis.
Solution
Il est possible de simuler un beacon à partir d’un Raspberry Pi et une clef BlueTooth 4.0. Par exemple cela permets d’envoyer dynamiquement des signaux de détresse différents.
Il est aussi possible de faire l’inverse et sniffer les trames HDI des autres balises !
Bien évidemment ce n’est pas possible sous Windows qui à lancé Q1/2014 une API GATT pour BLE mais interdit l’accès aux trames HDI …
Résultats
Il faut 5 lignes de code:
[crayon]
var Bleacon = require(‘bleacon’);
Bleacon.on(‘discover’, function(bleacon) {
console.log(bleacon);
});
Bleacon.startScanning();
[/crayon]
Mais prévoyez des heures pour configurer le Raspberry Pi:
- Le hardware est instable (la clef qui marche)
- Il faut installer des tonnes de libraries
- Rien n’est pensé plug and play
- Eviter de compiler ! (NodeJS 2h30 !)
Heureusement en suivant 3-4 tutos (vérifiez les dates !) on s’en sort. Des choses sont de plus en plus prémâchées…
[crayon]
{ uuid: ‘b9407f30f5f8466eaff925556b57fe6d’,
major: 47798,
minor: 18588,
measuredPower: -74,
rssi: -88,
accuracy: 2.024203341255898,
proximity: ‘near’ }
{ uuid: ‘b9407f30f5f8466eaff925556b57fe6d’,
major: 63239,
minor: 41077,
measuredPower: -74,
rssi: -59,
accuracy: 0.46975408678389086,
proximity: ‘immediate’ }
[/crayon]
C’est quoi ça ?
- uuid: l’identifiant du iBeacon
- rssi: la distance du beacon
- measuredPower: la distance du beacon si il était à 1 mètre
Et voilà ! On peut calculer une distance très approximative du beacon 🙂 Ainsi S.A.R.A.H. peut savoir qui est dans quelle pièce.
Conclusion
Ca marche ! Mais le résultat n’est pas très précis. Disons que c’est vraiment adapté pour :
- du reverse geofencing: quelqu’un rentre dans la zone
- de la geolocalisation simple: la télécommande n’est pas dans la pièce
Maintenant on peut jouer à cache-cache ou chaud/froid avec SARAH 🙂 J’imagine aussi une interaction avec ma table connectée.
Il ne reste plus qu’a attendre qu’un chinois nous créé des Beacon Tracker low cost… pour remplacer le RPi.
Aller plus loin …
Je devrais recevoir prochainement une Ninja Sphere qui d’après le marketing fait de la géolocalisation indoor … stay tuned
Voici une réponse très intéressante sur Stack Exchange qui explique les limites « en vrai » de volumétrie des iBeacons.
Trilatération ?
Le principe est de faire de la géolocalisation indoor en croisant les données de plusieurs objets.
Dans cette article le développeur trilatérise un beacon à partir de 3 RPi. Il y a quelques jours Estimote à mis à jour ses beacons pour géolocaliser un mobile iOS à partir de 4 beacons.
Et la sécurité ?
A part StickNFind, les Beacons ne sont pas sécurisés. Voici un super article qui fait le point. Il s’amuse à hacker les beacons dans les magasins.
Et la solution RFID ?
Effectivement, le RFID UHF semble une techno très intéressante mais le marché n’a pas encore été disrupté. Les kits de développement coûtent encore entre 500€ et 2000€.
Il y a la question de la santé: Est ce que se prendre 900Mhz dans la tête à longueur de journée ça fait bronzer le cerveau ?
A priori les tags ne doivent pas être entassés, le signal doit être plutôt perpendiculaire, le métal et l’eau peuvent gêner, etc …
Bref, je vais pouvoir ENFIN coder plus qu’un console.log() !
Laisser un commentaire