Sabemos que a Internet das Coisas (ou Internet of Things – IoT) é um marco para a Industria 4.0. São diversos os benefícios relacionados ao uso de IoT, sobretudo no controle de dados e monitoramento de processos (sejam eles residenciais ou industriais). Pois bem, neste post irei mostrar como coletar dados de umidade e temperatura através do sensor DHT11 e enviá-los diretamente ao Node-RED utilizando uma Raspberry Pi.
Gostou da ideia? Pois saiba que através desta plataforma é possível coletar diversos tipos de dados de sensores e atuadores ao mesmo tempo, controlando e monitorando seu processo através de um localhost!
Material necessário
Para realizar este projeto você precisará de:
- Raspberry Pi 3 Model B+
- Cartão de memória de, no mínimo, 8 GB (recomendável: 16 GB)
- Fonte Chaveada Micro USB 5V / 3A
- Sensor de Umidade e Temperatura DHT11
- Resistor 4.7 kΩ 1/4W
- Mini Protoboard 170 Pontos
- Jumpers diversos
A plataforma Node-RED
O Node-RED, é uma ferramenta visual de código aberto, que inicialmente foi desenvolvida para implementar, criar e/ou conectar dispositivos de IoT, tendo sido estendida posteriormente para hardwares, APIs e web services. Assim sendo, por meio dos nodes (ou nós) é possível ler arquivos (CSV) e escutar eventos (http, tcp, websocket, twitter, mqtt entre outros). Ele possui um editor baseado em navegador que além de simples e compatível com todos os browsers, facilita a conexão de fluxos usando os nós do palette. E assim como o protocolo MQTT, o Node-RED também foi criado pela IBM Emerging Technology.
Quer saber mais sobre a funcionalidade do Node-RED utilizando outras plataformas? Veja este excelente post aqui no blog da MakerHero.
Preparando sua Raspberry Pi
Para configurar a sua Raspberry Pi e deixá-la operacional, veja o post Primeiros passos com a Raspberry Pi e Linux.
Agora iremos configurar a Raspberry Pi e o acesso será feito via SSH. Para saber como fazer essa configuração, acesse o post Raspberry Pi Zero W: configuração rápida para Rede e SSH.
Agora, com a Raspberry Pi configurada para o acesso via SSH, é possível acessar o terminal através do software PuTTY e, assim, instalarmos os programas necessários para executar o software “Node-RED”.
Primeiramente é importante realizar um update e um upgrade em seu sistema, através dos seguintes comandos abaixo:
sudo apt-get update apt-get upgrade
Instalação das bibliotecas necessárias na Raspberry Pi
Após configurar a Raspberry Pi, é importante instalar as bibliotecas abaixo.
Biblioteca bcm2835. Copie e cole os seguintes comandos abaixo no terminal.
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.55.tar.gz tar zxvf bcm2835-1.55.tar.gz cd bcm2835-1.55/ ./configure make sudo make check sudo make install cd sudo reboot
Biblioteca npm. Copie e cole o seguinte comando abaixo no terminal.
sudo apt-get install npm
Bem, agora podemos iniciar o Node-RED com o seguinte comando:
node-red-start
Agora, podemos abrir o navegador e digitar o IP da Raspberry Pi conforme imagem abaixo.
OBS: Digitar o IP + :1880, por exemplo: 192.168.XXX.XXX:1880
Pronto! Agora podemos ir para o próximo passo que é instalar a biblioteca DHT11 no Node-RED.
Instalando a biblioteca DHT11 no Node-RED
Para instalar a biblioteca DHT11 no Node-RED é necessário seguir o passo a passo a seguir:
No canto superior direito clique em Menu e procure por Manage palette:
Clique em Install, procure por dht e instale a biblioteca a seguir:
Após instalar a biblioteca, retorne para tela principal pressionando Close.
Desenvolvimento no Node-RED – Primeiro Teste
Na tela principal, canto superior esquerdo vá em Input, e selecione o bloco inject, arraste-o para tela de desenvolvimento.
Repita o item acima para o bloco debug, que se encontra em Output e para o bloco rpi-dht22, que se encontra em Raspberry Pi, conforme imagem abaixo:
OBS: Conectar os blocos, clicando e arrastando o mouse.
Agora é necessário editar cada um dos blocos, configurando o ambiente conforme sua necessidade. Portando de um duplo clique no bloco rpi-dht22 e o configure da seguinte forma:
Após configura-lo de acordo com a imagem acima, vamos clicar em done.
Agora, vamos dar um duplo clique no bloco msg.payload e configurar da seguinte forma:
Agora, vamos dar um duplo clique no bloco timestamp e configurar da seguinte forma:
OBS: Como temperatura e umidade varia lentamente, coloquei um refresh a cada 1 minuto.
Nosso primeiro teste está quase pronto! Certifique-se que o seu sensor DHT11 esteja conectado a sua Raspberry Pi conforme o esquema de montagem fornecido a seguir:
Pronto! Para verificar se a mensagem está chegando até o dashboard Node-RED, pressione Deploy e clique na figurinha abaixo:
Agora é só enviar os dados e testar a conexão. Para isso pressione o ícone a seguir:
Desenvolvimento no Node-RED – Criando gauge no Dashboard
Após a comunicação entre Node-RED e Raspberry Pi ter sido realizada com sucesso, vamos para próxima etapa: criar um gauge para essa aplicação. Gostou da ideia? Então se liga!
Arraste dois blocos debug, que se encontra em Output para tela de desenvolvimento. Arraste também dois blocos function, que se encontra em Function.
OBS: Lembrando que estes blocos se encontram no canto esquerdo da tela.
Agora dê um duplo clique em um dos blocos function. Neste bloco iremos parametrizar os dados de temperatura, conforme imagem a seguir:
Após configurá-lo de acordo com a imagem acima, vamos clicar em Done.
Agora dê um duplo clique no bloco function que restou. Neste bloco iremos parametrizar os dados de umidade, conforme a imagem a seguir:
Após configurá-lo de acordo com a imagem acima, vamos clicar em Done.
Agora, precisamos ligar os blocos da seguinte forma:
Após interligar os blocos conforme imagem acima, é necessário pressionar o ícone msg e logo depois podemos pressionar deploy. Agora, ao pressionar o ícone timestamp, é possível visualizar os dados de temperatura e umidade em formato de string através da saída dos blocos msg.payload!
Agora, vamos voltar lá no Menu e acessar o Manage palette. Vamos baixar a biblioteca dashboard para o Node-RED, conforme abaixo:
Clique em Install, procure por dashboard e instale a biblioteca a seguir:
Após instalar a biblioteca, retorne para tela principal pressionando Close.
Arraste dois blocos gauge que se encontram em Dashboard para tela de desenvolvimento.
Agora dê um duplo clique no bloco gauge referente a temperatura. Vamos configura-lo conforme imagens a seguir:
Após configura-los de acordo com as imagens acima, vamos clicar em Done.
Agora dê um duplo clique no bloco gauge referente a umidade. Vamos configurá-lo conforme imagens a seguir:
Após configurá-los de acordo com as imagens acima, vamos clicar em Done.
Resultado do Sensor DHT11 com Node-RED e Raspberry Pi
Agora pressione Deploy, abra uma nova aba em seu navegador e digite o IP da sua Raspberry Pi da seguinte forma:
http://192.168.XXX.XXX:1880/ui
Através desse link é possível visualizar a temperatura e a umidade em tempo real. Caso você queira obter um gráfico, é só criar um bloco chamado chart que se encontra em dashboard.
Pronto! Olha só que maneiro:
É possível trocar o fundo de tela: tem tema DARK, LIGHT e CUSTOM é só escolher de acordo com o seu gosto!
Gostou do projeto Sensor DHT11 com Node-RED e Raspberry Pi? Então deixe seu comentário logo abaixo.
Olá
Eu quero usar o sensor DHT 22, ligo ele no 5v ou em 3,3v para não queimar as portas GPIO? essa é minha duvida
Você deve ligar o DHT com um reistor, para que a tensão caia de 5V para 3,3V no GPIO.
Abraços!
Diogo – Equipe MakerHero
Fiz a conexão de alimentação do DHT-11 a partir do pino de 3.3V do Raspberry (3B+), sem usar o resistor. Funcionou normalmente.
Faltou a parte de instalação do node-red no tutorial
bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
Conforme documentação
https://nodered.org/docs/getting-started/raspberrypi
Olá Edson,
Atualmente o sistema operacional raspbian (buster) já vem com o sistema node-RED instalado.
ah versão que estou utilizando é a lite por isso tive a necessidade de instalação
é possivel criar usuarios com autenticação ? limitados ah um dash diferente? funções diferentes?