Pular para o conteúdo principal
Protocolo MQTT

Desenvolvimento MQTT

O MQTT é o protocolo standard para IoT. Leve, eficiente e concebido para ligações instáveis. Implementamos arquiteturas MQTT completas: brokers geridos ou self-hosted, níveis de QoS, segurança TLS, desenho de topics e bridging edge-to-cloud.

O protocolo de referência para IoT

MQTT: comunicação eficiente entre dispositivos e a cloud

O MQTT (Message Queuing Telemetry Transport) é um protocolo de mensagens pub/sub concebido para ambientes com largura de banda limitada, latência elevada ou ligações instáveis. Uma mensagem MQTT pode ter apenas 2 bytes de overhead, face às centenas de bytes de um pedido HTTP. Isto torna-o o protocolo ideal para dispositivos IoT alimentados a bateria e com conectividade limitada.

O modelo pub/sub do MQTT desacopla completamente os produtores de dados (dispositivos) dos consumidores (aplicações, dashboards, sistemas de alertas). Um dispositivo publica dados num topic; qualquer número de subscritores pode receber esses dados sem que o dispositivo saiba quem os consome. Isto permite adicionar novos consumidores (um novo dashboard, um sistema de alertas, um pipeline de ML) sem modificar o firmware dos dispositivos.

Na Soamee implementamos o MQTT como protocolo principal nos nossos projetos de IoT. Utilizamo-lo na plataforma Spherag para a transmissão de dados de sensores agrícolas e em vários projetos de IoT industrial para monitorização e controlo de dispositivos.

Trabalhamos com brokers geridos como o AWS IoT Core e brokers self-hosted como EMQX e Mosquitto. A escolha depende dos requisitos de escala, custo, controlo e compliance de cada projeto.

2 bytes

Overhead mínimo

TLS/mTLS

Segurança nativa

3 QoS

Níveis de garantia

LWT

Deteção de desconexões

Níveis de QoS

Quality of Service adaptado a cada caso de uso

O MQTT oferece três níveis de QoS que equilibram fiabilidade e eficiência. Escolher o nível certo é fundamental para otimizar o desempenho.

QoS 0: No máximo uma vez

Fire and forget. A mensagem é enviada uma única vez, sem confirmação. O mais rápido e leve. Ideal para telemetria de alta frequência em que perder um dado ocasional não é crítico (temperatura a cada segundo, posição GPS). Overhead mínimo de rede e bateria.

QoS 1: Pelo menos uma vez

Entrega garantida com possíveis duplicados. O emissor retransmite a mensagem até receber confirmação (PUBACK). O nível mais utilizado em IoT industrial. Ideal para dados de sensores em que a perda é inaceitável mas um duplicado pode ser gerido (alertas, leituras de consumo).

QoS 2: Exatamente uma vez

Entrega garantida sem duplicados. Handshake de 4 passos que assegura que cada mensagem é recebida exatamente uma vez. Maior overhead de rede e latência. Reservado para operações críticas em que um duplicado causaria problemas (comandos a atuadores, transações, atualizações de firmware).

Capacidades MQTT

O que implementamos com MQTT

Segurança TLS/mTLS

Encriptação de todas as comunicações MQTT com TLS 1.2/1.3. Autenticação mútua (mTLS) com certificados X.509 para verificar a identidade tanto do dispositivo como do broker. Rotação automática de certificados e revogação imediata de dispositivos comprometidos. Autorização granular ao nível do topic, controlando que dispositivo pode publicar ou subscrever que dados.

Configuração e clustering de brokers

Implementamos e configuramos brokers MQTT de acordo com os requisitos do projeto. EMQX para alta escala (milhões de ligações) com clustering nativo. Mosquitto para projetos mais pequenos ou gateways edge. AWS IoT Core como serviço gerido. Configuração de bridges entre brokers para arquiteturas edge-to-cloud com sincronização de dados.

Desenho de topics

Desenho de hierarquias de topics MQTT adaptadas ao domínio do projeto. Padrões como {org}/{site}/{device-type}/{device-id}/{data-type} que permitem subscrições com wildcards (# e +) para um consumo flexível dos dados. Shared subscriptions para distribuir a carga por múltiplos consumidores.

Bridge edge-to-cloud

Arquitetura de bridge entre o broker edge local (Mosquitto no gateway) e o broker na cloud (AWS IoT Core, EMQX Cloud). Os dados são publicados localmente com baixa latência, guardados em buffer durante as desconexões e sincronizados com a cloud quando há conectividade. Store-and-forward para garantir zero perda de dados.

Precisa de implementar MQTT no seu projeto de IoT?

Consultoria gratuita →
Ecossistema MQTT

Brokers e ferramentas que utilizamos

AWS IoT Core EMQX Mosquitto HiveMQ MQTT.js Paho MQTT MQTT 5.0 MQTT 3.1.1 Node.js Python C/C++ ESP32 Raspberry Pi LoRaWAN Docker Kubernetes TLS 1.3 X.509 Grafana
Vamos começar

Implemente MQTT no seu projeto de IoT

Ajudamos a escolher o broker certo, a desenhar a arquitetura de topics e a construir o pipeline MQTT completo.

Agende uma call gratuita →