Déploiement et supervision d’une chaîne IoT

Déploiement et supervision d'un ensemble de systèmes récupérant et retransmettant des données sur les réseaux IP à l'aide du protocole MQTT.

Ce projet consistait à configurer et déployer une chaîne de traitement de données incluant des systèmes IoT.
Cette chaîne de traitement de données nécessitait alors :

  • De retransmettre sur les réseaux IP concernés les données générées/récupérées à partir des objets IoT.
  • De visualiser à l’aide d’interfaces graphiques les données récupérées.
  • De superviser les systèmes et services présents.

L’environnement technologique déployé correspondait alors au suivant :

  1. Un système Arduino relève des données de température et d’humidité. Ces données sont transmises à un Raspberry Pi.
  2. Le Raspberry Pi reçoit les données de l’Arduino et les retransmet à un serveur Mosquitto par réseau IP en utilisant le protocole MQTT, lequel est adapté aux appareils à faible puissance et à faible bande passante.
  3. Le serveur Mosquitto joue le rôle de « broker MQTT » : il se charge de récupérer les informations lui étant transmises par MQTT et les redistribue aux systèmes ayant souscrit à ses canaux de diffusion, par l’intermédiaire des réseaux IP et selon les canaux de diffusion spécifiés.
  4. Un serveur ayant sousrit aux canaux de diffusion du serveur Mosquitto récupère les données redistribuées et les enregistre dans une base de données SQL.
    Les données sont ensuite affichées de manière organisée dans une interface web à l’aide d’Apache et Grafana.
    Une alternative a également été implémentée : les données sont enregistrées dans des fichiers textuels au format CSV puis sont visualisées sur des graphiques produits par Gnuplot et servis sur un site web par Apache.
    L’enregistrement des données dans la base de données SQL et en fichiers CSV se fait alors au même moment.
  5. Enfin, un autre serveur s’occupera de superviser les systèmes et services opérant dans cet environnement technologique à l’aide d’Icinga et permettra un affichage de cette supervision dans une interface web à l’aide d’Apache et de l’extension web d’Icinga.

J’ai égaré le programme de l’Arduino, la configuration du Raspberry Pi et la configuration du routeur (Debian), mais les comportements de ces éléments sont simplement reproductibles et seront adaptés selon les besoins associés au déploiement d’une chaîne IoT similaire.
Les instructions assurant la mise en place d’une chaîne de traitement de données similaire ont été rédigées et fournies ci-dessous, incluant les scripts et fichiers nécessaires (fournis en tant que documents PDF).


fr_FRFR