Introdução

Neste tutorial, vamos explorar o mundo da Internet das Coisas (IoT) utilizando Node-RED, uma ferramenta poderosa que permite a criação de aplicações IoT através de fluxos visuais. Em vez de codificar tudo, o Node-RED utiliza um modelo baseado em arrastar e soltar para conectar dispositivos e serviços. Neste artigo, abordaremos como integrar diferentes dispositivos IoT e serviços da web, utilizando APIs de maneira eficiente. Vamos detalhar cada etapa, desde a instalação do Node-RED até a criação de fluxos que interagem com dispositivos físicos e serviços em nuvem, proporcionando uma experiência prática e acessível para desenvolvedores e entusiastas de IoT.

Etapas

  1. Instalação do Node-RED

    Primeiramente, você precisa instalar o Node-RED em sua máquina. Node-RED é uma aplicação Node.js, portanto, certifique-se de que o Node.js está instalado. Utilize o comando abaixo para instalar o Node-RED globalmente.

    commands
    # Verificar se o Node.js está instalado
    node -v
    npm -v
    # Instalar o Node-RED globalmente
    npm install -g node-red

  2. Iniciando o Node-RED

    Depois de instalado, inicie o Node-RED utilizando o comando abaixo. O aplicativo iniciará e você poderá acessá-lo pelo navegador na URL http://localhost:1880.

    commands
    # Iniciar o Node-RED
    node-red

  3. Criando o Primeiro Fluxo

    Uma vez que o Node-RED estiver em execução, acesse a interface web. Drag and drop um nó ‘inject’ e um nó ‘debug’ em sua área de trabalho e conecte-os. Esse fluxo simples permite que você envie uma mensagem que será exibida no painel de debugg no lado direito.

    image
    A parsial do fluxo de exemplo no Node-RED, apresentando um nó 'inject' conectado a um nó 'debug'.

    commands
    # No Node-RED, use o seguinte JSON para importar o fluxo:
    {
    "nodes": [
    {"id":"inject1","type":"inject","name":"Injetar Mensagem","topic":"","payload":"Hello World","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":100,"wires":[["debug1"]]},
    {"id":"debug1","type":"debug","name":"Debug","active":true,"tosidebar":true,"console":false,"tostatement":false,"tosequence":false,"x":300,"y":100,"wires":[]}
    ]
    }

  4. Integrando uma API Externa

    Para integrar uma API, adicione um nó ‘http request’ ao seu fluxo. Configure o nó para fazer uma requisição Get para uma API pública, como a API de previsão do tempo. Conecte o nó ‘inject’ a esse nó e também um nó ‘debug’ para visualizar a resposta.

    image
    Fluxo mostrando um nó 'http request' conectado a um 'inject' e a um 'debug'.

    commands
    # Para importar um JSON que faz uma requisição a uma API, use este exemplo:
    {
    "nodes": [
    {"id":"inject2","type":"inject","name":"Pedir Previsão","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":200,"wires":[["http_request"]]},
    {"id":"http_request","type":"http request","name":"Request","method":"GET","ret":"txt","url":"https://api.openweathermap.org/data/2.5/weather?q=London&appid=YOUR_API_KEY","x":300,"y":200,"wires":[["debug2"]]},
    {"id":"debug2","type":"debug","name":"Debug API Result","active":true,"tosidebar":true,"console":false,"tostatement":false,"tosequence":false,"x":500,"y":200,"wires":[]}
    ]
    }

  5. Interagindo com Dispositivos IoT

    Agora vamos adicionar um nó para controlar um dispositivo IoT, como um LED conectado ao Raspberry Pi. Utilize o nó ‘rpi-gpio out’ para definir como o LED será acionado. Conecte um nó ‘inject’ que permita ativar e desativar o LED.

    image
    Um fluxograma mostrando um nó 'rpi-gpio out' controlando um LED.

    commands
    # Para importar um fluxo que controla um LED, use este JSON:
    {
    "nodes": [
    {"id":"inject3","type":"inject","name":"Ligar LED","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":"0.1","x":100,"y":300,"wires":[["rpi_gpio_out"]]},
    {"id":"rpi_gpio_out","type":"rpi-gpio out","name":"LED","pin":"11","set":"","level":"0","x":300,"y":300,"wires":[]}
    ]
    }

  6. Testando o Fluxo de IoT

    Agora que você configurou seu fluxo, clique no botão no nó ‘inject’ para acionar o dispositivo ou fazer a requisição da API. Confira a saída no painel ‘debug’ para garantir que tudo está funcionando corretamente.

    commands
    # Para testar, clique no botão do nó 'inject' e observe os logs no painel de debug.

  7. Exportando e Compartilhando o Fluxo

    Você pode exportar seu fluxo para compartilhar com outros. No Node-RED, clique no ícone do menu no canto superior direito, escolha ‘Exportar’ e copie o JSON gerado. Este pode ser importado por outros usuários em suas instâncias do Node-RED.

    commands
    # Para exportar, clique no menu e escolha 'Exportar -> Todo o fluxo' e copie o JSON.

Conclusão

Neste tutorial, exploramos os conceitos fundamentais do Node-RED, integrando dispositivos físicos e serviços da web através de fluxos visuais. Aprendemos a instalar o Node-RED, a criar fluxos simples e a interagir com APIs externas e dispositivos IoT. Com esta base, você está pronto para avançar em projetos complexos de IoT, aproveitando a flexibilidade e a facilidade de uso que o Node-RED oferece. A prática constante irá aprimorar suas habilidades e ampliar as possibilidades dentro do mundo da Internet das Coisas.

Hashtags

#IoT #NodeRED #APIs #DesenvolvimentoVisual #InternetDasCoisas