Uma visão geral do MQTT

O essencial do MQTT Imagem do título

No cenário em constante evolução da Internet das Coisas (IoT) e dos protocolos de comunicação em tempo real, o MQTT surgiu como uma solução poderosa e versátil.

MQTT, que costumava ser um acrónimo para Message Queue Telemetry Transport (mais sobre isso abaixo), é um protocolo de mensagens leve e eficiente concebido para dispositivos com recursos limitados e redes pouco fiáveis.

Portanto, neste post, quero mergulhar na história, nas aplicações e nas vantagens e desvantagens do MQTT.

A história do MQTT

As origens do MQTT remontam ao final dos anos 90, quando Andy Stanford-Clark e Arlen Nipper conceberam o protocolo para monitorizar condutas de petróleo. Monitorizar oleodutos longos em áreas remotas pode, obviamente, ser um desafio.

Assim, a ideia era criar algo que fosse extremamente leve, para que fosse possível obter as informações necessárias (estado, temperatura, etc.) a partir de dispositivos no meio do nada.

Uma fotografia de uma conduta remota que pode ser monitorizada com MQTT

O objetivo inicial era desenvolver um protocolo que minimizasse a utilização da largura de banda, assegurando simultaneamente uma transmissão de dados fiável. Por outras palavras, a ideia era facilitar a comunicação por telemetria entre sensores de oleodutos e minimizar a utilização de largura de banda.

O seu modelo de publicação-subscrição permitia que os sensores e dispositivos transmitissem dados para um hub central, onde os subscritores (frequentemente sistemas de monitorização) podiam receber e processar essa informação.

Quando os produtos IoT surgiram e os Raspberry Pis se tornaram uma realidade, o MQTT tornou-se uma forma pioneira de fazer com que os dispositivos comunicassem.

Assim, o MQTT alargou-se rapidamente para além da sua aplicação original em telemetria.

Esta evolução levou a uma alteração notável do seu nome.

Inicialmente, MQTT significava MQ Telemetry Transport, onde MQ significava Message Queue (apesar de não usar filas de mensagens - mais sobre isso abaixo).

No entanto, à medida que a sua adoção cresceu e as suas aplicações se diversificaram, o protocolo evoluiu para além da utilização centrada na telemetria. Agora é possível controlar coisas com o MQTT, por exemplo.

De facto, se leu a nossa newsletter esta semana, já o sabe, MQTT já não representa um conjunto específico de palavras.

É isso mesmo - MQTT significa apenas MQTT.

Uma fotografia de um sensor doméstico inteligente que pode ser controlado com MQTT

Atualmente, o panorama das aplicações é muito mais vasto e diversificado do que era na década de 90.

Para além da sua utilização tradicional em telemetria, o MQTT é agora uma pedra angular dos ecossistemas IoT (incluindo o PiCockpit), permitindo uma comunicação perfeita entre dispositivos, sensores e aplicações.

A sua eficiência e leveza fazem dele a escolha ideal para ambientes com recursos limitados, como sistemas incorporados e microcontroladores.

Como funciona

O MQTT utiliza o modelo editor-subscritor. Isto significa que no centro da arquitetura do MQTT estão dois componentes-chave: os editores e os assinantes.

Estes componentes comunicam através de um corretor central, que actua como intermediário responsável pelo encaminhamento das mensagens para os destinos adequados.

Assim, tem três dispositivos, sensores ou aplicações que precisam de comunicar entre si, como o seu portátil, o seu Raspberry Pi e o seu router. Se ligar o Raspberry Pi e o seu computador portátil ao WiFi através do router, poderá utilizar o router como intermediário para ligar o Pi e o computador portátil.

Em pormenor, os dispositivos enviam mensagens com base em temas.

Trata-se de uma palavra-chave no mundo do MQTT.

Os tópicos são peças de informação muito leves. Dir-lhe-ão se um dispositivo está ligado ou desligado, a sua temperatura, o seu endereço IP, etc. Os tópicos não lhe darão quantidades infinitas de informação.

