- Pré-requisitos
- Componentes Requeridos
- Instalando o Node-RED no Raspberry Pi
- Lançamento do Node-RED no Raspberry Pi
- Compreendendo a interface Node-RED
- Esquemas
- Criando um fluxo no Node-RED
- Adicionando um botão / interruptor na interface Node-RED com Raspberry Pi
Já se perguntou se havia uma maneira de fazer protótipos simples de soluções de IoT sem ter que passar dias escrevendo códigos ou construir projetos práticos avançados sem codificação. Sim, isso é possível com a plataforma Node-Red. Desenvolvido pela IBM, o Node-RED é uma ferramenta de programação de código aberto para conectar dispositivos de hardware, APIs e serviços online de uma maneira nova e interessante. Ele fornece um editor baseado em navegador que torna mais fácil conectar ' fluxos' usando a ampla gama de nós na paleta que podem ser implantados em seu tempo de execução com um único clique.
O Node-RED é uma ferramenta poderosa para construir aplicativos de Internet das Coisas (IoT) com o objetivo de simplificar o componente de programação.
Ele usa programação visual que permite conectar blocos de código, conhecidos como nós, para executar uma tarefa. Para o tutorial de hoje, examinaremos como você pode implantar projetos simples no raspberry pi usando o Node-RED. O tutorial raspberry pi node-red irá cobrir;
- Instalando o Node-RED no Raspberry Pi.
- Introdução à interface do usuário Node-RED
- Como configurar fluxos Node-RED
- Como controlar pinos GPIO Raspberry Pi com Node-RED
- Como usar entradas, saídas e if-else do Node-RED como a tomada de decisão usando interruptores
Pré-requisitos
Este tutorial será baseado no sistema operacional Raspbian stretch e presumo que você esteja familiarizado com a configuração do Raspberry Pi com ele e saiba como fazer o SSH no Pi usando um software de terminal como o putty. Se você tiver problemas com isso, existem toneladas de tutoriais do Raspberry Pi neste site que podem ajudar.
Para completar facilmente o tutorial, aconselho você a usar um monitor conectado ao raspberry pi ou o software VNC Viewer. Se você não tem um monitor e está começando do zero com o Pi, você pode ler esta configuração do Headless Raspberry Pi para continuar com este tutorial. Embora o Node-Red seja executado em um navegador da web e possa ser acessado em seu PC ao qual o Pi está conectado por meio do endereço IP do Pi, acredito que a experiência VNC / monitor proporcionará um jeito melhor de tudo.
Como uma demonstração para mostrar como o Node-Red funciona, usaremos o Node-RED para programar o Raspberry Pi para controlar um LED conectado ao seu GPIO e posteriormente modificar o programa para permitir que o LED seja controlado por um botão tátil conectado ao Pi's GPIO.
Componentes Requeridos
Os seguintes componentes são necessários para construir este projeto;
- Raspberry Pi 3 com cartão SD pré-carregado com Raspbian Stretch Pré-carregado
- Resistor de 100 ohms (1)
- LED (1)
- Placa de ensaio (1)
- Fios de ligação macho-fêmea
- Botão tátil (1)
Instalando o Node-RED no Raspberry Pi
Embora o Node-Red venha pré-instalado no Raspbian Stretch OS, precisamos atualizá-lo antes de podermos desfrutar de alguns de seus recursos mais recentes. Atualizar o Node-Red irá
- Atualize o usuário existente para LTS 8.x ou 10.x Node.js e Node-RED mais recente
- Migre todos os nós existentes globalmente instalados para o espaço ~ /.node-red dos usuários para que possam ser gerenciados por meio do gerenciador de paletas; ele NÃO atualiza nenhum nó existente instalado pelo usuário. Isso deve ser feito manualmente pelo usuário (veja abaixo).
- Opcionalmente (re) instale os nós extras que são pré-instalados em uma imagem Raspbian Pi completa.
No entanto, o processo de atualização do Node-Red é semelhante à instalação de um novo, portanto, por causa deste tutorial, vamos tratá-lo apenas como uma nova instalação para que as pessoas que usam outras versões do sistema operacional possam acompanhar.
Siga as etapas abaixo para instalar / atualizar o Node-RED no seu Raspberry Pi.
Começamos atualizando e atualizando o pi, para garantir que tudo nele esteja atualizado e evitar problemas de compatibilidade. Faça isso abrindo um terminal ou via ssh, e execute;
Sudo apt-get update
Seguido por
sudo apt-get upgrade
Feito isso, execute o script bash abaixo no terminal;
bash <(curl -sL
O script bash fará o seguinte
- Pergunte se você deseja (re) instalar os nós Pi extras
- Salve uma lista de todos os nós-red- nós instalados globalmente encontrados em / usr / lib / node_modules
- apt-get remove Node-Red existente
- remover quaisquer binários node-red de / usr / bin e / usr / local / bin
- Remova quaisquer módulos node-red de / usr / lib / node_modules e / usr / local / lib / node_modules
- Detectar se o Node.js foi instalado a partir do pacote Node.js ou Debian
- Se não for v8 ou mais recente - remova conforme apropriado e instale o LTS v8 ou v10 mais recente (sem usar o apt).
- Limpe o cache npm e o cache.node-gyp para remover qualquer versão anterior do código
- Instale a versão mais recente do Node-RED
- Reinstale sob a conta do usuário quaisquer nós que tenham sido previamente instalados globalmente
- Reinstale os nós Pi extras, se necessário
- Reconstruir todos os nós - para recompilar quaisquer binários para corresponder à versão mais recente do Node.js.
- Adicione os comandos node-red-start, node-red-stop e node-red-log a / usr / bin
- Adicionar atalho e ícone do menu
- Adicionar script de sistema e definir usuário
- Se em um Pi, adicione uma temperatura da CPU -> exemplo de IoT
O script bash acima executa muitos comandos como sudo e exclui o Node.js existente e os diretórios principais do Node-RED. Você pode verificar o conteúdo do script nesta página do GitHub antes de executá-lo para ter certeza de que ele não afetará nenhum projeto que você já tenha no Pi.
Com a instalação concluída, você deve ver o ícone do Node-Red na lista de aplicativos de programação do seu menu.
Lançamento do Node-RED no Raspberry Pi
O Node-Red pode ser iniciado através da seção de menu do desktop do seu raspberry pi, através do terminal ou via ssh.
Para iniciar na área de trabalho do raspberry pi, clique no ícone do Raspberry, passe o mouse em Programação e clique em Node-RED (Menu> Programação> NodeRed) para iniciá-lo.
Ele também pode ser iniciado a partir do ssh ou terminal executando;
node-red-start
Você deve ver uma janela como a abaixo mostrando o lançamento do nó vermelho na área de trabalho.
Depois de ver isso, vá para menu-> internet e inicie o navegador da web chromium. Embora o seu Raspberry pi não precise da Internet para executar o Node-Red, ele usa um navegador como interface.
Com o chromium lançado, digite localhost: 1880 na barra de endereços seguido da tecla Enter. 1880 é a porta no raspberry pi em que o Node-Red está predefinido para se comunicar. Isso deve exibir a interface Node-Red conforme mostrado na imagem abaixo.
Compreendendo a interface Node-RED
A interface Node-Red compreende o painel de fluxo, a paleta de nós, o console de depuração e o console de informações, conforme destacado na imagem acima.
O painel de fluxo é onde os nós são unidos para criar um programa que em Node-Red é chamado de fluxo, enquanto a paleta de nós é composta por objetos que são representativos de hardware, protocolos e recursos de software associados a dispositivos. Inclui protocolos como MQTT para IoT e modos de entrada e saída GPIO para placas como o raspberry pi. O console de informações fornece informações sobre objetos destacados / selecionados enquanto o console de depuraçãofunciona exatamente como o monitor Arduino Serial e pode fornecer feedback enquanto o fluxo está em execução. O botão de implantação é usado para fazer upload do fluxo para o hardware de destino. O botão Menu contém diferentes tipos de upload para ajudá-lo a obter o melhor de seu projeto. Com o Node-Red instalado e funcionando, agora podemos prosseguir com a construção do projeto de demonstração.
Esquemas
Conforme mencionado durante a introdução, nosso projeto de demonstração de hoje será controlar o GPIO do Raspberry Pi usando um fluxo Node-RED. Para mostrar a variação no estado do GPIO, conectaremos um LED ao GPIO de forma que, quando aquele pino GPIO específico for ligado, o LED acenda e vice-versa.
Conecte o LED ao Raspberry PI conforme mostrado nos esquemas abaixo.
Eu também construí o mesmo no meu hardware usando uma placa de ensaio, LED, resistor e alguns fios de conexão. A configuração do meu hardware fica parecida com esta assim que as conexões são feitas.
Este projeto pode ser facilmente convertido em um projeto de automação residencial, apenas substituindo o LED por um relé e qualquer aparelho AC, aprenda como fazer isso passando por vários projetos de automação residencial.
Criando um fluxo no Node-RED
Com o LED conectado, podemos prosseguir para desenvolver o fluxo. Os programas em NodeRed são chamados de fluxos, assim como o IDE do Arduino os chama de sketches. Os fluxos são criados usando uma combinação de nós. Você pode criar vários fluxos que podem ser executados ao mesmo tempo, mas, para este tutorial, criaremos um único fluxo para ligar / desligar o LED.
Para começar, role até a parte inferior da paleta Nodes, você verá a seção de nós pi do raspberry no final com dois nós rotulados como rpigpio. Esses nós são usados para comunicação com o GPIO do raspberry pi. Um dos nós é para entrada, enquanto o outro é para saída diferenciada pela posição do logotipo do raspberry pi. Para o nó de entrada, o logotipo vem antes do texto, enquanto para o nó de saída, o logotipo vem depois do texto, conforme mostrado na imagem abaixo.
Para este tutorial, faremos uso do nó de saída, arraste-o para a seção de fluxo da interface. Esta etapa é semelhante a declarar um pino específico de seu Arduino como Saída usando o comando pinMode () . Dê um clique duplo no nó Saída e uma janela pop-up será aberta conforme mostrado abaixo para permitir que você edite as propriedades do nó.
Na seção de propriedade do pino, selecione GPIO17 (pino 11). Em seguida, defina a propriedade de tipo para “ saída digital ” e marque “ Inicializar estado do pino?” caixa de seleção deixando a opção “ nível inicial de pin ” baixa (0). Dê ao nó o nome que desejar e clique no botão Concluído.
O nome do nó deve mudar automaticamente para aquele que você inseriu na configuração de propriedades. Por exemplo, chamei-o de LED e, portanto, o nome do nó também é alterado como LED, conforme mostrado abaixo.
Para ligar / desligar o LED, precisamos usar uma entrada, algo para direcionar a ação. Embora possamos usar um botão de ação, quero usá-lo para apresentar o recurso do Node-RED que permite a injeção de mensagens nos fluxos. Esse recurso é chamado de nó de injeção. Estaremos usando dois nós de injeção. Uma delas será para acender o LED, enquanto a outra será para desligá-lo.
Vá para a paleta de nós e arraste o nó de injeção para o fluxo. É o primeiro nó da paleta com uma seta, o nó de injeção é destacado na imagem abaixo.
Clique duas vezes nele para editar suas propriedades. Altere o tipo de dados para string clicando na lista suspensa na frente da carga útil e digite 1 na caixa Carga útil. O valor na caixa de carga útil é o que será injetado no fluxo quando o nó for pressionado. Defina o nome do nó como “LIGADO” Pressione o botão “Concluído” para salvar.
Repita o procedimento acima para o segundo nó, definindo o valor da carga útil como “0” e seu nome como “desligado”, conforme mostrado abaixo.
Na função de propriedades, a lista suspensa de repetição pode ser usada para automatizar a injeção de forma que os botões sejam pressionados em intervalos. Isso pode ser usado para criar o efeito de piscar. Junte os nós conforme mostrado abaixo, arrastando o ponto cinza em um dos nós para o outro para criar o fluxo.
Feito isso, concluímos nosso primeiro Node-Red Flow.
O próximo passo é implantar o flow no framboesa pi. Clique no botão vermelho de implantação. Você deve ver o flash “implantado com sucesso” na parte superior da tela, conforme mostrado abaixo.
Clique no botão cinza atrás dos nós de injeção para ativar cada um dos nós.
Ao clicar no nó de injeção “on”, você deverá ver o “on” injetado com sucesso e o LED acenderá. O LED deve desligar quando o nó de injeção “desligado” for clicado.
É isso aí. O funcionamento completo dessa configuração pode ser encontrado no vídeo com link na parte inferior desta página.
Adicionando um botão / interruptor na interface Node-RED com Raspberry Pi
Para explicar como conectar / adicionar um elemento de entrada ao seu fluxo, levaremos o fluxo acima adiante, adicionando um botão para substituir os nós de injeção.
Conecte o botão no raspberry pi, de forma que uma perna do botão seja conectada ao terra e a outra seja conectada ao pino GPIO 4 (pino 11) do raspbery pi, conforme ilustrado nos esquemas abaixo.
Feito isso, volte para Node-Red e exclua os dois nós de injeção que usamos anteriormente, clicando nos nós e pressionando delete no teclado ou clicando duas vezes nos nós e pressionando delete na janela pop-up. Com isso feito, role a paleta de nós para a seção raspberry pi e selecione o nó de entrada. É aquele com o ícone de framboesa pi à esquerda, antes do nome do nó.
Arraste o nó para o fluxo e clique duas vezes nele para editar as propriedades. Defina o pino como GPIO 4 (pino 11) e defina o menu suspenso na frente do resistor para pull-up. Isso “puxará” o GPIO 4 para HIGH. Clique no botão concluído após definir as propriedades.
Para nos permitir tomar decisões lógicas quando o switch é pressionado, em vez de apenas curto-circuitar o GPIO4 ao aterramento, usaremos o nó do switch. Pesquise-o na paleta do nó, na seção de função e arraste para o fluxo.
O nó switch permite que você tome decisões de maneira semelhante às instruções “if”. Ele pode ser configurado para ter diferentes saídas dependendo do valor de entrada. Para este tutorial, iremos configurá-lo com dois caminhos de saída, de modo que, quando a propriedade msg.payload for igual a 1 (a chave não está pressionada) ela deve seguir o primeiro caminho e um segundo caminho será seguido se qualquer outra entrada diferente de 1 é observado na entrada (a chave está pressionada). Os caminhos são adicionados usando o botão “+ adicionar”. Clique duas vezes no nó e configure conforme descrito acima. Clique em concluído quando terminar.
Assim que você clicar no botão concluído, deverá ver os dois caminhos refletidos na perspectiva do nó de switch, já que agora ele terá duas junções na saída.
Em seguida, precisamos trazer um nó de “mudança”. O nó de mudança será usado para definir o estado do LED com base no resultado do nó de argumento.
Estaremos usando dois dos nós de mudança. A carga útil do primeiro será definida como 0 conforme mostrado na imagem abaixo e a carga útil do segundo será definida como um. Clique em concluído após editar as propriedades de ambos.
Para explicar melhor, lembra que usamos o resistor pull-up? Assim, quando o botão não for pressionado, a saída naquele pino será ALTA (1), o que significa que se passarmos pelo nó da chave, o LED ficará “aceso”, já que não deveria ser assim, iremos use o nó “alterar” para defini-lo como LOW (0). O segundo nó de “mudança” é usado para definir o valor para um de forma que quando qualquer coisa diferente do estado HIGH do pino 4 do GPIO for detectado, ele deve ligar o LED “on”, pois isso significa que o botão foi pressionado. Conecte os nós de mudança e o resto dos nós juntos, conforme mostrado na imagem abaixo.
Feito isso, agora estamos prontos para implantar o projeto. Verifique a conexão para garantir que tudo está como deveria estar e clique no botão implantar. Como de costume, se for bem-sucedido, você verá o pop-up de implantação bem-sucedido e agora poderá controlar o led usando o interruptor.
Embora o Node-Red facilite e agilize o protótipo de sua construção sem se preocupar com o código, pode não ser a melhor opção, especialmente para desenvolvedores experientes que desejam flexibilidade e controle sobre o programa. No entanto, é uma ótima ferramenta que permite a criação de protótipos em minutos.
Até a próxima!