Gêmeo digital

Gêmeo Digital de Cidade Inteligente: Trânsito, Iluminação e Meio Ambiente via MQTT

Como gêmeos digitais de cidades combinam um modelo geográfico com dados ao vivo de sensores de trânsito, iluminação pública e meio ambiente publicados via MQTT, incluindo design de topics, código e um checklist de piloto.

Mapa de gêmeo digital de cidade inteligente mostrando bairros coloridos pela qualidade do ar, com sobreposições ao vivo do fluxo de trânsito e do status da iluminação pública
Rode isso no seu próprio broker MQTTTenha um broker MQTT privado e gerenciado no plano Free e comece com exemplos de código prontos.
Teste grátis Exemplos de código Sem cartão de crédito

Um gêmeo digital de cidade inteligente é um modelo geográfico vivo de uma cidade ou bairro que combina mapas e modelos 3D da cidade com dados de sensores em tempo real sobre trânsito, iluminação pública e meio ambiente. Este artigo explica para que servem os gêmeos de cidades, como estruturar os dados de sensores no MQTT para que muitos departamentos e fornecedores possam compartilhá-los e como conduzir um pequeno piloto que comprove o conceito.

O Que É um Gêmeo Digital de Cidade Inteligente

As cidades, de capitais a municípios médios do interior, já têm muitos dados: contadores de tráfego, controladores de iluminação pública, estações de qualidade do ar, sensores de estacionamento, estações meteorológicas e medidores de concessionárias. O problema é que cada sistema geralmente pertence a um departamento e a um fornecedor diferentes, com seu próprio dashboard. Ninguém vê como eles interagem.

Um gêmeo de cidade sobrepõe esses dados a um modelo espacial compartilhado, normalmente um mapa GIS ou um modelo 3D da cidade construído com padrões abertos como o CityGML. Os planejadores podem então fazer perguntas transversais: a qualidade do ar em uma rua melhora quando o trânsito é desviado? Quais trechos de iluminação ficam em potência máxima em ruas vazias durante a noite? Onde devem ficar os próximos sensores?

Os gêmeos de cidades abrangem um espectro, de um mapa 2D com marcadores de sensores ao vivo a modelos 3D detalhados com simulação. É a conexão de dados ao vivo que faz de qualquer um deles um gêmeo, e não um modelo estático. Para os conceitos de base, veja o guia de tecnologia de gêmeo digital.

Principais Casos de Uso

Monitoramento do trânsito

Laços indutivos, radares, câmeras com contagem embarcada e sondas Bluetooth ou Wi-Fi fornecem contagens de veículos, velocidades e taxa de ocupação. O gêmeo mostra os congestionamentos à medida que se formam e, com o histórico, revela padrões recorrentes e o efeito de obras ou de mudanças na programação semafórica. A privacidade é importante aqui: publique contagens e velocidades agregadas, nunca identidades, placas ou vídeo bruto.

Iluminação pública

Controladores de iluminação em rede informam o status da lâmpada, a potência, o nível de dimerização e as falhas. No gêmeo, lâmpadas queimadas aparecem no mapa imediatamente, em vez de esperar por reclamações dos cidadãos, e o consumo de energia pode ser comparado entre bairros e programações de dimerização.

Monitoramento ambiental

Sensores de qualidade do ar medem material particulado (PM2.5, PM10), dióxido de nitrogênio, ozônio, temperatura, umidade e ruído. Sensores de baixo custo oferecem cobertura densa, mas precisam ser calibrados em relação a estações de referência. O gêmeo combina ambos, sinaliza pontos críticos e os correlaciona com trânsito e clima.

Outras camadas

Ocupação de estacionamentos, nível de enchimento de lixeiras, pressão na rede de água, sensores de alagamento e posições do transporte público seguem o mesmo padrão. Comece com duas ou três camadas e acrescente outras quando a plataforma de dados estiver comprovada.

Camada Sensores de exemplo Intervalo de publicação típico Reter estado? Preocupação com privacidade
Trânsito Laços, radares, câmeras com contagem na borda Agregado a cada 1 a 5 minutos Último agregado Alta, agregar na borda
Iluminação pública Controladores de lâmpadas Na mudança, mais energia a cada hora Sim, status da lâmpada Baixa
Qualidade do ar Sensores de PM, NO2, O3 1 a 15 minutos Última leitura Baixa
Ruído Medidores de nível sonoro 1 minuto (apenas níveis) Última leitura Média, nunca publique áudio
Estacionamento Sensores no piso ou câmeras Na mudança Sim Baixa, se não houver placas

Por Que o MQTT Combina com Redes de Sensores Urbanos

Os sensores urbanos são numerosos, alimentados por bateria ou pela rede elétrica, espalhados por áreas extensas e muitas vezes conectados via rede celular, network servers LoRaWAN ou fibra municipal. O MQTT funciona bem nesse ambiente:

  • Dispositivos e gateways se conectam para fora, então sensores atrás de NAT celular não precisam de portas de entrada.
  • Mensagens pequenas e baixo overhead se adaptam a links e dispositivos limitados.
  • O publish/subscribe desacopla os fornecedores: o fornecedor da iluminação publica, enquanto o gêmeo, o portal de dados abertos e a equipe de energia assinam de forma independente.
  • Retained messages entregam instantaneamente a cada novo consumidor o estado mais recente de milhares de sensores.

