Projet ESIEA : une plateforme IoT de traitement de données industrielles

Temps de lecture : 9 minutes

Ce projet, réalisé en collaboration avec Devoteam Revolve dans le cadre du partenariat avec l’ESIEA, a pour but de mettre en place une preuve de concept (POC) d’une Plateforme IoT de traitement de données industrielles.

A lire également, l’article sur le projet ESIEA : Iot Asset Tracking.

Qui sommes-nous ?

Nous sommes un groupe de 5 étudiants en Systèmes Embarqués au sein de l’école ESIEA à Laval. Dans le cadre de notre 5ème et dernière année, nous effectuons un ‘’CapProject’’. C’est-à-dire un projet d’une durée de 7 semaines, réalisé en collaboration avec une entreprise, ici Devoteam Revolve. Notre projet s’inscrit dans la démarche d’une migration Cloud et l’émergence des industries 4.0.

De gauche à droite : Maxence MERCURI, Mathys GAGEOT, Léo PINEAU, Thomas RAIMBAULT, Luc VIDREQUIN-LIGUET

L’industrie 4.0, qu’est-ce que c’est ?

La transformation appelée « industrie 4.0 » consiste initialement à surveiller et à contrôler en temps réel les machines et équipements d’une entreprise en installant des capteurs à chaque étape du processus de production.

Ainsi, l’installation de plateformes IoT tout au long d’une chaîne de production permet une vision globale de celle-ci et donc d’améliorer la qualité des produits.

Mais ce n’est pas la seule utilité, cela permet également une surveillance constante de l’état des machines. Les données des équipements, associées à des algorithmes d’apprentissages automatiques, peuvent donc avertir lorsqu’il faut procéder à l’entretien d’une machine ou encore prévenir d’une panne éventuelle. Par conséquent, cette technologie aide aussi à réduire, voire à éliminer, les temps d’arrêt des machines. Avec l’ajout d’actionneurs spécifiques, on peut intervenir sur son site industriel à distance et donc apporter une réaction rapide lors de la détection d’anomalies.

Le projet : Plateforme IoT de traitement de données industrielles.

Notre projet a pour but de mettre en place une preuve de concept (POC) d’une Plateforme IoT de traitement de données industrielles.

Schéma fonctionnel de la plateforme 

Des capteurs connectés à une Raspberry Pi récupèrent des données comme cela se ferait dans une machine industrielle. Ces données une fois récupérées, sont envoyées par un bus de terrain utilisant le protocole Modbus à une Nvidia Jetson qui héberge des fonctions Edge Computing permettant de concaténer, trier les données mais aussi de les enrichir avec des algorithmes d’intelligence artificielle et finalement de les envoyer vers le Cloud AWS via un Broker de message IoT. Les données sont ensuite stockées dans une base de données, puis envoyées à une interface utilisateur pour les afficher de manière plus visuelle. Cette interface permet aussi de récupérer l’historique stocké dans la base de données afin de d’afficher un graph de données. L’interface utilisateur permet également d’activer les actionneurs branchés sur la Raspberry Pi à distance en effectuant un envoi d’une commande dans le trajet inverse.

L’architecture du projet

Collecte

Plus en détail, 3 capteurs et 2 actionneurs sont connectés à la Raspberry Pi :

  • Un capteur de température et d’humidité qui transmet les valeurs en °C et pourcentage d’humidité au dixième près. Ce capteur communique en I2C avec la carte, c’est-à-dire une communication maître-esclave par un bus de données.
  • Un capteur d’Ultra Violet (UV) connecté en analogique à la carte et qui retourne une valeur UV entière.
  • Un capteur de mouvements connecté en numérique à la carte et qui retourne une valeur binaire s’il détecte ou non un mouvement.
  • Un relais, interrupteur numérique connecté en numérique à la carte, à qui on envoie une valeur binaire ouvert ou fermé. Dans notre cas, le relais contrôle une led.
  • Un buzzer, ici connecté en numérique qui émet un son ou non selon l’ordre donné.

