Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:plim:projet16_17:gr13:gr13

Wifi Locator

Présentation du projet

  • Nom 1 : Chebaane Meriem
  • Créneau (AM ou PM) : AM
  • Nom 2 : Meimari Sherif
  • Créneau (AM ou PM) : AM
  • Nom du Projet : Wifi Locator

L'idée principale du Projet

De nos jours, être connecté est désormais une nécessité et la preuve est dans la croissance des souscriptions aux réseaux téléphoniques et l’achat de Smartphones. En effet tout est en ligne. Grâce à notre connexion Internet, nous sommes reliés au monde: nos contacts, nos réseaux sociaux, nos sites commerciaux, notre e-mail et ainsi de suite. Le monde est devenu dépendant d’Internet au point que même les choses les plus traditionnels nous les faisons également en ligne.

C'est alors dans le but de répondre à ces besoins qu'on souhaite réaliser une application mobile en Android qui permet, via le GPS et le détecteur de wifi, d'afficher une carte qui représente la région avec le meilleur signal des réseaux Wifi “publics” disponibles aux alentours de l'utilisateur. En effet grâce à une base de données, ces résultats ne sont pas limités au périmètre du Smartphone de l'utilisateur mais il aura à tout moment une vision complète de toutes les connexions wifi publics possibles sur une seule carte (grâce à l'affichage de toutes les connexions de tous les utilisateurs de l'application sur une seule carte utilisant Google Maps API).

Un scénario d'illustration du Projet

Avec ce scénario on présente l'efficacité de notre application d'une façon claire:

* Bob est un touriste qui vient d'arriver à Nice il a une connexion très lente alors qu'il a besoin d'accéder au wifi pour partager des vidéos des lieux visités avec sa famille.

C'est dans ce cas que notre application intervient:

* Bob clique sur le bouton de recherche pour savoir les localisations des connexions wifi publics disponibles à Nice. D'où une carte qui sera affichée présentant la région avec le meilleur signal de chaque wifi public dans la région publique qu'il examine. Grâce à ce système, le touriste est capable de détecter les meilleures connnexions (en terme de force de signal) même s'ils sont à 50 mètres plus loin de sa position (limite maximal de chaque détecteur).

Matériel disponbile

  • Tout au long de ce projet on va utiliser : Sony Xperia Z1 Compact
  Fiche technique
  • Ecran:
  1. Taille: 4.3 pouces
  2. Résolution: 720 x 1280 pixels
  3. 16 millions de couleurs
  4. IPS LCD Tactile, multipoints (plus de 10 multitouches), capacitive
  5. Protection: Shatter proof glass, affichage trilumineux & X-Reality Engine
  • Multimédia:
  1. Appareil photo 20.7 megapixels avec Flash LED + autofocus
  2. Vidéo: 1920×1080 pixels (1080p@30fps) avec plage dynamique élevée HDR (High dynamic Range)
  3. 1 / 2.3 “taille du capteur, géo-tagging, mise au point tactile, le visage / détection de sourire, panorama
  • Communication/Réseaux:
  1. GSM/HSPA/LTE (2G, 3G, 4G)
  2. Speed: HSPA 42.2/5.76 Mbps, LTE Cat4 150/50 Mbps
  3. GPRS (plus de 107 kbps)
  4. EDGE (plus de 296 kbps)
  5. Wi-Fi 802.11 a/b/g/n/ac, dual-band, Wi-Fi Direct, DLNA, hotspot
  6. Bluetooth: v4.0, A2DP, aptX
  7. NFC
  • Capteurs:
  1. GPS intégré(A-GPS, GLONASS)
  2. Accéléromètre
  3. Gyroscope
  4. Détecteur de proximité
  5. Boussole numérique
  6. Détecteur du visage/sourire
  7. Détecteur de luminosité ambiante
  • OS et environnements logiciels pour développer:

Android OS, SDK v4.3 (Jelly Bean), upgradable to v5.1 (Lollipop)

Ressources utilisées dans le Projet

  • Capteurs:
    1. GPS (A-GPS, GLONASS) (localisation)
    2. Capteur Wifi (pour obtenir les SSID et les infos des wifi à proximité)
  • Environnement de logiciel: Android Studio 2015
  • Version OS: Android 4.3 (Jelly Bean)

Algorithme

L'idée de l'application c'est qu'elle ne cherche pas seulement les connexions Wifi et l'affiche pour l'utilisateur mais, elle lui présente, pour chaque région, tous les connexions wifi publics par leurs SSIDs et lui affiche pour chaque connexion le spot dans lequel se présente le meilleur signal. Donc, elle donne à l'utilisateur la possibilité de trouver les Wifis publics, les plus rapides et les plus comfortables avec la localisation du meilleur signal.

