Jumeau numérique

Jumeau numérique de ville intelligente : trafic, éclairage et environnement via MQTT

Comment les jumeaux numériques urbains combinent un modèle géographique avec des données en direct de trafic, d'éclairage public et de capteurs environnementaux publiées via MQTT, avec conception des topics, code et checklist pour un projet pilote.

Carte d'un jumeau numérique de ville intelligente montrant des quartiers colorés selon la qualité de l'air avec superposition du trafic et de l'état de l'éclairage public en direct
Essayez-le sur votre propre broker MQTTObtenez un broker MQTT privé et managé avec l’offre Free et partez d’exemples de code prêts à l’emploi.
Essayer gratuitement Exemples de code Aucune carte bancaire requise

Un jumeau numérique de ville intelligente est un modèle géographique vivant d'une ville ou d'un quartier, qui associe cartes et maquettes 3D urbaines à des données de capteurs en temps réel sur le trafic, l'éclairage public et l'environnement. Cet article explique à quoi servent les jumeaux urbains, comment structurer les données des capteurs sur MQTT pour que de nombreux services et fournisseurs puissent les partager, et comment mener un petit projet pilote qui valide le concept.

Ce qu'est un jumeau numérique de ville intelligente

Les villes disposent déjà de nombreuses données : compteurs de trafic, contrôleurs d'éclairage public, stations de qualité de l'air, capteurs de stationnement, stations météo et compteurs des réseaux. Le problème est que chaque système appartient généralement à un service et à un fournisseur différents, avec son propre tableau de bord. Personne ne voit comment ils interagissent.

Un jumeau urbain superpose ces données sur un modèle spatial partagé, généralement une carte SIG ou une maquette 3D de la ville construite à partir de standards ouverts comme CityGML. Les urbanistes peuvent alors poser des questions transversales : la qualité de l'air d'une rue s'améliore-t-elle quand le trafic est dévié ? Quels tronçons d'éclairage brûlent à pleine puissance sur des routes vides la nuit ? Où placer les prochains capteurs ?

Les jumeaux urbains couvrent tout un spectre, d'une carte 2D avec des marqueurs de capteurs en direct jusqu'à des maquettes 3D détaillées avec simulation. C'est la connexion de données en direct qui fait de l'un comme de l'autre un jumeau plutôt qu'un modèle statique. Pour les concepts sous-jacents, voir le guide de la technologie du jumeau numérique.

Principaux cas d'usage

Surveillance du trafic

Boucles inductives, radars, caméras avec comptage embarqué et sondes Bluetooth ou Wi-Fi fournissent comptages de véhicules, vitesses et taux d'occupation. Le jumeau montre la congestion au moment où elle se forme et, grâce à l'historique, révèle les schémas récurrents et l'effet des travaux ou des modifications de cycles de feux. La vie privée compte ici : publiez des comptages et des vitesses agrégés, jamais d'identités, de plaques ou de vidéo brute.

Éclairage public

Les contrôleurs d'éclairage en réseau remontent l'état des lampes, la puissance, le niveau de gradation et les défauts. Dans le jumeau, les lampes en panne apparaissent immédiatement sur la carte, sans attendre les signalements des habitants, et la consommation d'énergie peut être comparée entre quartiers et programmes de gradation.

Surveillance de l'environnement

Les capteurs de qualité de l'air mesurent les particules (PM2.5, PM10), le dioxyde d'azote, l'ozone, la température, l'humidité et le bruit. Les capteurs bas coût offrent une couverture dense mais doivent être étalonnés par rapport à des stations de référence. Le jumeau combine les deux, signale les points chauds et les met en corrélation avec le trafic et la météo.

Autres couches

Occupation du stationnement, taux de remplissage des conteneurs à déchets, pression du réseau d'eau, capteurs d'inondation et positions des transports en commun suivent tous le même modèle. Commencez par deux ou trois couches et ajoutez-en une fois la plateforme de données éprouvée.

Couche Exemples de capteurs Intervalle de publication typique État retenu ? Enjeu de vie privée
Trafic Boucles, radars, caméras avec comptage edge 1 à 5 minutes, agrégé Dernier agrégat Élevé, agréger à l'edge
Éclairage public Contrôleurs de lampes Au changement, plus énergie horaire Oui, état des lampes Faible
Qualité de l'air Capteurs PM, NO2, O3 1 à 15 minutes Dernière mesure Faible
Bruit Sonomètres 1 minute (niveaux uniquement) Dernière mesure Moyen, ne jamais publier d'audio
Stationnement Capteurs au sol ou caméras Au changement Oui Faible sans plaques

