IoT Asset Tracking : un projet de suivi d’objets connectés sur AWS
Le projet IoT Asset Tracking est comme son nom l’indique un projet lié au monde de l’IoT (Internet of Things) et par conséquent des objets connectés. Le but de ce dernier est de réaliser une plateforme de suivi d’objets connectés par l’intermédiaire de l’environnement proposé par Amazon Web Services (ou AWS).
Ce projet a été réalisé en collaboration avec l’équipe de Devoteam Revolve qui nous a soutenu par leurs conseils, leur expérience et leurs tutoriels durant ce projet.
L’équipe du projet
Notre équipe est composée de quatre étudiants de l’ESIEA, école d’ingénieur d’un numérique utile, à savoir :
Léo CALIS (SPOC, développement AWS) | Thibaut ALLAIN (Hardware et développement Brocker MQTT et python Dash) | ||
Nicolas PROVOST (Développement client MQTT et python Dash) | Martin RAYNAUD (développement AWS) |
Définition de l’IoT Asset Tracking et pourquoi l’Asset Tracking
L’IoT Asset Tracking est un suivi d’objet connecté, pour cela différentes techniques peuvent être utilisées comme la récupération de données GPS, la triangulation par canal GSM (triangulation par tour d’opérateur téléphonique).
Le suivi d’élément ou Asset Tracking permet de savoir où sont localisés les biens d’une personne ou d’une entreprise. L’Asset Tracking est donc une solution de sécurité des biens d’entreprise mais peut aussi être utile dans d’autres opérations comme le suivi de colis, le suivi de flotte de véhicule, la détection de point de passage, le suivi d’animaux, etc…
Lors de l’utilisation d’Asset Tracking, on peut utiliser deux types de précision de géolocalisation quant à l’actualisation d’information sur l’interface utilisateur:
- L’utilisation de l’information tel quelle, affichant ainsi une position précise de l’asset
- L’utilisation d’une Geofence, permettant d’afficher une position approximative et d’envoyer une alerte si nécessaire
Plus l’actualisation de l’information sera fréquente, plus l’application sera énergivore.
De nos jours, l’Asset Tracking est utilisé dans de nombreux domaines comme les services de livraison mais aussi dans des solutions industrielles en intérieur, par exemple avec le convoyage de colis. Il s’implémente dans le cadre des particuliers avec par exemple les colliers géolocalisables pour animaux, mais aussi dans des trackers à placer sur sa voiture pour la retrouver en cas de vol.
Suivi d’outil (gestion d’inventaires) | Suivi de flotte de véhicules | Détection de points de passage |
L’architecture du projet ESIEA
Explication technique de chaque partie du projet
Le projet se décompose en deux parties spécifiques à savoir :
- La partie Hardware (obtention des données), composée de l’objet connecté, ici, une Raspberry pi 3
- La partie Logicielle (traitement des données), composé des outils d’AWS et d’une application de data visualisation développée avec le framework Python3 Dash
En ce qui concerne la partie Hardware, nous avons une Raspberry possédant un module GPS/GLONASS vk172. Lors de la capture des données GPS, le message est envoyé sous format JSON à l’aide d’une requête MQTT.
[EXPLICATION MQTT]
Le protocole MQTT est un protocole de messagerie léger inter machine dans des environnements où les déconnexions sont fréquentes.
Il s’oriente sur le principe de Requête/réponse entre un client et un serveur.
Du côté de la partie logicielle, nous utilisons principalement les outils d’AWS tels que :
- AWS IoT Core, qui nous permet d’agir tel un broker MQTT
- Des fonctions Lambda qui redirigent les données d’IoT Core vers les différents composants d’AWS
- AWS DynamoDB, qui nous permet de stocker les données pour conserver une trace des positions GPS
- AWS Location Service, qui nous permet de positionner des points sur une carte, ainsi que de gérer des objets à l’aide de tracker et de faire du géorepérage (Geofencing)
- Dash Plotly, qui nous permet de proposer une solution alternative à AWS Location Service pour faire l’affichage des objets GPS sur une carte géographique.
Résultats
Application développée
Nous avons développé une application de visualisation des données. Cette dernière permet d’afficher une carte sur laquelle nous pointons les positions des objets connectés en temps réel mais aussi leurs historiques de position.
Au niveau des résultats, nous pouvons voir différents points sur une carte. Un code couleur a été mis en place pour chaque objet connecté. Chaque point d’un même objet connecté aura donc la même couleur. A noter que nous pouvons utiliser un filtre (en haut à gauche de la page) pour ne faire apparaître que les points des objets connectés qui nous intéressent.
Si on passe la souris sur un des points sélectionnés, nous pouvons apercevoir un pop-up qui affiche toutes les données correspondantes du point. En fonction des besoins, il est possible de rajouter ou d’enlever les données de cet affichage.
Geofence
La mise en place de la Geofence est assez simple dans son ensemble grâce à l’utilisation d’outils tels que Geojson.io, permettant de produire des geofences à la main et de les extraire sous différent formats (KML, JSON, GeoJSON, TopoJSON, WKT, …)
Contraintes et solutions proposées
Dans le cadre de ce projet, nous avons rencontré diverses contraintes, telles que:
- La plateforme Amazon Location Service étant en constante évolution, sa documentation n’a pas suivi le cours de ces évolutions. La partie Geofencing d’Amazon Location Service n’a donc pas été implémentée à l’application.
- La gestion de l’alimentation du matériel, ce problème a été découvert assez tardivement, mais il concerne principalement le module GPS USB, car si notre batterie alimentant la carte Raspberry Pi ne possède pas un seuil de charge au-delà de 1.5A, le module GPS ne sera pas alimenté correctement.
Conclusion
L’Asset Tracking permet donc d’assurer le suivi d’objet connecté et c’est pour cela que nous avons été amené à développer une application sur la plateforme de service web d’Amazon. La solution développée au cours de ce projet nous a permis de tracer un objet connecté, de le positionner sur une carte interactive et de gérer toutes données de position que ce dernier nous communique.
Ce sujet de projet fût très intéressant pour les membres du groupe. Cette expérience a été passionnante de par le fait de travailler sur un projet dans un cadre professionnel.
Références :