Um broker MQTT na nuvem se encaixa bem em um programa municipal: departamentos e fornecedores em locais diferentes acessam um único endpoint TLS, e a equipe de TI da cidade evita operar infraestrutura de broker. Os planos importam na escala de uma cidade. O plano Serverless gratuito da ConnectMQ é adequado para um piloto com até 25 conexões, o Serverless pago suporta até 1.000 conexões, e as opções Dedicated ou BYOC oferecem um cluster isolado ou uma implantação dentro da própria conta de nuvem da cidade. Muitas redes de sensores também agregam os dados por meio de alguns poucos gateways ou network servers, o que mantém o número de conexões moderado.

Design de Topics para um Gêmeo de Cidade

Estruture os topics por cidade, domínio, bairro e dispositivo:

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

Inclua as coordenadas em um topic de metadados do dispositivo (retido), e não em cada leitura:

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

O gêmeo assina connectmq/riverton/+/+/+/meta para posicionar os dispositivos no mapa e, depois, os topics de dados para obter os valores ao vivo. A ordenação com o domínio primeiro permite que cada departamento assine o próprio ramo com um único wildcard. Para padrões gerais, veja gêmeo digital com MQTT.

Mão na Massa: Sensores de Qualidade do Ar Simulados em um Mapa ao Vivo

Experimente o fluxo de dados com o servidor MQTT público (gratuito) em broker.connectmq.com. Use valores simulados e um prefixo exclusivo; o servidor MQTT público pode ser lido por qualquer pessoa e serve apenas para testes e protótipos.

Um script Python que simula três sensores de qualidade do ar com metadados:

import json
import random
import time
import uuid

import paho.mqtt.client as mqtt

RUN = "city-a19c"  # troque pelo seu próprio id exclusivo
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)

Um mapa no navegador (por exemplo, com Leaflet) se conecta via WebSocket seguro e atualiza os marcadores:

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

Aqui, map é a sua instância do mapa Leaflet. Os limites de cor são ilustrativos; use os limites definidos pelas diretrizes de qualidade do ar da sua região.

Checklist do Piloto

  1. Escolha um bairro e duas ou três camadas de dados com responsáveis claros.
  2. Defina a hierarquia de topics e os esquemas de payload com todos os fornecedores antes da instalação.
  3. Exija que os fornecedores publiquem via MQTT com TLS (porta 8883) ou faça a ponte das APIs deles com um pequeno adaptador.
  4. Emita uma credencial por sistema ou gateway de fornecedor; a ConnectMQ vincula os client IDs às credenciais emitidas e bloqueia IPs após repetidas tentativas de login malsucedidas.
  5. Agregue os dados sensíveis à privacidade na borda; nunca publique dados pessoais.
  6. Persista o histórico com um assinante que alimenta um banco de dados de séries temporais para análises de planejamento.
  7. Configure alertas simples por limite, como PM2.5 acima de um limite, no portal ou no seu próprio serviço.
  8. Publique agregados selecionados e não sensíveis em um portal de dados abertos por meio de um assinante separado.

Armadilhas

  • Dependência de fornecedor por meio de dashboards proprietários. Torne a publicação MQTT no broker da cidade um requisito das licitações.
  • Sensores de baixo custo não calibrados. Instale alguns junto a estações de referência e publique metadados de correção.
  • Relógios inconsistentes. Exija carimbos de tempo em UTC de todas as fontes.
  • Começar pelo modelo 3D. Um mapa 2D com dados ao vivo confiáveis é mais útil do que um modelo bonito com dados desatualizados.

Os gêmeos de cidades compartilham muitos componentes com o gêmeo digital de edifícios e o gêmeo digital de energia.

Lance Seu Piloto de Cidade Inteligente na ConnectMQ

A ConnectMQ é um broker MQTT gerenciado com TLS, acesso via WebSocket para mapas no navegador e suporte a MQTT 5. Crie um broker Serverless gratuito em app.connectmq.com, sem cartão de crédito, e conecte os sensores do seu primeiro bairro a um gêmeo ao vivo.

Perguntas frequentes

O que é um gêmeo digital de cidade inteligente?

É um modelo digital vivo de uma cidade ou bairro que combina mapas ou modelos 3D da cidade com dados de sensores em tempo real sobre trânsito, iluminação, meio ambiente e outras infraestruturas.

Por que usar MQTT em sensores de cidades inteligentes?

O MQTT é leve, funciona com conexões de saída a partir de gateways celulares e LoRaWAN e permite que muitos departamentos assinem os mesmos dados de sensores sem integrações separadas.

Como os gêmeos digitais de cidades protegem a privacidade?

Agregando os dados na borda e publicando apenas contagens, níveis e medições, nunca imagens, áudio, placas ou identificadores pessoais.

Um gêmeo digital de cidade pode começar pequeno?

Sim. Um piloto com um bairro e duas ou três camadas de dados em um mapa 2D é um começo prático, e mais camadas podem ser acrescentadas quando a plataforma de dados estiver funcionando.

Artigos relacionados

Todos os artigos →

Seu broker MQTT privado está a poucos cliques de distância

Crie uma conta, receba as credenciais do seu broker e conecte seu primeiro dispositivo — sem servidores para instalar, atualizar ou escalar.