P21 Bis Prototypage d'interactions localisées et contextualisées
Sommaire
Présentation du projet
Contexte du projet
Les "beacons" (balises en anglais) sont des systèmes de localisation plus précis que le GPS et permettant des interactions contextuelles avec les utilisateurs.
Exemple d'application
Arrivant dans un supermarché le client se connecte à l'application de la franchise grâce à ses identifiants. Il passe alors devant une tête de gondole contenant une balise de localisation. La balise "détecte" qu'un produit souvent acheter par le client est dans le rayon suivant mais n'est pas sur sa liste de course ( intégrée à l'application ). Le client reçoit donc un bon de réduction du produit.
Un visiteur arrive dans un musée et veut plus d'informations sur l’œuvre en face de lui. Il allume une application sur son smartphone et reçoit directement des explications
Objectifs
Ce projet a pour objectif d'utiliser la technologie des beacons afin d'imaginer un système de communication entre ces derniers et des utilisateurs arrivants dans la zone telle que l'exemple du supermarché.
La première étape est de réaliser une communication bidirectionnelle entre un beacon et un smartphone. Pour cela il faut concevoir un prototype de balise à l'aide d'une raspberry PI et d'un module Bluetooth BLE. Puis programmer une application pour smartphone afin de pouvoir échanger en Bluetooth. Le but est d'obtenir l'affichage d'un échange sur le smartphone et sur un ecran relié à la raspberry.
La seconde étape est de développer le reste des éléments du scénario en fonction de l'évolution du projet.
On peut, par exemple, penser à la réalisation de la connexion client et à la sécurité associée ou à l'accès à la liste des courses du client par la balise.
Le Bluetooth Low Energy (BLE)
Autrefois appelé Wibree, le BLE ou Bluetooth 4.0, est une technique de communication de donnée sans fil.
L’objectif de cette nouvelle technologie est de permettre de transmettre des données avec la même portée que les Bluetooths précédents mais avec une consommation d'énergie 10 fois moins importantes passant de 1W à 0,1 dans le meilleur des cas. Ainsi l'usage de la transmission sans fil est maintenant plus réaliste sur des appareils à batterie. Par contre le BLE n'est pas rétrocompatible, c'est à dire que les appareils antérieurs à l'apparition de cette technique ne peuvent pas l'utiliser. Mais certains objets utilisant le BLE peuvent aussi utiliser le Bluetooth "classique".
Les différences entre les deux technologies sont autant sur le matériel que sur le protocole de transmission.
Generic Attribute Profile (GATT)
GATT definit comment deux appareils BLE échangent des données en utilisant des principes appelés Services et Caractéristiques ainsi que des identifiants 16 bits. Il vient de l'ATT (attribute protocol).
Ce protocole utilise le principe du maitre-esclave.
Un esclave (GATT Server) a un seul maitre (GATT Client) mais un maitre peut avoir plusieurs esclaves.
A intervalle régulier, le maitre envoie une requête à un esclave qui répond ensuite.
Conception d'un beacon
Matériels utilisés
Afin de réaliser une balise, je dispose de :
- Une raspberry pi
- Un module Bluetooth BLE (Bluetooth Low Energy)
- Un écran d'affichage
- Un accès internet (en option)
Etape de réalisation
Semaine 1
Mr Peter m'ayant fourni un tutoriel intitulé "piBeacon -DIY Beacon with a Raspberry Pi" [1] de Kevin Townsend, je commence tout d'abord par suivre ce tutoriel. Ce dernier a permis de configurer la raspberry et le doggle Bluetooth afin de pouvoir utiliser ce dernier. Mais il n'y a aucun programme afin d’interagir.
J'ai par la suite testé le tutoriel à l'aide d'une application androïd "BlueScan" permettant de détecter les appareils connectés en Bluetooth.
Sur cette image on peut voir l'adresse Bluetooth de la raspberry "00:1A:7D:DA:71:14"
L'appareil détecté a la même adresse, la configuration du Bluetooth fonctionne.
Semaine 3
Afin de continuer sur les communications j'ai voulu réalisé une détection du smartphone par la raspberry. Malheureusement il semble que le raspberry ne repère pas le Bluetooth LE des téléphones.
Deux hypothèses possibles :
- Le problème vient de la raspberry ou du module Bluetooth.
J'ai désinstallé/réinstallé les logiciels de la raspberry. Le problème ne vient pas de la raspberry en théorie. Mais peut être vient il du module Bluetooth.
- Le problème vient du smartphone qui n'aurait pas le BLE.
J'ai tout d'abord testé le Bluetooth "Classique". La détection du téléphone fonctionne.
Avec l'application BLE Checker j'ai pu vérifier que le BLE fonctionne sur le téléphone.
Après recherche, il semble qu'il faut installer une mise à jour sur le téléphone afin d'activer le BLE.
Semaine 4
Récupération d'un autre téléphone pour tester le BLE.
Il s'agit d'un HUAWEI Ascend P7. Après mise à jour du téléphone, ce dernier n'est toujours pas détecté par la balise.
Tentative de changement de la rom d'un téléphone, afin de pouvoir changer un fichier dans la programmation du téléphone autorisant l'utilisation du BLE. Malgré les droits de super-utilisateur les fichiers systèmes sont accessibles qu'en lecture.
Semaine 5
Je tente d'utiliser le Bluetooth classique. De même sans succès, l'application bluetooth de la raspberry, Bluez, se bloque ou refuse la connexion.
Développement de l'application smartphone
Matériel utilisé
- Smartphone Samsung S3
- Sony Xperia M2
- Logiciel Androïd studio
Étape de réalisation
Semaine 1 & 2
Ayant peu d’expérience dans les programmes codés en JAVA et les applications Androïds, j'ai tout d'abord suivi des tutoriels afin d'acquérir des bases en langage JAVA et dans la mise en place d'application androïd.
J'ai ensuite commencé à étudier les exemples d'applications androïds inclus dans Androïd studio. Il y a 2 applications utilisant le Bluetooth dont une utilisant le BLE.
Je décide donc de comprendre cette application et de l'adapter au besoin du projet. Mais la compréhension de l'application est plutôt difficile pour l'instant.
Semaine 4 & 5
Je commence à avoir l'application exemple en main. Je l'a manipule afin d'adapter l'application à mes besoins.
Réalisation de l'application type "Musée".