Dijital İkiz

Akıllı Şehir Dijital İkizi: MQTT ile Trafik, Aydınlatma ve Çevre

Şehir dijital ikizleri, coğrafi bir modeli MQTT üzerinden yayınlanan canlı trafik, sokak aydınlatması ve çevre sensörü verileriyle nasıl birleştirir: topic tasarımı, kod ve pilot kontrol listesi dahil.

Canlı trafik akışı ve sokak aydınlatması durum katmanlarıyla, ilçeleri hava kalitesine göre renklendirilmiş akıllı şehir dijital ikizi haritası
Bunu kendi MQTT broker’ınızda çalıştırınFree planla özel, yönetilen bir MQTT broker alın ve hazır kod örnekleriyle başlayın.
Ücretsiz deneyin Kod örnekleri Kart gerekmez

Akıllı şehir dijital ikizi, haritaları ve 3D şehir modellerini trafik, sokak aydınlatması ve çevreye ilişkin gerçek zamanlı sensör verileriyle birleştiren, bir şehrin veya bölgenin canlı coğrafi modelidir. Bu makale şehir ikizlerinin ne için kullanıldığını, birçok birimin ve tedarikçinin paylaşabilmesi için sensör verilerinin MQTT üzerinde nasıl yapılandırılacağını ve kavramı kanıtlayan küçük bir pilotun nasıl yürütüleceğini açıklıyor.

Akıllı Şehir Dijital İkizi Nedir

Şehirlerin zaten bol miktarda verisi vardır: trafik sayaçları, sokak aydınlatması kontrolörleri, hava kalitesi istasyonları, otopark sensörleri, meteoroloji istasyonları ve altyapı sayaçları. Sorun, her sistemin genellikle farklı bir birime ve tedarikçiye ait olması ve kendi panosuna sahip olmasıdır. Kimse bunların birbiriyle nasıl etkileştiğini görmez.

Şehir ikizi bu verileri ortak bir mekânsal model üzerine katmanlar halinde yerleştirir; bu model genellikle bir CBS (GIS) haritası veya CityGML gibi açık standartlarla oluşturulmuş bir 3D şehir modelidir. Planlamacılar böylece birimler arası sorular sorabilir: Trafik başka yöne yönlendirildiğinde bir caddedeki hava kalitesi iyileşiyor mu? Hangi aydınlatma segmentleri gece boş yollarda tam güçte yanıyor? Sonraki sensörler nereye yerleştirilmeli?

Şehir ikizleri, canlı sensör işaretçileri içeren 2D bir haritadan simülasyonlu ayrıntılı 3D modellere kadar geniş bir yelpazeye yayılır. Her ikisini de statik bir model yerine ikiz yapan şey canlı veri bağlantısıdır. Temel kavramlar için dijital ikiz teknolojisi rehberine bakın.

Temel Kullanım Senaryoları

Trafik izleme

Endüktif döngüler, radarlar, cihaz üzerinde sayım yapan kameralar ve Bluetooth veya Wi-Fi algılayıcılar araç sayılarını, hızları ve doluluğu sağlar. İkiz, trafik sıkışıklığını oluştuğu anda gösterir ve geçmişle birlikte tekrarlayan kalıpları ve yol çalışmalarının veya sinyal zamanlaması değişikliklerinin etkisini ortaya çıkarır. Burada gizlilik önemlidir: toplulaştırılmış sayıları ve hızları yayınlayın; asla kimlikleri, plakaları veya ham videoyu yayınlamayın.

Sokak aydınlatması

Ağa bağlı aydınlatma kontrolörleri lamba durumunu, gücü, karartma seviyesini ve arızaları raporlar. İkizde arızalı lambalar vatandaş bildirimlerini beklemeden haritada anında görünür ve enerji tüketimi ilçeler ve karartma programları arasında karşılaştırılabilir.

Çevre izleme

Hava kalitesi sensörleri partikül maddeyi (PM2.5, PM10), azot dioksiti, ozonu, sıcaklığı, nemi ve gürültüyü ölçer. Düşük maliyetli sensörler yoğun bir kapsama sağlar, ancak referans istasyonlara göre kalibrasyon gerektirir. İkiz her ikisini birleştirir, sıcak noktaları işaretler ve bunları trafik ve hava durumuyla ilişkilendirir.

