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