RICM4 2017 2018 - UltraTeam 7.1

=Project presentation=

This project is a project carried out by two teams.

The first team composed of Enzo Molion and Léo Valette is in charge of creating a mobile application allowing the members of a team or a group of hikers to locate each other with different information such as walking speed, distance between users, the possibility to see if a user is in distress (e. g. if he has broken a leg), etc.

This application will use the LoRa network with ESP-32 cards, connected via Bluetooth to the team's smartphones to run.

The smartphones of the team, if they are connected to the 3G/4G network, will send through a REST API all the information accumulated during the hike to a server that our team composed of Bastien TERRIER and Hugo GROS-DAILLON will have to set up.

This server will be implemented with the JHipster application generator. It will be a web application allowing hikers to create an account and thanks to the information provided by the mobile application, to visualize the information of the current or completed hike (with the route taken during the hike, average speed, participating members, etc.).

It can also be used to visualize the position of hikers during a hike and display whether a person sent a distress signal with their smartphone. This can be useful in cases where rescue workers are trying to locate the injured person precisely.

= Team =


 * Supervisor : Didier Donsez


 * Members : Hugo GROS-DAILLON, Bastien TERRIER


 * Departement : RICM 4, Polytech Grenoble

= 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.