Download - Protocolos de Sistemas Embarcados
![Page 1: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/1.jpg)
Protocolos de Comunicação - Sistemas EmbarcadosProf. Romulo Fagundes Cantanhede
![Page 2: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/2.jpg)
Tópicos
Guardião Cloud
Protocolos de Comunicação:
HTTP
MQTT
CoAP
![Page 3: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/3.jpg)
Guardião Cloud System
![Page 4: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/4.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/5.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/6.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/7.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/8.jpg)
Dashboard
![Page 9: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/9.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/10.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/11.jpg)
Protocolos de Comunicação
![Page 12: Protocolos de Sistemas Embarcados](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/12.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/13.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/14.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/15.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/16.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/17.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/18.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/19.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/20.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/21.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/22.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/23.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/24.jpg)
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](https://reader034.vdocumento.com/reader034/viewer/2022042509/58f2304a1a28ab606b8b4587/html5/thumbnails/25.jpg)
Dúvidas?