Arduino UNO R4 - MQTT
Neste tutorial, vamos aprender a usar o Arduino UNO R4 para enviar e receber dados de um broker MQTT usando o protocolo MQTT. Vamos abordar os seguintes detalhes:
- Como conectar o Arduino UNO R4 a um broker MQTT
- Como programar o Arduino UNO R4 para enviar dados a um broker MQTT publicando em um tópico MQTT
- Como programar o Arduino UNO R4 para receber dados assinando um tópico MQTT.

Vamos ver dois exemplos diferentes:
- Usando o Arduino UNO R4 com um broker MQTT na internet.
- Usando o Arduino UNO R4 com o broker MQTT instalado no seu computador.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables STEM V4B IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Arduino UNO R4 e o MQTT
Vamos aprender a programar um Arduino UNO R4 para enviar e receber dados por meio de um broker MQTT (também chamado de servidor MQTT). O broker MQTT pode ser:
- Um broker MQTT na Internet, como o Mosquitto ou o AWS IoT.
- Um broker MQTT configurado no seu computador, como o Mosquitto ou o HiveMQ.
- Um broker MQTT rodando no seu Raspberry Pi, por exemplo, o Mosquitto.
- Um broker MQTT na nuvem, como o Mosquitto ou o HiveMQ no AWS EC2.
Neste guia, vamos começar verificando se o Arduino UNO R4 consegue se conectar a um broker Mosquitto online. O Arduino UNO R4 vai enviar e receber mensagens de e para esse broker pela internet.
Depois, vamos instalar o broker Mosquitto no nosso computador. Em seguida, vamos conectar o Arduino UNO R4 ao broker MQTT no nosso computador. Vamos usá-lo para enviar e receber dados por esse broker local.
Conecte o Arduino UNO R4 a um broker MQTT online
Nesta seção, vamos entender como ligar o Arduino UNO R4 ao test.mosquitto.org, um serviço MQTT online fornecido pelo Mosquitto. Lembre-se, este serviço serve apenas para testes.
Código Arduino UNO R4
Este código do Arduino UNO R4 realiza as seguintes tarefas:
- Conectar ao broker MQTT
- Assinar um tópico
- Enviar mensagens regularmente para o mesmo tópico que você assinou
Passos Rápidos
Siga estas instruções passo a passo:
- Se esta é a primeira vez que você usa o Arduino Uno R4 WiFi/Minima, consulte o tutorial sobre como configurar o ambiente para o Arduino Uno R4 WiFi/Minima no Arduino IDE.
- Conecte a placa Arduino Uno R4 ao seu computador usando um cabo USB.
- Abra o Arduino IDE no seu computador.
- Selecione a placa Arduino Uno R4 apropriada (por exemplo, Arduino Uno R4 WiFi) e a porta COM.
- Clique no ícone "Library Manager" no lado esquerdo do Arduino IDE para abri-lo.
- Na caixa de pesquisa, digite MQTT e procure a biblioteca MQTT de Joel Gaehwiler.
- Clique no botão Install para adicionar a biblioteca MQTT.

- Pesquise por ArduinoJson na caixa de pesquisa e encontre a biblioteca ArduinoJson de Benoit Blanchon. Depois, clique no botão Install para instalar a biblioteca.

- Copie o código e abra-o no Arduino IDE.
- Altere os dados do WiFi (SSID e senha) no código para os seus.
- Você vai encontrar 'YOUR-NAME' três vezes no código. Substitua por seu nome ou por quaisquer letras (sem espaços). Essa mudança é importante para evitar conflitos com vários usuários rodando o mesmo código.
- Clique no botão Upload no Arduino IDE para fazer o upload do código para o seu Arduino UNO R4.
- Abra o Serial Monitor.
- Confira os resultados no Serial Monitor.
O Arduino UNO R4 envia mensagens ao broker MQTT e depois recebe a mesma mensagem de volta. Isso acontece porque ele está configurado para receber mensagens do mesmo tópico para o qual as envia. Se você não quer que o Arduino UNO R4 receba as próprias mensagens, basta usar tópicos diferentes para enviar e receber.
Conecte o Arduino UNO R4 ao broker MQTT instalado no seu PC
Instalando o Broker MQTT Mosquitto
- Baixe o Broker MQTT Mosquitto
- Instale-o na unidade D:, não na unidade C:. Isso ajuda a evitar possíveis problemas.
Executando o broker MQTT Mosquitto
Agora, vamos ver se o broker MQTT está funcionando corretamente seguindo estes passos:
- Navegue até a pasta onde você instalou o Mosquitto, como D:\Draft\mosquitto. Crie um arquivo chamado test.conf, cole nele os detalhes a seguir e salve o arquivo nesta pasta.
- Abra um Prompt de Comando como Administrador no seu computador. Vamos chamá-lo de "Janela do Broker". Lembre-se de não fechar esta janela até terminar o tutorial.

- Execute os comandos a seguir em sequência:
- Você vai notar:
- Abra um novo Prompt de Comando como Administrador no seu computador.
- Para descobrir o endereço IP do seu computador, execute este comando:
- Anote o endereço IP para consulta futura. No exemplo fornecido: 192.168.0.11.
Teste se o Broker Mosquitto funciona
- Abra outro Prompt de Comando como Administrador no seu computador. Vamos chamá-lo de "Janela do Assinante".
- Para assinar um tópico, digite os comandos a seguir, um de cada vez, substituindo "your IP address" pelo seu endereço IP real:
- Abra mais um Prompt de Comando com direitos de Administrador no seu computador. Dê a ele o nome Janela do Publicador.
- Para publicar uma mensagem no mesmo tópico, execute os comandos a seguir um após o outro (substitua pelo seu endereço IP):
- Você vai notar:
A mensagem é enviada para a Janela do Assinante assim:
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 UNO R4
O código a seguir é para o Arduino UNO R4 e faz o seguinte:
- Conectar ao broker MQTT
- Assinar um tópico
- Enviar mensagens regularmente para um tópico diferente
Passos Rápidos
- Copie o código acima e abra-o usando o Arduino IDE
- Altere os dados do WiFi (SSID e senha) no código para os seus.
- Altere o endereço do broker MQTT no código (nome de domínio ou endereço IP).
- Clique no botão Upload no Arduino IDE para enviar o código ao seu Arduino UNO R4.
Enviar mensagem do Arduino UNO R4 para o PC via MQTT
O Arduino UNO R4 envia informações para o tópico MQTT chamado arduino-uno-r4/send. No computador, a Janela do Assinante assina esse tópico para receber os dados.
- Abra o Serial Monitor para ver que o Arduino UNO R4 envia regularmente uma mensagem para um tópico.
- Olhe a Janela do Assinante e você vai notar que ela mostra a mensagem enviada pelo Arduino UNO R4 assim:
Enviar mensagem do PC para o Arduino UNO R4 via MQTT
O Arduino UNO R4 está configurado para receber mensagens do tópico arduino-uno-r4/receive. A Janela do Publicador no PC envia mensagens para esse tópico para se comunicar com o Arduino UNO R4.
- Envie uma mensagem para o tópico assinado pelo Arduino UNO R4 usando este comando na Janela do Publicador:
- Você vai notar que o Arduino UNO R4 recebe essa mensagem, como mostrado no Serial Monitor: