Configurando Broker MQTT para Conectar ESP32 com Sucesso

A comunicação eficiente entre dispositivos é fundamental no mundo da Internet das Coisas (IoT). O protocolo MQTT (Message Queuing Telemetry TransportIntrodução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação.) é uma escolha popular por sua leveza e eficiência. Neste artigo, vamos explorar em profundidade como configurar um broker MQTT para estabelecer comunicação com o ESP32, permitindo que você crie aplicações IoT robustas e escaláveis.

O que é um Broker MQTT?🔗

Antes de mergulharmos na configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns., é importante entender o papel do broker MQTT. O broker é o intermediário central em uma rede MQTT. Ele recebe mensagens de dispositivos publicadores e as encaminha para dispositivos assinantes interessados naquele tópico específico. Isso permite uma comunicação desacoplada e eficiente entre diversos dispositivos.

Por que Usar um Broker MQTT com o ESP32?🔗

O ESP32 é um microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança. potente e versátil, capaz de conectar-se a redes Wi-Fi e Bluetooth. Ao combinar o ESP32 com o protocolo MQTT, você habilita a comunicação em tempo real entre dispositivos, sensores e aplicativos. Usar um broker MQTT facilita a escalabilidade do seu sistema, permitindo que novos dispositivos sejam adicionados sem alterações significativas na infraestrutura.

Escolhendo um Broker MQTT🔗

Existem várias opções de brokers MQTTIntrodução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação. disponíveis, tanto para uso local quanto em nuvem. Alguns dos brokers mais populares incluem:

Para fins deste guia, utilizaremos o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. devido à sua simplicidade e facilidade de configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns..

Pré-requisitos🔗

Antes de iniciar, certifique-se de ter:

Instalando o Mosquitto Broker MQTT🔗

No Windows

1. Baixando o Instalador

Acesse o site oficial do MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. em mosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo..org/download e baixe o instalador adequado para sua versão do Windows.

2. Executando o Instalador

Execute o arquivo .exe baixado e siga as instruções do assistente de instalaçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.. Certifique-se de marcar a opção para instalar o Service se desejar que o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. inicie automaticamente com o Windows.

3. Configurando o Path (Opcional)

Para facilitar o uso dos comandos do Mosquitto via linha de comando, adicione o diretório de instalaçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. ao Path do sistema:

No Linux (Ubuntu/Debian)

1. Atualizando os Repositórios

sudo apt update

2. Instalando o Mosquitto e o Cliente MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo.

sudo apt install mosquitto mosquitto-clients

3. Habilitando e Iniciando o Serviço

sudo systemctl enable mosquitto
sudo systemctl start mosquitto

No macOS

1. Usando o Homebrew

Se você não tiver o Homebrew instalado, instale-o com o seguinte comando:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Instalando o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo.

brew install mosquitto

3. Iniciando o Servidor MosquittoIntegração do ESP32 com Plataformas de Automação Residencial (ex: Home Assistant)Integração do ESP32 com Plataformas de Automação Residencial (ex: Home Assistant)Aprenda a integrar o ESP32 com Home Assistant de forma prática e segura, configurando Wi-Fi, MQTT, sensores e atuadores para uma casa inteligente.

brew services start mosquitto

Testando o Broker MQTT🔗

Para garantir que o broker esteja funcionando corretamente, faremos um teste simples utilizando o cliente MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo..

Passo 1: Abrir Dois Terminais

Abra dois terminais ou linhas de comando em seu computador.

Passo 2: Inscrever-se em um Tópico

No primeiro terminal, inscreva-se em um tópico chamado teste📡 Drone FPV com Transmissão de Vídeo ao Vivo📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência./mqtt:

mosquitto_sub -h localhost -t teste/mqtt

Este comando está dizendo ao cliente para se conectar ao host localhost e se inscrever no tópico teste📡 Drone FPV com Transmissão de Vídeo ao Vivo📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência./mqtt.

Passo 3: Publicar uma Mensagem

No segundo terminal, publique uma mensagem para o tópico teste📡 Drone FPV com Transmissão de Vídeo ao Vivo📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência./mqtt:

mosquitto_pub -h localhost -t teste/mqtt -m "Olá, MQTT!"

Assim que você executar este comando, a mensagem "Olá, MQTT!" deverá aparecer no primeiro terminal, confirmando que o brokerIntrodução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação. está funcionando corretamente.

Configurando o Broker para Acesso Externo🔗

Por padrão, o Mosquitto está configurado para aceitar conexões locais. Se você deseja que dispositivos externos, como seu ESP32, se conectem ao broker, será necessário ajustar a configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns..

Passo 1: Editar o Arquivo de Configuração

Localize o arquivo de configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. do Mosquitto. Em sistemas Linux, geralmente está em /etc/mosquitto/mosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo..conf. No Windows, pode estar na pasta de instalaçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns..

