Retour au portfolio

Projet IoT & plateforme data

Eyeot

Conception d'une plateforme IoT pensée pour connecter un nombre massif de capteurs, à l'échelle d'organisations et d'environnements étendus comme des villes, des hôpitaux ou des sites industriels. Le cœur du projet : une architecture hautement scalable basée sur des nœuds terrain reliés à des serveurs, capable de gérer des flux très haute fréquence jusqu'à 1000 Hz tout en offrant un dashboard moderne et des outils d'automatisation et d'intégration.

Flask MQTT Docker Kubernetes Grafana n8n IoT à grande échelle
Aperçu du projet Eyeot (plateforme IoT scalable)

Résumé

Eyeot est une plateforme IoT conçue pour agréger et superviser un très grand nombre de capteurs, y compris des capteurs haute fréquence capables de produire des données à 1000 Hz. L'objectif est de fournir un socle évolutif permettant de déployer des capteurs à grande échelle, tout en conservant une visibilité claire via un dashboard.

Le projet repose sur une approche nœuds → serveurs : les capteurs sont rattachés à des nœuds terrain qui collectent et transmettent les mesures, puis les serveurs centralisent, traitent et exposent les données via des dashboards, des cartes, des automatisations et des intégrations.

Objectifs

  • Scalabilité : pouvoir ajouter des capteurs et des nœuds sans limite théorique.
  • Haute fréquence : absorber et exploiter des flux jusqu'à 1000 Hz selon le type de capteur.
  • Observabilité : visualiser en temps réel, historiser et analyser via un dashboard moderne.
  • Automatisation : déclencher des alertes et des workflows via des outils dédiés.
  • Intégrations : connecter des services tiers au même écosystème.
  • Gestion : users, objets, droits, cartographie et gouvernance de la plateforme.

Architecture

Topologie "nœuds terrain"

Les capteurs sont connectés à des nœuds capables de collecter et normaliser les mesures. Les nœuds servent de relais et éventuellement de tampon pour envoyer les données vers les serveurs centraux de manière fiable.

  • Connexion multi-capteurs
  • Flux temps réel + bufferisation
  • Envoi optimisé vers le serveur

Transport & ingestion

Utilisation de MQTT pour la collecte et la distribution des messages : un protocole léger, pub/sub et adapté aux environnements IoT. L'objectif est de gérer de gros volumes de messages sans complexité inutile.

  • Pub/Sub
  • Découplage capteurs ↔ services
  • Scalabilité des flux

Serveurs & orchestration

La plateforme serveur est packagée en Docker et pensée pour être orchestrée via Kubernetes, afin d'augmenter facilement la capacité, isoler les composants et assurer la disponibilité. Le back-end s'appuie sur Flask pour l'API et les services.

  • Déploiement reproductible
  • Montée en charge horizontale
  • Isolation et résilience

Fonctionnalités

Dashboard & supervision

  • Visualisation : tableaux de bord et métriques pour suivre l'état et l'activité.
  • Grafana : graphiques, alertes, drill-down et corrélations sur l'historique.
  • Temps réel : suivi des capteurs et des flux selon la configuration.
  • Cartographie : affichage des objets connectés sur une carte pour une vraie vue terrain.

Gestion & plateforme

  • Gestion des utilisateurs : création d'users, rôles et droits.
  • Inventaire IoT : retrouver précisément tous les capteurs, nœuds et objets connectés.
  • Automatisations : workflows via n8n.
  • Intégrations : ajout de services comme Pi-hole, Philips Hue et d'autres briques réseau.

Haute fréquence (1000 Hz)

Une attention particulière est portée aux capteurs à très haute fréquence : au-delà de la collecte, l'enjeu est de ne pas saturer l'ingestion, le stockage et la visualisation. L'architecture est donc pensée pour filtrer ou agréger quand nécessaire, bufferiser côté nœud et conserver une observabilité exploitable.

  • Gestion de gros volumes de mesures
  • Approche scalable avec services séparés et montée en charge
  • Exploitation via des dashboards adaptés

Fiabilité & sécurité

Dans un contexte IoT à grande échelle, l'enjeu n'est pas uniquement de recevoir des données, mais de garantir la continuité, la cohérence et la maîtrise des accès et de l'intégrité des flux. Eyeot est pensé pour évoluer vers des environnements critiques en conservant un cadre robuste.

  • Fiabilité : architecture découplée et scalable, avec composants isolés.
  • Observabilité : métriques et dashboards pour détecter dérives et pannes.
  • Gouvernance : gestion des users, rôles et périmètres d'accès.
  • Évolutivité : ajout d'intégrations et de nouveaux types de capteurs sans refonte totale.
  • Bonnes pratiques : base containerisée, déploiement reproductible et maîtrise des dépendances.

Résultats

Scalabilité

Nœuds & serveurs

Fréquence

Jusqu'à 1000 Hz

Pilotage

Dashboard + automatisations

Aperçu

Notes & détails

Pipeline de données
  • Capteurs → nœuds pour la collecte, la normalisation et le buffer
  • Nœuds → MQTT pour publier les mesures sur les bons topics
  • Ingestion serveur pour le traitement, le stockage et l'exposition API
  • Observabilité avec Grafana et alerting
  • Workflows n8n et intégrations annexes
Scalabilité & résilience
  • Containerisation Docker avec services séparés
  • Orchestration Kubernetes pour le scaling, le restart et l'isolation
  • Gestion des pics de charge via load balancing et files d'attente
  • Découplage ingestion, traitement, visualisation et automatisations
  • Architecture pensée pour rester maintenable malgré la montée en charge
Cas d'usage & extensions
  • Supervision d'environnements distribués type sites industriels, santé ou smart city
  • Cartographie d'objets connectés et suivi terrain en temps réel
  • Automatisations et alertes via n8n pour déclencher des actions métier
  • Intégration de services tiers comme Pi-hole, Philips Hue ou d'autres briques réseau