Geração de eventos para atuação do disposi1vo IoT via Node-Red

Documentos relacionados
Geração de eventos para atuação do dispositivo IoT via Node-Red utilizando cloud USP

Integração IBM Bluemix, Freeboard e Node-Red Utilização do Freeboard para exibição gráfica dos dados e aplicação do Node-Red para manipulação dos

Protocolo HTTP. Professor Leonardo Larback

Manual SIGOSMS Aplicação de Gerenciamento e Envio SMS

Primeiros passos para desenvolvimento IoT na plataforma Eclipse

Web Services REST. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

DESENVOLVIMENTO DE SISTEMAS WEB. Lista de Exercícios AV2-01. Luiz Leão

Programação para Web

REST RESTfulWeb Services JAX-RS

Proposta de uma plataforma de monitoramento e acionamento remoto voltada para sistemas de hardware industriais utilizando LabVIEW

INTRODUÇÃO AO DESENVOLVIMENTO FRONT-END COM HTML, CSS E JAVASCRIPT

Aluno. Bem-vindo(a). Neste manual vamos aprender noções básicas para um bom andamento neste curso de mestrado profissionalizante.

Sérgio Koch Van-Dall

Destacando as Mudanças (con/nuando a Tarefa F) Prof. Fellipe Aleixo

Transferência de Arquivo: Protocolo FTP

PROGRAMA ESPECIAL DE FORMAÇÃO PEDAGÓGICA DE PROFESSORES PARA EDUCAÇÃO PROFISSIONAL MANUAL DO AMBIENTE VIRTUAL DE APRENDIZAGEM (AVA) TUTOR

INTEGRAÇÃO BLING DIRETRIZES E CONFIGURAÇÃO DE INTEGRAÇÃO

Sistema de Informação e Coordenação - SIC

18/04/2006 Micropagamento F2b Web Services Web rev 00

Introdução à Computação

Trabalho 1 - Sistemas Operacionais Embarcados

supor

Endereço: (Mozilla Firefox ou Google Chrome, atualizados em suas últimas versões.)

SMART MARKETING WORDPRESS

Nesta disciplina aprenderemos. HTML CSS JavaScript Jquery PHP

Assina Web S_Line Manual de Uso

Manual de Integração Receituário WebService Versão (2.0)

Foi incluído no PDV o novo atalho Ctrl+W para alterar a quantidade de um item já lançado na venda.

Curso de Inglês ONLINE Leitura e Audição

Plano de Aula - Dreamweaver CS5 - cód Horas/Aula

Boletim Informativo Técnico BIT041 12/2016

Projeto MyHonda. Versão Nossa tecnologia para o seu sucesso

Pré-requisitos: Conhecimentos de informática gerencial e lógica de programação.

Redes de Computadores

Manual de Operação do MGV 5. Manual de Operação do MGV5. Módulo Gerenciador de Vendas. Toledo

PAPO SMS MANUAL DE INTEGRAÇÃO DO DESENVOLVEDOR VERSÃO 1.0.1

MANUAL DE INSTALAÇÃO E PROGRAMAÇÃO CONVERSOR - IP / USB / SERIAL RV1

Tutorial Moodle. Acesso. Página Inicial Preencher perfil. Enviar Mensagem. Recursos. Atividades. Moodle

Sistemas distribuídos. Prof. Emiliano Monteiro

Boletins Informativos

INTRODUÇÃO AO ARDUINO DUE, CANAL DIGITAL, FUNÇÃO DELAY

MANUAL DO USUÁRIO SISTEMA GERENCIADOR DE SENHAS PAINEL ELETRÔNICO SGS 10 SERVIÇOS

1 Novo menu de avisos e relatórios fiscais no Meu Sistema

Como configurar a sua loja online?


Instruções de Acesso: Eventos Científicos. Departamento de TI da FACTHUS (Atualizado: 22/09/2016)

Manual para App Android e Software Windows

Universidade Federal de Ciências da Saúde de Porto Alegre

Sistemas Distribuídos Capítulo 3 - Aula 3

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Manual do Professor AVA - Moodle/Unesp (versão 3.0) LIVRO

EXERCÍCIOS DE REVISÃO DE CONTEÚDO QUESTÕES DISSERTATIVAS

Web I F R N I N S T I T U TO F E D E R A L D E E D U C A Ç Ã O, C I Ê N C I A E T E C N O LO G I A D O R I O G R A N D E D O N R T E.

Manual de configuração do DFeMonitor

FÓRUM. Fórum AMBIENTE VIRTUAL DE APRENDIZAGEM TUTORIAL DO. Autor(es) Natália Regina de Souza Lima, Scarlat Pâmela Silva