É isso que torna o MQTT tão hiper-eficiente e estável.

É também o que o torna perfeito para monitorizar os seus Raspberry Pis com o PiCockpit, por exemplo. Porque proporciona uma ligação consistente e fiável entre dispositivos.

O que é ótimo é que os tópicos funcionam de forma bastante óbvia. Um tópico gira em torno de sequências de textos separados por barras, como:

myRaspberryPis / livingRoomPi / temperatura

E esse tópico serve como um canal de mensagens que envia a temperatura do Raspberry Pi na sala de estar.

O corretor recebe a mensagem e armazena-a temporariamente.

E depois os dispositivos subscrevem tópicos específicos no corretor para obterem essas informações.

Foi também isto que fez com que o nome MQTT se tornasse um nome incorreto desde o início. Este modelo de publicação-assinatura é muito diferente do enfileiramento de mensagens, no qual os dados são armazenados até que os clientes precisem deles.

Aplicações do MQTT

Como pode ver, o MQTT é ótimo para o ecossistema IoT. Permite uma comunicação eficiente entre vários dispositivos, sensores e aplicações, mesmo quando a rede é má.

É isto que o torna ideal para cenários com largura de banda limitada e ligações instáveis.

Pode utilizá-lo para que dispositivos como termóstatos inteligentes, luzes e câmaras de segurança comuniquem sem problemas. Por exemplo, um sensor de temperatura pode publicar dados num corretor MQTT e um termóstato subscrito no tópico pode receber e agir com base nessas informações em tempo real.

A propósito, devo mencionar que estas são todas as coisas em que o PiCockpit o pode ajudar.

Um navio a controlar o tempo

Em ambientes industriais, as fábricas e as linhas de produção utilizam o MQTT para monitorizar máquinas, recolher dados sobre a eficiência operacional e controlar remotamente os processos. O MQTT tem-se realmente integrado em todos os tipos de indústrias remotas.

Tomemos, por exemplo, as estações de monitorização meteorológica em áreas remotas ou plataformas petrolíferas offshore. Para obter informações de e para estes locais, o MQTT funciona na perfeição.

Vantagens

O MQTT é super eficiente. O seu design leve minimiza a sobrecarga da transmissão de dados. O seu formato binário e o cabeçalho compacto fazem dele uma óptima escolha para dispositivos com capacidade de processamento e largura de banda limitadas.

É também muito fiável. O modelo de publicação-subscrição assegura a entrega fiável de mensagens. Os subscritores podem receber mensagens perdidas assim que estiverem online, evitando a perda de dados.

E, para as empresas que pretendem utilizá-lo, é super escalável. A arquitetura permite um escalonamento fácil à medida que mais dispositivos ou assinantes se juntam à rede. Os corretores podem lidar eficientemente com vários editores e assinantes sem um impacto significativo no desempenho.

No entanto, como todos os protocolos, tem algumas desvantagens.

Desvantagens

Embora o MQTT ofereça mecanismos de segurança básicos, como a autenticação por nome de utilizador e palavra-passe, pode não ser suficiente para aplicações altamente sensíveis. Por isso, por vezes, é importante utilizar medidas de segurança como a encriptação SSL/TLS e a autenticação avançada.

Outra desvantagem é a perda de dados. Por defeito, os corretores MQTT não armazenam mensagens, o que pode resultar em perda de dados se um assinante estiver offline quando um dispositivo publica uma mensagem.

É claro que isto pode ser visto como um aspeto positivo em termos de segurança, porque não há muitos dados a que aceder.

Mas é verdade que o envio de mensagens persistentes requer uma configuração adicional.

Embora o MQTT em si seja relativamente simples (especialmente para automação residencial), a implementação de um ecossistema MQTT completo com corretores, editores e assinantes pode se tornar complexa.

Por isso, embora o MQTT seja bastante escalável, as empresas e organizações podem definitivamente ter dificuldades com a manutenção.

Como o PiCockpit usa o MQTT

