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 (multi-sites, multi-organisations), 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 (dashboard, cartes, automatisations, intégrations).
Objectifs
- Scalabilité : pouvoir ajouter des capteurs/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 actions (alertes, workflows) via des outils dédiés.
- Intégrations : connecter des services tiers (domotique, réseau, etc.) 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 (MQTT)
Utilisation de MQTT pour la collecte et la distribution des messages : un protocole adapté aux environnements IoT (léger, pub/sub, scalable). Objectif : 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 un serveur 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 configuration).
- Cartographie : afficher les objets connectés sur une carte pour une vue “terrain”.
Gestion & plateforme
- Gestion des utilisateurs : création d’users, rôles et droits (selon besoin).
- Inventaire IoT : retrouver précisément tous les capteurs, nœuds et objets connectés.
- Automatisations : workflows via n8n (alertes, scénarios, intégrations).
- Intégrations : ajout de services comme Pi-hole, Philips Hue (et d’autres) pour un écosystème unifié.
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/agréger quand nécessaire, bufferiser côté nœud, et conserver une observabilité exploitable.
- Gestion de gros volumes de mesures
- Approche scalable (services séparés, montée en charge)
- Exploitation via 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 (accès, droits, intégrité des flux). Eyeot est pensé pour évoluer vers des environnements critiques (ex : santé, collectivités) 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 (collecte, normalisation, buffer)
- Nœuds → MQTT (topics, structure des messages)
- Ingestion serveur (traitement, stockage, exposition API)
- Observabilité (Grafana) et alerting
- Workflows (n8n) et intégrations
Scalabilité & résilience
- Containerisation Docker (services séparés)
- Orchestration Kubernetes (scaling, restart, isolation)
- Gestion des pics de charge (load balancing, files d’attente)