Oficina Fiware no IV Encontro de Municípios com Desenvolvimento Sustentável

A equipe do Fiwarelabsp está ministrando nesta semana 24 a 27 de Abril uma oficina sobre o Fiware em Brasília com patrocínio da União Europeia.

O evento é direcionado aos alunos da UNB para a construção de soluções inteligentes baseadas na plataforma Fiware.

A oficina está acontecendo na Vila Europeia no IV Encontro de Municípios com Desenvolvimento Sustentável promovido pela FNP (Frente Nacional de Prefeitos).

O curso foi baseado numa visão do Fiware para aplicações em Cidades Inteligentes e um treinamento sobre os principais Generic Enables do Fiware.

http://www.emds.fnp.org.br/

Clique aqui para acessar o tutoria do Orion Context Broker

Clique aqui para acessar os slides sobre Smart Cities e Fiware

20170424_155450 20170424_155457 20170424_155501 20170424_155520 20170424_155657

Como criar sua conta no FIWARE Lab

Para começar a trabalhar com o FIWARE é preciso criar uma conta no FIWARE Lab, acessando https://account.lab.fiware.org/sign_up/ e preenchendo os dados solicitados.

FiwareAccount01

Brevemente será enviado um e-mail de boas vindas confirmando sua inscrição.

Para efetivamente colocar em prática seu projeto no FIWARE é necessário solicitar o upgrade para uma “Community Account”. Isto pode ser feito na página de configurações de sua conta (já logado, em https://account.lab.fiware.org/settings/), ou em https://account.lab.fiware.org/. Clique em Request Community Account Upgrade.

FiwareAccount02

No formulário que se abre, preencha os campos obrigatórios como se segue:

  • User Full Name: nome completo do usuário;
  • Are you already registered in FIWARE Lab?: como a conta foi criada no passo inicial, selecione “Yes”;
  • Company: nome da empresa ou instituição de ensino;
  • Number of developers: número de desenvolvedores envolvido no projeto;
  • Startup/Project name: indique o nome do projeto;
  • Accelerator Programme name: preencha com “fiware-based application”;
  • Startup/Project Description: este é um dos pontos mais importantes, coloque um breve resumo do projeto, por exemplo:
    • “Startup desenvolvendo uma plataforma inovadora para comércio eletrônico necessita implementar e testar sua prova de conceito”;
    • É possível encontrar inspiração nos projetos já existentes no FIWARE Lab, listados em https://developer.fiware.org;
  • Preferred FIWARE Lab Node: este campo não é obrigatório, mas é recomendável selecionar “São Paulo”;
  • Number of VMs: indique a quantidade de máquinas virtuais (VMs) necessária;
  • total # vCPUs: indique a quantidade total de CPUs virtuais (quantidade de CPUs por VM X quantidade de VMs);
  • total RAM: indique a quantidade total de memória RAM (quantidade de RAM por VM X a quantidade de VMs);
  • total harddisk: indique o total de espaço em disco (espaço em disco por VM X a quantidade de VMs).

Clique em “Submit” e aguarde o retorno à sua solicitação, mas o formulário é processado por humanos, então pode demorar alguns poucos dias.

Fiware no Ocean Samsung USP

Aconteceu no dia 27/7/2016

O Prof. Fábio Henrique Cabrini, pesquisador na área de plataformas abertas para Cidades Inteligentes e membro do Grupo de Pesquisa PAD da Escola Politécnica da USP, apresentou  a Plataforma Fiware na Semana UX, evento patrocinado pela Samsung no espaço Ocean na USP.

Palestra: IoT: Introdução, Tendências e Estudo de Caso “Fiware”

20160727_140958

Beyond 2020 Towards Open Data

Beyond 2020 Towards Open Data – 27, 28 e 29 Julho – Olinda – Pernambuco

O Professor Sergio Takeo Kofuji participa do  Painel: “A importância de dados Abertos para as Cidades”  

Moderador Kiev Gama – Professor do Centro de Informatica da UFPE
Sérgio Cavalcanti – Superintendente CESAR-Centro de Estudos e Sistemas Avançados do Recife
Sérgio Takeo Kofuji – Professor da escola Politécnica da USP São Paulo
Eugênio Antunes – Superintendente da EMPREL – Empresa Municipal de Tecnologia.
Nazareno Andrade – Professor da UFCG – Campina Grande

Site do evento: http://www.beyond-2020.com/

evento1

Apresentação do protocolo MQTT como alternativa para comunicação IoT

Objetivos

  • Expor as vantagens da utilização do protocolo MQTT para comunicação de dispositivos IoT.
  • Apresentar a topologia publish/subscribe.

Introdução

O MQTT é um protocolo de aplicação leve, baseado na topologia publish/subscribe para envio de mensagens. Muito aplicado em cenários de comunicação remota entre dispositivos onde a quantidade de dados comunicados é reduzida e a largura de banda para comunicação é limitada. Diversas linguagens de programação proporcionam suporte às bibliotecas MQTT, incluindo linguagens para dispositivos embarcados com ou sem sistema operacional (baremetal).

Devido sua versatilidade e compatibilidade, o protocolo MQTT tonra-se uma interessante escolha para comunicação de dispositivos IoT.

O principio de funcionamento do protocolo parte da utilização de um Servidor MQTT, também conhecido como Broker MQTT. Tal Servidor implementa estruturas de armazenamento de dados, referenciadas como tópicos. Cada tópico refere-se a uma estrutura de publicação (publisher) de dados, mas também possibilita a leitura (subscriber) dos dados.

Topologia Publish e Subscriber

Para exemplificar melhor a topologia Publish e Subscribe suponha o seguinte cenário: Dois clientes desejam publicar dados no broker MQTT, onde o cliente C1 publica dados de temperatura e C2 publica dados de Umidade. Para isso os clientes C1 e C2 necessitam efetuar publicações em tópicos MQTT, que devem ser previamente definidos. Em geral, cada tópico do mesmo contexto (mesmo usuário) permite a publicação de dados de um único tipo. Desta forma, cada cliente deverá criar um tópico distinto. Na topologia abaixo, foram criados os tópicos /temperatura e /umidade.

Com os dados publicados, um terceiro cliente deseja obter os dados de temperatura e umidade, para exibição em uma ferramenta gráfica. Para isso, o terceiro cliente necessita apenas efetuar a inscrição nos tópicos dos dois outros cliente, e então já estará recebendo as notificações de publicação.

topologia_pubsub

A partir do Broker MQTT, bibliotecas MQTT client podem ser utilizadas para obter os serviços de publicação e leitura dos dados do Broker. No geral a estrutura das bibliotecas contém os seguintes requisitos para conexão, publicação e inscrição:

  • Configuração de Servidor MQTT
  • Configuração de credenciais (Usuário, senha, e ID do dispositivo)
  • Funções de conexão
  • Implementação da função de callback
  • Funções de publicação e inscrição

No geral as funções efetuam as configurações e conexões básicas para a comunicação MQTT. No entanto, a função de callback merece maior atenção.

Ao efetuar a inscrição em um tópico MQTT, o sistema cria um ‘gerenciador de notificações’ que, em sistemas operacionais, é uma thread que gerencia um socket para recebimento das mensagens de atualização no tópico inscrito. Portanto, ao detectar o recebimento alguma atualização, o sistema em thread efetua a chamada da função callback (também em thread), possibilitando o tratamento das informações provenientes da mensagem.

Em geral a estrutura da função callback é padronizada, e tem o seguinte cabeçalho (Atenção: Podem haver variações de acordo com a biblioteca utilizada)

callback(byte * message, char * topic, int length)

Onde:

message – é o conteúdo da mensagem atualizada no broker MQTT.

topic – é o tópico referente a mensagem recebida.

length – é o tamanho da mensagem recebida.

É importante lembrar que todas as mensagens serão recebidas pela função callback, independente do número de tópicos inscritos. Para diferenciar os dados basta utilizar a variável que referencia o nome do tópico da mensagem. Portanto, com tais componentes é possível manipular os dados recebidos pelas inscrições.

Referências de bibliotecas client

Python – https://pypi.python.org/pypi/paho-mqtt

Arduino – http://pubsubclient.knolleary.net/

Java – https://eclipse.org/paho/clients/java/

C++ – https://eclipse.org/paho/clients/cpp/

http://mqtt.org/

Demonstração do Fiware Wirecloud + Orion Context Broker

O Fiware é uma comunidade independente e aberta que tem seus membros comprometidos para realizar a missão que é: “Construir um ecossistema aberto e sustentável, público, livre de royalties e padronizado, que permitirá o fácil desenvolvimento de aplicações inteligentes em múltiplas áreas“. Este ecossistema é baseado no conceito de Future Internet.

topology

O grupo de pesquisa PAD está trabalhando com a integração dos módulos que compõem a plataforma Fiware denominados GE (Generic Enablers), este exemplo de aplicação integra o o GE Orion Context Broker e o GE Wirecloud. Estes GEs trocam informações por webservice através de API REST.

O Orion Context Broker está conectado a diversos IoT Devices, denominados Entidades, que monitoram parâmetros ambientais, como: Temperatura, Luminosidade e Ruído Acústico.

Neste exemplo foram conectados os nós Intel Edison, Galileo e Arduino que enviam dados para o Orion Context Broker localizado na nuvem do Fiware através de mensagens REST. Esta estrutura está em operação na nuvem federada denominada Fiwarelab.

O WireCloud é a interface de programação baseada no conceito de interligação de blocos através de linhas de conexão, que permite a rápida implementação de serviços utilizando APIs.


Observação: A visualização até o momento está funcionando corretamente no navegadore Chrome desktop.

A interface de programação é semelhante ao Node-RED que é amplamente utilizado para a construção rápida de aplicações.


mashup

O Mashup tem uma função importante do Framework Fiware, ele disponibiliza um conjunto de API gratuitas que podem ser facilmente conectadas através do Wirecloud.


wirecloud_mashup

Os dispositivos Intel Edison estão enviando dados diretamente para o Orion através de mensagens REST, e os dispositivos Intel Galileo e os Arduino estão enviando os dados através do Protocolo de comunicação MQTT (Message Queue Telemetry Transport) à um Gateway, em seguida os dados são enviados para o Orion através de mensagens REST JSON geradas pelo Node-RED.