Node-RED: Servidor MQTT

Como ligar o Node-RED ao servidor Mosquitto MQTT

Bem-vindo à documentação da Stackhero

A Stackhero disponibiliza um ambiente Node-RED cloud totalmente gerido, concebido para que possa criar workflows rapidamente:

  • Servidor MQTT integrado (Mosquitto) para uma integração IoT sem complicações.
  • Acesso total à interface de administração Node-RED para gerir fluxos e definições.
  • Node-RED Dashboard incluído para visualização em tempo real.
  • Servidor de email SMTP dedicado incluído, sem limites de envio.
  • Atualizações com um clique para manter a sua instância sempre atualizada.
  • Domínios personalizados com HTTPS automático: por exemplo, https://node-red.sua-empresa.com.
  • Elevada performance e forte segurança graças a uma infraestrutura privada e dedicada.

Pode ter uma instância de Node-RED cloud hosting segura e pronta para produção em cerca de 5 minutos. A Stackhero trata da configuração, atualizações e infraestrutura, para que se possa focar na criação das suas automações.

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.