Diğer katmanlar

Otopark doluluğu, çöp konteyneri doluluk seviyeleri, su şebekesi basıncı, taşkın sensörleri ve toplu taşıma konumları aynı kalıba uyar. İki veya üç katmanla başlayın ve veri platformu kendini kanıtladığında daha fazlasını ekleyin.

Katman Örnek sensörler Tipik yayın aralığı Durum retained mı? Gizlilik kaygısı
Trafik Döngüler, radar, uçta sayım yapan kameralar 1 ila 5 dakika, toplulaştırılmış Son toplu değer Yüksek, uçta toplulaştırın
Sokak aydınlatması Lamba kontrolörleri Değişiklik anında, artı saatlik enerji Evet, lamba durumu Düşük
Hava kalitesi PM, NO2, O3 sensörleri 1 ila 15 dakika Son okuma Düşük
Gürültü Ses seviyesi ölçerler 1 dakika (yalnızca seviyeler) Son okuma Orta, asla ses kaydı yayınlamayın
Otopark Zemine gömülü veya kamera sensörleri Değişiklik anında Evet Plaka yoksa düşük

MQTT Şehir Sensör Ağlarına Neden Uygundur

Şehir sensörleri çok sayıdadır, pille veya şebekeden beslenir, geniş alanlara yayılır ve çoğu zaman hücresel ağ, LoRaWAN ağ sunucuları veya belediye fiber altyapısı üzerinden bağlanır. MQTT bu ortamda iyi çalışır:

  • Cihazlar ve ağ geçitleri dışarı doğru bağlanır; böylece hücresel NAT arkasındaki sensörler gelen port gerektirmez.
  • Küçük mesajlar ve düşük ek yük, kısıtlı bağlantılara ve cihazlara uygundur.
  • Yayınla/abone ol modeli tedarikçileri birbirinden ayırır: aydınlatma tedarikçisi yayınlar; ikiz, açık veri portalı ve enerji ekibi ise bağımsız olarak abone olur.
  • Retained message'lar her yeni tüketiciye binlerce sensörün en son durumunu anında verir.

Bir bulut MQTT broker bir şehir programına çok uygundur: farklı lokasyonlardaki birimler ve tedarikçiler tek bir TLS uç noktasına ulaşır ve şehrin BT ekibi broker altyapısı işletmekten kurtulur. Şehir ölçeğinde planlar önemlidir. ConnectMQ'nun ücretsiz Serverless planı en fazla 25 bağlantılı bir pilot için yeterlidir; ücretli Serverless en fazla 1.000 bağlantıyı destekler; Dedicated veya BYOC seçenekleri ise izole bir küme ya da şehrin kendi bulut hesabı içinde bir dağıtım sağlar. Birçok sensör ağı verileri birkaç ağ geçidi veya ağ sunucusu üzerinden toplar; bu da bağlantı sayılarını makul düzeyde tutar.

Şehir İkizi İçin Topic Tasarımı

Topic'leri şehir, alan (domain), ilçe ve cihaza göre yapılandırın:

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

Koordinatları her okumaya eklemek yerine (retained) bir cihaz meta veri topic'ine koyun:

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

İkiz, cihazları haritaya yerleştirmek için connectmq/riverton/+/+/+/meta topic'ine, ardından canlı değerler için veri topic'lerine abone olur. Önce alan adını koyan sıralama, her birimin tek bir wildcard ile kendi dalına abone olmasını sağlar. Genel kalıplar için dijital ikiz MQTT yazısına bakın.

Uygulamalı: Canlı Harita Üzerinde Simüle Edilmiş Hava Kalitesi Sensörleri

Veri akışını broker.connectmq.com adresindeki ücretsiz herkese açık MQTT broker ile deneyin. Simüle edilmiş değerler ve benzersiz bir önek kullanın; herkese açık alan herkes tarafından okunabilir.

Meta verilerle birlikte üç hava kalitesi sensörünü simüle eden bir Python betiği:

import json
import random
import time
import uuid

import paho.mqtt.client as mqtt

RUN = "city-a19c"  # change to your own unique id
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)

