Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Esta lição mostrará o uso do protocolo MQTT básico na placa NodeMCU. Usamos o MQTTBox como o cliente MQTT aqui e usaremos o NodeMCU para concluir as seguintes operações:
Publique "hello world" no tópico "outTopic" a cada dois segundos. Inscreva-se no tópico "inTopic" e imprima todas as mensagens recebidas. Assume que as cargas recebidas são strings e não binários. Se a mensagem assinada for "1", acenda o LED integrado. Desligue o LED integrado se a mensagem de inscrição for “0”.
Preparação: Osoyoo NodeMCU x1
Cabo USB x1
PC x1
IDE Arduino (Versin 1.6.4+)
Conecte o NodeMCU ao PC via cabo USB.
Etapa 1: Instalação da Biblioteca
Instale PubSubClientlibrary
Precisamos instalar a biblioteca de endpoint MQTT (PubSubClient) para nos comunicarmos com o broker MQTT, faça o download da biblioteca no seguinte link:
Descompacte o arquivo acima, mova a pasta descompactada para a pasta da biblioteca do Arduino IDE.
Abra o IED Arduino, você pode encontrar o “pubsubclient” na coluna “Exemplos”.
Instale o cliente MQTT:
usaremos o MQTTBox como o cliente MQTT. faça download de:
Etapa 2: Código
abra Arduino IDE–> Arquivo–> Exemplo–> pubsubclient–> mqtt esp8266, você obterá o código de amostra.
Edite o código para se ajustar às suas próprias configurações de WiFi e MQTT conforme as seguintes operações: 1) Hotspot Configration: Encontre a linha de código abaixo, coloque seu próprio SSID e senha lá.
const char * ssid = “your_hotspot_ssid”; const char * password = “your_hotspot_password”;
2) Configuração de endereço do servidor MQTT, aqui usamos o corretor MQTT gratuito "broker.mqtt-dashboard.com". Você pode usar sua própria URL do broker MQTT ou endereço IP para definir o valor mqtt_server acima. Você também pode usar algum servidor MQTT gratuito famoso para testar o projeto, como “broker.mqtt-dashboard.com”, “iot.eclipse.org” etc.
const char * mqtt_server = “broker.mqtt-dashboard.com”;
3) Configurações do cliente MQTT Se o seu corretor MQTT exigir autenticação de ID do cliente, nome de usuário e senha, você precisa
mudança
if (client.connect (clientId.c_str ()))
Para
if (client.connect (clientId, userName, passWord)) // coloque seu clientId / userName / passWord aqui
Caso contrário, apenas mantenha-os como padrão. Depois disso, escolha o tipo de placa e o tipo de porta correspondentes conforme abaixo e, em seguida, carregue o esboço para o NodeMCU.
- Placa:”NodeMCU 0.9 (Módulo ESP-12)”
- Frequência da CPU:”80 MHz” Tamanho do Flash:”4M (3M SPIFFS)”
- Velocidade de upload:”115200 ″
- Porta: Escolha sua própria porta serial para seu NodeMCU
Etapa 3: Config MQTT Client (MQTTBOX)
Nesta etapa, mostraremos como criar um cliente MQTT no MQTTBox.
Abra seu MQTTBox e clique no botão azul para incluir um novo cliente MQTT.
Configure as CONFIGURAÇÕES DO CLIENTE MQTT conforme abaixo:
- Nome do cliente MQTT - Escolha qualquer nome que desejar
- Protocolo - Escolha “mqtt / tcp”
- Host - digite seu “mqtt_server” nesta coluna, certifique-se de que é igual ao seu esboço. (Usamos “broker.mqtt-dashboard.com” aqui)
- Mantenha as outras configurações como padrão
- Clique para salvar suas mudanças.
Em seguida, você entrará automaticamente na nova página. Se toda a configuração acima estiver correta, “Não conectado” mudará para “Conectado”, o nome do cliente MQTT e o nome do host serão exibidos no topo desta página.
Configuração de tópico: certifique-se de que o tópico de publicação do cliente MQTT seja o mesmo que o tópico de assinatura de esboço do Arduino (inTopic aqui). Certifique-se de que o tópico de assinatura do cliente MQTT seja o mesmo que o tópico de publicação de esboço do Arduino (outTopic here).
Etapa 4: Resultado da execução do programa
Assim que o upload for concluído, se o nome do ponto de acesso wi-fi e a configuração de senha estiverem corretos e o broker MQTT estiver conectado, abra o Serial Monitor, você verá a mensagem de publicação “hello world” no monitor serial.
Em seguida, abra o cliente MQTT e publique a carga útil “1” no tópico, este NodeMCU receberá essas mensagens assinando o “inTopic” e o LED acenderá.
Publique a carga útil “0” neste tópico, o LED NodeMCU será desligado.