Pourquoi MQTT convient aux réseaux de capteurs urbains

Les capteurs urbains sont nombreux, alimentés sur batterie ou sur secteur, répartis sur de vastes zones et souvent connectés via le réseau cellulaire, des serveurs réseau LoRaWAN ou la fibre municipale. MQTT fonctionne bien dans cet environnement :

  • Appareils et passerelles se connectent en sortant, de sorte que les capteurs derrière un NAT cellulaire n'ont besoin d'aucun port entrant.
  • Des messages courts et un faible surcoût conviennent aux liaisons et aux appareils contraints.
  • Le publish/subscribe découple les fournisseurs : le fournisseur d'éclairage publie, tandis que le jumeau, le portail open data et l'équipe énergie s'abonnent indépendamment.
  • Les retained messages donnent instantanément à chaque nouveau consommateur le dernier état de milliers de capteurs.

Un broker MQTT cloud convient bien à un programme municipal : services et fournisseurs situés à différents endroits joignent tous un même point d'accès TLS, et l'équipe informatique de la ville évite d'exploiter une infrastructure de broker. Les plans comptent à l'échelle d'une ville. Le plan Serverless gratuit de ConnectMQ convient à un pilote avec jusqu'à 25 connexions, le Serverless payant prend en charge jusqu'à 1 000 connexions, et les options Dedicated ou BYOC offrent un cluster isolé ou un déploiement dans le propre compte cloud de la ville. De nombreux réseaux de capteurs passent aussi par quelques passerelles ou serveurs réseau, ce qui limite le nombre de connexions.

Conception des topics pour un jumeau urbain

Structurez les topics par ville, domaine, quartier et appareil :

connectmq/<city>/<domain>/<district>/<device-id>/<data-type>

connectmq/riverton/air/old-town/aq-017/reading
connectmq/riverton/lighting/old-town/lamp-4411/status
connectmq/riverton/traffic/old-town/loop-23/aggregate
connectmq/riverton/parking/harbor/bay-112/status

Incluez les coordonnées dans un topic de métadonnées de l'appareil (retenu) plutôt que dans chaque mesure :

{
  "deviceId": "aq-017",
  "lat": 41.0151,
  "lon": 28.9795,
  "mountHeightM": 3.5,
  "sensor": "PM and NO2 low-cost unit",
  "calibratedAgainst": "reference-station-2"
}

Le jumeau s'abonne à connectmq/riverton/+/+/+/meta pour placer les appareils sur la carte, puis aux topics de données pour les valeurs en direct. Placer le domaine en premier permet à chaque service de s'abonner à sa propre branche avec un seul joker. Pour les modèles généraux, voir jumeau numérique et MQTT.

Pratique : des capteurs de qualité de l'air simulés sur une carte en direct

Testez le flux de données avec le serveur MQTT public gratuit broker.connectmq.com, réservé aux tests et aux prototypes. Utilisez des valeurs simulées et un préfixe unique ; l'espace public est lisible par tous.

Un script Python qui simule trois capteurs de qualité de l'air avec leurs métadonnées :

import json
import random
import time
import uuid

import paho.mqtt.client as mqtt

RUN = "city-a19c"  # remplacez par votre propre identifiant unique
BASE = f"connectmq/demo/{RUN}/air/old-town"
SENSORS = {
    "aq-017": (41.0151, 28.9795),
    "aq-018": (41.0122, 28.9760),
    "aq-019": (41.0170, 28.9832),
}

client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=f"aq-sim-{uuid.uuid4().hex[:6]}")
client.connect("broker.connectmq.com", 1883, keepalive=60)
client.loop_start()

for sid, (lat, lon) in SENSORS.items():
    client.publish(f"{BASE}/{sid}/meta", json.dumps({"deviceId": sid, "lat": lat, "lon": lon}), qos=1, retain=True)

while True:
    rush_hour = time.localtime().tm_hour in (7, 8, 17, 18)
    for sid in SENSORS:
        pm25 = max(0.0, random.gauss(28 if rush_hour else 14, 4))
        no2 = max(0.0, random.gauss(45 if rush_hour else 22, 6))
        reading = {"pm25": round(pm25, 1), "no2": round(no2, 1), "unit": "ug/m3", "ts": int(time.time())}
        client.publish(f"{BASE}/{sid}/reading", json.dumps(reading), qos=1, retain=True)
    time.sleep(10)

Une carte dans le navigateur (par exemple avec Leaflet) se connecte en WebSocket sécurisé et met à jour les marqueurs :