Or, afin de trouver les régions avec le meilleur signal, on a besoin d'un algorithme qui va analyser les données qu'on lui donne, et par la suite, il va regrouper beaucoup de positions (Latitude et Longitude) et de force de signaux ensemble, formant différents clusters parmi lesquels on trouvera le cluster des positions avec la force de signal la plus élevé: c'est donc le Clustering K-means non-supervisé qui prend place.

En effet, l'algorithme traitera les données suivantes:

  • La force du signal présentée par le “level” de chaque scanResult du Wifimanager API
  • Les coordonnées GPS de chaque utilisateur

On estime donc que pour chaque connexion wifi, on va trouver trois clusters d'objets d'une classe “accessPoint” présentant les trois données traités (Latitude, Longitude et level), dont on récupèrera le groupe avec le centroide présentant la moyenne de level la plus élevée présentant ainsi la région avec le meilleur signal de cette connexion wifi.

Conclusion sur la Faisabilité du Projet

Selon une étude approfondie, le projet est réalisable mais il faut prendre en soin de bien retenir les SSID des connexions WiFi (en étudiant le cas d'avoir des SSID du même nom et évitant leur réplication dans la base de données) et les bien localiser et enregistrer dans une base de données tout en distinguant entre ceux qui ont un accès public et ceux qui utilisent la technique de portail captif.

En plus notre application sera plus efficace plus qu'on a des utilisateurs. C'est dans ce cadre qu'on va tout d’abord commencer par une petite région (Polytech Nice), puis de plus en plus répandue (Sophia et Antibes) jusqu’à Nice. Avec chaque utilisateur, un nouveau WiFi s’enregistre dans la base de données et par suite s’affiche sur la carte.

Pour assurer nos objectifs, il est essentiel de bien gérer notre base de données et d'essayer d'avoir la région exacte du meilleur signal de chaque connexion WiFi en appliquant bien les algorithmes.

Rendu Final

Code Source

Voici notre code final du Wifi Locator. Vous trouvez le code dans le lien suivant:

https://github.com/meriemchebaane/elimwifilocator

Architecture Globale

Nous procédons à concevoir et à développer notre application en adoptant l’architecture suivante:

  • Coté Client : notre application mobile
  • Coté Serveur: Cloud basé sur Google App Engine
  • Gestion de base de donne en utilisant FireBase

Conception de notre base de données

Notre proposition consiste à stocker la position de l’utilisateur ainsi que la valeur de débit des Wifis autour de lui. Dans ce contexte et devant les contraintes actuelles de notre application, notre base de données doit permettre à l’utilisateur d’accéder aux données dans un temps réel et d'une manière synchrone et asynchrone à la fois.

Pour que nos données soient accessibles facilement et synchronisées en temps réel sur tous les appareils connectés, nous avons utilisés Firebase. Ce service se charge d’héberger les informations de wifis sous forme dun objet JSON.

Nous avons utilisé aussi le système d’authentification offert par firebase. L’idée est qu’il propose un service prêt emploi qui ne va pas stocker les identifiants, mais assure le mécanisme de l’authetification elle-même.

Firebase permet aussi un cache pour anticiper sur des communications intermittentes et asynchrones.

Coté Serveur

Notre application envoie une requète POST sous forme d’une liste des points d’accès(la valeur de latitude,longitude et le level) des wifis sélectionnés au Servlet (notre serveur Cloud). Suite à cette demande, le serveur fait appel à notre algorithme K-means de 3 dimensions qui permet de grouper les données en K groupes selon la proximité des valeurs. Ce résultat sera trié selon le débit du centroid de chaque cluster obtenu afin d’avoir les meilleurs signaux à renvoyer au client.

Coté Client
  • Installation obligatoire

Puisque notre serveur et notre base de données sont déployés sur le cloud il va vous falloir d’installer l’application sur votre smartphone Android.

Télécharger et installer l’APK suivant sur votre smartphone :https://github.com/meriemchebaane/elimapk

Pour le bon fonctionnement de l’application, n’oubliez pas d’activer la localisation.

  • Utilisation de l’application mobile

Suite à l’authentification, une map sera affiché au dessus d’une liste des wifis autour du l’utilisateur.

Pour rajouter les nouvelles valeurs des wifis présentes, vous auriez besoin de cliquer sur le bouton plus.

Le deusième bouton sert a afficher la liste des regions.

L’amélioration effectuée tout au long de ce projet c’est qu’au lieu d’éffectuer un cluster sur un seul wifi dans une region bien précise, on envoie tout les wifis de la même region et on effectue le clustering pour rassurer le bon fonctionnement de K-means. En effet, dans la premiere version nous avons eu des clusters videos alors que lors du changement effectué nous avons réçu tout les clusters bien définis. Prenons le cas de 5 clusters ce que nous aurons en background comme ci-dessous:

Finalement, nous affichons les meilleurs signaux sur notre map:

cours/plim/projet16_17/gr13/gr13.txt · Dernière modification: 2017/02/20 00:01 par mchebaane