Entrar ou criar conta

ULC Lab · implementação reproduzível

Laboratório: Sensores Urbanos e Contexto em Tempo Real com FIWARE Orion Context Broker

Você vai implementar uma arquitetura FIWARE básica para cidades inteligentes, conectando sensores simulados a um Orion Context Broker e consultando dados de contexto via NGSI. O laboratório leva cerca de 2 horas.

Cidades inteligentes: conectividade, IoT urbano com FIWARE e dados abertos
Ligado ao treinamento Cidades inteligentes: conectividade, IoT urbano com FIWARE e dados abertos
ULC-LAB-SMAR-0001 · Status de validaçãoNão validado pela Upnetix: roteiro derivado da documentação oficial, para você executar e validar
Duração estimada
120 min
Passos
12
Validações
4
Versões da documentação consultada
FIWARE Orion Context Broker 3.10.0 · Docker a versão estável atual · Python 3.8 ou superior · curl a versão estável atual
Objetivo

O objetivo é demonstrar, de ponta a ponta, como sensores urbanos (simulados) podem enviar dados para uma plataforma FIWARE, permitindo consultas e integração com soluções de cidades inteligentes. Você vai entender como o Orion Context Broker gerencia o contexto urbano em tempo real, usando padrões abertos e software livre.

Topologia

Três componentes principais: um simulador de sensores (rodando em Python), o Orion Context Broker (em um contêiner Docker) e um cliente de consulta (curl ou Postman). O sensor envia dados NGSI v2 para o Orion (exemplo: 192.168.56.101:1026). O cliente consulta o Orion para obter o contexto atualizado.

 +-------------------+
 | Sensor Simulado   |
 | (Python)         |
 +--------+----------+
          |
          | NGSI v2 (HTTP)
          v
 +--------+----------+
 | Orion Context     |
 | Broker (FIWARE)   |
 +--------+----------+
          |
          | NGSI v2 (HTTP)
          v
 +--------+----------+
 | Cliente de Consulta|
 | (curl/Postman)     |
 +-------------------+

Equipamentos e software

ItemRequisito, licença ou versão
Máquina virtual ou física2 vCPU, 2 GB RAM, porta 1026 aberta, Ubuntu 20.04 ou superior
FIWARE Orion Context BrokerAffero GPL v3 · 3.10.0
DockerApache 2.0 · a versão estável atual
PythonPSF License · 3.8 ou superior
curlcurl license · a versão estável atual

