Arduino Nano ESP32 - MQTT
Neste guia, vamos mergulhar no uso do Arduino Nano ESP32 para enviar e receber dados de/para um broker MQTT por meio do protocolo MQTT. Especificamente, vamos abordar:
- Estabelecer uma conexão entre o Arduino Nano ESP32 e um broker MQTT.
- Programar o Arduino Nano ESP32 para transmitir dados ao broker MQTT, publicando-os em um tópico MQTT específico.
- Programar o Arduino Nano ESP32 para receber dados, assinando um tópico MQTT designado.

Vamos examinar dois cenários distintos:
- Utilizar o Arduino Nano ESP32 com um broker MQTT online.
- Utilizar o Arduino Nano ESP32 com um broker MQTT instalado no seu PC.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Arduino Nano ESP32 e o MQTT
Se você já está familiarizado com o protocolo MQTT, ótimo! Se não, você pode pesquisar sobre ele online. Este tutorial é focado em usar o Arduino Nano ESP32 para enviar e receber dados usando MQTT.
Aqui estão diferentes maneiras de usar o Arduino Nano ESP32 com MQTT:
- Você pode conectar o Arduino Nano ESP32 a um broker MQTT online, como o Mosquitto ou o AWS IoT.
- Você pode conectar o Arduino Nano ESP32 a um broker MQTT instalado no seu computador, como o Mosquitto ou o HiveMQ.
- Você pode conectar o Arduino Nano ESP32 a um broker MQTT rodando no seu Raspberry Pi, por exemplo, o Mosquitto.
- Você também pode conectar o Arduino Nano ESP32 a um broker MQTT baseado em nuvem, como o Mosquitto ou o HiveMQ no AWS EC2.
Neste tutorial, vamos começar verificando se o Arduino Nano ESP32 consegue se conectar a um broker Mosquitto online. Vamos fazer o Arduino Nano ESP32 trocar dados por meio desse broker pela internet.
Depois disso, vamos configurar o broker Mosquitto no nosso computador. Em seguida, vamos conectar o Arduino Nano ESP32 a esse broker local e continuar enviando e recebendo dados.
Depois de concluir este tutorial, você pode explorar mais consultando estes tutoriais adicionais:
Esses tutoriais fornecerão mais informações sobre tópicos relacionados.
Conectar o Arduino Nano ESP32 a um broker MQTT online
Nesta parte, vamos aprender como conectar o Arduino Nano ESP32 ao test.mosquitto.org, um broker MQTT online criado pelo Mosquitto. Observe que este broker deve ser usado apenas para fins de teste.
Código Arduino Nano ESP32
O código Arduino Nano ESP32 abaixo faz o seguinte:
- Conecta ao broker MQTT
- Assina um tópico
- Publica mensagens periodicamente no mesmo tópico que assinou
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
- Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
- Ligue os componentes de acordo com o diagrama fornecido.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
- Abra a Arduino IDE no seu PC
- Abra o Library Manager clicando no ícone Library Manager na barra de navegação esquerda da Arduino IDE
- Digite MQTT na caixa de pesquisa, depois procure a biblioteca MQTT de Joel Gaehwiler.
- Clique no botão Install para instalar a biblioteca MQTT.

- Digite Arduino Nano ESP32Json na caixa de pesquisa, depois procure a biblioteca Arduino Nano ESP32Json de Benoit Blanchon.
- Clique no botão Install para instalar a biblioteca Arduino Nano ESP32Json.