Abra o arquivo em um editor de texto:

sudo nano /etc/mosquitto/mosquitto.conf

Passo 2: Habilitar a Escuta em Todas as Interfaces

Adicione ou descomente a seguinte linha:

listener 1883

Isso fará com que o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. escute na porta padrão MQTT (1883) em todas as interfaces de rede.

Passo 3: Desabilitar o 'allow_anonymous' (Opcional, mas Recomendado)

Para evitar acessos não autorizados, é recomendável configurar autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados.. No entanto, para simplificar, inicialmente vamos permitir conexões anônimas. Certifique-se de que a seguinte linha está configurada:

allow_anonymous true

Nota: Em um ambiente de produção, nunca permita conexões anônimas sem considerar os riscos de segurança. Implementar autenticaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. e criptografia é essencial.

Passo 4: Reiniciar o Serviço Mosquitto

Após as alterações, reinicie o serviço:

sudo systemctl restart mosquitto

Obtendo o Endereço IP do Broker🔗

Para que o ESP32 se comunique com o broker, você precisa conhecer o endereço IP do computador onde o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. está rodando.

No Windows

Abra o Prompt de Comando e digite:

ipconfig

Procure o "Endereço IPv4" da interface de rede que está em uso.

No Linux/macOS

Digite no terminal:

ifconfig

Ou

ip addr show

Anote o endereço IP da interface de rede.

Configurando o ESP32 para se Conectar ao Broker MQTT🔗

Agora que o broker está configurado e conhecemos o endereço IP, vamos preparar o ESP32 para se conectar ao brokerIntrodução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação..

Passo 1: Instalar a Biblioteca PubSubClient

Abra a Arduino IDEInstalando o Arduino IDE para ESP32 no WindowsInstalando o Arduino IDE para ESP32 no WindowsEste tutorial passo a passo ensina como instalar o Arduino IDE e configurar o ESP32 no Windows, garantindo um ambiente ideal para IoT. e vá em Sketch > Incluir Biblioteca > Gerenciar BibliotecasHospedando Múltiplas Páginas Web no ESP32Hospedando Múltiplas Páginas Web no ESP32Descubra como hospedar múltiplas páginas web no ESP32 com um guia passo a passo. Aprenda a configurar rotas e interagir via HTTP.. Procure por "PubSubClientIntegração do ESP32 com Plataformas de Automação Residencial (ex: Home Assistant)Integração do ESP32 com Plataformas de Automação Residencial (ex: Home Assistant)Aprenda a integrar o ESP32 com Home Assistant de forma prática e segura, configurando Wi-Fi, MQTT, sensores e atuadores para uma casa inteligente." e instale a biblioteca de Nick O'Leary.

Passo 2: Código do ESP32

Utilize o códigoDesafios Práticos: Experimentando com Múltiplos LEDsDesafios Práticos: Experimentando com Múltiplos LEDsAprenda a controlar múltiplos LEDs com ESP32 em projetos IoT. Descubra desafios práticos, montagem de circuitos, programação e efeitos visuais incríveis! abaixo como base. Lembre-se de substituir SSIDConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. e PASSWORDConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. pelos dados da sua rede Wi-FiConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosConectando o ESP32 à Rede Wi-Fi: Seus Primeiros PassosDescubra como conectar seu ESP32 à rede Wi-Fi com segurança e eficiência. Siga o guia passo a passo e otimize seus projetos de IoT com facilidade., e BROKER_IP pelo endereço IP do brokerIntrodução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Introdução ao MQTT: Conceitos Básicos e Benefícios para o ESP32Aprenda os fundamentos do MQTT para ESP32, explorando conceitos, benefícios e exemplos práticos para projetos robustos em IoT e automação..

#include <WiFi.h>
#include <PubSubClient.h>
const char* ssid = "SEU_SSID";
const char* password = "SUA_SENHA";
const char* mqttServer = "BROKER_IP";
const int mqttPort = 1883;
WiFiClient espClient;
PubSubClient client(espClient);
void setup()
{
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.println("Conectando ao WiFi...");
  }
  Serial.println("Conectado ao WiFi");
  client.setServer(mqttServer, mqttPort);
  while (!client.connected())
  {
    Serial.println("Conectando ao broker MQTT...");
    if (client.connect("ESP32Client"))
    {
      Serial.println("Conectado ao broker MQTT");
    }
    else
    {
      Serial.print("Falha na conexão. Estado: ");
      Serial.print(client.state());
      delay(2000);
    }
  }
  client.publish("teste/mqtt", "Olá do ESP32!");
  client.subscribe("teste/mqtt");
}
void loop()
{
  client.loop();
}

Passo 3: Carregar o Código no ESP32

Conecte o ESP32 ao computador e carregue o código utilizando a Arduino IDE. Abra o monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. para observar as mensagens de debug.