INTEGRAÇÃO DA METODOLOGIA DE DESENVOLVIMENTO AJAX COM SERVLETS JAVA

CCT0298 ANALISE DE REDES Aula : Trafego HTTP

Redes de Computadores e Aplicações Camada de aplicação IGOR ALVES

Webservices LEANDRO MENDES FERREIRA

Manual de Uso - Melhor Envio

Sistema de Gestão de Recursos Humanos

ANEXO III INTEGRAÇÃO SISTEMA PPE COM SOLUÇÃO DE FILMAGENS

1.5. Interface inicial (Ambiente de trabalho TDMAx Web

Instalação e utilização do Software Pináculo SMS

1. APLICAÇÃO Entrada na aplicação Recuperação de dados Atualização de dados Alteração de password...

Introdução a Programação Web com PHP

Manual do Professor AVA - Moodle/Unesp (versão 3.0) ESCOLHA

Informática. Outlook Express. Professor Márcio Hunecke.

Gerência de Redes de Computadores Zabbix - Funcionalidades. Prof. Alex Furtunato

Estruturas de Comunicação de Dados Aula 3 Camadas de Aplicação e Transporte

Como criar um arquivo baseou a agenda de telefones em TMS

Guia do usuário Módulo Boleto Fácil

Icon Chamamos este processo de Efetuar Login no Sistema, pois com usuário e senha cadastrados é possível acessar o Automidia Service Management.

UFG - Instituto de Informática

Laboratório - Configuração do Firewall no Windows 7 e no Vista

Aula 11 Introdução ao Java Script

PROCEDIMENTO DE EXPORTAÇÃO A PORTAIS IMOBILIÁRIOS

AJAX (Asynchronous Javascript And XML)

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Índice. Introdução. Pré-requisitos. Requisitos

Gerenciamento de Redes. Alan Santos

Manual de Utilização PrintScout

Como configurar integração com separador e rateio Conforme percentual definido na Contabilidade?

GUIA DE ACESSO AOS PORTAIS ACADÊMICOS

Cadastro do REP - FP18

MANUAL MÓDULO PESSOA FÍSICA

Manual do Usuário. MA300 Dispositivo de Controle de Acesso. Versão 1.0

NOVIDADES/MELHORIAS ERP SOLUTION. Versão

SAA Cesurg. SAA Professor

Ao selecionar o seu curso, aparecerá a página principal contendo as informações e as atividades disponíveis.

1. Acesso Portal do Discente Atualizar Foto e Perfil Meus Dados Pessoais Minhas Notas... 7

Configurar o proxy WebRTC com o CMS sobre a via expressa com domínio duplo

Manual do Professor AVA - Moodle/Unesp (versão 3.0) FÓRUM DE DISCUSSÃO

JOOMLA! 3.6. Extrato de atualizações Guia de Consulta Joomla! 3.6 Página 1

ENG-1450 Microcontroladores e Sistemas Embarcados

Roteador de Banda Larga Guia de Instalação rápida

Manual de Compilação/Execução da Aplicação SmartHome

MANUAL Terminal Gráfico Touch Screen de 9 Polegadas

NITGEN iaccess GUIA RÁPIDO DE USUÁRIO. - Fingertech Imp. e Com. de Produtos Tecnológicos LTDA.

Na seqüência, será aberta uma página de login de acesso ao ambiente de gerenciamento do portal, conforme ilustrado na figura 01, abaixo: Figura 01

Transcrição:

Geração de eventos para atuação do disposi1vo IoT via Node-Red

Obje1vos Assinar o Galileo num canal MQTT (alteração de código no eclipse). paradigma publish-subscribe Criar interface para envio dos dados sobre o Node-Red. Processar os dados recebidos pelo Galileo, e gerar comportamentos condicionais. Construir estrutura para envio de dados ao tópico em que o Galileo foi subscrito. Construir pequena aplicação web para interação do usuário. O usuário poderá variar a intensidade de um LED u1lizando um slider em uma página HTML (funciona no celular também). Alterar o código do eclipse para integração com o projeto de luminosidade.

Serviço Web Uma aplicação auto-con1da, iden1ficada por um URI (Uniform Resource Iden5fier), cujas interfaces e ligações são definidas, descritas e localizadas por artefatos que u1lizam a linguagem XML (Extensible Markup Language) ou JSON (JavaScript Object Nota1on). Deve ser capaz de interagir com outras aplicações através da troca de mensagens XML/JSON u1lizando os protocolos de comunicação padrão atualmente disponíveis na Internet. Faz com que os recursos da aplicação do so`ware estejam disponíveis sobre a rede de uma forma normalizada. REST (Representa1onal State Transfer) ou RESTfull são padrões arquiteturais que permitem definir e implementar serviços web.

Serviço Web

Paradigma publish-subscribe Padrão arquitetural usado para a comunicação assíncrona de vários processos

Funcionamento geral do MQTT Message Queue Telemetry Transport (MQTT) O MQTT é um protocolo leve de aplicação que u1liza o protocolo de transporte TCP como via de comunicação de dados para IoT. O conceito é baseado na publicação de dados a par1r de um publisher, e na leitura dos dados a par1r da inscrição num canal. Clientes MQTT podem funcionar, simultaneamente, como publisher e subscriber. O sistema de monitoramento de respostas é instanciado em mul5thread, portanto os processos de inscrição e publicação são independentes.

Assinando Galileo num canal MQTT (subscriber) Para se efetuar a inscrição é necessário ter um cliente MQTT instanciado, devidamente configurado com o broker MQTT (host) e as informações do usuário. A conexão estabelecida com o broker u1liza o protocolo de transporte TCP, e possui a seguinte estrutura: tcp:// organiza5on_id.messaging.internetoahings.ibmcloud.com:1883 Onde organiza5on_id é proveniente da criação da sua organização IoT no IBM Bluemix. As credenciais do usuário são formadas pelo id da organização, 1po do disposi1vo e id do disposi1vo, com a seguinte estrutura: d:organiza5on_id:device_type:device_id (formato string) d:zis8fm:intel_galileo:984fee018b08 (Exemplo)

Assinando Galileo num canal MQTT (subscriber) Após a criação do cliente é necessário configurar a função callbacks(), que tem o obje1vo de gerenciar todo o sistema de mensagens de resposta, incluindo as mensagens com o conteúdo do tópico inscrito. Ao receber uma atualização no tópico o broker envia uma mensagem para os clientes inscritos, alertando a existência de novos dados no tópico. Desta forma a função callbacks() recebe a no1ficação da atualização. Para tratar os dados recebidos pelo broker é necessário implementar uma função com cabeçalho pré determinado e referencia-la na configuração do callbacks(). Portanto todos os tratamentos das mensagens serão efetuados na função mgsarrvd(). O nome da função pode ser escolhido pelo programador, porém o cabeçalho deve ser man1do.

Assinando Galileo num canal MQTT (subscriber) De maneira geral os brokers implementam o sistema de modo que o subscriber deva assinar o canal com o mesmo nome onde os dados estão sendo publicados. Ou seja, tanto para publicação quanto para assinação u1liza-se o mesmo nome de canal. No entanto o broker do Bluemix funciona com um padrão diferente, onde todos os publishers devem publicar em tópicos com o sub caminho evt e se inscrever em tópicos com sub caminho cmd. Onde: iot-2 - é o prefixo dos tópicos u1lizado pelo Bluemix evt - indica o canal para publicação de eventos cmd indica o canal para u1lização de comandos (subscriber) status nome dado ao evento ocorrido (pode ser escolhido pelo usuário) fmt indica que o próximo parâmetro determina o 1po de dados que será publicado

Assinando Galileo num canal MQTT (subscriber) Após a criação dos devidos canais, e da instância de um cliente, basta efetuar o comando para se inscrever no tópico: Desta forma o cliente, a par1r da função callbacks(), passa a receber todas as mensagens de atualização no canal. Não há necessidade de manter um loop sobre a função de assinação, pois o sistema mul5thread já cuida desse trabalho. Informações sobre a biblioteca MQTT u1lizada no eclipse: hjp://www.eclipse.org/paho/files/mqjdoc/cclient/ _m_q_t_t_client_8h.html#aad27d07782991a4937ebf2f39a021f83

Clonando a aplicação exemplo no Node-Red Para copiar a aplicação basta abrir o Node-Red referente a sua aplicação IoT e colar no clipboard (visto na aula passada) as informações do arquivo webapp.json disponibilizado no Moodle. A estrutura resultante deverá estar parecida com a seguinte: OBS: Não se esqueçam de eliminar os blocos IoT da aplicação exemplo e conectar os blocos da sua aplicação!!!

Interface para resposta via Node-Red Após a configuração do disposi1vo IoT, é necessário configurar a aplicação no Node-Red para que os dados sejam redirecionados para o canal no qual o Galileo foi assinado. Dentro da página da aplicação, no Node-Red, selecione o bloco IBMIOT na aba output. Tal componente representa o canal de saída de dados para o disposi1vo IoT conectado, desta forma, todos os dados inseridos no bloco serão enviados de volta para o Galileo. Uma das configurações mais importantes do componente de saída é o padrão dos dados de saída. Além de representar o formato (JSON) é necessário escrever a estrutura genérica de saída, representando os elementos está1cos da mesma.

Tratamento dos dados para resposta Para efetuar a resposta para o Galileo é necessário que existam dados, está1cos ou dinâmicos. É interessante a possibilidade de gerar dados a par1r de condicionais feitas sobre os dados de entrada, ou seja, caso um valor ultrapasse um limite a aplicação atribui o valor 1 para uma flag, que será enviada de volta para o Galileo, possibilitando que os dados sejam posteriormente interpretados pelo disposi1vo, gerando atuações desejadas. Para exemplificar foi construído um bloco de função que analisa os dados de entrada, e gera uma condição booleana de acordo com o resultado. Para isso analisemos o bloco chamado condi5on na aplicação exemplo.

Definição de estrutura para dados de resposta Após obtermos dados a par1r dos condicionais podemos envia-los de volta para o disposi1vo IoT. No entanto, é necessário construir a estrutura de saída a par1r dos dados ob1dos. Para isso analisemos o bloco build output : Relembrando que o campo Data do componente de saída foi configurado com: {"payload":{}}. De maneira geral a estrutura acima representa a existência de um objeto com a propriedade payload, que tem como atributo uma outra estrutura JSON genérica (representado pelas chaves vazias). Dentro de tal estrutura genérica é possível incluir quantos campos forem necessários, sem que haja necessidade de alterar o cabeçalho de dados.

Executando a aplicação exemplo Como resultado da sequencia desenvolvida será possível visualizar os dados enviados pela aplicação a par1r do terminal do Galileo. De maneira geral os dados recebidos serão 0 e 1 repe1dos alternadamente. OBS: Os dados configurados anteriormente remetem à propriedade autocontrol. A propriedade ledstate será avaliada posteriormente.

Construindo uma aplicação web para controle do disposi1vo A aplicação web que será construída tem como intuito obter dados a par1r da variação de um slider. Os dados ob1dos serão enviados para o Galileo, para controlar a luminosidade de um LED. Para construir a aplicação Web u1lizaremos conceitos de HTML, JavaScript e jquery. De maneira geral a construção da aplicação é feita pelos seguintes blocos do Node-Red: A estrutura é dada por: Requisição GET HTTP que obtém as referências para a página Web. Construção de um template com interface gráfica(html) e manipulação de dados (JavaScript e jquery) Transferência dos dados introduzidos na interface para o Node-Red

Construindo aplicação web para controle do disposi1vo Observando-se o bloco hvp in pode-se determinar qual o complemento da URL que disponibilizara a aplicação. Portanto a URL de acesso para a aplicação web será dada pelo complemento /webapp (configurado pelo desenvolvedor). Nome_app.mybluemix.net/webapp Para alterar o código referente a aquisição dos dados via HTML, ou alterar o layout da página web, basta editar o código do bloco Page Template Interface web da aplicação exemplo

Construindo aplicação web para controle remoto De maneira geral o conteúdo do bloco Page Template define: O método para obter o valor atual do slider e efetuar uma requisição para atualizar o valor da variável no Node-Red Construção de um formulário que define a existência de um botão do 1po Submit e um slider. E define qual o método será chamado ao clicar no botão, a par1r do campo ac5on no formulário. IMPORTANTE!! Para que a aplicação exemplo funcione em sua organização, é necessário trocar o nome da aplicação nas URLs inseridas no bloco Page Template No caso exemplo o nome da aplicação é pad-iot-cloud, mude-a para o nome de sua aplicação

Resultados Ao executar a aplicação final será possível variar o valor do slider e observar o novo valor sendo impresso no terminal do Galileo. Além disso, haverá o acionamento PWM da porta digital 11 no galileo, de acordo com o valor introduzido na aplicação web. Será necessário conectar um LED na porta digital 11para ver o resultado prá1co. (O código para atuação do LED já está implementado no código exemplo para o eclipse). Portanto propõe-se que se u1lize o código exemplo para implementar melhorias em sua aplicação do sensor de luminosidade.

Referências hjp://mitsuruog.github.io/what-mqj/ (websocket MQTT) hjp://tech.scargill.net/a-node-red-websockets-web-page/ hjps://www.ibm.com/developerworks/cloud/library/cl-rtchat-app/ hjp://l0l.org.uk/2014/01/simple-node-red-web-page/ HTML hjp://www.w3schools.com/ Node-Red hjp://nodered.org/docs/ Helder Rodrigues helder.rodrigues@pad.lsi.usp.br