Top Banner
Protocolos de Comunicação - Sistemas Embarcados Prof. Romulo Fagundes Cantanhede
25

Protocolos de Sistemas Embarcados

Apr 15, 2017

Download

Technology

Romulo Fagundes
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Protocolos de Sistemas Embarcados

Protocolos de Comunicação - Sistemas EmbarcadosProf. Romulo Fagundes Cantanhede

Page 2: Protocolos de Sistemas Embarcados

Tópicos

Guardião Cloud

Protocolos de Comunicação:

HTTP

MQTT

CoAP

Page 3: Protocolos de Sistemas Embarcados

Guardião Cloud System

Page 4: Protocolos de Sistemas Embarcados

O que é?

Plataforma de IoT, que tem permite o controle e recebimento de informações de dispositivos diversos.

Existe 3 tipos de dispositivos:

Coleta de dados.

Controlar dispositivos.

Disparar gatilhos.

Page 5: Protocolos de Sistemas Embarcados

Dispositivo de Coleta

Permite o recebimento de informações, em formato variado, sem restrição de campos.

Podemos, por exemplo:

Receber dados GPS.

Receber dados de sensores de temp./hum.

Receber dados de computadores e celulares.

Page 6: Protocolos de Sistemas Embarcados

Controlar Dispositivos

Que tal ligar uma lâmpada remotamente? É possível dizer em que estado, determinado dispositivo deva estar.

Podemos por exemplo:

Ligar/desligar um relé a distância (sirene/lâmpada).

Posicionar um servo motor.

Page 7: Protocolos de Sistemas Embarcados

Disparar um Gatilho

Que tal detectar e realizar alguma ação em caso de incêndio? Ou detectar a presença de uma pessoa?

Podemos por exemplo:

Disparar um alerta em caso de presença de intruso.

Disparar um alerta em caso de incêndio.

Page 8: Protocolos de Sistemas Embarcados

Dashboard

Page 9: Protocolos de Sistemas Embarcados

Informações do Projeto

Api Key - Número único vinculado ao projeto.

Prefixo - Será utilizado na sequência para criação de cada novo dispositivo.

Page 10: Protocolos de Sistemas Embarcados

O que precisa?

Se cadastrar! Com diversos planos, dentre eles Gratuito.

API de Serviço - Use os dados como quiser.

Boa documentação: http://docs.guardiaocloud.com.br

Diversos exemplo e propostas.

Page 11: Protocolos de Sistemas Embarcados

Protocolos de Comunicação

Page 12: Protocolos de Sistemas Embarcados

Protocolo - HTTPRFC 2616

Protocolo simples de ser implementado e utilizado.

Em IoT, para leitura de informações, se utiliza do método GET e POST.

Porém a mensagem HTTP, inclui várias informações no cabeçalho.

Em condições e baixo consumo de banda, é desaconselhado.

Page 13: Protocolos de Sistemas Embarcados

Exemplo HTTP - Coleta

$ curl -X GET 'http://127.0.0.1:3000/collect/WBS0007/?apiKey=69f827f9-512d-4b4e-8867-d761c4fb9ce3&temperatura=10&humidade=20&luminosidade=5'

Dado Valor

temperatura 10

humidade 20

luminosidade 5

Page 14: Protocolos de Sistemas Embarcados

Exemplo HTTP - Atuador

$ curl -X GET 'http://127.0.0.1:3000/actuator/WBS0002/?apiKey=69f827f9-512d-4b4e-8867-d761c4fb9ce3'

{"state":43} {"state":1}

Page 15: Protocolos de Sistemas Embarcados

Exemplo HTTP - Gatilho

$ curl -X GET ‘http://127.0.0.1:3000/trigger/WBS0008/on/?apiKey=69f827f9-512d-4b4e-8867-d761c4fb9ce3'

{“status”:true,”dateUpdated":"..."}on

{“status”:false,”dateUpdated":"..."}off

Page 16: Protocolos de Sistemas Embarcados

Protocolo - MQTTSem RFC - Muito simples para tanto…(site).

Utiliza TCP, porta 1883.

Baseado em um modelo de Publisher/Subscribe. Precisa de um broker e de simples conexão.

Recomendado para IoT e M2M.

MQTT é mais simples que o HTTP, em relação a tamanho de mensagem - economia de banda.

Page 17: Protocolos de Sistemas Embarcados

Protocolo MQTT - App

Para utilizar o MQTT é possível utilizar o app: Mosquitto:

Possui lib para Python: paho-mqtt

App nativo, instalado através do pacote: mosquitto.

mosquitto_pub - publicar mensagem.

mosquitto_sub - inscrever mensagem.

Page 18: Protocolos de Sistemas Embarcados

Protocolo MQTT - Pubmosquitto_pub -h 127.0.0.1 -u “[email protected]” -P “69f827f9-512d-4b4e-8867-d761c4fb9ce3” -t “WBS/collect/WBS0007” -m ‘{“data”:{“temperatura”:15,”humidade”:25,”luminosidade":10}}'

O usuário (-u) é o login do projeto.

A senha (-P) é a ApiKey do projeto.

A lista (-t) é aonde os dados serão publicados.

E os dados (-m) é os dados em formato JSON.

Page 19: Protocolos de Sistemas Embarcados

Protocolo MQTT - Sub

mosquitto_sub -h 127.0.0.1 -u "[email protected]" -P "69f827f9-512d-4b4e-8867-d761c4fb9ce3" -t "WBS/collect/WBS0007" -v

O usuário (-u) é o login do projeto.

A senha (-P) é a ApiKey do projeto.

A lista (-t) é aonde os dados serão acompanhados.

Para exibir os dados no console, utilize o -v.

Page 20: Protocolos de Sistemas Embarcados

Protocolo MQTT

As listas disponíveis pelo Guardião, são:

/collect/ - Alterar e coletar dados.

/trigger/ - Alterar e acompanhar gatilho.

/actuator/ - Alterar e acompanhar dados de um atuador.

Page 21: Protocolos de Sistemas Embarcados

Protocolo - CoAP

RFC 7252.

Utiliza UDP porta 5683.

Baixo consumo de energia e banda.

Recomendado para IoT e M2M.

Imagine o HTTP/REST, porém utilizando UDP.

Page 22: Protocolos de Sistemas Embarcados

Protocolo - CoAP - App

É possível instalar o coap-cli, utilizando Node.JS.

O Guardião implementa apenas 2 métodos do CoAP:

GET - Acompanhar dados publicados.

PUT - Enviar dados para coleta/alteração.

Page 23: Protocolos de Sistemas Embarcados

Exemplo CoAP - Enviocoap put coap://127.0.0.1/gcs/WBS/collect/WBS0007 -p ‘{“data”:{"temperatura":10,"umidade":30,"luminosidade":15},"auth":{"apiKey":"69f827f9-512d-4b4e-8867-d761c4fb9ce3","email":"[email protected]"}}'

Page 24: Protocolos de Sistemas Embarcados

Exemplo CoAP - Acompanhar

coap get coap://127.0.0.1/gcs/WBS/collect/WBS0007 -p ‘{"auth":{"apiKey":"69f827f9-512d-4b4e-8867-d761c4fb9ce3","email":"[email protected]"}}' -o

Realiza o acompanhamento (-o) para os dados que estão sendo enviados.

Sendo enviar os dados(-p) apenas realizar a autenticação.

Page 25: Protocolos de Sistemas Embarcados

Dúvidas?