Difference between revisions of "Projets-2016-2017-UltraTeamBest"

From air
Jump to navigation Jump to search
 
(15 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  +
=Project presentation=
[[Image:IDS-Experimenta2.jpg|300px|right|IDS LivingMap à Experimenta 2013]]
 
   
  +
Ce projet propose de développer une application Web mobile permettant aux membres d'une équipe ou d'un groupe de randonneurs (marche, ski rando, ski piste, , ski nordique ...) de se positionner les uns les autres (temps de course, de marche, distance) en temps réel et de surveiller/gérer l'effort des membres de l'équipe.
=Preambule=
 
   
  +
L'application permettra d'enrôler facilement les membres d'une équipe/groupe (Code numérique, QRCode, NFC, ...)
The project subject [[Interactive Digital Signage]]
 
   
  +
L'application permettra de charger ou d'échanger les traces (GPX, GeoJSON) et les mesures physiologiques (''Hearth rate'', Foulée, ...) via des supports de stockage comme [[OwnCloud]], Google Drive, Dropbox, Facebook, [http://tracedetrail.fr/ Trace de Trail] ...
This project is handled from years to years by Polytech Students :
 
 
Projet en collaboration RICM5 et DSAA L3+1 (Agence Limonade)
 
   
  +
L'application permettra également de mesurer l'effort en temps réel de/des coureurs (temps passé dans les régimes cardiaques) et d'en informer le coureur et/ou le chef d'équipes, les guides accompagnateurs. Pour cette fonctionnalité, il est prévu d'intégrer les mesures collectées sur des montres ou des bandes cardio Bluetooth 4.0 [[HRM]].
* Etudiantes DSAA: [[User:Lauriane_DUGIT-GROS|Lauriane DUGIT-GROS]], [[User:Ophelie_BATTAGLIA|Ophelie BATTAGLIA]], [[User:Julie_FUND|Julie FUND]] . Enseignant Jean-Baptiste Joatton. [[IDS2013-DSAA|fiche de suivi]]
 
* Eleves RICM5 : [http://simon.bisch.free.fr/cv/ Simon BISCH], Aurélien CLAVELIN, [http://ffourure.free.fr/ Florian FOURURE] . Enseignant [[User:Donsez|Didier Donsez]]. [[IDS2013-RICM5|fiche de suivi]]
 
 
[http://air.imag.fr/mediawiki/index.php/File:-BISCH-FOURURE-CLAVELIN--RICM5-IDS-Presentation.pdf transparents] & [http://air.imag.fr/mediawiki/index.php/File:Flyers-IDS-BISCH-FOURURE-CLAVELIN.pdf flyer] & [http://air.imag.fr/mediawiki/index.php/File:Poster-IDS-RICM5-BISCH-FOURURE-CLAVELIN.png poster] & [http://youtu.be/N9lzwH4TDQ8 video] & [https://github.com/tetram/ids github]
 
 
It is now handled by two Polytech students : Christophe Adam and Zhengmeng Zhang
 
 
=Project presentation=
 
   
  +
L'application devra pouvoir fonctionner avec/sans réseau 4G/3G, avec/sans 2G (ie SMS), avec/sans un réseau [[LPWAN]] opéré ou privé ([[SigFox]], [[LoRa]]), avec un réseau LPWAN adhoc (broadcast).
Le but du projet est d'améliorer la borne interactive qui a été commencé il y a deux ans par des élèves de RICM5.
 
   
  +
Matériel fourni:
La borne doit pouvoir:
 
  +
* [https://www.decathlon.fr/cardio-bluetooth-smart-40-id_8288269.html Bande cardio Bluetooth 4.0 HRM Décathlon].
  +
* [https://www.decathlon.fr/montre-gps-cardio-onmove220-hr-id_8374054.html Montre GPS cardiofréquencemètre ONMOVE 220 HRM connectée vert GEONAUTE]
  +
* 2 trackers GPS [[LoRa]] Semtech.
   
  +
API Google Android Wear
* afficher des informations sur Polytech de façon autonome (les informations seront dans un PowerPoint).
 
  +
* https://developer.android.com/wear/index.html
* afficher l'emploi du temps des différentes filières.
 
* indiquer le prochain cours lorsqu'une personne passe une carte NFC devant le lecteur NFC.
 
* être autonome (en mettant les emplois du temps à jour régulièrement et automatiquement).
 
   
 
= Team =
 
= Team =
Line 74: Line 66:
 
Création d'une mini appli android qui permet d’accéder au modem lorsqu'il est branché en série au téléphone. Si je connecte un modem au téléphone et le second à un PC, je peux les faire communiquer. Upload sur Github d'ici demain au pire. Pour réaliser cette magie noire, j'ai utilisé USBSerial : https://github.com/felHR85/UsbSerial. Et j'ai forké l'appli exemple du même auteur https://github.com/felHR85/SerialPortExample. La difficulté à été de faire fonctionner et surtout comprendre l'ensemble. J'ai ensuite configuré le code pour qu'il marche avec nos modems (bauds rate, parity none, cr and lf).
 
Création d'une mini appli android qui permet d’accéder au modem lorsqu'il est branché en série au téléphone. Si je connecte un modem au téléphone et le second à un PC, je peux les faire communiquer. Upload sur Github d'ici demain au pire. Pour réaliser cette magie noire, j'ai utilisé USBSerial : https://github.com/felHR85/UsbSerial. Et j'ai forké l'appli exemple du même auteur https://github.com/felHR85/SerialPortExample. La difficulté à été de faire fonctionner et surtout comprendre l'ensemble. J'ai ensuite configuré le code pour qu'il marche avec nos modems (bauds rate, parity none, cr and lf).
   
 
[[Projet-2014-2015-Interactive_Digitale_Signage/SRS| '''SRS''']]
 
   
 
== Week 3 (January 26th - February 01st) ==
 
== Week 3 (January 26th - February 01st) ==
   
Réalisation des diagrammes UML
+
Réalisation des diagrammes UML de cas d'utilisations.
  +
Notre application n'as pas vraiment de diagramme de classes car la majorité des classes sont des Activity ou des Service.
 
[[Projet-2014-2015-Interactive_Digitale_Signage/UML| '''Diagrammes UML''']]
 
   
 
== Week 4 (February 02nd - February 08th) ==
 
== Week 4 (February 02nd - February 08th) ==
   
  +
Essai d'intégration de l'application à GreenHouseCI pour faire du déploiement continu. Essai de divers IDE online pour essayer de faire du déploiement continu.
Utilisation de l'outil Scrum.
 
 
*Réalisation du Planning Poker avec les User story pour chaque acteurs (cf. les acteurs du diagramme de cas d'utilisation réalisé dans la partie UML).
 
*Réalisation de Product Backlog avec les différents niveaux de priorités.
 
*Écriture du 1er Sprint et de 2nd Sprint.
 
 
[[Projet-2014-2015-Interactive_Digitale_Signage/Scrum| '''Scrum''']]
 
 
Bilan de la marche à suivre.
 
 
Pour la fonctionnalité emploi du temps :
 
 
*Utilisation de la fonctionnalité Export d’ADE pour obtenir l’emploi du temps au format ICalendar et en suite le traité pour extraire l’information désirée. Au final, c’est une base de donnée qui sera remplit pour l’emploi du temps de chaque filière. La base de données sera réalisée avec MongoDB et sera mise à jour régulièrement.
 
 
Pour l'affichage des informations sur Polytech :
 
   
  +
Amélioration de l'application de test des boitiers Lora (raccourci, derniere commande utilisé..)
*L’affichage des informations sur Polytech avec Reveals.js. Les informations à afficher seront dans un PowerPoint pour plus de facilité.
 
*La récupération de l’emploi du temps se fera à travers un serveur Node.js.
 
*L’ensemble du projet est codé en HTML/CSS/PHP/JavaScript/JSON.
 
   
 
== Week 5 (February 09th - February 15th) ==
 
== Week 5 (February 09th - February 15th) ==
   
  +
Modification de l'appli en application avec des onglets. Un onglet terminal USB série, un onglet GPS, un onglet configuration
[[Media:Conception Architecturale.pdf|Conception Architecturale]]
 
 
* Mise en place d'un système de synthèse vocale avec Voxygen pour faire parler la borne. (Fonctionnel avec 20 voix différentes)
 
 
* Découverte de node.js.
 
 
* Continuation de la réalisation d'une présentation de Polytech avec l'outil Reveal.js.
 
 
* Etude sur la façon de récupérer l'emploi du temps de chaque filière. (Choix du format iCalendar)
 
 
* Parsage du fichier iCalendar en node.js.
 
 
* Utilisation probable de MangoDB pour stocker les emplois du temps dans une base de donnée.
 
 
Lien waffle.io : https://waffle.io/zhangzhengmeng/projetids2015
 
   
 
== Week 6 (February 23th - March 1st) ==
 
== Week 6 (February 23th - March 1st) ==
   
  +
Travail sur la map. Suivi d'un tuto pendant de longues heures pour que celui ci se révèle obsolete et donc inutilisables.
Travail réalisé :
 
  +
Génération de la clé pour l'API de Google pour les maps.
   
  +
La clé : AIzaSyB4iTwLc9rSwh5RebtpKjUR0XKIIv5P9gY
* Emploi du temps (chargement auto, traitement, sauvegarde) -> OK
 
* Synthèse vocale (lecture d’information, création de phrase dynamique) -> OK
 
* Présentation dynamique de Polytech avec Reveal.js -> OK
 
* Affichage emploi du temps -> OK
 
* Création d’un serveur avec node.js -> OK
 
 
Travail restant :
 
 
* Utilisation du lecteur NFC
 
* Utilisation de la Kinect pour contrôle par gestes sur les pages web
 
https://github.com/bengfarrell/nuimotion
 
https://github.com/pgte/node-openni-browser
 
* Installation des programmes réalisés sur la borne
 
 
[[Media:Evalution mi-parcours IDS.pdf|Slides évalution mi-parcours]]
 
   
 
== Week 7 (March 02nd - March 08nd) ==
 
== Week 7 (March 02nd - March 08nd) ==
   
  +
Travail sur la map, tous les tutos se contredisent. Création d'un nouveau dépot GitHub afin de repartir sur de bonnes bases car tout le dépot est cancérisé
* Nettoyage du code réalisé en Java pour la partie emploi du temps et synthèse vocale.
 
* Présentation du travail réalisé jusqu'ici lors de la soutenance de mi-parcours.
 
* Travail sur la partie NFC (récupération du lecteur NFC).
 
   
 
== Week 8 (March 09nd - March 15nd) ==
 
== Week 8 (March 09nd - March 15nd) ==
   
  +
La carte commence à fonctionner, on peut ajouter des markers.
* Travail sur la partie NFC.
 
  +
On positionne aléatoirement des gens sur la carte.
* Récupération des puces NFC et du code réalisé par des élèves de l'ENSIMAG pour utiliser le lecteur NFC.
 
  +
On peut calculer les distances entre eux.
* Adaptation du code au projet.
 
   
  +
Ajout d'une page de configuration des groupes
== Week 9 (March 16nd - March 22nd) ==
 
   
  +
Début du travail sur le bluetooth, à l'aide du Googlesamples sur le Bluetooth Low Energy
* Problème avec le lecteur NFC et le code fourni.
 
* Problème avec une puce NFC... décidemment '^^...
 
* Visite de la CTI.
 
   
== Week 10 (March 23nd - March 29nd) ==
+
== Week 9 (March 16nd - March 22nd) ==
   
  +
Corerection de bug sur la map
* Problème du lecteur NFC résolu -> nouveau lecteur bien mieux
 
  +
Partage de données entre activity
* Intégration du code NFC -> OK
 
  +
Ajout de la possiblité de mettre un point de rendez vous que tous le monde voit
* Récupération de puces NFC supplémentaires car seulement une puce fonctionne (pas terrible pour les tests)
 
* Récupération du nouveau PC à installer dans la borne (il y a de la musique quand on ouvre la boite ou qu'il y a de la lumière)
 
* Récupération d'une clé pour installer Windows 7 Professionnel 64bits
 
* Récupération d'un téléphone Android pour programmer les puces (Android c'est nul xD)
 
   
  +
Que se passe-t-il sur le bluetooth low energy?? Impossible d'intégrer le google sample
== Week 11 (March 30nd - April 05nd) ==
 
   
  +
== Week 10 (March 23nd - March 29nd) ==
* Nous avons trouvé une solution formidable pour afficher les emplois du temps de chaque filière avec Reveals.js ce qui permettra de consulter très facilement les emplois du temps sur la borne
 
* Réalisation de lien les gestes et les diapositives de Reveal.js avec Openni + Processing en utilisant websocket
 
* Installation de Windows 7 Professionnel sur le nouveau PC + tous les drivers Intel NUC D54250WYKH
 
* Installation du programme qui gère les emplois du temps (avec WampServer)
 
* Installation du programme qui gère l'affichage sur la borne et la détection des gestes
 
   
  +
Ajout d'animation à la carte
=Synthèse du projet=
 
   
  +
Amélioration des structures de données -> création de la classe Personne et UltrateamApplication
==Contexte==
 
[[Interactive Digital Signage]]
 
   
  +
Bluetooth finalement opérationnel. Il fallait changer le type de la classe principale en AppCompatActivity (au départ en ListActivity) et résoudre tous les problèmes que ce changement impliquait. J'avais déjà tenté cette solution mais m'étais résigné en voyant l'étendue des problèmes soulevés par ce changement, j'aurai du aller au bout de mes rêves.
Les bornes interactives à la pointe de la technologie commencent à apparaitre dans nos villes. Au potentiel infini, elles vont révolutionner le monde de l’information et de la publicité.
 
   
  +
== Week 11 (March 30nd - April 05nd) ==
'''Examples:'''
 
* http://vds-technology.com/PLV-dynamique/nos_produits/e-totems/
 
* http://www.connected-store.com/des-cabines-d%E2%80%99essayage-virtuelles-et-connectees-dans-un-magasin-john-lewis-4894
 
* http://www.connected-store.com/un-miroir-interactif-et-connecte-dans-un-magasin-de-lenseigne-princess-polly-9832
 
* http://www.connected-store.com/une-vitrine-tactile-et-des-bornes-connectees-pour-le-nouveau-concept-store-dorange-a-lile-maurice-4002
 
 
==Matériel==
 
*Borne IDS contenant
 
** Intel NUC D54250WYKH avec Windows 7
 
** TV 37 Pouces Full HD
 
** Verre trempé IKEA
 
** Kinect XBox
 
** Haut Parleurs
 
** Lecteur NFC (SCM Microsystems Inc. SCL3711 reader & NFC device 0)
 
*Tag NFC
 
*Téléphone Android (pour programmer les puces NFC)
 
 
Lecteur NFC SCL3711:
 
 
[[File:ids_nfc.png | 200px]]
 
 
Kinect:
 
 
[[File:Kinect.jpg | 200px]]
 
 
==Logiciels (utilisés)==
 
 
* http://voxygen.fr/index.php (synthèse vocale)
 
* javax.smartcardio (lecteur NFC)
 
* Reveals.js (affichage interactif des informations)
 
* [[OpenNI]] (Kinect)
 
* Processing
 
* [[Intel® Perceptual Computing SDK]]
 
 
==Logiciels (réalisés)==
 
 
Le dépôt global des sources est sur [https://github.com/zhangzhengmeng/ProjetIDS2015.git '''github''']
 
 
Voici la liste des différentes applications que nous avons réalisées dans le but de répondre au cahier des charges.
 
 
=== Emploi du temps et NFC ===
 
 
Le programme créé tourne en tache de fond sur la borne. Dès qu'une puce NCF est détectée, une fenêtre s'ouvre avec les informations sur le prochain cours de la personne, la salle dans laquelle elle sera, son enseignant ainsi que les horaires du cours. Au moment de l'ouverture de cette fenêtre, la borne se met à parler à la personne qui est en face d'elle pour lui donner verbalement ces informations via la synthèse vocale. À la fin du speech, la fenêtre se referme.
 
 
'''Fonctionnement du programme :'''
 
 
Le schéma ci-dessous résume la façon dont le logiciel fonctionne de façon schématique. Tout d'abord, lors de son premier lancement, le programme télécharge les emplois du temps de chaque filière au format iCalendar. Ensuite, les fichiers iCalendar sont traités et les informations utiles sont stockées en mémoire dans des structures de données. Maintenant vient le début de la boucle principale de fonctionnement. Il ne sortira jamais de cette boucle sauf en cas d'arrêt du programme évidemment. Le programme est autonome. Il se mettra à jours automatiquement. Lors qu'une personne passe une puce NFC devant la borne, le programme interroge ses structures de données contenant les emplois du temps comme expliqué dans le paragraphe qui suit. Ensuite, il vérifie qu'il dispose bien des emplois du temps de la semaine courante et effectue la mise à jour si nécessaire. Il affiche alors le résultat de la requête dans une fenêtre et active la synthèse vocale qui fait parler la machine.
 
 
[[File:caca1.png | 300px]]
 
 
'''Interrogation des structures de données :'''
 
 
Le schéma ci-dessous résume la façon dont le logiciel procède après identification de la personne qui a passé la puce NFC devant la borne. Ce qu'il faut retenir, c'est que si 'est un élève, c'est facile, il suffit d'aller interroger la liste correspondant à l'emploi du temps des la classe de l'étudiant. Ensuite on cherche une correspondance entre l'élève, la date et l'horaire. En revanche, dans le cas d'un enseignant, nous ne disposons pas de la classe avec laquelle il a cours puisque qu'un enseignant peut faire cours à plusieurs classes de différentes filières. Il faut donc chercher dans toutes les listes contenant les emplois du temps des différentes filières une correspondance entre l'enseignant, la date et l'horaire.
 
 
[[File:caca2.png | 400px]]
 
 
'''Mise à jour automatique des emplois du temps :'''
 
 
C'est une histoire de différence entre la date correspondant à la dernière fois que les emplois du temps ont été mis à jours et la date actuelle en tenant compte du jour de la semaine où la demande est effectuée. Un code tel que celui-ci est robuste et fonctionnera toujours. Dans le cas présent, les emplois du temps sont mis à jour chaque semaine.
 
 
[[File:caca3.png | 600px]]
 
 
'''Info sur le programme'''
 
 
Le programme a été écrit intégralement en Java.
 
 
Les emplois du temps de chaque filière sont téléchargés automatiquement dès la première demande qui est effectuée.
 
 
La synthèse vocale fonctionne grâce au site web de l'entreprise Voxygen qui permet d'utiliser des voix à la pointe de la technologie qui ont été mise en ligne comme exemple.
 
 
Le texte du speech est créé dynamiquement par le programme pour s'adapter à chaque utilisateur. Ensuite, il est envoyé sur le serveur de Voxygen qui va alors renvoyer un fichier audio au format mp3 avec le contenu vocal souhaité. Enfin, le programme lance la lecture du fichier son pour faire parler la borne.
 
 
Les adresses web pour télécharger les emplois du temps de chaque filière se trouve dans un fichier nommé "adweb.txt". Il est donc très simple d'ajouter des classes, d'en enlever ou de mettre à jours une adresse qui aurait changé.
 
 
Le fichier est construit de la façon suivante :
 
 
[[File:ids_edt.png | 300px]]
 
 
Les puces NFC contiennent simplement un numéro d'étudiant (numéro d'étudiant par exemple). Une fois le numéro lu, il suffit d'aller chercher l'étudiant correspondant dans la base de données qui est en fait un simple fichier texte nommé "nfc.txt". Une des améliorations de notre projet sera d'aller chercher les informations dans la base de données en ligne qui a été réalisée par l'université. Ce sera ainsi plus simple que de rentrer tous les étudiants avec leur numéro d'étudiant, leur nom, leur prénom et leur classe dans un fichier.
 
 
Le fichier est construit de la forme suivante :
 
 
[[File:ids_etu.png | 400px]]
 
 
Pour ce qui est de la voix choisie, c'est également dans un fichier que l'on peut la choisir. Dans le fichier "speak.txt", il faut donc indiquer la voix que l'on veut utiliser et également indiquer le chemin du dossier qui contient la partie du code PHP qui est utilisé par WampServer chaque fois qu'une requête est effectuée. Enfin, c'est également dans ce fichier que l'on saisit le jour de la semaine et l'heure où le téléchargement automatique des emplois du temps sera effectué.
 
 
Le fichier est construit de la forme suivante :
 
 
[[File:ids_voix.png | 200px]]
 
 
Fenêtre du programme (cas d'un élève):
 
 
[[File:ids_fenetre.png | 400px]]
 
 
Fenêtre du programme (cas d'un enseignant):
 
 
[[File:ids_fenetre2.png | 400px]]
 
 
La machine dira par exemple : "Bonjour Didier, vous avez cours de projet en salle TP259IIA ou peut être en salle S125 avec les RICM4 de 13h30 à 17h30. Je vous souhaite une excellente journée."
 
 
'''Info sur la partie en PHP Voxygen'''
 
   
  +
Merge de notre application avec celle que l'autre groupe viens de push, rien n'est en commun. Aucune structure de donnée, rien. Une nuit passée à faire en sorte de concilier les structures afin que les classes les deux applications puissent communiquer au sein d'une seule.
Le code PHP est exécuté par WampServer. Le dossier "PHP-Voxygen-master" doit donc se trouver dans le dossier "www" de WampServer pour que tout fonctionne correctement. Il faut donc bien mettre le lien vers le dossier "PHP-Voxygen-master" dans le fichier "speak.txt" comme expliqué un peu plus haut sinon ça ne pourra pas fonctionner.
 
   
  +
Aucune nouvelle de mqtt et de la reception de donnée par LoRa, le push de l'autre groupe n'incluant rien de cela. Du coup création de méthodes utiles pour la démonstration, afin de montrer que les receivers fonctionnent, qu'il ne manque plus qu'à recevoir les données.... On nous a promis un push, attendons.
=== Kinect et Reveals.js ===
 
   
  +
Refonte du design de l’application.
Pour utiliser Kinect dans Windows il faut installer
 
*nite-win64-1.5.2.21-dev
 
*openni-win64-1.5.4.0-dev
 
*SensorKinect092-Bin-Win64-v5.1.2.1
 
(Il existe un conflit de pilot de Kinect entre SensorKinect et Windows Kinect)
 
   
  +
Ajout d'un bouton SOS.
On créer le sevrer et faire la communication entre Processing et page web en utilisant webbit
 
* https://github.com/webbit/webbit
 
   
  +
Ajout de son lors du démarrage de la carte et de l'appui sur le bouton SOS.
Pour réaliser les gestes on utilise le API de openni
 
* http://kinectcar.ronsper.com/docs/nite/classXnVSwipeDetector.html
 
 
Pour utiliser les gestes dans reveal.js on utilise le façon en base des gestes avec webcam
 
*https://github.com/willy-vvu/reveal.js
 
   
  +
Push arrivé à 23h40 la veille de la soutenance. Tant pis, on fera sans.
=Ressources=
 
* https://github.com/SalemHarrache/ricm.quicker
 
* https://developer.mozilla.org/fr/docs/IndexedDB/Using_IndexedDB
 
* [[Reveal.js]]
 
* https://github.com/hakimel/reveal.js/issues/1039
 
* http://revealjs.herokuapp.com/
 

Latest revision as of 01:03, 3 April 2017

Project presentation

Ce projet propose de développer une application Web mobile permettant aux membres d'une équipe ou d'un groupe de randonneurs (marche, ski rando, ski piste, , ski nordique ...) de se positionner les uns les autres (temps de course, de marche, distance) en temps réel et de surveiller/gérer l'effort des membres de l'équipe.

L'application permettra d'enrôler facilement les membres d'une équipe/groupe (Code numérique, QRCode, NFC, ...)

L'application permettra de charger ou d'échanger les traces (GPX, GeoJSON) et les mesures physiologiques (Hearth rate, Foulée, ...) via des supports de stockage comme OwnCloud, Google Drive, Dropbox, Facebook, Trace de Trail ...

L'application permettra également de mesurer l'effort en temps réel de/des coureurs (temps passé dans les régimes cardiaques) et d'en informer le coureur et/ou le chef d'équipes, les guides accompagnateurs. Pour cette fonctionnalité, il est prévu d'intégrer les mesures collectées sur des montres ou des bandes cardio Bluetooth 4.0 HRM.

L'application devra pouvoir fonctionner avec/sans réseau 4G/3G, avec/sans 2G (ie SMS), avec/sans un réseau LPWAN opéré ou privé (SigFox, LoRa), avec un réseau LPWAN adhoc (broadcast).

Matériel fourni:

API Google Android Wear

Team

  • Supervisors : Didier Donsez
  • Members : Clément Rouquier, Anthony Geourjon

Progress of the project

The project started January 14th, 2015.

Week 1 (January 13th - January 18th)

  • Choix du projet

Week 2 (January 19th - January 25th)

  • Découverte du projet
  • Mise en route de la machine
  • Récupération du code
  • Mise en place des exigences

23 Janvier 2017

Connexion au modem : lsusb

voir le nom de la connexion

su apt-get install arduino

run arduino

Onglet : outils-> noniteur série-> choisir son device

Onglet : outil->Moniteur série -> choisir 57600 bauds et choisir NL & CR

Merci N. Palix pour l'astuce de l'utilisation d'Arduino.

Utiliser les commandes fournies par D. Donsez dans son doc google ou le manuel pour interagir avec le modem. Manuel

24 janvier 2017

Création d'une mini appli android qui permet d’accéder au modem lorsqu'il est branché en série au téléphone. Si je connecte un modem au téléphone et le second à un PC, je peux les faire communiquer. Upload sur Github d'ici demain au pire. Pour réaliser cette magie noire, j'ai utilisé USBSerial : https://github.com/felHR85/UsbSerial. Et j'ai forké l'appli exemple du même auteur https://github.com/felHR85/SerialPortExample. La difficulté à été de faire fonctionner et surtout comprendre l'ensemble. J'ai ensuite configuré le code pour qu'il marche avec nos modems (bauds rate, parity none, cr and lf).


Week 3 (January 26th - February 01st)

Réalisation des diagrammes UML de cas d'utilisations. Notre application n'as pas vraiment de diagramme de classes car la majorité des classes sont des Activity ou des Service.

Week 4 (February 02nd - February 08th)

Essai d'intégration de l'application à GreenHouseCI pour faire du déploiement continu. Essai de divers IDE online pour essayer de faire du déploiement continu.

Amélioration de l'application de test des boitiers Lora (raccourci, derniere commande utilisé..)

Week 5 (February 09th - February 15th)

Modification de l'appli en application avec des onglets. Un onglet terminal USB série, un onglet GPS, un onglet configuration

Week 6 (February 23th - March 1st)

Travail sur la map. Suivi d'un tuto pendant de longues heures pour que celui ci se révèle obsolete et donc inutilisables. Génération de la clé pour l'API de Google pour les maps.

La clé : AIzaSyB4iTwLc9rSwh5RebtpKjUR0XKIIv5P9gY

Week 7 (March 02nd - March 08nd)

Travail sur la map, tous les tutos se contredisent. Création d'un nouveau dépot GitHub afin de repartir sur de bonnes bases car tout le dépot est cancérisé

Week 8 (March 09nd - March 15nd)

La carte commence à fonctionner, on peut ajouter des markers. On positionne aléatoirement des gens sur la carte. On peut calculer les distances entre eux.

Ajout d'une page de configuration des groupes

Début du travail sur le bluetooth, à l'aide du Googlesamples sur le Bluetooth Low Energy

Week 9 (March 16nd - March 22nd)

Corerection de bug sur la map Partage de données entre activity Ajout de la possiblité de mettre un point de rendez vous que tous le monde voit

Que se passe-t-il sur le bluetooth low energy?? Impossible d'intégrer le google sample

Week 10 (March 23nd - March 29nd)

Ajout d'animation à la carte

Amélioration des structures de données -> création de la classe Personne et UltrateamApplication

Bluetooth finalement opérationnel. Il fallait changer le type de la classe principale en AppCompatActivity (au départ en ListActivity) et résoudre tous les problèmes que ce changement impliquait. J'avais déjà tenté cette solution mais m'étais résigné en voyant l'étendue des problèmes soulevés par ce changement, j'aurai du aller au bout de mes rêves.

Week 11 (March 30nd - April 05nd)

Merge de notre application avec celle que l'autre groupe viens de push, rien n'est en commun. Aucune structure de donnée, rien. Une nuit passée à faire en sorte de concilier les structures afin que les classes les deux applications puissent communiquer au sein d'une seule.

Aucune nouvelle de mqtt et de la reception de donnée par LoRa, le push de l'autre groupe n'incluant rien de cela. Du coup création de méthodes utiles pour la démonstration, afin de montrer que les receivers fonctionnent, qu'il ne manque plus qu'à recevoir les données.... On nous a promis un push, attendons.

Refonte du design de l’application.

Ajout d'un bouton SOS.

Ajout de son lors du démarrage de la carte et de l'appui sur le bouton SOS.

Push arrivé à 23h40 la veille de la soutenance. Tant pis, on fera sans.