La Raspberry envoie ses données des capteurs via le protocole Modbus à la carte Nvidia Jetson. Le protocole de communication Modbus repose sur l’architecture client/serveur et permet une communication simple, fiable et rapide entre les deux cartes.

Formatage et enrichissement

Le formatage des données est effectué par la carte Nvidia Jetson Nano. Une requête est faite sur Modbus afin de récupérer les dernières données collectées. Ces informations sont ensuite formatées pour les préparer à un envoi vers la base de données. Avant cela, on y ajoute une datation pour l’indexage en ligne et l’affichage a posteriori.

Cette carte Nvidia est conçue pour le Edge computing. Notre projet vise donc également à démontrer les possibilités d’enrichissement des données au plus près des capteurs. Dans notre cas, l’implémentation d’une intelligence artificielle n’est pas la solution la plus pertinente pour enrichir nos données. Celles-ci sont donc stockées dans une mémoire tampon pour effectuer quelques calculs sur les dernières tendances.

À notre échelle et pour la démonstration, nous n’effectuons que quelques calculs simples de moyennes glissantes sur le dernier quart d’heure écoulé. Cela permet cependant de démontrer la mise en place et le fonctionnement d’un tunnel de données parallèle pour des données enrichies, et possiblement par de l’intelligence artificielle si le projet s’y prête.

La dernière tâche assignée à cette carte est l’envoi en MQTT vers IoT Core. Suite au formatage réalisé, il suffit de rediriger le message vers le topic correspondant aux données brutes ou à celui des données enrichies. La carte souscrit également à un channel de données descendantes, qui est utilisé pour les actionneurs qui sont activés depuis l’interface. Cette carte est donc un carrefour qui redirige les messages aux bonnes entités, formatées selon les besoins de chacun.

IoT Core joue le rôle de broker, c’est le hub qui centralise les messages MQTT, les différents topics et gère toutes les autorisations. Chaque périphérique possède des droits de souscription et/ou de publication spécifique à chaque topic. IoT Core est le cœur de tout ce système et permet de lier les différents services.

Stockage

Cette partie porte sur le stockage des données dans une base DynamoDB située dans AWS. Ce stockage permet de garder un historique, utile notamment pour la partie affichage. Les données sont d’abord reçues par le service AWS IoT Core via le protocole de communication MQTT. Une rule d’IoT Core permet ensuite de rediriger toutes les données reçues du topic MQTT vers une fonction Lambda. Cette fonction, codée en Python 3.9, va pouvoir ajouter les données dans la base par le biais de la librairie Boto3. Pour ce faire, la fonction Lambda ​a aussi reçu les droits d’accès à la base DynamoDB.

Affichage

La partie affichage est gérée par Node-RED qui tourne sur une machine virtuelle EC2 sous AWS. Node-RED est un outil de programmation basé sur le principe de Flux (Flow Based Programming). Le principe est simple, on programme dans des boîtes noires appelées Nœuds (Nodes) en les reliant entre elles. La programmation de ces nœuds est basée sur du Node.js.

L’affichage permet à l’utilisateur de consulter différents types de données :

  • les données actuelles (en temps réel)
  • les données enrichies (données renvoyées par la Nvidia Jetson)
  • les données historiques (en faisant une requête sur la base de données)

Cet affichage reçoit les données via le canal MQTT sous forme de Json, les données sont alors redirigées vers les différents affichages correspondants.

Cette partie est le principal moyen d’interaction pour l’utilisateur, puisqu’il ne nécessite pas de connaissances particulières. Il doit donc être le plus simple et ergonomique possible. C’est aussi via cette interface que l’utilisateur peut interagir avec les différents actionneurs en place sur les chaînes de productions.

Résultats

Partie Cloud

La partie cloud a été réalisée afin d’aiguiller les messages MQTT soit du côté affichage avec NodeRED soit du côté du stockage avec dynamoDB. IoT Core joue le rôle de broker et gère les droits et les différents channels. C’est le cœur de notre solution IoT.

Partie Edge

