MQTT: mudanças entre as edições
Linha 55: | Linha 55: | ||
[[Arquivo:MQTT_SensorAtuador.png]] | [[Arquivo:MQTT_SensorAtuador.png]] | ||
==[https://mosquitto.org/ Mosquitto]== | |||
Mosquitto é um Brocker MQTT ''open source'', que pode ser utilizado desde computadores de placa única até servidores. | |||
O Mosquitto implementa o modelo '''publilsher/subscriber''' e pode ser utilizado em aplicações de '''Internet das Coisas''', as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis. | |||
O Mosquitto oferece comandos de linha como '''mosquitto_pub''' e '''mosquitto_sub''' para publicar e subscrever no '''brocker''', respectivamente, além de bibliotecas em C para implementação de cliente MQTT. | |||
;Instalação no Ubuntu: | |||
sudo apt-get update | |||
sudo apt-get mosquitto | |||
sudo apt-get install mosquitto-clients | |||
;Teste do Mosquitto: | |||
Use um terminal para '''subscrever''' um '''tópico''': | |||
mosquitto_sub -t "teste" | |||
Use outro terminal para '''publicar''' uma '''mensagem''' em um '''tópico''': | |||
mosquitto_pub -m "Mensagem" -t "teste" | |||
Usuários e senhas podem ser configurados para uso no Mosquito, ver <ref>[https://medium.com/tht-things-hackers-team/instalar-mqtt-broker-no-linux-debian-ubuntu-f8861da70ef6 Fernando Veiga. Instalar MQTT-Broker no Linux, Things Hackers Team, 2018.]</ref>. | |||
==Referências== | ==Referências== |
Edição das 14h25min de 3 de abril de 2020
MQTT - Message Queue Telemetry Transport
MQTT (Message Queue Telemetry Transport) é um protocolo de mensagens para sensores e pequenos dispositivos móveis, baseado no modelo Publicador/Subscritor, ideal para aplicações de Internet das Coisas, em particular para a comunicação máquina a máquina (M2M - Machine to Machine). O MQTT trabalha no topo da pilha de protocolos TCP/IP.
Referências:
- Livro (LAMPKIN etal, 2012) [1].
- Site: MQTT Essentials [2].
As aplicações de Internet das Coisas podem envolver abordagens avançadas de telemetria, de forma a poder conectar diferentes dispositivos inteligentes em atividades de sensoreamento, monitoramento e controle, além da conexão dos mesmos a Internet ou a sistemas de controle central [1].
MQTT - Conceitos básicos
Conceitos básicos [1]:
- Publicador/Subscritor: O protocolo MQTT é baseado no princípio de publicar mensagens (publisher) e subscrever tópicos (subscriber) para receber mensagens, conhecido como modelo publisher/subscriber.
- Um cliente pode subscrever tópicos e receber mensagens de atualizações quando algo for publicado sobre este tópico. Alternativamente, um cliente pode publicar mensagens relativas a um dado tópico e deixá-la disponível para os assinantes.
- Tópicos e subscrições: As mensagens MQTT são publicadas em tópicos (topic), que são áreas de interesse.
- Os clientes, por sua vez, assinam para receber mensagens de uma dada subscrição. As subscrições podem ser explicitas, ou organizadas hierarquicamente, com o cliente usando wildcards (# ou +) para receber mensagens de uma variedade de tópicos.
- Exemplos:
- topic: /casa/terreo/temp
- topic: /casa/terreo/humid
- topic: /casa/superior/temp
- topic: /casa/superior/humid
- wildcard multilevel: /casa/terreo/# -> sensores do térreo
- wildcard sigle level: /casa/+ -> casa com térreo e superior, mas não com sensores.
- Qualidade de Serviço: O MQTT define três níveis de Qualidade de Serviço (QoS):
- (0) best effort, envia a mensagem uma vez;
- (1) envia a mensagem várias vezes;
- (2) assegura o recebimento da mensagem.
- Retem as mensagens: Mantém as mensagens enviadas no brocker mesmo depois de enviada a todos os subscritores.
- Conexões duráveis e sessões limpas: Quando um cliente se conecta a um servidor e seta o clean session flag = true. Desta forma, quando desconectar, todas as subscrições serão removidas. Se o clean session flag = false a conexão é tratada como durável e as subscrições do cliente continuam mesmo após uma desconexão.
- Wills: Quando um cliente se conecta a um servidor e pode informar que possui uma will, isto é, mensagens importantes que deveriam ser publicadas, mesmo em caso de desconexão involuntária. Isto é importante para sensores de alerta, que informam o sistema caso percam o contato com a rede.
O modelo publisher/subscriber oferece uma alternativa ao modelo cliente/servidor. No modelo cliente/servidor o cliente se comunica diretamente o servidor num serviço fim a fim. No modelo publisher/subscriber o publicador e o subscritor não se comunicam diretamente. A comunicação é realizada por um terceiro componente, o brocker [2].
MQTT - sensores e atuadores
O MQTT tem aplicabilidade especial para dispositivos para sensoriamento remoto [1].
- Sensores
- Sensores medem parâmetros do ambiente ou de um sistema e reportam a informação para humanos ou outros dispositivos ou sistemas. Com a ajuda do a informação obtida pelos sensores pode ser realizada via rede.
- Múltiplos sensores podem ser posicionados para reportar vários parâmetros, dando uma visão completa das condições de operação de um dispositivo ou sistema.
- Atuadores
- Atuadores são dispositivos que atuam sobre variáveis de um sistema visando alterar seu comportamento.
O controle de um sistema normalmente envolve sensores monitorando parâmetros do sistema e atuadores visando corrigir sua operação. A ação de controle é realizada a partir de um algoritmo de controle, que pode ser executado por controlador central, ou diretamente pelos sensores/atuadores, que neste caso devem ter processamento no próprio sensor/atuador.
O modelo publisher/subscriber do MQTT pode ser bastante útil para interligar sensores, atuadores e sistemas de controle em diferentes tipos de aplicações, em particular àquelas que envolvem as chamadas tecnologias de Internet das Coisas.
Mosquitto
Mosquitto é um Brocker MQTT open source, que pode ser utilizado desde computadores de placa única até servidores.
O Mosquitto implementa o modelo publilsher/subscriber e pode ser utilizado em aplicações de Internet das Coisas, as quais fazem uso de sensores de baixa potência, atuadores, dispositivos móveis, microcontroladores e outros dispositivos programáveis.
O Mosquitto oferece comandos de linha como mosquitto_pub e mosquitto_sub para publicar e subscrever no brocker, respectivamente, além de bibliotecas em C para implementação de cliente MQTT.
- Instalação no Ubuntu
sudo apt-get update sudo apt-get mosquitto sudo apt-get install mosquitto-clients
- Teste do Mosquitto
Use um terminal para subscrever um tópico:
mosquitto_sub -t "teste"
Use outro terminal para publicar uma mensagem em um tópico:
mosquitto_pub -m "Mensagem" -t "teste"
Usuários e senhas podem ser configurados para uso no Mosquito, ver [3].
Referências
- ↑ 1,0 1,1 1,2 1,3 Valerie Lampkin; Weng Tat Leong; Leonardo Olivera; Sweta Rawat; Nagesh Subrahmanyam; Rong Xiang. Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry, ibm.com/redbooks, 2012.
- ↑ 2,0 2,1 MQTT Essentials: The Ultimate Kickstart For MQTT Beginners, https://www.hivemq.com/mqtt-essentials/.
- ↑ Fernando Veiga. Instalar MQTT-Broker no Linux, Things Hackers Team, 2018.
Evandro.cantu (discussão) 11h27min de 25 de março de 2020 (-03)