Balise Bluetooth Low Energy



Documents pareils
Ateliers Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi?

Contrôle distant par liaison SSH Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

Tuto 2 : Configuration Virtual box, Configuration et installation du serveur XiBO

PARAGON - Sauvegarde système

Prise en main rapide

Tutorial Terminal Server sous

L accès à distance du serveur

Mise en place d un système de Téléphonie sur IP basé sur le logiciel Asterisk

Ateliers Python+Qt : Premiers pas : S'installer pour PyQt... en quelques minutes sous Windows!

Mes documents Sauvegardés

Accès aux ressources informatiques de l ENSEEIHT à distance

Optimiser pour les appareils mobiles

TP n 2 : Installation et administration du serveur ProFTP. Partie 1 : Fonctionnement du protocole FTP (pas plus de 15min)

MANUEL D INSTALLATION D UN PROXY

Surveiller et contrôler vos applications à travers le Web

Installation et paramétrage de Fedora dans VirtualBox.

Système clients serveur Kwartz Vulgarisation, identification, dossier personnel

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Il est courant de souhaiter conserver à

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

Installation et prise en main

Exécution de PCCOMPTA à distance sous Terminal Server 2003.

GUIDE D UTILISATION DU LOGICIEL DE TELE-MAINTENANCE. TEAM VIEWER Version 7.

Les Virtual LAN. F. Nolot. Master 1 STIC-Informatique 1

Lutter contre les virus et les attaques... 15

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Thunderbird est facilement téléchargeable depuis le site officiel

Atelier Le gestionnaire de fichier

Compte Rendu d intégration d application

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.


TP 2 : ANALYSE DE TRAMES VOIP

Introduction à l informatique en BCPST

Serveur de messagerie sous Debian 5.0

Android comme périphérique annexe.

Fiche technique RDS 2012

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Administration de Parc Informatique TP07 : Installation de Linux Debian

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

Les différentes méthodes pour se connecter

Seagate Technology LLC S. De Anza Boulevard Cupertino, CA 95014, États-Unis

Tutoriel : Utilisation du serveur de calcul à distance de PSE

Serveur de sauvegarde à moindre coût

PocketNet SNMP/Modbus

Mise en place d un serveur trixbox sur un domaine Kwartz. Version 1.0 du 25 juin 2012 Lycée Polyvalent d Artois, Noeux les Mines Adrien Bonnel

Utiliser un NAS pour remplacer Dropbox via Cloud Station

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

MANUEL D INSTALLATION

Robot de Téléprésence

Utilisation de KoXo Computers V2.1

Education Delivery Intelligent Tool

Tutoriel Création d une source Cydia et compilation des packages sous Linux

SAUVEGARDER SES DONNEES PERSONNELLES

Menu Fédérateur. Procédure de réinstallation du logiciel EIC Menu Fédérateur d un ancien poste vers un nouveau poste

Formation Utiliser son iphone ou son ipad

Mettre en place un accès sécurisé à travers Internet

LES NOUVEAUTES DE COST AND PROFITABILITY MANAGEMENT 8.1

Sécurisation du réseau

FOIRE AUX QUESTIONS - WebDEPOT

Le service FTP. M.BOUABID, Page 1 sur 5

Cours LG : Administration de réseaux et sécurité informatique. Dans les Paramètres Système onglet Processeur, le bouton "Activer PAE/NX"

TP Wireshark. Première approche de Wireshark. 1 ) Lancer Wireshark (double clic sur l icône sur le bureau). La fenêtre

A Libre Ouvert. Médiathèque Jacques Ellul. le

Utilisation de GCM (Google Cloud Messaging) pour Android. Partie préliminaire éventuelle : Création d'un AVD lisant GCM

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/ bits, Windows 2008 R2 et Windows bits

Mode d emploi CONNEXION AU TERMINAL SERVER

Cisco Certified Network Associate

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

domovea Portier tebis

Cours CCNA 1. Exercices

Manuel d utilisation de Wireless Mobile Adapter Utility. Fonctionnalités

PROCÉDURE D'INSTALLATION WINDOWS 7 (32 ou 64 bit)

PerSal Manuel d installation

Partage avec collaboration Important : Ce type de partage exige la connexion à un serveur CmapServer.

Manuel d utilisation NETexcom

Paramétrage de compte mail netplus sur iphone et ipad

Documentation pour administrateur Application AER

Création d une application Android (APPInventor)

Situation professionnelle n X

Microsoft Live Messenger

Guide de connexion sur les bornes hot-post WIFI de la collectivité de Saint-Pierre

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Une caméra de surveillance vidéo avec le Raspberry Pi

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

BeSpoon et l homme Connecté

Projet «Evolution» Référentiel d activités et de compétences : Administrer un parc informatique. Objectifs pédagogiques :

PHILA-Collector-USB-16Go Pour Windows & Android

Créer et partager des fichiers

Les solutions de paiement CyberMUT (Crédit Mutuel) et CIC. Qui contacter pour commencer la mise en place d une configuration de test?

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

Transcription:

Rapport de mi-projet : Balise Bluetooth Low Energy Soutenu par : Tuteurs en entreprise : CHALONO Kévin HERAULT Colombe DUCROCQ Tony Tuteur Ecole : VANTROYS Thomas Lecteur : Année : VANTROYS Thomas 2014-2015

... 2 I) Définition des objectifs du projet... 3 a) Présentation du projet... 3 b) Cahier des charges... 4 II) Développement sur la Raspberry Pi... 5 a) Accès au terminal Raspbian... 5 b) Installation des librairies nécessaires... 7 c) Installation de Nodejs et bleno... 8 d) Notion de serveur GATT et ATT... 10 III) Développement de l application mobile... 12 a) Détection d appareils BLE... 12 b) Connection au serveur et découverte des services... 13 c) Lancement automatisé de l application... 16 d) Bench... 17 IV) Objectifs prévisionnels... 18 CONCLUSION... 19 ANNEXE..20 BIBLIOGRAPHIE..23 CHALONO Kévin Page 1

La technologie «Bluetooth Low Energy» a été introduit en 2010. Elle est présentée comme étant fortement plus optimisé que le Bluetooth classique en ayant notamment une plus faible consommation d énergie, un plus faible prix et une faible complexité de fonctionnement. Elle a connu un développement rapide et un succès comparé à d autres technologies sans fil. Ceci s explique par la croissance phénoménale des appareils mobiles (smartphones, tablettes ) et l adoption rapide par l industrie mobile de cette technologie. Notre projet consiste à utiliser la technologie «Bluetooth Low Energy» afin de réaliser une communication entre un appareil mobile et un appareil dans lequel a été implémentée la technologie BLE. Pour ce faire, nous présenterons tout d abord le projet de manière générale et verrons le cahier des charges de manière précise. Nous analyserons ensuite le fonctionnement d un appareil «Bluetooth Low Energy» à l aide du nano-ordinateur RaspberryPi. Enfin nous examinerons le développement de l application mobile permettant de communiquer avec les appareils présentant la technologie BLE. CHALONO Kévin Page 2

I) Définition des objectifs du projet a) Présentation du projet L objectif du projet est de réaliser une application mobile permettant d échanger des données avec un serveur à travers une connexion Bluetooth Low Energy. Le but est ici de tirer parti de la faible consommation d une connexion de type Bluetooth Low Energy comparé à la consommation en énergie du Bluetooth classique. Figure 1 Un RaspberryPi permet de faire la liaison entre les appareils mobiles et le serveur distant comme illustre la figure 1. On s occupera dans un premier temps de la communication entre le RaspberryPi et le(s) mobile(s) apparié(s). CHALONO Kévin Page 3

b) Cahier des charges Implémenter une balise Bluetooth Low Energy («BLE») avec la fonctionnalité «ibeacon» Détecter les appareils BLE environnant un appareil mobile («sniff») Réussir à faire l identification d utilisateur à travers une connexion entre un appareil mobile et un RaspberryPi (RPi) avec la remontée de données Automatiser le lancement de l application sans intervention de l utilisateur Pouvoir connecter plusieurs utilisateurs à la fois sur un même appareil «BLE» Envoyer des données de tailles quelconques en vue d un transfert de fichiers multimédias CHALONO Kévin Page 4

II) Développement sur la Raspberry Pi Figure : Vue RaspberryPi Le système d exploitation installé sur le RaspberryPi est Raspbian, qui est basé sur le système d exploitation Debian (Linux). La technologie sans fil Bluetooth est implémentée sur le RaspberryPi grâce au logiciel BlueZ qui est une stack Bluetooth pour le système d exploitation Linux. Pour établir la liaison entre le RPi et l appareil mobile, on utilise un adaptateur Bluetooth : dongle bluetooth 4.0. Afin de disposer d un véritable appareil BLE possédant des services et des caractéristiques, on installe le logiciel bleno qui est un module Nodejs. Avant de pouvoir utiliser ces différents éléments, il faut installer au préalable des librairies et des logiciels. a) Accès au terminal Raspbian Une fois le système d exploitation installé, on peut se connecter sur le RaspberryPi avec le logiciel Putty. On utilise une connexion de type SSH à travers le port Ethernet disponible sur le RPi. Comme l illustre la figure 2 ci-dessous, on spécifie l adresse de l appareil dans le réseau local : CHALONO Kévin Page 5

Figure 2 CHALONO Kévin Page 6

b) Installation des librairies nécessaires Avant de pouvoir faire fonctionner le RaspberryPi en tant qu appareil BLE, on installe les librairies libusb-dev, libdbus-1-dev, libglib2.0-dev, libudev-devlibical-dev et libreadline-dev : sudo apt-get install libusb-dev libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev Ensuite, on peut télécharger la dernière version de la stack Bluez avec la commande : sudo wget www.kernel.org/pub/linux/bluetooth/bluez-5.11.tar.xz Une fois l archive téléchargée, on la décompresse et on l installe à l aide des commandes suivantes : sudo unxz bluez-5.11.tar.xz sudo tar xvf bluez-5.11.tar cd bluez-5.11 sudo./configure --disable-systemd sudo make sudo make install À ce stade, on peut déjà activer le dongle et émettre des trames Bluetooth Low Energy, comme l illustre la figure 3 ci-dessous. Figure 3 CHALONO Kévin Page 7

c) Installation de Nodejs et bleno Avant de pouvoir utiliser le module bleno, il faut au préalable installer la plateforme logicielle Nodejs. wget http://nodejs.org/dist/v0.10.28/node-v0.10.28-linux-arm-pi.tar.gz tar -xvzf node-v0.10.28-linux-arm-pi.tar.gz On peut désormais implémenter des services sur le RaspberryPi à travers le programme beaconlauncher.js (voir ANNEXE) et accéder à ces services avec un appareil mobile. Ce programme faisant office de serveur GATT. Figure 4 On remarque que le programme active le mode Advertising, c est-à-dire que le RaspberryPi est visible et un appareil mobile peut se connecter dessus avec une application adaptée. On détaillera la manière dont l utilisateur interagit avec l application pour se connecter au serveur. Pour l instant, on suppose que l utilisateur soumet une demande de connexion au serveur et que celui-ci l accepte. Figure 5 CHALONO Kévin Page 8

Sur la figure 5, le serveur a accepté la demande de connexion du périphérique dont on peut voir l adresse et le RSSI qui correspond au niveau de puissance du signal de connexion. Une fois la connexion établie, on peut envoyer des données vers le RPi. On détaillera dans la partie suivante comment l utilisateur s y prend pour envoyer ses données vers le RPi. On a choisi ici d envoyer 20 fois le caractère a vers le serveur. Figure 6 L écriture se conclut par un Acknowledgement de réception du côté RaspberryPi. CHALONO Kévin Page 9

d) Notion de serveur GATT et ATT ATT (Attribute Protocol) est un protocole de communication dont la trame est composée des champs suivants (voir figure 7) préambule (1 octet ) access adress (4 octets ) Advertising header (1 octet ) payload lenght (1 octet ) Advertiser Adress (6 octets ) Advertiser Adress (6 octets ) payload (31 octets) crc (3 octets) Figure 7 Le serveur GATT (Generic Attribute Profile) est construit sur la base du protocole de communication ATT et établie des opérations et un environnement de travail pour le transport et le stockage des données par le protocole ATT. Le serveur GATT définie deux rôles : Client Serveur Les rôles GATT ne sont pas nécessairement liés à un rôle GAP (Generic Access Profile) et ils peuvent être définies dans des couches plus hautes du profile. GATT et ATT ne sont pas sensibles à la couche transport et peuvent aussi être utilisés pour le Bluetooth classique et le Bluetooth Low Energy. Il est cependant indispensable pour utiliser le Bluetooth LE car c est le serveur GATT qui se charge de découvrir les services. Le serveur GATT sauvegarde les données sur la couche ATT et acceptent les requêtes, commandes et confirmations ATT venant du client GATT. Les périphériques sont vus comme des services et caractéristiques. Les services peuvent contenir une collection de caractéristiques. La figure 8 reprend visuellement les explications ci-dessus CHALONO Kévin Page 10

profile services caractéristiques propriétés valeurs descripteurs Figure 8 Ainsi une caractéristique est une valeur au sein d un service. Elle est définie par des propriétés qui montrent comment on accède à ces dernières valeurs et un descripteur qui décrit la valeur. CHALONO Kévin Page 11

III) Développement de l application mobile L application mobile est une application Android développée sous le logiciel Android Studio. Elle permet de détecter tous les périphériques Bluetooth Low Energy environnant l appareil mobile. Lors de la sélection de l un de ces périphériques, on peut se connecter dessus et découvrir les services et caractéristiques disponibles dessus. Comme les caractéristiques possèdent des propriétés en lecture ou en écriture, on peut par conséquent, au sein de l application, lire ces caractéristiques mais aussi écrire sur ces caractéristiques. Le but étant bien sûr de détecter le RaspberryPi pour ensuite se connecter dessus et enfin envoyer des données vers celui-ci lors de l opération d écriture. Des tests (bench) de rapidité d envoi des données ont été effectués. Une fonctionnalité de lancement automatique de l application avec notification a été implémentée. a) Détection d appareils BLE Pour tester que la détection d appareils «Bluetooth Low Energy» fonctionne correctement, nous avons testé avec des balises beacons de la marque «Gimbal» que l on a commandé gratuitement en ligne, mais aussi en exécutant le programme beaconlauncher.js sur le RPi pour que ce dernier se comporte comme un appareil BLE. Figure 9 : Gimbal beacon CHALONO Kévin Page 12

Voici une vue de ce que l on obtient : Avant Après b) Connexion au serveur et découverte des services Nous pouvons désormais nous connecter sur le RPi. Lors du clic sur «RaspberryPi», nous obtenons la vue suivante : CHALONO Kévin Page 13

On y voit l adresse Bluetooth du dongle connecté sur le RPi et l état de la connexion. Plus bas, on aperçoit, les services «Device Information Service» et «Raspberry Service». Le premier étant un service par défaut de l appareil, le second correspond au service lancé depuis le programme beaconlauncher.js sur le RPi. On peut remarquer quatre caractéristiques avec des propriétés différentes au sein de ce service. Lors du clic sur l une de ces caractéristiques, un bouton Read ou un bouton Write apparaît selon la propriété que possède la caractéristique sélectionnée. Sélection de la caractéristique1 Sélection de la caractéristique3 CHALONO Kévin Page 14

Voici ce que l on obtient après l appui sur ces boutons : Appui sur le bouton «Read» Appui sur le bouton «Write» Lors de l appui sur Read, la valeur affectée à la caractéristique est affichée sur l écran : ici on peut lire «armagan» (on peut également lire sa valeur en hexadécimal). Lors de l appui sur le bouton Write, une fenêtre de dialogue s ouvre où l utilisateur peut renseigner son nom et prénom et les envoyer vers le RPi par l intermédiaire du bouton Envoyer. Voici ce que l on obtient lors de la saisie et de l envoie : CHALONO Kévin Page 15