O PiCockpit, a nossa forma favorita de monitorizar e controlar Raspberry Pis, tira partido do poder do MQTT para oferecer um controlo eficiente e sem falhas sobre uma rede de dispositivos.

Ao utilizar o MQTT como protocolo de comunicação, o PiCockpit fornece aos utilizadores um conjunto de ferramentas abrangente para gerir remotamente a sua frota de Raspberry Pi, tornando-o uma ferramenta indispensável para entusiastas, programadores e profissionais.

O botão MQTT do PiCockpit

No seu núcleo, o PiCockpit permite aos utilizadores monitorizar vários aspectos dos seus dispositivos Raspberry Pi, tais como a utilização da CPU e da memória, estatísticas de rede e componentes de hardware ligados.

Os dispositivos individuais recolhem informações e partilham-nas através da rede utilizando a arquitetura de publicação-subscrição do MQTT. Cada Raspberry Pi actua como um cliente MQTT, capaz de publicar e subscrever tópicos específicos, permitindo a troca de dados em tempo real.

Uma das principais vantagens de o empregar no PiCockpit é a sua natureza leve, que se alinha perfeitamente com o ambiente de recursos limitados dos dispositivos Raspberry Pi.

O empacotamento eficiente de mensagens e a baixa sobrecarga garantem que mesmo os dispositivos com capacidade de processamento limitada podem participar no intercâmbio de dados sem um impacto significativo no desempenho.

A abordagem do PiCockpit vai além da mera monitorização de dados. Facilita as acções de gestão remota, permitindo-lhe executar comandos nos seus dispositivos Raspberry Pi a partir de um painel de controlo centralizado.

Ao subscrever os tópicos adequados, os utilizadores podem desencadear acções como actualizações de software, reinicializações do sistema ou scripts personalizados nos dispositivos.

Esta comunicação bidirecional garante que o PiCockpit não é apenas uma ferramenta de monitorização passiva, mas uma plataforma ativa para a gestão de dispositivos.

Além disso, a utilização do MQTT pelo PiCockpit promove uma fácil escalabilidade para os seus projectos.

À medida que o número de dispositivos monitorizados aumenta, o corretor MQTT lida perfeitamente com o fluxo crescente de dados e mensagens. Esta escalabilidade é uma prova da sua capacidade inerente de gerir inúmeros clientes sem comprometer o desempenho.

O PiCockpit monitoriza e controla Raspberry Pis

Em conclusão, a integração do MQTT no PiCockpit demonstra a versatilidade e a eficiência do protocolo no domínio da gestão remota de dispositivos.

Assim, o PiCockpit permite-lhe não só monitorizar, mas também gerir a sua frota de Raspberry Pi com facilidade. Tudo o que tem de fazer é instalar o cliente PiCockpit no seu Raspberry Pi e está pronto para começar!

Conclusão

O MQTT é uma excelente forma de fazer com que os dispositivos falem uns com os outros.

É leve. É fiável. E é super versátil.

Mais importante ainda, já não é apenas um protocolo de comunicação para recolher dados de forma passiva. Agora pode ser utilizado para controlar ativamente dispositivos e sensores à distância.

O MQTT é uma ferramenta valiosa no arsenal de protocolos para permitir uma comunicação perfeita e eficiente.

O melhor de tudo é que, com todos os projectos de IoT e de automatização doméstica que existem atualmente, o MQTT pode melhorar a sua vida.

Pode instalar o PiCockpit no seu Raspberry Pi e verificar todas as vantagens por si próprio!

Clique aqui para ver como criar uma fotoresistência com um Pico W utilizando MQTT - é um pequeno projeto excelente para verificar o poder e a eficiência do MQTT.

O que faria com o MQTT para mudar a sua vida quotidiana?

2 comentários

  1. Сергей em Agosto 30, 2023 às 8:52 am

    Автор статьи опоздал с написанием статьи о mqtt лет так на десять...

    • Adam em Agosto 30, 2023 às 9:38 am

      Лучше поздно, чем никогда. Да, Сергей?

Deixe um comentário