Home›Blog›Semáforos inteligentes: protótipo com Python, SUMO e IA
#automacao#ia#python#empreendedorismo
Semáforos inteligentes: protótipo com Python, SUMO e IA
A PBH anunciou semáforos inteligentes em BH. Use isso como gancho para montar um protótipo vendável com SUMO, Python, ML e deploy em edge.
📅 10 Ago 2026⏱️ 5 min de leitura✍️ Zenn Digital
Gancho: o que aconteceu
A Prefeitura de Belo Horizonte lançou o projeto "Semáforos Inteligentes" como iniciativa de gestão remota do trânsito na capital. Usei essa notícia como ponto de partida — neste post você não vai ler sobre política, e sim sobre como transformar a ideia em um protótipo técnico e uma oferta prática para clientes (prefeituras, concessionárias, gestores de mobilidade ou operadores de frotas).
Objetivo deste guia
Apresentar um caminho passo a passo para construir um protótipo de controle de semáforos coordenados com ferramentas abertas (SUMO, OpenStreetMap), Python e técnicas de IA/otimização — pensado para aprender, demonstrar valor e virar um produto/serviço vendável.
Por onde começar (visão prática)
Defina metas claras do piloto: reduzir tempo médio de espera, priorizar ônibus, reduzir filas em interseções críticas ou diminuir emissões — cada meta muda requisitos e métricas.
Escolha uma área pequena para o piloto (1–10 cruzamentos) e obtenha mapa/tráfego básico (OpenStreetMap + contagens locais ou estimativas).
Monte um simulador: SUMO é a opção mais prática para testar lógica de semáforos sem necessidade de campo.
Experimente algoritmos simples primeiro (fixed-time, actuated, max-pressure) antes de partir para RL ou MPC.
Comprove impacto em simulação e prepare um MVP para deploy em um controlador local (Raspberry Pi / edge) com telemetria.
Protótipo técnico (mão na massa)
Dados necessários:
Geometria das vias: OpenStreetMap (exportar via overpass ou osmconvert).
Perfis de demanda: contagens reais, CSV de entradas/saídas ou gerar fluxos sintéticos para teste.
Prioridades: ônibus, bicicletas, pedestres — modelar como regras de prioridade.
Ferramentas recomendadas:
SUMO (simulador de tráfego) + TraCI (API Python para controlar semáforos em tempo real).
Python: pandas, numpy para ETL; scikit-learn para modelos simples; stable-baselines3 para RL se precisar.
OR-Tools ou cvxpy para otimização (MPC / programação linear).
Flask/FastAPI para uma API local que recebe sensores e aciona o controlador.
Docker para empacotar o serviço e facilitar o deploy.
Exemplo mínimo: alterar fase do semáforo via TraCI (pseudo-código em Python)
import traci
# iniciar SUMO com TraCI
traci.start(['sumo', '-c', 'meu_arquivo.sumocfg'])
tls_id = 'junction_1'
# ciclo simples: 'GrGr' é um exemplo de estado (depende da configuração do TLS)
novo_estado = 'GrGr' # string depende do seu arquivo de semáforo
traci.trafficlight.setRedYellowGreenState(tls_id, novo_estado)
# ler fila e indicadores
queue_length = traci.lane.getLastStepVehicleNumber('lane_0')
traci.close()
Esse trecho demonstra a integração básica: a lógica que você desenvolver roda em Python e fala com o SUMO através do TraCI.
Algoritmos e abordagens (do simples ao avançado)
Fixed-time: configuração manual de ciclos — útil como baseline.
Actuated / detector-based: extensões do fixed-time com sensores (indução, câmeras) para estender fases na presença de veículos.
Max-Pressure: heurística distribuída que prioriza sinais baseando-se em comprimentos de fila nas entradas/saídas — simples e eficaz para muitos casos.
Model Predictive Control (MPC): otimização de horizonte finito, adequada quando há modelos confiáveis do fluxo.
Reinforcement Learning (RL): interessante para pesquisas e casos complexos, mas exige simulações intensas, infraestrutura e cuidado para transferir do simulador para o mundo real.
Infraestrutura e deployment
Edge: Raspberry Pi 4, Jetson Nano ou industrial PC para rodar a lógica localmente e manter latência baixa.
Comunicação: MQTT ou WebSocket para telemetria entre controladores e um servidor central.
Observabilidade: dashboards (Grafana) com métricas em tempo real: tempos de espera, filas, número de ciclos, eventos de prioridade.
Segurança e ops: containerize a aplicação, garanta atualizações seguras e logs para auditoria.
Como validar e pilotar com clientes
Planeje um piloto com escopo curto (2–4 semanas de observação + 2 semanas de ajuste em simulação).
KPIs possíveis: redução relativa no tempo de espera médio por interseção, diminuição de filas, melhoria no tempo de ônibus em corredores prioritários (defina antes).
Risco: sempre comece em simulação e depois em um semáforo de teste com supervisão humana.
Modelo de negócio: projeto-piloto pago + prestação mensal (monitoramento, ajustes, SLA) ou licenciamento da plataforma.
Estrutura da oferta (ideias de produto)
Workshop + entrega do piloto: 1 semana de diagnóstico, 4 semanas de protótipo em simulação, 2 semanas de instalação e testes — entregue com dashboard e manual.
SaaS para cidades pequenas: painel, histórico, recomendações automáticas e deploy em edge como serviço gerenciado.
Serviço para operadores de frota: prioridade em semáforos com base em rotas e contratos (por exemplo, priorizar ônibus em horário de pico).
Checklist prático (faça assim)
Escolher área piloto (listar cruzamentos e objetivos)
Baixar mapa OSM e gerar rede SUMO
Criar cenários de demanda (CSV) e baseline fixed-time
Implementar control loop Python + TraCI
Testar heurísticas (max-pressure) e coletar métricas em simulação
Se optar por ML, treinar e validar em simulação com múltiplos seeds
Empacotar aplicação em Docker e preparar image para edge
Montar dashboard e relatório de impacto para o cliente
Planejar instalação física e fallback manual para segurança
Próximos passos rápidos (para começar hoje)
Instale SUMO localmente e reproduza um roteiro tutorial básico.
Pegue um pequeno trecho do OpenStreetMap e converta para SUMO.
Implemente um script Python que troca fases do semáforo via TraCI e registre filas.
Teste uma heurística simples (max-pressure) e compare com fixed-time.
Conclusão e convite
Projetos de semáforos inteligentes são ótimos para aprender integração entre simulação, IA leve e deployment em edge — com caminho claro para oferta comercial. Comece pequeno, valide em simulação e documente impacto.
Quer transformar essa ideia em um piloto técnico para a sua cidade ou cliente? Fale com a Zenn Digital: https://zenndigital.com/#contato