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.
Exemplo simples: utilizar o Node-RED com o servidor MQTT
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-RED
Se os seus nós MQTT ficarem presos no estado "connecting", é aconselhável verificar se o flow de
MQTT authenticationainda 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óUserscom as palavras-passe que preferir e remova quaisquer comentários desnecessários conforme necessário.
Autenticação de utilizadores MQTT no Node-RED
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 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 MQTT
Ligação ao MQTT via WebSockets
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.
Escolher uma biblioteca MQTT
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.
Exemplo de ligação browser-para-MQTT via WebSockets
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 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.