Comunicação entre dois Arduino Nano ESP32 via MQTT
Neste tutorial, vamos abordar o seguinte:
- Comunicação bidirecional entre dois Arduino Nano ESP32 usando MQTT.
- Aplicação de exemplo: Usar um botão ou interruptor conectado ao Arduino Nano ESP32 #1 para controlar um LED conectado ao Arduino Nano ESP32 #2 via MQTT.

Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Buy Note: Use the LED Module for easier wiring. It includes an integrated resistor.
Sobre o Arduino Nano ESP32 e o MQTT
Temos um tutorial detalhado sobre como usar o Arduino Nano ESP32 com MQTT aqui:
Comunicação entre dois Arduino Nano ESP32 via MQTT
Duas placas Arduino Nano ESP32 podem se comunicar entre si usando um servidor MQTT. Se você preferir que elas se comuniquem diretamente, sem usar um servidor MQTT, consulte o tutorial sobre comunicação Cliente/Servidor TCP entre Arduino Nano ESP32 e Arduino Nano ESP32.
Quando o Arduino Nano ESP32 #1 e o Arduino Nano ESP32 #2 trocam dados por meio de um broker MQTT:
- Os dois Arduino Nano ESP32 se conectam ao broker MQTT.
- Para fazer o Arduino Nano ESP32 #2 enviar dados ao Arduino Nano ESP32 #1:
- O Arduino Nano ESP32 #1 assina um tópico, por exemplo: arduino-nano-esp32-1/data.
- O Arduino Nano ESP32 #2 pode enviar dados ao Arduino Nano ESP32 #1 publicando os dados no tópico que o Arduino Nano ESP32 #1 assinou.
- Da mesma forma, para fazer o Arduino Nano ESP32 #1 enviar dados ao Arduino Nano ESP32 #2:
- O Arduino Nano ESP32 #2 assina um tópico, por exemplo: arduino-nano-esp32-2/data.
- O Arduino Nano ESP32 #1 pode enviar dados ao Arduino Nano ESP32 #2 publicando os dados no tópico que o Arduino Nano ESP32 #2 assinou.
Seguindo este método, dois Arduino Nano ESP32 podem trocar dados de forma bidirecional.
Exemplo de Caso de Uso
Vamos realizar a seguinte aplicação: Um botão/interruptor conectado ao Arduino Nano ESP32 #1 controla um LED conectado ao Arduino Nano ESP32 #2 via MQTT.

Existem muitos protocolos de aplicação que podemos usar. Neste exemplo, para simplificar, vamos definir um protocolo por conta própria (um protocolo definido por nós)
Como Funciona
Vamos estabelecer um protocolo simples:
- Tanto o Arduino Nano ESP32 #1 quanto o Arduino Nano ESP32 #2 se conectam a um Broker MQTT (servidor MQTT).
- Para o Arduino Nano ESP32 #1:
- O Arduino Nano ESP32 #1 envia uma mensagem MQTT para um tópico sempre que o estado de um interruptor muda.
- Quando o botão ou interruptor é ligado, o payload da mensagem MQTT é definido como 1.
- Quando o botão ou interruptor é desligado, o payload da mensagem MQTT é definido como 0.
- Para o Arduino Nano ESP32 #2:
- O Arduino Nano ESP32 #2 assina o tópico.
- Se o Arduino Nano ESP32 #2 receber uma mensagem MQTT com payload 1, ele liga um LED.
- Se o Arduino Nano ESP32 #2 receber uma mensagem MQTT com payload 0, ele desliga o LED.
- Arduino Nano ESP32 #1 - Diagrama de ligação entre o Arduino Nano ESP32 e o botão
- Arduino Nano ESP32 #2 - Diagrama de ligação entre o Arduino Nano ESP32 e o LED
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image

This image is created using Fritzing. Click to enlarge image
Comunicação entre dois Arduino Nano ESP32 via MQTT
Código Arduino Nano ESP32 #1
Código Arduino Nano ESP32 #2
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.
- Ligue um botão/interruptor ao Arduino Nano ESP32 #1
- Ligue um LED ao Arduino Nano ESP32 #2
- Abra a Arduino IDE (chamada de Arduino IDE #1)
- Abra outra janela da Arduino IDE (chamada de Arduino IDE #2) clicando no ícone da Arduino IDE no seu PC (importante!)
- 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 ezButton na caixa de pesquisa, depois encontre a biblioteca de botão de ArduinoGetStarted
- Clique no botão Install para instalar a biblioteca ezButton.

- Conecte o Arduino Nano ESP32 #1 ao PC por cabo USB e selecione a porta COM do Arduino Nano ESP32 #1 na Arduino IDE #1
- Conecte o Arduino Nano ESP32 #2 ao PC por cabo USB e selecione a porta COM do Arduino Nano ESP32 #2 na Arduino IDE #2
- Copie o código do Arduino Nano ESP32 #1, cole na Arduino IDE #1 e salve-o (com o nome Arduino Nano ESP32-1)
- Copie o código do Arduino Nano ESP32 #2, cole na Arduino IDE #2 e salve-o (com o nome Arduino Nano ESP32-2)
- Substitua as informações de WiFi (SSID e senha) nos dois códigos pelas suas.
- Substitua o endereço do broker MQTT nos dois códigos (nome de domínio ou endereço IP).
- Envie o código do Arduino Nano ESP32 #1 para o Arduino Nano ESP32 #1
- Envie o código do Arduino Nano ESP32 #2 para o Arduino Nano ESP32 #2
- Abra o Serial Monitor na Arduino IDE #1
- Abra o Serial Monitor na Arduino IDE #2
- Pressione e segure o botão do Arduino Nano ESP32 #1 → veja o estado do LED no Arduino Nano ESP32 #2 (ON)
- Solte o botão do Arduino Nano ESP32 #1 → veja o estado do LED no Arduino Nano ESP32 #2 (OFF)
- Pressione, segure e solte o botão várias vezes.
- Veja a saída nos dois Serial Monitors
- Serial Monitor do Arduino Nano ESP32 #1
- Serial Monitor do Arduino Nano ESP32 #2