import mqtt from "mqtt";

const base = "connectmq/demo/city-a19c/air/old-town";
const markers = {};
const client = mqtt.connect("wss://broker.connectmq.com:8084/mqtt", {
  clientId: "city-map-" + Math.random().toString(16).slice(2, 10),
  protocolVersion: 5,
});

client.on("connect", () => client.subscribe([`${base}/+/meta`, `${base}/+/reading`]));

client.on("message", (topic, payload) => {
  const [, , , , , id, kind] = topic.split("/");
  const data = JSON.parse(payload.toString());
  if (kind === "meta" && !markers[id]) {
    markers[id] = L.circleMarker([data.lat, data.lon], { radius: 10 }).addTo(map);
  } else if (kind === "reading" && markers[id]) {
    const color = data.pm25 > 25 ? "#d94040" : data.pm25 > 15 ? "#e0a030" : "#3fa34d";
    markers[id].setStyle({ color, fillColor: color }).bindTooltip(`${id}: PM2.5 ${data.pm25} ${data.unit}`);
  }
});

Ici, map est votre instance de carte Leaflet. Les seuils de couleur sont indicatifs ; utilisez les limites définies par les recommandations locales en matière de qualité de l'air.

Checklist du projet pilote

  1. Choisissez un quartier et deux ou trois couches de données avec des responsables clairement identifiés.
  2. Convenez de la hiérarchie des topics et des schémas de payload avec chaque fournisseur avant l'installation.
  3. Exigez des fournisseurs qu'ils publient via MQTT avec TLS (port 8883), ou reliez leurs API avec un petit adaptateur.
  4. Émettez un identifiant par système fournisseur ou par passerelle ; ConnectMQ lie les client IDs aux identifiants émis et bloque les adresses IP après des échecs de connexion répétés.
  5. Agrégez les données sensibles à l'edge ; ne publiez jamais de données personnelles.
  6. Conservez l'historique avec un abonné qui alimente une base de séries temporelles pour les analyses de planification.
  7. Configurez des alertes à seuil simples, comme des PM2.5 au-dessus d'une limite, dans le portail ou dans votre propre service.
  8. Publiez des agrégats sélectionnés et non sensibles vers un portail open data via un abonné distinct.

Pièges

  • Dépendance aux fournisseurs via des tableaux de bord propriétaires. Faites de la publication MQTT vers le broker de la ville une exigence des marchés publics.
  • Capteurs bas coût non étalonnés. Installez-en certains à côté de stations de référence et publiez des métadonnées de correction.
  • Horloges incohérentes. Exigez des horodatages UTC de chaque source.
  • Commencer par la maquette 3D. Une carte 2D avec des données en direct fiables est plus utile qu'une belle maquette aux données périmées.

Les jumeaux urbains partagent de nombreuses briques avec le jumeau numérique de bâtiment et le jumeau numérique énergétique.

Lancez votre pilote de ville intelligente sur ConnectMQ

ConnectMQ est un broker MQTT managé avec TLS, accès WebSocket pour les cartes dans le navigateur et prise en charge de MQTT 5. Créez un broker Serverless gratuit sur app.connectmq.com, sans carte bancaire, et connectez les capteurs de votre premier quartier à un jumeau en direct.

Questions fréquentes

Qu'est-ce qu'un jumeau numérique de ville intelligente ?

C'est un modèle numérique vivant d'une ville ou d'un quartier qui associe cartes ou maquettes 3D urbaines à des données de capteurs en temps réel sur le trafic, l'éclairage, l'environnement et d'autres infrastructures.

Pourquoi utiliser MQTT pour les capteurs d'une ville intelligente ?

MQTT est léger, fonctionne avec des connexions sortantes depuis des passerelles cellulaires et LoRaWAN, et permet à de nombreux services de s'abonner aux mêmes données de capteurs sans intégrations séparées.

Comment les jumeaux numériques urbains protègent-ils la vie privée ?

En agrégeant les données à l'edge et en ne publiant que des comptages, des niveaux et des mesures, jamais d'images, d'audio, de plaques ou d'identifiants personnels.

Un jumeau numérique urbain peut-il commencer petit ?

Oui. Un pilote sur un quartier avec deux ou trois couches de données sur une carte 2D est un démarrage pragmatique, et d'autres couches peuvent être ajoutées une fois la plateforme de données opérationnelle.

Articles liés

Tous les articles →

Votre broker MQTT privé, à quelques clics

Créez un compte, récupérez les identifiants de votre broker et connectez votre premier appareil — aucun serveur à installer, mettre à jour ou dimensionner.