Ci-dessous, les différences entre deux révisions de la page.
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 [2017/02/14 13:41] 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 109: | Ligne 109: | ||
Services rendues par une bean: | Services rendues par une bean: | ||
* Notification par mail en cas de dépassement d'une certaine threshold de pas et arrêt de calcul de pas | * Notification par mail en cas de dépassement d'une certaine threshold de pas et arrêt de calcul de pas | ||
- | * Notification par mail en cas de battements cardiaque élevés | + | * 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 | * Notification par mail en cas de demande de la localisation de la canne | ||
Ligne 142: | 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 |}} | ||
+ |