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 22:51]
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
-  * 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 dépassement ​d'une certaine threshold de pas et arrêt de calcul de pas 
-  * Toutes données envoyées ​par la canne +  * Notification ​par mail en cas de battements cardiaques élevés par rapport à une certaine threshold 
-   +  * 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 : =====
     
 Notre objet sera dans une boîte qui s'​​attache à la canne à travers deux ceintures. Elle est positionné verticalement pour bien distribuer la masse et ne pas perturber la balance de la canne. Elle contient également tous les capteurs (sauf celui de la fréquence cardiaque) et elle est alimentée par un power bank. Notre objet sera dans une boîte qui s'​​attache à la canne à travers deux ceintures. Elle est positionné verticalement pour bien distribuer la masse et ne pas perturber la balance de la canne. Elle contient également tous les capteurs (sauf celui de la fréquence cardiaque) et elle est alimentée par un power bank.
-===== Croquis : ===== 
- 
-===== Emplacement Matériel et Connectique : ===== 
  
 ===== Modèle 3D : ===== ===== Modèle 3D : =====
Ligne 147: 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.1480542679.txt.gz · Dernière modification: 2016/11/30 22:51 par hhossam