Roteiro

  1. Preparar o ambiente

    Atualize o sistema e instale Docker, Python e curl. Isso garante ambiente limpo e compatível.

    sudo apt update && sudo apt install docker.io python3 python3-pip curl -y

    O que você deve ver: Docker, Python 3 e curl instalados sem erros.

  2. Iniciar o Orion Context Broker

    O Orion Context Broker é o núcleo do FIWARE para gerenciar contexto. Use Docker para facilitar o deploy.

    sudo docker run -d --name fiware-orion -p 1026:1026 fiware/orion:3.10.0 -dbhost mongo

    O que você deve ver: Contêiner do Orion rodando. Verifique com 'docker ps'.

  3. Subir o MongoDB (dependência do Orion)

    O Orion precisa do MongoDB para armazenar dados de contexto.

    sudo docker run -d --name mongo -p 27017:27017 mongo:4.4

    O que você deve ver: Contêiner do MongoDB rodando. Verifique com 'docker ps'.

  4. Verificar inicialização do Orion

    Antes de enviar dados, confirme que o Orion está aceitando conexões.

    curl http://localhost:1026/version

    O que você deve ver: Retorno JSON com versão do Orion.

  5. Criar script Python para simular sensor urbano

    Simule um sensor de temperatura enviando dados NGSI v2 para o Orion. Isso permite testar a ingestão de contexto.

    cat > sensor_simulado.py <<EOF
    import requests, time
    url = 'http://localhost:1026/v2/entities'
    entity = {
      'id': 'Sensor:001',
      'type': 'TemperatureSensor',
      'temperature': {'value': 27.5, 'type': 'Number'},
      'location': {'value': 'Rua Exemplo, 123', 'type': 'Text'}
    }
    headers = {'Content-Type': 'application/json'}
    while True:
        r = requests.post(url, json=entity, headers=headers)
        print(r.status_code, r.text)
        time.sleep(10)
    EOF

    O que você deve ver: Arquivo sensor_simulado.py criado.

  6. Instalar dependências Python

    O script usa a biblioteca requests para HTTP.

    pip3 install requests

    O que você deve ver: Pacote requests instalado.

  7. Executar o simulador de sensor

    Rode o script para começar a enviar dados ao Orion.

    python3 sensor_simulado.py

    O que você deve ver: Saída mostrando códigos 201 ou 422 (caso já exista a entidade).

  8. Consultar dados do sensor via NGSI

    Use curl para buscar o contexto do sensor cadastrado.

    curl -X GET 'http://localhost:1026/v2/entities/Sensor:001'

    O que você deve ver: JSON com os dados do sensor (id, type, temperature, location).

  9. Atualizar valor do sensor

    Simule uma mudança de temperatura enviando PATCH via NGSI.

    curl -X PATCH 'http://localhost:1026/v2/entities/Sensor:001/attrs' -H 'Content-Type: application/json' -d '{"temperature": {"value": 30.1, "type": "Number"}}'

    O que você deve ver: Resposta 204 No Content.

  10. Consultar valor atualizado

    Confirme que o valor mudou no contexto.

    curl -X GET 'http://localhost:1026/v2/entities/Sensor:001'

    O que você deve ver: Campo temperature com o novo valor (30.1).

  11. Simular múltiplos sensores (opcional)

    Altere o script para criar múltiplas entidades. Isso mostra a escalabilidade do Orion.

    # Edite sensor_simulado.py para IDs diferentes e rode múltiplas instâncias.

    O que você deve ver: Vários sensores cadastrados no Orion.

  12. Limpar ambiente

    Encerre e remova os contêineres para liberar recursos.

    sudo docker stop fiware-orion mongo && sudo docker rm fiware-orion mongo

    O que você deve ver: Contêineres removidos.

Como saber que funcionou

TesteComandoCritério
Verificar se o Orion está rodandocurl http://localhost:1026/versionRetorno JSON com informações do Orion
Confirmar ingestão de dados do sensorcurl -X GET 'http://localhost:1026/v2/entities/Sensor:001'JSON com os atributos enviados pelo sensor
Atualizar atributo e conferir atualizaçãocurl -X PATCH ... && curl -X GET ...Campo temperature atualizado no retorno
Verificar múltiplos sensores (opcional)curl -X GET 'http://localhost:1026/v2/entities'Lista de entidades com diferentes IDs

Troubleshooting

SintomaCausa provávelCorreção
curl para Orion retorna Connection refusedOrion não está rodando ou porta erradaVerifique 'docker ps' e se a porta 1026 está aberta
Erro 422 ao criar entidadeEntidade já existeUse PATCH para atualizar ou DELETE para remover antes
Script Python retorna erro de conexãoOrion não inicializou ou endereço erradoAguarde Orion subir e use o endereço correto
curl retorna JSON vazioEntidade não foi criada corretamenteRevise o script e repita o POST

Segurança e hardening

  • Nunca exponha o Orion Context Broker diretamente à internet sem autenticação
  • Use redes privadas e firewalls para isolar portas 1026 e 27017
  • Remova contêineres e dados sensíveis após o laboratório
  • Consulte a documentação do FIWARE para práticas de hardening

Checklist final

Verificação editorial
Publicado
09/09/2026
Última revisão
09/09/2026
Versão do conteúdo
1.0
Referências
0 oficiais
Revisão técnica
redação e revisão por IA, URLs conferidas na publicação
Status
Atual
Encontrou um erro? Escreva para comercial@upnetix.com.br com o endereço da página. A revisão semestral por IA nunca altera comandos ou configurações sem passar pela fila de revisão.