RunTrack
Description
Dans le cadre du cours consacré aux objets connectés, nous avons été amenés à concevoir une application mobile associée à un dispositif connecté. J'ai réalisé ce projet en binôme, en me concentrant principalement sur le développement mobile. L'application RunTrack a pour objectif de suivre les performances en course à pied. Il suffit de se connecter à l'objet connecté, de démarrer une session, puis de commencer à courir. Équipé d'un GPS, l'appareil enregistre à intervalles réguliers des données telles que la position, l'altitude et d'autres informations utiles. Une fois la session terminée, les données sont transmises à l'application mobile via BLE, puis stockées dans Firebase.
L'utilisateur peut ensuite consulter ses performances, visualiser son parcours sur une carte interactive et analyser ses statistiques de course. La partie mobile a été développée avec Flutter/Dart, et la partie embarquée en C++ (Arduino). J'ai utilisé Firebase pour la base de données et l'authentification, Flutter Blue Plus pour la communication BLE, et une API de cartographie pour l'affichage des parcours.
Ce projet m'a permis de travailler sur une stack complète mobile + embarquée, de maîtriser la communication BLE bidirectionnelle, et de découvrir l'intégration entre un dispositif physique et une application mobile.
Défis & Solutions
Défi
La principale difficulté rencontrée au cours de ce projet a concerné la communication Bluetooth entre l’application mobile et l’objet connecté. Si la connexion à l’appareil ainsi que l’envoi de données depuis l’application vers l’objet ont pu être mis en place de manière fiable, la transmission des informations dans le sens inverse, de l’objet vers l’application, s’est révélée plus complexe et a engendré plusieurs complications.
Solution trouvée
Pour parvenir à établir une communication fonctionnelle dans les deux sens, nous avons d’abord étudié la documentation des bibliothèques utilisées, à savoir Flutter Blue Plus côté mobile et BLE sur Arduino. En parallèle, nous avons consulté divers tutoriels et forums de développeurs afin d’identifier les points de blocage. Après de nombreux essais, erreurs et ajustements dans notre code, nous avons finalement réussi à mettre en place une communication bidirectionnelle stable entre l’application mobile et l’objet connecté, assurant ainsi un échange fluide des données de course.
Compétences acquises
- Développement mobile Flutter/Dart
- Développement embarqué C++ (Arduino)
- Communication BLE (Flutter Blue Plus, Arduino BLE)
- Base de données Firebase (Firestore)
- Authentification Firebase
- Intégration d'API de cartographie
- Travail en binôme sur une stack mobile + embarquée
- Respect d'un cahier des charges
Aperçu