Protocolos de Sistemas Embarcados

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

Transcript of Protocolos de Sistemas Embarcados

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?