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:gr2:gr2

Présentation du projet

Yann SEREE - Créneau matin – yann.seree@gmail.com
Kaiwen YU - Créneau matin
Nom du projet : Économiseur de batterie

Description et scénario

Le but de l’application est de permettre à l’utilisateur d’économiser sa batterie en fonction de son emplacement et de ses habitudes d’utilisation.
L’application permet de cartographier la consommation de la batterie du smartphone de l’utilisateur.
Trois clusters se dégageront de cette carte : les lieux où on ne consomme pas beaucoup de batterie, les lieux où on en consomme moyennement et ceux où on consomme beaucoup.
Ainsi l’utilisateur pourra consulter cette carte et ainsi déterminer ou non s’il doit recharger son smartphone en fonction de l’endroit qu’il souhaite se rendre.
Ainsi en fonction de la position de l’utilisateur, on lui conseillera de recharger ou non son téléphone.

Matériel disponible

Nom du smartphone : OnePlus 3
Caractéristiques techniques : https://oneplus.net/fr/3/specs
Résumé des fiches techniques en termes de ressource :

  • Capteurs :
    • capteur d’empreinte digitale
    • capteur Hall
    • accéléromètre,
    • gyroscope
    • capteur de proximité
    • capteur de luminosité ambiante
    • boussole électronique
  • Localisation
    • GPS
    • GLONASS
    • BeiDou

OS : Android 6.0.1
Environnement logiciel :

  • Android Studio (dernière version)
  • Projet GitHub

Ressources utilisées dans le projet

Capteurs et data collectés par le mobile :

  • Coordonnées GPS
  • Consommation de la batterie

Liste des SDK et API : cf. Faisabilité du projet

Cible mobile: la cible mobile sera les smartphones tournant sous Android 4.1 (Jelly Bean) ou supérieur couvrant ainsi 97,1 % des terminaux Android.

Algorithme

Avec les données récoltées nous recherchons à faire 3 clusters : les lieux où on ne consomme pas beaucoup de batterie, les lieux où on en consomme moyennement et ceux où on consomme beaucoup.
Un algorithme non supervisé de type Clustering comme K-means sera donc utilisé.

Faisabilité du projet

Le projet est faisable, en effet les données sont facilement récupérables.
Pour la géolocalisation de l'utilisateur, Google recommande d’utiliser l’API Google Play services location
https://developer.android.com/training/location/index.html?hl=fr

L’API Google Maps sera utilisée pour afficher la carte à l’utilisateur
https://developers.google.com/maps/documentation/android-api/?hl=fr

Le SDK d’Android nous permet d’avoir accès au pourcentage de batterie courante
https://developer.android.com/training/monitoring-device-state/battery-monitoring.html.

Rendu final

Version SEREE

Code

Code source

Serveur

Lancement du serveur

Pour lancer le serveur télécharger le .zip du serveur ci-dessus (section Code).
Extraire le .zip puis lancer start.bat qui permettra d'exécuter le jar.
Le serveur tourne sur le port 3456, veuillez vous assurer que le port n'est pas pris par un autre processus.
Le fichier values.json contient les données collectées, le kmean est exécuté à partir des données contenues dans ce fichier. Ce fichier json est mis automatiquement à jour lorsque de nouvelles données collectées sont reçues par le serveur.

Application Android

Capture d'écran


Lancement de l'application Android


  • Télécharger le zip contenant l'apk (lien ci-dessus)
  • Extraire le zip et lancer l'installation de l'apk sur le smartphone
  • Rentrez tout d'abord l'adresse IP de la machine qui exécute le serveur (comme sur la première capture d'écran ci-dessus) et cliquez sur le bouton START
  • Acceptez ensuite la permission pour la localisation
  • Cliquer sur le bouton REFRESH KMEAN pour obtenir le Kmean du serveur, comme sur la seconde capture d'écran ci-dessus, vous obtiendrez les centroids ainsi que les points correspondants aux clusters (vert correspondant à une consommation de batterie faible, bleu à une consommation moyenne et rouge à une consommation forte).
    L'utilisateur peut afficher uniquement certain cluster en cochant/décochant les chekbox (faible/moyenne/forte)
    Il est également possible de consulter tout les points en cliquant sur l'onglet Liste (la consommation affichée correspond au pourcentage de batterie utilisé par heure).
Notes techniques de l'application


L'application utilise un AlarmManager (https://developer.android.com/reference/android/app/AlarmManager.html) permettant ainsi de lancer la collecte des données toutes les 15 minutes, ce qui évite d'avoir un service ou un asynctask tournant en continu en arrière plan. De ce fait l'application consomme très peu de batterie et n'influence donc pas sur les données collectées de la consommation de batterie.
Les données collectées sont stockés directement dans un fichier interne (doc) sous format JSON afin de pouvoir utiliser l'application en hors-connexion.
Si une connexion internet est présente (le smartphone et le serveur devant être sur le même WiFi), le contenu de ce fichier est envoyé au serveur.
Du côté du serveur, les données reçues sont automatiquement placées dans un fichier JSON (values.json).
Lorsque l'utilisateur actionne le bouton REFRESH KMEAN, une requête est envoyé au serveur :

  • le serveur exécute l'algorithme du Kmean depuis les données contenues dans son fichier values.json
  • le résultat de ce Kmean est stocké dans un autre fichier JSON (kmean.json)
  • le contenu de ce fichier est envoyé à l'application Android.

Une fois le kmean reçu, l'application le stocke dans un fichier interne. Ainsi les différents clusters du kmean sont également accessibles hors-connexion.

Version YU

cours/plim/projet16_17/gr2/gr2.txt · Dernière modification: 2017/02/19 21:10 par yseree