Outils pour utilisateurs

Outils du site


cours:oc:gr6_16_17:gr6_16_17

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cours:oc:gr6_16_17:gr6_16_17 [2016/11/30 23:16]
hhossam [Services TIC & API :]
cours:oc:gr6_16_17:gr6_16_17 [2017/02/19 21:34] (Version actuelle)
hhossam [Rendu final]
Ligne 10: Ligne 10:
 ===== Groupe : ===== ===== Groupe : =====
  
-  * Chebaane ​Meriem , meriemchebaane93@gmail.com , IAM+  * Meriem ​Chebaane ​, meriemchebaane93@gmail.com , IAM
   * Eslam Hossam ​   , eslamhossam23@gmail.com ​   , IAM   * Eslam Hossam ​   , eslamhossam23@gmail.com ​   , IAM
-  * Meimari ​Sherif ​ , sherifmeimari@gmail.com ​   , IAM+  * Sherif ​Meimari ​, sherifmeimari@gmail.com ​   , IAM
  
  
Ligne 101: Ligne 101:
 {{ :​cours:​oc:​gr6_16_17:​diagramme_services_web.png?​nolink&​600 |}} {{ :​cours:​oc:​gr6_16_17:​diagramme_services_web.png?​nolink&​600 |}}
  
-On a choisi d'​utiliser ​REST et un format de données JSON.+On a choisi d'​utiliser ​UPnP et on a défini les services suivantes:
  
-Services rendues par l'​​objet:​​ 
   * Position GPS de la canne en cas de sa perte   * Position GPS de la canne en cas de sa perte
-  * Nombre d'​​appuis effectués par la canne+  * Nombre d'​​appuis effectués par la canne équivalent au nombre de pas effectués par l'​utilisateur
   * Fréquence cardiaque de l'​​utilisateur (en cas de l'​​utilisation de l'​​extension)   * Fréquence cardiaque de l'​​utilisateur (en cas de l'​​utilisation de l'​​extension)
     