- Copie o código acima e abra-o com a Arduino IDE
- Substitua as informações de WiFi (SSID e senha) no código pelas suas.
- No código, você verá a palavra 'YOUR-NAME' três vezes. Substitua essa palavra pelo seu nome ou por caracteres aleatórios (apenas letras do alfabeto, sem espaços). Isso é necessário porque, se você não fizer a alteração, várias pessoas podem estar executando este código ao mesmo tempo, o que pode causar conflitos, pois os IDs de cliente e os tópicos MQTT são os mesmos para todos.
- Clique no botão Upload na Arduino IDE para enviar o código ao Arduino Nano ESP32
- Abra o Serial Monitor
- Veja o resultado no Serial Monitor.
Como você pode ver, o Arduino Nano ESP32 publica mensagens no broker MQTT e depois recebe de volta a mesma mensagem. Isso acontece porque o código acima assina o mesmo tópico no qual publica dados. Se você não quiser que o Arduino Nano ESP32 receba a mensagem que ele publica, basta fazer o tópico SUBSCRIBE ser diferente do tópico PUBLISH.
Conectar o Arduino Nano ESP32 ao broker MQTT instalado no seu PC
Instalando o Broker MQTT Mosquitto
- Baixe o Mosquitto MQTT Broker
- Instale-o na unidade D: em vez da unidade C:. Evite instalar o broker Mosquitto na unidade C: para prevenir possíveis problemas.
Executar o broker MQTT Mosquitto
Agora, vamos verificar se o broker MQTT está funcionando corretamente seguindo estes passos:
- Vá até o diretório onde o Mosquitto foi instalado. Por exemplo: D:\mosquitto>
- Crie um novo arquivo chamado test.conf, copie o conteúdo abaixo e salve-o nesse diretório:
- Execute um Prompt de Comando como Administrador no seu PC. Vamos chamá-lo de Janela do Broker. Não o feche até o final do tutorial.

- Execute os comandos abaixo um por um:
- Você verá:
- Abra outro Prompt de Comando como Administrador no seu PC.
- Descubra o endereço IP do seu PC executando o comando abaixo:
- Anote o endereço IP para usar depois. No exemplo acima: 192.168.0.5
Teste se o Broker Mosquitto funciona
- Abra outro Prompt de Comando como Administrador no seu PC. Vamos chamá-lo de Janela do Assinante
- Assine um tópico executando os comandos abaixo um por um (substitua pelo seu endereço IP):
- Abra outro Prompt de Comando como Administrador no seu PC. Vamos chamá-lo de Janela do Publicador
- Publique uma mensagem no mesmo tópico executando os comandos abaixo um por um (substitua pelo seu endereço IP):
- Você verá:
Você verá que a mensagem é encaminhada para a Janela do Assinante da seguinte forma:
Agora, você instalou com sucesso o broker MQTT Mosquitto no seu PC. Por favor, NÃO feche as três janelas: Janela do Broker, Janela do Assinante e Janela do Publicador. Vamos usá-las a seguir.
Código Arduino Nano ESP32
O código Arduino Nano ESP32 abaixo faz o seguinte:
- Conecta ao broker MQTT
- Assina um tópico
- Publica mensagens periodicamente em outro tópico
Passos Rápidos
Para começar com o Arduino Nano ESP32, siga estes passos:
- Se você é novo no Arduino Nano ESP32, consulte o tutorial sobre como configurar o ambiente para o Arduino Nano ESP32 na Arduino IDE.
- Ligue os componentes de acordo com o diagrama fornecido.
- Conecte a placa Arduino Nano ESP32 ao seu computador usando um cabo USB.
- Abra a Arduino IDE no seu computador.
- Selecione a placa Arduino Nano ESP32 e a porta COM correspondente.
- Copie o código acima e abra-o com a Arduino IDE
- Substitua as informações de WiFi (SSID e senha) no código pelas suas.
- Substitua o endereço do broker MQTT no código (nome de domínio ou endereço IP).
- Clique no botão Upload na Arduino IDE para enviar o código ao Arduino Nano ESP32
Enviar mensagem do Arduino Nano ESP32 para o PC via MQTT
O código do Arduino Nano ESP32 publica dados no tópico MQTT esp32-001/send, e a Janela do Assinante no PC assina esse tópico para receber os dados.
- Abra o Serial Monitor, você verá o Arduino Nano ESP32 publicar periodicamente uma mensagem em um tópico.
- Verifique a Janela do Assinante, você verá que ela recebe a mensagem publicada pelo Arduino Nano ESP32 como abaixo:
Enviar mensagem do PC para o Arduino Nano ESP32 via MQTT
O Arduino Nano ESP32 assina o tópico esp32-001/receive, e a Janela do Publicador no PC publica uma mensagem nesse tópico para enviá-la ao Arduino Nano ESP32.
- Publique uma mensagem no tópico que o Arduino Nano ESP32 assinou executando o seguinte comando na Janela do Publicador:
- Você verá essa mensagem ser recebida pelo Arduino Nano ESP32 no Serial Monitor como abaixo: