Des recherches dans le domaine de la géolocalisation en intérieur dans le but de trouver des algorithmes Trilateration [5][6][7][8], Fingerprinting, …, des techniques Beacon, NFC, …, des
Trang 1UNIVERSITE NATIONALE DU VIETNAM, HANOI
INSTITUT FRANCOPHONE INTERNATIONAL
NGUYỄN QUỐC KHẢI
DÉVELOPPEMENT D'APPLICATIONS MOBILES UTILISANT LA GÉOLOCALISATION EN INTÉRIEUR
PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG SỬ DỤNG VỊ TRÍ
ĐỊA LÝ TRONG NHÀ
MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE
Trang 2UNIVERSITE NATIONALE DU VIETNAM, HANOI
INSTITUT FRANCOPHONE INTERNATIONAL
NGUYỄN QUỐC KHẢI
DÉVELOPPEMENT D'APPLICATIONS MOBILES UTILISANT LA GÉOLOCALISATION EN INTÉRIEUR
PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG SỬ DỤNG VỊ TRÍ
ĐỊA LÝ TRONG NHÀ
Spécialité : Réseaux & Systèmes Communicants
Code : Programme pilote
MÉMOIRE DE FIN D’ÉTUDES DU MASTER INFORMATIQUE
Sous la direction de :
Maître de conférences, Dr Besma ZEDDINI
Maître de conférences, Dr Julien MERCADAL
HANOI – 2016
Trang 3ATTESTATION SUR L’HONNEUR
J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que les données et les résultats qui y sont présentés sont exacts et n’ont jamais été publiés ailleurs La source des informations citées dans ce mémoire a été bien précisée
LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác Các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Nguyễn Quốc Khải
Trang 4REMERCIENTS
Durant mon stage, j'ai bénéficié du soutien moral et technique de plusieurs personnes ce qui a rendu mon environnement de travail très agréable
J'adresse mes remerciements à mes encadrants : Mme Besma ZEDDINI chargée
de la direction de l’équipe, co-responsable de l'option Smart Systems et M Julien MERCADAL encadrant du projet qui, par ses accueils, ses expériences, ses don d’écoute et ses tolérances, ont guidé mon activité tout en préservant mon esprit d’initiative, durant toute la période de la réalisation mon stage
Je tiens à remercier vivement mon professeur : M Nguyen Hong Quang, responsable de l’option Réseaux & Système Communicant à l’Institut Francophone International au Vietnam qui m’a offert de meilleures conditions afin d’apprendre et de trouver ce stage
Je remercie également toute l'équipe du laboratoire L@RIS et les personnes à l’École Internationale des Sciences du Traitement de l'Information pour leur accueil et leur esprit d'équipe
Enfin, je tiens à remercier toutes les personnes qui m'ont conseillé et relu lors de
la rédaction de ce rapport de stage Toutes ces personnes ont contribué, par leur disponibilité et leur bonne humeur, à rendre mon stage enrichissant et motivant
Trang 5Table des matières
RÉSUMÉ 7
INTRODUCTION 8
ENVIRONNEMENT DE TRAVAIL 10
ÉTAT DE L’ART 12
1.1 Système de la géolocalisation en intérieur 13
1.1.1 Technologies 13
1.1.2 Mobile Crowd Sensing 19
1.1.3 Algorithmes 21
1.2 Plate-forme pédagogique l’AREL 24
1.3 Introduction de l’application iOS 25
MÉTHODOLOGIE ET OUTILS 27
2.1 Le plus proche capteur – Une amélioration de la méthode Trilateration 28
2.2 Google Maps SDK et Mapbox SDK 29
2.3 Xcode 34
2.4 Langages de programmation 34
2.4.1 Swift 34
2.4.2 Objective-C 35
2.5 Bibliothèques supplémentaires 36
2.5.1 Alamofire 36
2.5.2 SwiftyJSON 37
2.5.3 Reachability 37
2.5.4 RNCryptor 38
2.5.5 Google Maps SDK 38
2.5.6 Bibliothèques de l’interface 38
IMPLÉMENTATION ET RÉSULTATS 41
3.1 Architecture de l’application 42
3.1.1 Fonctionnement 42
3.1.2 Spécification de l’application 44
3.1.3 Exigences fonctionnelles et non fonctionnelles de l’application 45
3.2 Localisation de la position de l’utilisateur 48
3.2.1 Détecter l’étage de l’utilisateur 50
3.2.2 Récupérer les signaux iBeacons autour de l’utilisateur 50
3.2.3 Calculer la position de l’utilisateur 51
3.2.4 Mettre à jour la position de l’utilisateur 51
3.3 Échange de données avec le serveur 52
3.3.1 Mettre à jour la position de l’utilisateur 52
3.3.2 Rechercher le chemin entre deux points 52
3.3.3 Évaluer une salle préférée 52
3.3.4 Compter le nombre de personnes dans une salle 52
3.3.5 Trouver la position actuelle d’une personne 52
3.4 API AREL 53
3.4.1 Authentification 53
3.4.2 API AREL 55
3.4.3 Implémentation (application iOS) 59
3.5 RSS du site http://eisti.fr 60
CONCLUSION & PERSPECTIVES 64
BIBLIOGRAPHIE 66
Trang 6Table des figures
Figure 1 - Exemple : Détection de la proximité d'un magasin 17
Figure 2 - Méthode de Trilateration 01 21
Figure 3 - Méthode de Trilateration 02 22
Figure 4 - Méthode de Trilateration 03 23
Figure 5 - Page d'accueil de la plate-forme d'AREL 24
Figure 6 - L'architecture du projet 25
Figure 7 - Le proche capteur 01 28
Figure 8 - Le proche capteur 02 29
Figure 9 - L'idée d'utiliser une carte avec plusieurs couches 30
Figure 10 - La couche Maps SDK 30
Figure 11 - Ajouter l'environnement 31
Figure 12 - Carte complète avec des objets 33
Figure 13 - Swift - Langage de programmation 34
Figure 14 - Objective-C - Langage de programmation 35
Figure 15 - Alamofire: un bibliothèque du réseau 37
Figure 16 - SwiftyJSON: un bibliothèque de traiter des données JSON 37
Figure 17 - Google Maps SDK 38
Figure 18 - FoldingTabBar bibliothèque 39
Figure 19 - PopupController bibliothèque 39
Figure 20 - PasswordTextField bibliothèque 40
Figure 21 - PageMenu bibliothèque 40
Figure 22 - L'architecture d'application iOS 42
Figure 23 - Le flux de données 43
Figure 24 - Le diagramme de cas d’utilisation 45
Figure 25 - L'interface d'application 45
Figure 26 - Localisation d'utilisateur 48
Figure 27 - Diagramme de la localisation d’une personne 49
Figure 28 - L'intégration l'API AREL 53
Figure 29 - Modèle de base de l’OAuth2 54
Figure 30 - Créer un clé privée afin d'authentification 59
Figure 31 - Les nouvelles d'école 61
Figure 32 - Diagramme de flux RSS 62
Trang 7Dans le cas de « Smart Building », « Smart Home », pour réaliser une plate-forme
de l’IoT, une des parties importantes est de construire un système qui nous permet
de localiser la position de l’utilisateur [2][4] Des recherches dans le domaine de
la géolocalisation en intérieur dans le but de trouver des algorithmes (Trilateration [5][6][7][8], Fingerprinting, …), des techniques (Beacon, NFC, …), des entreprises ont commencé de supporter d’afficher, de naviguer dans une carte en intérieur (Google Maps, Mapbox, …) [9]
Le stage s’inscrit dans le cadre du projet « Smart Engineering School » dont l’objectif est de développer une application mobile qui implémente des algorithmes de géolocalisation en intérieur et aussi des fonctionnes ajoutées afin d’échanger des informations avec AREL – Plate-forme d’e-learning de l’EISTI (École International des Sciences de Traitement de l’Information)
Mots clés : IoT, Internet des objets, géolocalisation en intérieur, indoor location, smart building, beacon, trilateration
Trang 8INTRODUCTION
Durant ces dernières années, l’Internet des Objets a été développé dans de nombreux secteurs d’activité comme : l’aide de la personne, la e-santé, la surveillance, l’automatisation des chaînes de production, … Les technologies de l’Internet des Objets telles que celles des capteurs, des RFID, des réseaux mobiles sont le centre de la recherche actuelle
Les objets connectés ont des capacités de capture, de traitement et de communication, leur permettant de collecter et d’échanger des données, ainsi que d’être contrôlés à distance L’environnement de déploiement peut être une maison, un bâtiment, un transport, ou encore des villes [2][9] L'interconnexion d'objets communicants forme un smart système, capable de collecter, stocker et analyser les données partagées par les objets connectés, afin d'en extraire des informations utiles de l'environnement physique qui seront ensuite utilisées par diverses applications pour décider des actions à entreprendre sur l'environnement
La géolocalisation en intérieur (Indoor Location en anglais) est une des parties importantes de l’IoT, elle nous permet de détecter la position de l’utilisateur et de suivre son déplacement dans un environnement Des différentes recherches dans
ce domaine sont abordées des techniques de géolocalisation (GPS, NFC, WPS, Beacon, …) [11] et ainsi que des algorithmes (Trilateration [5][6][7][8], Fingerprinting [22], …) Dans ce stage, la géolocalisation en intérieur va être simuler en utilisant des capteurs Beacons et quelques algorithmes de géolocalisation en intérieur
Le Crowd sensing [1] est un autre terme qui est lié à la géolocalisation en intérieur Les smartphones actuels ont des capteurs qui ont été installés comme : GPS, accéléromètre, gyroscope, magnétomètre, … Ils nous donnent des informations complémentaires pour aider à la géolocalisation en intérieur
L'objectif du stage est de combiner des capteurs Beacon et des capteurs dans un smartphone (ou une tablette) afin de construire un système de géolocalisation en intérieur dans une application mobile En outre, à partir de la plate-forme pédagogique AREL de l’EISTI, l’application devra récupérer certaines informations sur l’utilisateur, puis lui donner des notifications, partager des informations, …
Le rapport est divisé en trois chapitres :
• Chapitre 1 – État de l’art : une vue générale sur le système de géolocalisation, ses technologies et ses algorithmes sont abordés L’introduction de la plate-forme pédagogique l’AREL et de l’application iOS sont mentionnés
• Chapitre 2 – Méthodologie et outils : la méthode Le plus proche capteur
Trang 9est présenté en détail dans ce chapitre, c’est la méthode qui a utilisé dans
ce projet Ensuite, les outils utilisés et les bibliothèques supplémentaires sont introduits
• Chapitre 3 – Implémentation et Résultats : ce chapitre parle de l’architecture d’application iOS, de la façon afin de localiser l’utilisateur,
de la communication entre l’application et le serveur, de l’API AREL
Trang 10ENVIRONNEMENT DE TRAVAIL
L’établissement d’accueil
L’École Internationale des Sciences du Traitement de l’Information (EISTI) est l’une des 210 écoles d’ingénieurs françaises habilitées à délivrer un diplôme d’ingénieur Validée depuis 1989, la charte que s'est donnée l’EISTI repose sur quatre valeurs concrètes : professionnalisme, ouverture, solidarité, éthique L'École délivre un diplôme par un parcours d’études personnalisé et progressif sur 3 ans dans deux spécialités : Génie Mathématique et Génie Informatique Situés à Cergy-Pontoise et à Pau, les campus de l’EISTI sont intégrés dans les campus universitaires de leur ville Cergy est le campus historique avec près de
900 élèves et trois bâtiments propres à l'école Le campus de Pau, créé en 2003, auparavant situé dans l'immeuble Le Piano, accueille depuis la rentrée 2011 quelque 300 étudiants dans un nouveau bâtiment de 4100 m2 situé au cœur du campus universitaire palois
Le laboratoire L@RIS est crée au sein de l'EISTI, il privilégie la recherche appliquée et la recherche finalisée sur contrat, avec le soutien des entreprises et des principaux organismes nationaux de valorisation de la recherche (ANR, OSEO, etc.)
Les axes de recherche du L@RIS sont :
• Modélisation, conception et vérification formelle des systèmes complexes
à base de composants (distribués, mobiles, temps réels et hybrides) : applications aux systèmes mécatroniques, automobiles, aéronautiques et télécommunications
• Ingénierie de connaissances et applications : Ontologies et applications aux web sémantique, e-Learning, intégration sémantique des données, composition sémantique de services, réseaux sociaux, …
• Architectures et performances de systèmes distribués
• Simulation et optimisation par contraintes
Le stage se déroule dans le laboratoire L@RIS sur le campus de Cergy de l’EISTI pendant 5 mois de 01/04/2016 à 31/08/2016
Le projet « Smart Engineering School »
a Objectifs
Le stage vise à développer et déployer une application mobile qui communique avec un réseau d’objets communicants équipant l’EISTI, afin d’automatiser ou de simplifier diverses tâches pour ses occupants L’application se compose des fonctionnalités suivantes :
• Localiser la position de l’utilisateur,
• Compter le nombre de personnes dans une salle,
• Trouver le chemin entre deux salles, deux personnes,
• Récupérer et notifier les informations aux utilisateurs à partir des capteurs
ou de la plate-forme pédagogique AREL,
Trang 11• Récupérer et partager des nouvelles de l’EISTI
b Grandes étapes
Pour aboutir à une application fonctionnelle et en adéquation avec les demandes,
un processus par étapes est développé Chronologiquement, le projet a été marqué par les étapes suivantes :
• Étudier les différences technologies de communication pou l’IoT,
• Étudier les algorithmes de la géolocalisation en intérieur,
• Rechercher des informations sur le Crowd sensing et les capteurs dans un smartphone actuel,
• Étudier l’API AREL pour récupérer des informations sur les utilisateurs,
• Développer un application iOS qui implémentée des algorithmes de géolocalisation en les combinant avec des informations récupérées par les capteurs du smartphone et présentes dans l’API AREL
• Les deux stagiaires : Quoc Khai NGUYEN développe du côté client et réalise l’application iOS, et Ba Duong PHU supporte le côté serveur et les analyses de données
Trang 12Chapitre 1
ÉTAT DE L’ART
Une vue générale de la géolocalisation en intérieur est nécessaire, c’est la raison pour laquelle les aspects qui constituent un système de la géolocalisation en intérieur sont abordés tout d’abord Ce chapitre mentionne aussi des informations de base de la plate-forme pédagogique AREL de l’EISTI et à la fin introduit l’architecture de l’application iOS
Trang 131.1 Système de la géolocalisation en intérieur
Les composants qui composent un système de la géolocalisation en intérieur sont :
la technologie, l’algorithme et l’association avec des éléments auxiliaires Tous ces facteurs vont être abordés alternativement
1.1.1 Technologies
Lorsqu’on pense à la géolocalisation en extérieur, on pensera immédiatement au GPS Le GPS a fait un excellent travail avec une exactitude extrêmement élevée Cependant, dans le domaine de la géolocalisation en intérieur, le GPS peut être utilisé pour déterminer la localisation dans un appartement, mais son résultat est très peu exact Donc, le GPS est impossible dans le but de localiser des objets dans un bâtiment
La géolocalisation en intérieur permet d’aider les utilisateurs à déterminer leur localisation dans un bâtiment, de trouver leur chemin à l’intérieur du bâtiment, de déclencher des messages et de payer leurs achats en utilisant leur mobile Actuellement, de nombreux aéroports, gares, congrès et centres d’exposition investissent dans ces technologies pour aider les utilisateurs en leur fournissant des informations utiles
La géolocalisation en intérieur est un terme général qui se compose de trois grands types de service :
No Type de service Description
1 Indoor location
Aider les utilisateur à trouver leur chemin, d’optimiser leur visite, localiser leurs amis et collègues et fournir également une analyse comportementale aux distributeurs (par exemple : le trajet des visiteurs)
2 Micro- location
Permettre à ce que les voyageurs, les visiteurs et les consommateurs interagissent avec des éléments spécifiques : un produit sur une étagère du magasin, une œuvre d'art dans un musée La présence de l’utilisateur est identifiée seulement quand il est près d’un capteur Leur localisation est perdue quand il se déplace loin de lui
3 Geofencing Envoyer des informations spécifiques lorsque les
utilisateurs entrent ou sortent d’une zone prédéfinie
1.1.1.1 Wi-Fi Postioning System (WPS)
Le Wi-Fi Postioning System est utilisé lorsque le GPS ne convient pas Il permet
de localiser un appareil (par exemple : un smartphone) grâce à la détection d’un réseau Wi-Fi [5][6][12][13][15]
La technique pour un Wi-Fi point d’accès positionnement est basé sur la mesure
Trang 14de la force du signal reçu (Received Signal Strength – RSS) et sur la méthode de fingerprinting Un « fingerprint » comporte le RSS, le SSID du point d’accès et l’adresse MAC du routeur Il est nécessaire d’être connecté au réseau
Puis, l’appareil interroge une base de données à distance pour correspondre au
« fingerprint » avec la position La précision de la position dépend du nombre de positions stockées dans la base de données Les appareils vérifient périodiquement leur localisation en envoyant leur identifiant, la position GPS et
le Wi-Fi « fingerprint »
WPS est principalement utilisé pour déterminer les localisations dans les lieux publics (gares, centres commerciaux, musées, …)
Avantages
• Grâce à UUIDs, la localisation d’un « fingerprint » est absolument unique,
• La base de données de « fingerprint » est très riche,
• Il est possible de localiser les utilisateurs dans la plupart des supermarchés, des aéroports, des gares …
Inconvénients :
• Faible précision,
• Wi-Fi doit être activé sur le récepteur,
• Nécessite une connexion Internet pour interroger la base de données correspondant au « fingerprint » et à la localisation
1.1.1.2 Near Field Communication (NFC)
Near Field Communication est une technologie de communication sans fil avec une fréquence élevée et une courte portée qui permet aux appareils d’échanger des données à une distance jusqu’à 10cm Cette technologie est une extension de
la radio-identification (RFID – Radio Frequency Identification)
Tags NFC peuvent être lié à des informations telles que les pages Web, les réseaux sociaux et tout autre type de données D’autres domaines dans lesquels NFC est
en train d’émerger sont les paiements sans contact, le contrôle d’accès de la porte sécurisée avec des serrures sans contact, la signature sur des ordinateurs, … etc
Toutes ces actions partagent une exigence commune : vous devez être à proximité
du récepteur NFC
Principe de fonctionnement :
Pour comprendre comment fonctionne NFC, nous devons commencer par apprendre un peu plus sur la RFID Cette technologie permet d’identifier des objets, suivre leurs déplacements et lire leurs propriétés à distance en utilisant un tag qui émet des ondes radio et est attaché ou intégré dans l’objet La technologie RFID peut lire les tags qui ne sont pas visibles, même à travers des couches minces de matériaux (peinture, neige, etc.)
Un tag RFID est constitué d’une puce reliée à une antenne, enfermés dans une étiquette Il peut être lu par un appareil qui capture et transmet les informations
En outre, il existe deux grandes familles de RFID tags :
• Active tags : utilisent une source d’énergie intégrée (pile bouton, batterie,
Trang 15etc.) Ces tags offrent de meilleures plages, mais ont un cỏt plus élevé et avec une durée de vie plus courte
• Passive tags : utilisent l’énergie qui se propage à courte distance par le signal radio de l’émetteur Ces tags sont moins chers, généralement plus petits et leur durée de vie est pratiquement illimitée Cependant, ils nécessitent une grande quantité d’énergie provenant du lecteur
Qu’en est-il de NFC ?
NFC utilise des tags passifs avec trois modes de fonctionnement différents :
• Card emulation mode : le terminal mobile se comporte comme une carte sans contact La carte SIM du téléphone mobile peut être utilisé pour stocker et sécuriser les données cryptées (Ex : le paiement sans contact, gestion des coupons de réduction, …)
• Reader mode : smartphones NFC peuvent lire les tags pour afficher des informations utiles ou déclencher des actions automatiques (par exemple : visites interactives dans les musées ; automatisation des tâches : changer la sonnerie ou lancer d’une application dans la portée du NFC ; demander de l’information dans les magasins, …)
NFC tags peuvent être programmés pour envoyer des informations aux appareils à portée
• Peer-to-peer mode : permet à deux appareils NFC d’échanger des informations (Ex : transfert de photos entre une tablette et un smartphone, ouverture des portes de voiture, …)
• Des coupons de réduction ou des programmes de loyauté
• Visites interactives dans des musées, avec des informations utiles
• Contrơle d'accès aux zones réglementées
• Lecture des cartes de visite électroniques
• Fonctionnalités de la maison intelligente
• Suivi des colis
Avantages :
• NFC est instantanée et ne nécessite aucun effort de l'utilisateur
• Risque de vol de données est minimisé grâce à la courte portée
• NFC utilise moins batterie que Bluetooth ou Wi-Fi
• Aucune connexion Internet requise
Inconvénients :
• La portée est moins de 10cm (ne convient pas pour la géolocalisation et geofencing)
Trang 161.1.1.3 Beacon
Les Beacons sont de petites unités qui utilisent la technologie Bluetooth Low Energy (BLE) et diffusent périodiquement de petites quantités de données, ce qui permet aux applications mobiles de s’adapter à leur comportement [4][11][13]
Principe de fonctionnement :
Bluetooth Low Energy
Le Bluetooth Low Energy (BLE) est une technologie de transmission sans fil qui consomme 10 fois moins d'énergie que le bluetooth traditionnel, pour un débit de données équivalent
Il ne peut pas envoyer des données complexes, mais il fournira des informations telles que son identifiant, sa distance (ou plus précisément : la puissance du signal)
et beaucoup plus L'idée est d'intégrer Bluetooth 4.0 dans des unités portables de petite taille, qui fonctionnent souvent sur les batteries et ne peuvent pas être rechargées : moniteurs de fréquence du cœur, montres connectés, télécommandes, etc
iBeacon
Le terme iBeacon est inventé par l’Apple, il respecte tous les certifications de Beacon Par conséquent, tout appareil avec Bluetooth 4.0 (par exemple, un smartphone Android) peut communiquer avec un iBeacon
En principe, le Beacon est uniquement destiné à annoncer sa présence (via la diffusion) et il ne contient pas de données d'application, mais seulement ses identifiants
Trang 17Figure 1 - Exemple : Détection de la proximité d'un magasin
Avantages
• La vie de la batterie de l'appareil est prolongée grâce à BLE
• Facile à mettre en place et programmer
• Le risque de recevoir des notifications par erreur est proche de zéro
• La portée est de 70 mètres
Inconvénients
• Généralement, requiert une connexion Internet pour faire correspondre l'identifiant à l'information (Dans certains cas, les informations peuvent être stockées dans une application mobile.)
• Bluetooth doit être activé sur le récepteur
• La portée de Beacon ne convient pas aux micro-location
• Il n'y a pas de plan pour mettre en œuvre le traitement des paiements par Beacon et BLE
• Nécessite l'installation d'une application de suivi (tracking app)
1.1.1.4 Magnétique de Positionnement (Magnetic Positioning)
Une autre solution qui peut être utilisée pour déterminer un endroit ó aucun signal GPS disponible est les champs magnétiques et les utiliser pour dessiner une carte du bâtiment Le béton armé et la structure en acier sont un des nombreux matériaux de construction modernes qui ont une empreinte magnétique caractéristique Les animaux, et en particulier les pigeons voyageurs et les homards, sont capables de détecter des variations magnétiques et de les utiliser pour trouver leur chemin
Chaque bâtiment, étage, couloir ou l'ascenseur produit une perturbation distinctive En lisant ces anomalies, le système peut générer une carte de la localisation Ceci est une technologie très intéressante, car elle ne nécessite pas
de périphériques externes et fournit une précision de 10 cm
Application
Positionnement magnétique est principalement utilisé pour déterminer les
Trang 18emplacements dans les lieux publics (aéroports, gares, musées )
Cette technologie est encore utilisée et ses applications actuelles sont généralement limitées à un positionnement dans les lieux publics Mais la force
de positionnement magnétique consiste à la variété des utilisations possibles Sa grande précision le rend approprié pour la géolocalisation, ainsi que les utilisations geofencing, ce qui peut se révéler très utile pour les applications de géo-marketing
• Peu utilisé (quelques API, nombre limité de cartes à ce moment)
• Prend plus de temps à mettre en place que beacons
• Généralement, requiert une connexion Internet pour faire correspondre l'empreinte à la position (Dans certains cas, les informations peuvent être stockées dans une application mobile.)
La précision est trop limité pour cet usage
La localisation prévu par wifi
ne permet pas d'échange de données
NFC La portée de NFC ne convient pas
géolocalisation
La gamme de NFC est trop courte pour cette utilisation
Excellent
Beacons
Trang 19Nécessite un très grand nombre de Beacons
Beacons restent la technologie la plus appropriée pour geofencing
La portée de Beacon est trop élevé pour cet usage
Magnetic Positionning
L’exactitude est excellente
Très bon, mais pas largement utilisé et plus de temps à mettre en place que beacons
La localisation prévu par le champ
magnétique ne permet pas d'échange de données
Beacons est actuellement la solution la plus largement adoptée pour geofencing
Cette technologie est particulièrement bien adaptée pour définir le périmètre et il peut être utilisé pour une large gamme d'applications commerciales C’est la raison pour laquelle, il a été décidé pour ce projet d’utiliser cette technologie afin
de mettre en œuvre un système de la géolocalisation en intérieur
1.1.2 Mobile Crowd Sensing
1.1.2.1 Introduction
Les smartphones sont devenus essentiels dans notre vie quotidienne Ils sont normalement équipés d'un riche ensemble de capteurs, y compris le GPS, le microphone, l’appareil photo, l’accéléromètre, le gyroscope, la luminosité En conséquence, tout le monde peut facilement recueillir et partager l'information captée [1][2]
Le « Mobile Crowd sensing » (MSC) signifie l'intégration des capteurs qui peuvent être utilisés afin de collecter des informations matérialiste ou non-matérialiste, les gens peuvent utiliser ces capteurs et évidemment leur participation globale [14][16]
Le MSC émerge comme un paradigme de détection à grande échelle ó la collecte des données est généralement effectuée par les smartphones Il est une des technologies les plus importantes qui contribue à la santé, la surveillance, de la logistique et de l'organisation dans les futures villes intelligentes
« MCS est de compter sur la foule pour effectuer des tâches de détection à travers des appareils qui ont les capteurs activés »
Trang 202 Gyroscope Maintenir et contrơler la position, le niveau ou l'orientation fondé sur le principe du moment angulaire
3 Compas Donner la bonne direction par rapport au pơle nord-sud de la Terre par l'utilisation du magnétisme
4 GPS Permettre de suivre la cible ou «naviguer» les choses par carte ou une image
5 Proximité Détecter la proximité de l'écran de votre smartphone par rapport à votre corps
6 Luminosité
Optimiser la lumière de l'écran quand il exposé à la lumière normale avec une intensité différente, ajuster la luminosité de l'écran pour prolonger la vie de la batterie
7 Back- Illuminated
Un type de capteur d'image numérique qui change ou augmente la lumière capturée en capturant une photographie
1.1.2.3 Applications
• Ville intelligentes [1]: une gestion urbaine efficace est une tâche difficile car la densité de population élevée et un très grand nombre de interconnectées Un système de ville intelligents améliore l'efficacité de la ville en déployant des réseaux plus intelligents est un exigence critique Le MCS peut réduire les cỏts associés à la grande échelle de capteurs et en même temps fournir des données supplémentaires Les MCS engagent directement les citoyens dans la gestion de leur ville Les gens peuvent participer activement à des campagnes pour rendre leur ville plus sûre et plus propre
• Transport routier [1]: des données des schémas de trafic dans le pays en utilisant l’emplacement et des données de la vitesse sont fournies par des capteurs GPS embarqués dans les voitures Ensuite, ces données peuvent être utilisées pour l’ingénierie du trafic, la construction de nouvelles routes,
… Les conducteurs peuvent recevoir des informations de trafic en temps réel fondée sur les données collectées à partir de smartphones Les conducteurs peuvent également bénéficier de données de stationnement en temps réel recueillies par les voitures équipées de capteurs ultrasons Les organismes de transport ou les municipalités peuvent collecter efficacement des données de nids de poule en utilisant le GPS et l'accéléromètre des capteurs afin de réparer rapidement les routes …
• Santé & Bien-être [1]: les capteurs portés par des personnes pour la surveillance de la fréquence cardiaque et la surveillance de la pression sanguine peuvent communiquer leurs informations aux smartphones Généralement, cela se fait à la fois en temps réel et à long terme pour suivre
de la santé des individus La détection mobile peut tirer profit de ces données existantes dans les études de soins de santé à grande échelle qui recueillent de façon transparente des données à partir de divers groupes de
Trang 21personnes, qui peuvent être sélectionnés en fonction de l'emplacement, l'âge, etc Le MCS peut tirer profit des données existantes pour des études
de santé à grande échelle qui collecte des données de divers groupes de personnes (trier par l’âge, l’emplacement, …)
• Marketing / Publicité [1]: localisation en temps réel ou la mobilité des traces/schémas peut être utilisée par les vendeurs/annonceurs afin de cibler certaines catégories de personnes Puis, ils peuvent exécuter des enquêtes sensibles au contexte (fonction de l'emplacement, le temps, etc.)
1.1.3 Algorithmes
La « Trilatertion », le « Fingerprint », la « Triangulation », … sont des algorithmes qui nous permettent de localiser une position dans un environnement Actuellement, la recherche pour l’amélioration des algorithmes existants ou l’invention de nouveaux algorithmes est une tendance très développée Ainsi, choisir un algorithme efficace et assez facile à réaliser dans la programmation est une des choses importantes dans le développement d’un projet
1.1.3.1 Trilateration
Méthode de trilateration mettre le problème de géolocalisation en intérieur sur un problème de géométrie
Figure 2 - Méthode de Trilateration 01
Imaginez un plan avec des points Chaque capteur est un point qui a une longitude
et une latitude comme coordonnées De la même façon, la position de l’utilisateur
Trang 22est un point aussi Maintenant, le problème de calcul est devenu :
(x – x1)2 + (y – y1)2 = d12
(x – x2)2 + (y – y2)2 = d22
(x – x3)2 + (y – y3)2 = d32Après avoir fini de résoudre ce problème, on va avoir les coordonnées (longitude, latitude) de l’utilisateur
Figure 3 - Méthode de Trilateration 02
Les calculs mathématiques donnent toujours le résultat exact dans le cas ó les paramètres entrés sont exacts aussi Mais, les distances (d1, d2, d3) mesurées par les signaux iBeacons ne sont pas toujours exactes Pourquoi ? À cause des murs
entre un iBeacon et l’utilisateur Le problème est qu’un signal devient incorrect quand il doit être passé à travers le mur et la précision est diminuée quand le nombre de murs augmente
S’il y a trois murs entre l’utilisateur et un iBeacon et que la distance entre l’utilisateur et ce iBeacon est de 5m En réalité, au lieu de recevoir un signal concernant à 5m, on va récupérer un signal concernant à 15m Ça va beaucoup impacter le résultat!
Trang 23Figure 4 - Méthode de Trilateration 03
• Phase online : collecter des échantillons RSSI d’une position inconnue pour faire le positionnement Ces valeurs de RSSI sont comparées aux valeurs stockées dans la base de données et un algorithme qui correspond à la valeur réelle avec le fingerprint obtenue dans la phase offline afin de localiser l’appareil avec ses coordonnées
Avantages :
• Règle le problème de mûr
Inconvénient :
• La phase offline prend du temps et aussi le calcul est dur
• L’algorithme pour correspondre des valeurs doit exécuter de nombreux calculs dans le cas ó l’environnement est grand ou le nombre de pièces est grand
Trang 24Conclusion :
Les méthodes et les algorithmes de géolocalisation en intérieur sont en train d’être développés Il n’y a pas une solution parfaite aujourd’hui Puis, le problème des murs n’a pas de solution efficace non plus Il faut continuer de faire des recherches
et développer de nouvelles techniques (Bluetooth 5.0 avec la puissance plus forte par exemple) afin de trouver des moyens qui nous permettent d’avoir une méthode
de géolocalisation en intérieur plus exacte, plus efficace, …
1.2 Plate-forme pédagogique l’AREL
L’AREL (Atelier de Ressources E-Learning) est la plate-forme intranet de
l’École Internationale des Sciences de l’Information (EISTI) qui nous permet de retrouver l’emploi du temps des différents acteurs de l’école et un ensemble de ressources d’apprentissage en ligne
Figure 5 - Page d'accueil de la plate-forme d'AREL
En outre, AREL fournit une API REST pour que les développeurs puissent récupérer ses données Dans ce projet, cette API va être utilisée afin de récupérer certaines informations sur les utilisateurs comme :
• L’emploi du temps d’une personne,
• Les statuts des salles de l’école,
• Les événements actuel,
• Les programmes et les matières de l’école,
• Les notes d’un étudiant et ses cours,
L’objectif de l’intégration d’API AREL avec la géolocalisation en intérieur est que grâce aux informations reçues, l’application peut donner des recommandations ou des notifications à l’utilisateur C’est une des tâches qui
Trang 25permet de construire une application intelligente afin de s'adapter aux exigences
du sujet « Smart Engineering School »
1.3 Introduction de l’application iOS
L’application iOS est une combinaison de toutes les choses ci-dessus : une technologie de la géolocalisation en intérieur, le Mobile Crowd Sensing, un algorithme de la géolocalisation en intérieur, l’API AREL et encore d’autres fonctionnalités supplémentaires D’un côté, tous les travaux ci-dessus sont la partie théorique du projet D’un autre côté, le développement d’application iOS est la partie pratique du projet
Les fonctionnalités principales de l’application :
• Détecter et récupérer les signaux iBeacons des capteurs,
• Calculer la position de l’utilisateur grâce aux les signaux récupérés,
• Échanger les données de la position de l’utilisateur avec le serveur,
• Envoyer les requêtes au serveur et traiter sa réponse,
• Récupérer des données de l’utilisateur sur AREL,
• Donner des recommandations et aussi des notifications à l’utilisateur
Figure 6 - L'architecture du projet
L’architecture du projet se compose en quatre parties :
• Application iOS : le cœur du système qui communique avec les autres parties afin d’échanger les données dans le système
• Réseau des capteurs iBeacons : un réseau qui utilise Bluetooth Low Energy
Trang 26pour la communication, il permet de localiser la position de l’utilisateur, d’identifier et d’envoyer des informations à utilisateur
• Plate-forme e-learning AREL : fournit des informations, des ressources de l’école
• Serveur d’analyse de données : récupérer et analyser les données afin de donner des fonctions avancées
L'application iOS est un proof-of-cocept du projet L’application iOS et les trois
composant - le réseau des capteurs iBecons, la plate-forme AREL, le serveur d’analyse de données - permettent de construit un système de géolocalisation en intérieur
Trang 27Chapitre 2
MÉTHODOLOGIE ET OUTILS
Dans ce chapitre, la méthode « Le plus proche capteur » est présentée en détail,
le problème de la carte en intérieur est mentionné Ensuite, l’environnement (Xcode) et les langages de programmation (Swift, Objective-C) et les bibliothèques supplémentaires sont introduits.
Trang 282.1 Le plus proche capteur – Une amélioration de la
Les problèmes de la méthode Trilateration sont d’affecter le calcul de la position exacte de l’utilisateur Le besoin d’améliorer l’exactitude du calcul est nécessaire
En effet, il existe d’autres solutions, d’autres algorithmes, mais certains d’entre eux sont seulement théorique, certains sont difficiles à réaliser dans le code, … C’est la raison pour laquelle, d’améliorer la méthode de Trilateration est une bonne solution Par conséquent, la méthode « Le plus proche capteurs » a été développée
Figure 7 - Le proche capteur 01
Actuellement, supposons que l’utilisateur est en train de récupérer les signaux des trois capteurs iBeacons A, B, C avec ses distances respectivement : a, b, c (a < b
< c) L’iBeacon A donne la distance le plus courte, c’est-à-dire que sa distance est
la plus exacte aussi
Imaginons que la position de l’utilisateur doit être un point dans le cercle avec le centre A et le radius a Chaque point dans ce cercle a sa distance b’ au iBeacon B
Trang 29Figure 8 - Le proche capteur 02 Avantages :
• Donne de meilleurs résultats que la méthode Trilateration (Dans le cas idéal ó les signaux sont totalement exacts, la Trilateration donne de meilleurs résultat, bien sûr !)
• Besoin au moins de deux signaux iBeacons (au lieu de trois comme la Trilateration)
• Le problème des murs n’est pas résolu complètement, mais il a été limité
Inconvénients :
• Par l’influence du problème des murs, parfois la méthode choisit un point incorrect Cependant, car le plus proche capteur est choisi d’abord pour calculer, cette erreur est acceptable
2.2 Google Maps SDK et Mapbox SDK
Actuellement, les plates formes de cartes comme Google Maps, OpenStreetMap, Apple Maps, … ne supportent que d’afficher les cartes en extérieur Ils ont commencé à afficher les cartes en intérieur lors de ces années dernières, mais il n’y a pas une plate-forme complète C’est la raison pour laquelle, on doit faire des travaux supplémentaires afin d’afficher une carte en intérieur, de simuler la position de l’utilisateur et sa trajectoire, d’indiquer le chemin entre deux points,
… Deux frameworks : Mapbox SDK et GoogleMap SDK sont utilisés pour résoudre le problème de la carte
L’idée principale est d’utiliser une carte avec plusieurs couches :
Trang 30Figure 9 - L'idée d'utiliser une carte avec plusieurs couches
• La couche « Maps SDK » va afficher les informations de la carte du monde
• La couche « Environnement » ajoute les informations des bâtiments de l’EISTI comme : les salles de cours, les couloirs, les routes, …
• La couche « Objets » est utilisé pour afficher la position de l’utilisateur, les points ó des capteurs iBeacons sont installés, le chemin que l’utilisateur doit suivre pour aller à sa destination, …
Observons le changement quand on ajoute les couches étape par étape :
Utiliser la seule couche « Maps SDK » :
Figure 10 - La couche Maps SDK
C’est le bâtiment Cauchy - un des trois bâtiments de l’EISTI Ici, quand on utilise
Trang 31la seule couche « Maps SDK », on ne voit que la forme du bâtiment avec le couleur grise
Ajouter la couche « Environnement » :
Figure 11 - Ajouter l'environnement
Pour afficher la couche « Environnement », on doit suivre les étapes suivantes :
• Prendre la carte de l’EISTI sur OpenStreetMap,
• Prendre la carte d’un étage de bâtiment,
• Utiliser l’outil « GOSM » pour créer un ficher OSM avec les informations des bâtiments de l’EISTI,
• Convertir le ficher OSM à GEOJSON en utilisant le site web : http://tyrasd.github.io/osmtogeojson/
• Lire le ficher GEOJSON et ajouter les objets comme : polyline, polygon,
… dans la carte
Le code qui nous permet de lire et ajouter les informations (les salles de cours, les couloirs, les routes, …) dans une carte :
func drawMaps2(fileName: String , title: String ) {
let jsonPath = NSBundle.mainBundle().pathForResource(fileName,
if let features = jsonDict["features"] as ? NSArray {
for feature in features {
Trang 32if let feature = feature as ? NSDictionary {
if let geometry = feature["geometry"] as ?
}
let polygon = MGLPolygon(coordinates:
&coordinates, count: UInt(coordinates.count))
let random = arc4random_uniform(3)
Ajouter la couche « Objets » :
Cette couche se compose des objets comme : la position courant de l’utilisateur,
la position des capteurs iBeacons, le chemin entre deux point dans la carte, …
• Utilisateur : calcule sa position en utilisant des méthodes comme : la trilateration, le plus proche capteur et l’affichage sur la carte
• Capteurs iBeacons : ont été installés manuellement dans le bâtiment et stocké leur position dans un ficher JSON sur le serveur Le client télécharge
ce ficher une fois par semaine ce qui permet de les afficher sur la carte
• Le chemin : chaque fois que l’utilisateur veut trouver le chemin entre deux points (par exemple : deux salles, deux personnes), il envoie sa requête au serveur et le serveur lui retourne un ficher GEOJSON avec les informations
du chemin trouvé
Trang 33Figure 12 - Carte complète avec des objets
Le code ajoute un marquer dans une carte :
self userPosition = MGLPointAnnotation ()
self userPosition title = "Vous êtes ici!"
self userPosition coordinate = CLLocationCoordinate2DMake (49.035041,
2.070104)
self mapView addAnnotation( self userPosition )
La fonction qui permet de mettre à jour la position de l’utilisateur :
func changeUserLocation(notification: NSNotification ) {
let longitude: Double =
(notification.userInfo!["longitude"]?.doubleValue)!
let latitude: Double =
(notification.userInfo!["latitude"]?.doubleValue)!
self mapView.removeAnnotation( self userPosition)
self userPosition.coordinate = CLLocationCoordinate2DMake(latitude, longitude)
self mapView.addAnnotation( self userPosition)
}
Deux frameworks différents : Google Maps SDK et Mapbox SDK sont utilisés D’un côté, le Google Maps SDK est très populaire et très utilisé dans le monde, d’un autre côté, le Mapbox SDK est une nouveau framework et permet de développeré très rapidement
Afficher la carte
Très bien! Plusieurs styles, Bien ! Quelques styles de