Bir tarayıcı haritası (örneğin Leaflet ile) Secure WebSocket üzerinden bağlanır ve işaretçileri günceller:

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}`);
  }
});

Burada map, Leaflet harita örneğinizdir. Renk eşikleri yalnızca örnek amaçlıdır; yerel hava kalitesi yönergelerinizde tanımlanan sınırları kullanın.

Pilot Kontrol Listesi

  1. Sahipleri net olan bir ilçe ve iki veya üç veri katmanı seçin.
  2. Kurulumdan önce topic hiyerarşisi ve payload şemaları konusunda her tedarikçiyle uzlaşın.
  3. Tedarikçilerin TLS (port 8883) ile MQTT üzerinden yayın yapmasını şart koşun veya API'lerini küçük bir adaptörle köprüleyin.
  4. Her tedarikçi sistemi veya ağ geçidi için bir kimlik bilgisi verin; ConnectMQ, client ID'leri verilen kimlik bilgilerine bağlar ve tekrarlanan başarısız oturum açma denemelerinden sonra IP'leri engeller.
  5. Gizlilik açısından hassas verileri uçta toplulaştırın; asla kişisel veri yayınlamayın.
  6. Planlama analizleri için geçmişi, bir zaman serisi veritabanını besleyen bir aboneyle kalıcı hale getirin.
  7. PM2.5'in bir sınırı aşması gibi basit eşik uyarılarını portalda veya kendi servisinizde yapılandırın.
  8. Seçilmiş, hassas olmayan toplu verileri ayrı bir abone aracılığıyla açık veri portalına yayınlayın.

Tuzaklar

  • Tescilli panolar yoluyla tedarikçi bağımlılığı. Şehrin broker'ına MQTT ile yayın yapmayı satın alma şartı haline getirin.
  • Kalibre edilmemiş düşük maliyetli sensörler. Bir kısmını referans istasyonlarla aynı konuma yerleştirin ve düzeltme meta verilerini yayınlayın.
  • Tutarsız saatler. Her kaynaktan UTC zaman damgaları isteyin.
  • 3D modelle başlamak. Güvenilir canlı veriye sahip 2D bir harita, bayat veriye sahip güzel bir modelden daha faydalıdır.

Şehir ikizleri birçok yapı taşını bina dijital ikizi ve enerji dijital ikizi ile paylaşır.

Akıllı Şehir Pilotunuzu ConnectMQ Üzerinde Başlatın

ConnectMQ; TLS, tarayıcı haritaları için WebSocket erişimi ve MQTT 5 desteği sunan tam yönetilen bir MQTT hizmetidir. app.connectmq.com adresinde ücretsiz bir Serverless broker oluşturun; kredi kartı gerekmez. İlk ilçenizin sensörlerini canlı bir ikize bağlayın.

Sık Sorulan Sorular

Akıllı şehir dijital ikizi nedir?

Haritaları veya 3D şehir modellerini trafik, aydınlatma, çevre ve diğer altyapılara ilişkin gerçek zamanlı sensör verileriyle birleştiren, bir şehrin veya bölgenin canlı dijital modelidir.

Akıllı şehir sensörleri için neden MQTT kullanılmalı?

MQTT hafiftir, hücresel ve LoRaWAN ağ geçitlerinden giden bağlantılar üzerinden çalışır ve birçok birimin ayrı entegrasyonlara gerek kalmadan aynı sensör verilerine abone olmasını sağlar.

Şehir dijital ikizleri gizliliği nasıl korur?

Verileri uçta toplulaştırarak ve yalnızca sayıları, seviyeleri ve ölçümleri yayınlayarak; asla görüntü, ses, plaka veya kişisel tanımlayıcı yayınlamayarak.

Bir şehir dijital ikizi küçük başlayabilir mi?

Evet. 2D bir harita üzerinde bir ilçe ve iki veya üç veri katmanıyla yapılan bir pilot pratik bir başlangıçtır; veri platformu çalıştıktan sonra daha fazla katman eklenebilir.

İlgili yazılar

Tüm yazılar →

Özel MQTT broker’ınız birkaç tık uzağınızda

Hesabınızı oluşturun, broker kimlik bilgilerinizi alın ve ilk cihazınızı bağlayın — kurulacak, yamalanacak ya da ölçeklendirilecek sunucu yok.