Côté hardware, les données recueillies sont traitées au niveau de la Nvidia Jetson avant d’être renvoyées vers le cloud AWS via MQTT. Ce cycle respecte donc l’idée de base de créer un PoC d’Edge computing, puisque le traitement des données se fait chez le client, réduisant ainsi la latence et l’utilisation de ressources sur les serveurs cloud.

Application développée

L’IHM est développée pour répondre aux questions posées dans le sujet et est modifiable selon les besoins d’un futur autre projet. Que ce soit pour le nombre de capteurs, de Raspberry (ou équivalent), le type de données, tout est ajustable en très peu de temps. Les principales briques ont été développées, l’accès aux données entrantes et le renvoi de celles-ci sont implémentés et n’ont que très peu à changer entre deux projets. Les modifications à apporter concernent plutôt le type d’affichage ou l’agencement de l’IHM en elle-même.

Partie IA / Traitement des données

Pour la partie intelligence artificielle, les données que nous récupérons des capteurs ne nous permettent pas d’appliquer des algorithmes d’IA pertinents. Cela est dû aux capteurs choisis dans notre architecture et à la faible complexité des problématiques qui y seraient liées (prédiction météo,…)

Cependant, avec une même architecture dans une usine avec des données exploitables, nous avons démontré qu’il est possible de faire de l’analyse intelligente des données depuis la partie Cloud et depuis la partie Edge.

Contraintes et solutions proposées 

Deux principales contraintes ont été identifiées : le temps et les connaissances. En effet, la totalité de ce projet s’est réalisée sur des sprints de deux semaines, et ce sur un total de sept semaines. Ces sprints étant séparés par des semaines de cours, il n’était parfois pas évident de se replonger dans le projet.

Chaque sprint était donc conséquent et il était donc nécessaire de respecter impérativement le planning prévisionnel. C’est grâce à l’utilisation d’outils tels que Trello et Gantt que la gestion de projet tout au long de ces semaines a pu être mené à bien.

Au niveau des contraintes de moyens, comme indiqué précédemment, le groupe n’avait jamais travaillé sur les technologies AWS et il a donc fallu découvrir certains procédés liés au Cloud.

Pour pallier ces différentes contraintes, les experts Devoteam Revolve prodiguaient conseils et tutoriels dans les différents domaines concernés. Ceux-ci étaient donc à même d’aiguiller et de renseigner sur les problèmes rencontrés.

Le projet étant un enchevêtrement de technologies et d’hardware travaillant les unes à la suite des autres, chaque maillon de cette chaîne est donc indispensable à la réalisation de la suite. Le début du projet était donc consacré à la mise en communication des différents éléments.

Data analyse et intelligence artificielle

L’intelligence artificielle et le Big Data sont des processus qui vont de pair avec l’industrie 4.0. Grâce à des solutions logicielles intelligentes, les données générées par une usine peuvent servir à identifier des tendances et des schémas récurrents afin d’augmenter l’efficacité des processus et de réduire les coûts de production.

Selon les besoins, le traitement des données peut s’effectuer au niveau local (par Edge computing) ou via une solution Cloud. Les données sont accessibles plus rapidement sur la plateforme Edge tandis qu’elles bénéficient d’une plus grande puissance de calcul sur le Cloud.

Vis-à-vis de notre architecture, nous utilisons :

  • La carte Jetson nano avec une carte graphique Nvidia, pour le traitement temps réel des données collectées par les capteurs.
  • Les services cloud d’AWS avec la base de données DynamoDB, pour avoir accès à l’ensemble des données collectées par les capteurs.

Conclusion

Arrivés à la fin de ces sept semaines de projets, nous sommes satisfaits de nos résultats puisque nous avons un Proof of Concept fonctionnel et redéployable facilement.

Ce projet démontre qu’il est possible d’enrichir des données industrielles. Ces données sont très utiles dans l’industrie 4.0 à des fins d’optimisation de la production, d’anticipation de maintenances ou de suivi / contrôle à distance. Avoir une IA traitant les données sur site, au plus près des machines, permet une prise de décision rapide et utile pour des domaines tels que la sécurité.

References:

Commentaires :

A lire également sur le sujet :