-Services rendues par le serveur+Services rendues par une bean
-  * Calcul ​de distance/​vitesse moyenne/​temps ​de chaque promenade +  * Notification par mail en cas de dépassement d'une certaine threshold ​de pas et arrêt ​de calcul ​de pas 
-  * Analyse ​et comparaison ​de la vitesse ​de l'​​utilisateur entre la promenade d'hier et la promenade d'​​aujourd'​​hui +  * Notification ​par mail en cas de battements cardiaques élevés par rapport à une certaine threshold 
-  * Toutes données envoyées ​par la canne +  * Notification par mail en cas de demande ​de la localisation ​de la canne 
-   +
-APIs utilisés: +
-  * Google Maps API (pour l'​​affichage ​de la carte et le marker ​de la canne sur smartphone)+
 ===== Enveloppe de l'​Objet 3D : ===== ===== Enveloppe de l'​Objet 3D : =====
     
Ligne 145: Ligne 142:
  
 {{ :​cours:​oc:​gr6_16_17:​capture9.png?​nolink&​500 |}} {{ :​cours:​oc:​gr6_16_17:​capture9.png?​nolink&​500 |}}
 +
 +
 +
 +
 +====== Rendu final ======
 +
 +== Améliorations apportées après la soutenance ==
 +    * L'​équation de calcul des appuis de la canne prenait en compte l'​accélération des trois axes. Nous l'​avons changée de façon qu'il calcule juste depuis l'axe "​x"​ vu que l'​objet final assure que seulement le changement de valeur de cette axe indique un appui de la canne. L'​algorithme est beaucoup plus précis maintenant et la rotation de la canne ne cause pas de "faux appuis"​ ce qui était une des problèmes évoqués pendant la soutenance.
 +    * Nous avions une seule bean monolithique comprenant trois actions pour l'​envoi des Mails de notification. Nous avons modifié notre code de sorte que nous avons maintenant quatre beans indépendantes. Une seule bean pour l'​envoi des messages et trois autres pour la gestion et contrôle des données des capteurs. De cette manière, on assure la modularité et on permet l'​extension de notre application selon les besoins d'un utilisateur. On va vous montrer les paramètres à régler à la section de photos des composantes WComp.
 +
 +== Image de l'​objet démonté ==
 +    * Accéléromètre {{ :​cours:​oc:​gr6_16_17:​accelerometre.jpg?​nolink&​300 |}}
 +    * Bluetooth USB Dongle {{ :​cours:​oc:​gr6_16_17:​bluetooth_dongle.jpg?​nolink&​300 |}}
 +    * GPS {{ :​cours:​oc:​gr6_16_17:​gps.jpg?​nolink&​300 |}}
 +    * Grove Pi {{ :​cours:​oc:​gr6_16_17:​grove_pi.jpg?​nolink&​300 |}}
 +    * Power Bank {{ :​cours:​oc:​gr6_16_17:​power_bank.jpg?​nolink&​300 |}}
 +    * Raspberry Pi {{ :​cours:​oc:​gr6_16_17:​raspberry.jpg?​nolink&​300 |}}
 +    * SD Card {{ :​cours:​oc:​gr6_16_17:​sd_card.jpg?​nolink&​300 |}}
 +    * Wifi USB Dongle {{ :​cours:​oc:​gr6_16_17:​wifi_dongle.jpg?​nolink&​300 |}}
 +
 +== Image de l'​objet fini sans la canne ==
 +{{ :​cours:​oc:​gr6_16_17:​objet_final.jpg?​nolink&​300 |}}
 +
 +== Image de l'​objet monté sur la canne ==
 +    * Vue face {{ :​cours:​oc:​gr6_16_17:​vue_face.jpg?​nolink&​300 |}}{{ :​cours:​oc:​gr6_16_17:​vue_face_2.jpg?​nolink&​300 |}}
 +    * Vue profil {{ :​cours:​oc:​gr6_16_17:​vue_profil.jpg?​nolink&​300 |}}{{ :​cours:​oc:​gr6_16_17:​vue_profil_2.jpg?​nolink&​300 |}}
 +
 +== Code Source ==
 +
 +Vous pouvez trouver le code source du projet au lien suivant: https://​github.com/​eslamhossam23/​ocs
 +
 +== Environnement de travail Raspberry ==
 +
 +
 +Tout d'​abord,​ il faut installer la version raspbian jessie lite version 4.4.21-v7 sur la carte SD de la raspberry
 +
 +Il faut aussi configurer le SSH à On sur la raspberry
 +
 +Il faut ensuite installer les composantes suivantes:
 +    * Python 2.7
 +    * Python-pip
 +    * Librairie UPnP https://​github.com/​fuzeman/​PyUPnP via le fichier setup.py qui est la librairie qui permet la déclaration du device et ses services, actions et ses variables d'​état
 +    * Librairie PyGattlib via pip install gattlib. Lien de la documentation de la librairie https://​bitbucket.org/​OscarAcena/​pygattlib/​overview
 +    * GrovePi via le lien suivant https://​www.dexterindustries.com/​GrovePi/​get-started-with-the-grovepi/​setting-software/​
 +
 +== Exécution du code device ==
 +On a configuré la rasp de sorte qu'​elle connecte automatiquement au Wifi de l'​Ubiquarium suivant les étapes du lien suivant: http://​weworkweplay.com/​play/​automatically-connect-a-raspberry-pi-to-a-wifi-network/​
 +
 +Il faut allumer le power bank.
 +
 +Il faut aussi s'​assurer que vous êtes équipé du capteur de fréquence cardiaque.
 +
 +Ensuite, pour démarrer notre device sur notre raspberry, il vous suffit d'​écrire depuis un Terminal PuTTY: ./run
 +
 +    * Nom de l'​hôte:​ canne
 +    * Utilisateur:​ pi
 +    * Mot de passe: raspberry
 +
 +Vous allez le voire sous Device Spy.
 +
 +== Image du device sur Device Spy ==
 +{{ :​cours:​oc:​gr6_16_17:​device_spy.png?​nolink&​600 |}}
 +Il faut souscrire aux évènements de chaque service pour voir les modifications sur device spy.
 +
 +== Environnement de travail WComp ==
 +Il faut installer WComp 3.5 via le lien suivant: http://​www.wcomp.fr/​sharpwcomp3
 +
 +Il faut ajouter le fichier binaire MailTest.dll sous la directoire Beans sous la directoire d'​installation de SharpDevelop. Ce fichier contient les quatre beans qu'on a développées sous WComp.
 +
 +== Image des composantes sur WComp ==
 +
 +
 +Etapes:
 +
 +    * Vous devez ajouter la composante du device sous WComp via Nouveau -> Fichier -> UPnP Proxy Wizard
 +    * Vous trouverez la bean du device sous la catégorie UPnP Device {{ :​cours:​oc:​gr6_16_17:​device.png?​direct&​300 |}}
 +    * Vous devez faire Nouveau -> Fichier -> C# Cointainer
 +    * Vous trouverez nos beans sous la catégorie Custom {{ :​cours:​oc:​gr6_16_17:​beans.png?​direct&​300 |}}
 +    * Voici la composition initiale sans liaison sous WComp {{ :​cours:​oc:​gr6_16_17:​composition_sans_liaison.png?​direct&​300 |}}
 +    * On doit lier les évènements de la raspberry aux beans correspondantes en cliquant sur les flèches sortantes de la raspberry et puis sur la flèche entrante de la bean{{ :​cours:​oc:​gr6_16_17:​heartrate_et_envoi_de_mail.png?​direct&​300 |}} {{ :​cours:​oc:​gr6_16_17:​location_event_and_method.png?​direct&​300 |}} {{ :​cours:​oc:​gr6_16_17:​steps_event_and_method.png?​direct&​300 |}}
 +    * On doit lier l'​évènement stopcounting de la bean des appuis à la méthode StopSuivi qui signale à la raspberry d'​arrêter le calcul des appuis et les évènements{{ :​cours:​oc:​gr6_16_17:​alert_stop_suivi.png?​direct&​300 |}}
 +    * Si vous voulez changer les mails de la Mail Bean, par exemple modifier l'​émetteur et le récepteur, vous trouverez les paramètres de la bean quand vous la sélectionnez. To: récepteur, From: émetteur, Password: mot de passe de l'​émetteur. On a utilisé une addresse mél, qu'on a créee pour la canne, pour l'​envoi des méls. {{ :​cours:​oc:​gr6_16_17:​parametres_mail.png?​direct&​300 |}}
 +    * Pour les deux beans d'​appuis et de battements cardiaques, vous pouvez modifier la valeur limite après laquelle on envoie l'​alerte depuis la propriété Threshold. {{ :​cours:​oc:​gr6_16_17:​parametres_heart_beat.png?​direct&​300 |}}{{ :​cours:​oc:​gr6_16_17:​parametres_step.png?​direct&​300 |}}
 +
 +== Image de la composition finale ==
 +{{ :​cours:​oc:​gr6_16_17:​composition_finale.png?​direct&​300 |}}
 +
cours/oc/gr6_16_17/gr6_16_17.1480544209.txt.gz · Dernière modification: 2016/11/30 23:16 par hhossam