Testando a Comunicação entre o ESP32 e o Broker🔗

Com o ESP32 conectado, vamos verificar se ele está enviando e recebendo mensagens pelo broker MQTTCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo..

Recebendo Mensagens Publicadas pelo ESP32

No computador, abra um terminal e inscreva-se no tópico teste📡 Drone FPV com Transmissão de Vídeo ao Vivo📡 Drone FPV com Transmissão de Vídeo ao VivoEste tutorial técnico detalha a construção de um drone FPV com transmissão de vídeo, telemetria via MAVLink e otimizações de latência./mqtt:

mosquitto_sub -h localhost -t teste/mqtt

Você deverá ver a mensagem "Olá do ESP32!" enviada pelo microcontroladorCaracterísticas Técnicas e Funcionalidades do ESP32Características Técnicas e Funcionalidades do ESP32Descubra as especificações completas e os recursos avançados do ESP32, a plataforma ideal para automação, IoT e projetos modernos com segurança..

Enviando Mensagens para o ESP32

Em outro terminal, publique uma mensagem para o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia!:

mosquitto_pub -h localhost -t teste/mqtt -m "Mensagem para o ESP32"

No monitor serialConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização. da Arduino IDE, a mensagem recebida deverá ser exibida.

Troubleshooting: Resolvendo Problemas Comuns🔗

ESP32 Não Conecta ao Wi-Fi

ESP32 Não Conecta ao Broker MQTT

Mensagens Não São Recebidas

Melhorando a Segurança do Broker MQTT🔗

Embora tenhamos permitido conexões anônimas para simplificar, é importante pensar na segurançaSegurança em MQTT: Autenticação e Criptografia no ESP32Segurança em MQTT: Autenticação e Criptografia no ESP32Descubra como proteger conexões MQTT em aplicações IoT com ESP32, implementando autenticação e criptografia TLS para segurança máxima. do seu sistema. Aqui estão algumas medidas recomendadas:

Habilitar Autenticação

No arquivo de configuraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns. do Mosquitto, configure usuários e senhas:

1. Criar um Arquivo de SenhasConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização.

mosquitto_passwd -c /etc/mosquitto/passwd meu_usuario

Você será solicitado a definir uma senhaConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoConfigurando a Conexão Wi-Fi no ESP32: Guia Passo a PassoAprenda passo a passo a conectar seu ESP32 à rede Wi-Fi com segurança e estabilidade. Descubra dicas práticas e estratégias de otimização..

2. Atualizar o Arquivo de ConfiguraçãoInstalando o Arduino IDE para ESP32 no macOSInstalando o Arduino IDE para ESP32 no macOSAprenda passo a passo a instalar e configurar o Arduino IDE no macOS para programar o ESP32. Siga dicas essenciais para solucionar problemas comuns.

Adicione as seguintes linhas:

allow_anonymous false
password_file /etc/mosquitto/passwd

3. Reiniciar o MosquittoCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo.

sudo systemctl restart mosquitto

Configurar SSL/TLS

Para criptografar as comunicações, configure certificados SSL/TLS no broker e ajuste o ESP32 para utilizá-los. Este é um tópico avançado que requer conhecimento em certificaçãoSegurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Segurança na Rede: Protegendo a Conexão Wi-Fi do ESP32Proteja a conexão Wi-Fi do ESP32 com dicas de criptografia, senhas fortes e monitoramento, garantindo segurança e integridade dos dados. digital.

Conclusão🔗

Configurar um broker MQTTCriando um Dashboard em Tempo Real para Dados MQTT do ESP32Criando um Dashboard em Tempo Real para Dados MQTT do ESP32Aprenda a criar um dashboard interativo que monitora em tempo real dados de sensores via MQTT com ESP32 e Node-RED. Guia passo a passo. é um passo crucial para desenvolver aplicações IoT com o ESP32. Com o Mosquitto instalado e o ESP32 devidamente configurado, você tem uma base sólida para construir projetos que exigem comunicação eficiente e em tempo real entre dispositivos.

A partir daqui, você pode explorar diversas possibilidades, como:

Lembre-se sempre de considerar aspectos de segurança ao desenvolver suas aplicações📞 Interfone IP com Vídeo Chamada📞 Interfone IP com Vídeo ChamadaDescubra como integrar interfone IP com vídeo chamada utilizando ESP32 para segurança residencial e corporativa, com streaming e criptografia avançada., protegendo os dados e dispositivos conectados.

Boa sorte em seus projetos com o ESP32O que é o ESP32: Introdução e Conceitos BásicosO que é o ESP32: Introdução e Conceitos BásicosDescubra como o ESP32 revoluciona a automação e IoT com dicas práticas e projetos que transformam sua casa conectada. Domine a tecnologia! e MQTT!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados