Node-RED: Servidor MQTT

Como ligar o Node-RED ao servidor Mosquitto MQTT

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução Node-RED cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Servidor MQTT incluído (Mosquitto).
  • Acesso completo à interface de administração do Node-RED.
  • Dashboard do Node-RED incluído.
  • Servidor de email SMTP ilimitado e dedicado incluído.
  • Atualizações sem esforço com apenas um clique.
  • Nome de domínio personalizável seguro com HTTPS (por exemplo, https://node-red.sua-empresa.com).
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de hospedagem em cloud Node-RED da Stackhero!

O serviço Node-RED da Stackhero inclui um servidor MQTT integrado, facilitando a integração dos seus dispositivos IoT através de canais de comunicação seguros e fiáveis.

Para começar, basta aceder ao painel da Stackhero, localizar o seu serviço Node-RED e ativar a opção "MQTT Server" nas definições de configuração do serviço.

Depois de ativar o servidor, pode ligar-se a ele através da porta 8883. Todas as ligações são protegidas com encriptação TLS, garantindo a segurança dos seus dados.

Se está a iniciar-se no MQTT com o Node-RED, aqui tem um exemplo simples para o ajudar a começar rapidamente. Este exemplo mostra como enviar uma mensagem para um tópico e receber mensagens desse mesmo tópico. Pode descarregar o exemplo de flow e importá-lo na sua instância Node-RED através do menu "Import".

Exemplo simples de ligação MQTT ao Node-REDExemplo simples de ligação MQTT ao Node-RED

Se os seus nós MQTT ficarem presos no estado "connecting", é aconselhável verificar se o flow de MQTT authentication ainda está presente. Se estiver em falta, pode descarregá-lo aqui: mqttAuthenticationFlow.json. Importe este flow para a sua instância Node-RED, atualize o nó Users com as palavras-passe que preferir e remova quaisquer comentários desnecessários conforme necessário.

A gestão da autenticação de utilizadores MQTT é simples através de um flow dedicado no Node-RED. Pode encontrar o flow "MQTT Authentication" diretamente no painel de administração do Node-RED.

Flow de autenticação MQTTFlow de autenticação MQTT

Dentro deste flow de autenticação, procure o nó template Users. Este nó contém um array onde pode definir as credenciais de cada utilizador. Tem flexibilidade para adicionar tantos utilizadores quanto o seu projeto necessitar.

Nota: O utilizador node-red é essencial para a ligação do Node-RED ao servidor MQTT. Certifique-se de não remover este utilizador da sua configuração.

Nó de utilizadores MQTTNó de utilizadores MQTT

Tem a flexibilidade de se ligar ao servidor Mosquitto MQTT utilizando tanto o protocolo MQTT como WebSockets.

Embora o protocolo MQTT seja leve e ideal para dispositivos IoT, não é suportado nativamente pelos browsers. Se pretende interagir com o seu servidor MQTT a partir de um browser, deverá utilizar WebSockets. Esta abordagem permite encapsular o tráfego MQTT dentro do protocolo WebSocket e funciona perfeitamente com os serviços da Stackhero.

Para ativar a conectividade WebSocket, basta ativar a opção "WebSocket Support" no seu painel Stackhero. Uma vez ativada, pode configurar o seu cliente para utilizar o URL WebSocket: wss://<XXXXXX>.stackhero-network.com:443/mqtt. Certifique-se de substituir o endereço padrão mqtts://<XXXXXX>.stackhero-network.com por este URL WebSocket para ligações baseadas em browser.

Para desenvolvimento, poderá achar a biblioteca "MQTT.js" especialmente útil. Trata-se de uma biblioteca JavaScript robusta, compatível tanto com Node.js como com ambientes de browser. Pode saber mais consultando o seu repositório oficial.

Se procura um exemplo prático de como ligar o seu browser ao servidor MQTT usando WebSockets, pode consultar este repositório: https://github.com/stackhero-io/mqttWebSocketGettingStarted. Sinta-se à vontade para modificar o ficheiro src/index.html com o url, username e password do seu servidor para adaptar à sua configuração.

Exemplo MQTT WebSocketExemplo MQTT WebSocket

Antes de testar esta configuração, certifique-se de que o suporte WebSocket está ativado no seu painel Stackhero. Isto garante que tudo funciona corretamente para ligações a partir do browser.