4.7 KiB
4.7 KiB
Smart City Digital Twin — Diagramme des Flux de Données
Vue d'ensemble
Ce diagramme illustre le flux complet des données IoT du simulateur vers les différentes couches de traitement, de stockage et de visualisation.
Diagramme Mermaid
graph TB
SIM[Smart City Simulator]
SENS[Capteurs IoT Reels]
EMQ[EMQX]
MOS[Mosquitto]
BUN[BunkerM]
FRO[FROST-Server]
ORI[Orion-LD]
STE[Stellio]
UI[OpenRemote UI]
ORM[OpenRemote Manager]
KC[Keycloak]
INF[InfluxDB]
PRO[Prometheus]
GEO[GeoServer]
GRA[Grafana]
MAP[MapStore]
SIM --> EMQ
SIM --> MOS
SIM --> BUN
SENS --> EMQ
SENS --> MOS
SENS --> BUN
SENS -.-> ORM
EMQ -->|via EMQX| ORI
EMQ -->|via EMQX| STE
EMQ -->|via EMQX| FRO
EMQ --> ORM
MOS -->|via Mosquitto| ORI
MOS -->|via Mosquitto| STE
MOS -->|via Mosquitto| FRO
MOS --> ORM
BUN -->|via BunkerM| ORI
BUN -->|via BunkerM| STE
BUN -->|via BunkerM| FRO
BUN --> ORM
UI --> ORM
ORM -.-> KC
SIM --> INF
ORI --> GRA
STE --> GRA
FRO --> GRA
ORI -.-> GEO
STE -.-> GEO
FRO -.-> GEO
GEO --> MAP
ORM --> GRA
EMQ -.-> PRO
ORI -.-> PRO
STE -.-> PRO
ORM -.-> PRO
Description des flux
1. Génération des données (Simulator)
- Smart City Simulator (Python) génère des données pour 10 capteurs (Traffic, Air Quality, Parking, Noise, Weather, Light)
- Intervalle de publication : 10 secondes
- Protocoles : MQTT (vers brokers uniquement)
- ⚠️ Projet : Le simulateur n'envoie PAS directement à OpenRemote (pas de REST API)
2. Ingestion MQTT (Brokers)
- EMQX (port 11883) : Broker public, reçoit tous les capteurs
- Mosquitto (port 1883) : Via Traefik, accès externe
- BunkerM (port 1900) : MQTTS (TLS), accès sécurisé
3. Context Brokers (NGSI-LD & SensorThings)
- Orion-LD : Reçoit les données au format NGSI-LD
- 10 entités (TrafficFlowObserved, AirQualityObserved, etc.)
- Smart Data Models utilisés
- Provenance : Données via EMQX, Mosquitto et BunkerM (voir étiquettes dans le diagramme)
- Stellio : Alternative NGSI-LD
- 14 payloads entités
- Contexte :
https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld - Provenance : Données via EMQX, Mosquitto et BunkerM
- FROST-Server : SensorThings API
- 21 256+ observations
- PostgreSQL + TimescaleDB
- Provenance : Données via EMQX, Mosquitto et BunkerM
4. Plateforme IoT (OpenRemote)
- OpenRemote Manager (realm
smartcity)- 33 assets IoT configurés
- Carte Martinique (mapsettings.json)
- Réception via MQTT Agent depuis les brokers (EMQX, Mosquitto, BunkerM)
- Peut aussi recevoir directement des capteurs IoT (via MQTT)
- Keycloak : Authentification OpenID Connect
- Client
openremoteavec Service Account - Token endpoint :
/auth/realms/smartcity/protocol/openid-connect/token
- Client
5. Stockage & Métriques
- InfluxDB : Stockage temporel pour Grafana
- Bucket :
iot_data - Datasource dans Grafana
- Bucket :
- Prometheus : Collecte des métriques
- MQTT brokers, Context brokers, OpenRemote
- GeoServer : Données géospatiales
- PostGIS pour centralisation
- WMS/WFS pour MapStore
6. Visualisation & Analyse
- Grafana (port 3001)
- Dashboard :
smartcity-martinique-2026 - Datasources : InfluxDB, FROST, Orion-LD
- Dashboard :
- MapStore : Cartographie
- Sources WMS/WFS depuis GeoServer
- OpenRemote UI : Manager Interface
- Visualisation des assets realm Smart City
Technologies clés
| Composant | Technologie | Port | Statut |
|---|---|---|---|
| Simulator | Python + paho-mqtt | Interne | ✅ Actif |
| EMQX | MQTT Broker | 11883 | ✅ Connecté |
| Orion-LD | NGSI-LD Broker | 1026 | ⚠️ À vérifier |
| Stellio | NGSI-LD Broker | 8080 | ⚠️ À vérifier |
| FROST-Server | SensorThings API | 8080 | ⚠️ À vérifier |
| OpenRemote | IoT Platform | 8080 | ⚠️ 403 (Service Account) |
| InfluxDB | Time Series DB | 8086 | ✅ Configuré |
| Grafana | Visualization | 3001 | ✅ Dashboard créé |
| GeoServer | GeoServer | 8080 | ⚠️ À intégrer |
| Prometheus | Metrics | 9090 | ✅ En cours |
Fichiers associés
- Simulator :
~/smart-city-digital-twin-martinique/simulator.py - Dashboard Grafana :
~/smart-city-digital-twin-martinique/grafana_dashboard_smartcity.json - Ce diagramme :
~/smart-city-digital-twin-martinique/data-flow-diagram.md - Session Resume :
~/smart-city-digital-twin-martinique/session_resume_2026-05-04.md
Dernière mise à jour : 04 Mai 2026
Projet : Smart City Digital Twin Martinique
URL Grafana : http://localhost:3001/d/smartcity-martinique-2026