c) Lancement automatisé de l application Le principe consiste à mettre en arrière-plan l application de façon à ce qu elle écoute par tranche de période (cette période peut être modifiée dans l application) les transmissions de paquets Bluetooth Low Energy des appareils environnant. On souhaite lancer l application seulement lorsqu un appareil BLE qui nous intéresse est à portée. Dans ce cas, nous fixons dans l application l identifiant unique (UUID : Universally Unique Identifier) correspondant à cet appareil et lorsque cet identifiant est capturé lors de l écoute, l appareil mobile vibre, l application est lancée automatiquement et l utilisateur reçoit une notification. Cependant cette fonctionnalité présentant encore des défauts de fonctionnement, une explication de mise en marche de l application et un bouton d accès direct à la vue d analyse d appareils ont été implémentés pour ne pas perturber l utilisation principale de l application. Vue d explication et d accès direct aux fonctionnalités principales Notification lors de la détection de l appareil BLE, ici le RaspberryPi CHALONO Kévin Page 16

d) Bench L application prévoit aussi de faire des tests d écriture sur le serveur elle mesure la vitesse d écriture sur celui-ci. Par défaut la taille des données est formatée à 20 octets. Elle peut être changée mais la taille des données ne peut excéder 31 octets. Pour faire des tests de rapidité il faut envoyer un grand nombre d octets sur le RaspberryPi puis diviser par le temps que met celle-ci à recevoir les données. On obtient alors une moyenne qui se stabilise autour de 7 octets/ms lorsque l on envoie de grand volume de données. Figure 10 Pour envoyer un nombre important de données, il faut découper le flux en plusieurs paquets. La taille de ces paquets étant fixée à 20 par défaut (la taille maximum du champ de donnée dans la trame). CHALONO Kévin Page 17

IV) Objectifs prévisionnels La connexion entre l appareil mobile et l appareil BLE étant établie, il faut désormais envoyer des informations utiles au serveur afin de réaliser des opérations d identification d utilisateurs et offrir à l utilisateur des outils pour agir avec son environnement. De plus, la multi-connexion sur le server GATT ne semble pas possible, il faut trouver un moyen pour contourner ce problème afin de gérer plusieurs utilisateurs à la fois. Il serait également intéressant de faire un bench en lecture pour déterminer le temps de lecture d une donnée de taille importante. Récapitulatif : Gérer la multi-connexion au serveur Gérer l identification d utilisateurs et offrir des outils d interaction pour l utilisateur Réaliser un bench en lecture Trouver un moyen de stocker les données envoyées vers le serveur Pouvoir transmettre du multimédia CHALONO Kévin Page 18

Nous avons réussi à répondre à plusieurs points du cahier des charges notamment l établissement de la connexion entre les appareils avec échange de données tout en démarrant l application mobile automatiquement. Nous espérons pouvoir répondre aux points restants (l identification d utilisateurs, la multiconnexion ) dans le temps imparti au projet. Cette première partie de projet a été l occasion pour nous de découvrir de façon plus précise la technologie «Bluetooth Low Energy». Elle nous aura également permis de découvrir la programmation mobile d applications avec le langage Java Android et ainsi élargir nos compétences en programmation. Nous avons rencontrés des difficultés au niveau de la compréhension de la programmation Android car nous n en avions jamais fait auparavant. La notion de serveur GATT puis son installation sur le RaspberryPi nous a également pris beaucoup de temps. CHALONO Kévin Page 19

ANNEXE ANNEXE1: beaconlauncher.js CHALONO Kévin Page 20

CHALONO Kévin Page 21

CHALONO Kévin Page 22

Bibliographie https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt http://www.digikey.com/en/articles/techzone/2011/aug/comparing-low-power-wireless-technologies https://github.com/radiusnetworks/bluetooth-crash-resolver http://altbeacon.org/examples/ http://blog.cmgresearch.com/2014/05/18/raspberry-pi-btle-device/ http://developer.android.com/guide/topics/connectivity/bluetooth.html CHALONO Kévin Page 23