Skip to content
 
 

Latest commit

 

History

386 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FIWARE Logo

Projeto acadêmico para Challenges e Checkpoints da FIAP

Docker FIWARE MQTT MongoDB Python

🎥 Recursos de Setup

Setup Completo: Azure VM + FIWARE

Criando VM na Azure e Instalando FIWARE - Tutorial passo a passo que ensina:

  • Como criar uma máquina virtual na Microsoft Azure
  • Como instalar e configurar o FIWARE dentro da VM
  • Configurações de rede e portas necessárias

Sobre o Projeto

Este repositório foi criado para colocar em prática o uso do FIWARE, conforme apresentado pelo Fábio Henrique Cabrini, pesquisador oficial do projeto FIWARE. Utilizamos o FIWARE Descomplicado, uma modificação desenvolvida pelo pesquisador para facilitar a implementação e experimentação com a plataforma em ambiente acadêmico.

O que é FIWARE?

O FIWARE é uma plataforma de código aberto criada em 2011 para desenvolvimento de soluções IoT e cidades inteligentes. Oferece Generic Enablers (GEs) padronizados que facilitam a interoperabilidade entre sistemas através do protocolo NGSI, permitindo conectar dispositivos, gerenciar dados contextuais e criar aplicações inteligentes de forma escalável.

Links úteis: Site Oficial | Tour Guide

Grupo Stratfy - FIAP

Membros:

  • Anthony Sforzin
  • Luigi Cabrini
  • Bruno K
  • Rogério Arroyo
  • Thayná Simões

Stack Tecnológica

FIWARE Core

# Generic Enablers Principais
Orion Context Broker 3.10    # Gerenciamento de dados contextuais
STH-Comet                    # Armazenamento histórico de dados
IoT Agent MQTT 4.0          # Gateway para dispositivos IoT

# Infraestrutura de Apoio
MongoDB 4.4                 # Base de dados NoSQL
Eclipse Mosquitto 2.0       # Broker MQTT
Docker & Docker Compose     # Containerização e orquestração

Desenvolvimento & Visualização

# Dashboard & Visualização
Python 3.8+                 # Linguagem base
Dash 2.14+                  # Framework web para dashboards
Plotly 5.15+                # Gráficos interativos
PyTZ 2023.3+               # Manipulação de timezone

# Hardware IoT
ESP32 DEVKIT V1            # Microcontrolador principal
Arduino IDE                # Ambiente de desenvolvimento
MQTT Protocol              # Comunicação IoT

Instalação Rápida

Pré-requisitos

Requisitos de Sistema

  • CPU: 1 vCPU mínimo
  • RAM: 1GB mínimo
  • Armazenamento: 20GB disponível
  • OS: Ubuntu Server 24.04 LTS (recomendado)

Software Necessário

# Atualizar sistema
sudo apt update

# Instalar Docker
sudo apt install docker.io

# Instalar Docker Compose
sudo apt install docker-compose

# Instalar Python 3 e pip (se necessário)
sudo apt install python3 python3-pip

# Verificar instalação
docker --version
docker-compose --version
python3 --version
pip3 --version

Setup do Projeto

# 1. Clonar repositório do grupo Stratfy
git clone https://github.com/Stratfy/FIWARE
cd FIWARE

# 2. Verificar se Docker está rodando
sudo systemctl status docker

# 3. Executar FIWARE (navegar para pasta infrastructure)
cd infrastructure
sudo docker-compose up -d

# 4. Verificar se containers estão rodando
sudo docker ps

# 5. Para parar os serviços
sudo docker-compose down

Observações importantes:

  • Azure NSG: Configure regras inbound para portas 22, 1026, 1883, 4041, 8666, 80
  • MongoDB (27017): Mantido interno por segurança - não expor publicamente
  • Volumes Docker: Dados persistem em /var/lib/docker/volumes/infrastructure_mongo-historical-data/_data

Arquitetura do Sistema

Configuração de Portas

Porta Serviço Descrição Status
1026 Orion Context Broker API NGSI-v2 Público
1883 Eclipse Mosquitto Broker MQTT Público
4041 IoT Agent MQTT Gateway para dispositivos Público
8666 STH-Comet Dados históricos Público
27017 MongoDB Base de dados Interno

Componentes Principais

Orion Context Broker

Gerencia dados contextuais em tempo real, oferecendo API RESTful para captura, consulta e compartilhamento de informações de entidades IoT com suporte a geolocalização e notificações.

Documentação →

STH-Comet

Armazena e consulta dados históricos em larga escala, trabalhando junto ao Orion para análises temporais e dashboards através de API para séries temporais.

Documentação → | Queries API v2 →

IoT Agent MQTT

Facilita integração de dispositivos MQTT com o Context Broker, gerenciando transformação de mensagens e oferecendo descoberta automática de dispositivos.

Documentação →

Arquitetura em Camadas

A arquitetura é dividida em três camadas principais:

Aplicação - Interface front-end, dashboards, mobile apps e algoritmos de IA/ML
Back-end - Orion Context Broker, STH-Comet, IoT Agents e bases de dados
IoT - Dispositivos conectados via MQTT ou HTTP/NGSI-v2

Recursos e Materiais

Coleção Postman

Collection completa para teste e configuração dos serviços FIWARE. Inclui exemplos para Orion Context Broker, IoT Agent MQTT e STH-Comet baseados na PoC Smart Lamp.

Download da Collection →

Exemplo Prático: Smart Lamp

Implementação de referência usando ESP32 DEVKIT V1 com sensor LDR e controle via MQTT.

Características Principais:

  • Monitoramento de luminosidade ambiente
  • Controle remoto de LED
  • Comunicação bi-direcional via MQTT
  • Sincronização de tempo via NTP

Guia de implementação → | Código ESP32 → | Dashboard →

Recursos Avançados

Segurança e Produção

Observações de Segurança

Esta ferramenta é destinada a pesquisa e PoCs. Para produção, implemente os componentes de segurança FIWARE:

  • Keyrock - Identity Management
  • Wilma PEP Proxy - Policy Enforcement Point
  • AuthZForce - Authorization PDP/PAP
  • Protocolos seguros - HTTPS, MQTTS

Escalabilidade

Para alta disponibilidade, considere orquestradores como Docker Swarm ou Kubernetes.


Dashboard Python

# Instalar dependências do dashboard
cd dashboard
pip3 install -r requirements.txt

# Executar dashboard de luminosidade
python3 api-sth.py

Desenvolvido para fins acadêmicos na FIAP

Explorando as possibilidades do FIWARE para IoT

Material adaptado da FIWARE Foundation

Baseado no trabalho do pesquisador Fábio Henrique Cabrini - FIWARE Descomplicado

© Grupo Stratfy - FIAP 2025

About

Ferramenta para instanciar os componentes básicos do FIWARE (Orion Context Broker, STH-Comet e IoT Agent MQTT). Baseada na proposta do pesquisador Fábio Henrique Cabrini.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages