Sensor DHT11 com Node-RED e Raspberry Pi 2

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.

DHT11 com 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:

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 FilipeFlop.

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

Terminal configuração DHT11 com Raspberry Pi

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

Tela do NodeRED

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:

Manage Palette NodeRED

Clique em Install, procure por dht e instale a biblioteca a seguir:

DHT11 com Raspberry Pi e NodeRED

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:

Programação NodeRED

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:

Configuração do bloco DHT22

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:Config output

Agora, vamos dar um duplo clique no bloco timestamp e configurar da seguinte forma:

Timestamp DHT11 com Raspberry Pi

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:

Esquemático DHT11 com Raspberry Pi

Pronto! Para verificar se a mensagem está chegando até o dashboard Node-RED, pressione Deploy e clique na figurinha abaixo:

Debug DHT11 com Raspberry Pi

Agora é só enviar os dados e testar a conexão. Para isso pressione o ícone a seguir:

Teste conexão DHT11 com Raspberry Pi e NodeRED

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:

Bloco function

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:

Umidade DHT11 com Raspberry Pi

Após configurá-lo de acordo com a imagem acima, vamos clicar em Done.

Agora, precisamos ligar os blocos da seguinte forma:

Deplor DHT11 com Raspberry Pi e NodeRED

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:

Dashboard DHT11 com Raspberry Pi

Após instalar a biblioteca, retorne para tela principal pressionando Close.

Arraste dois blocos gauge que se encontram em Dashboard para tela de desenvolvimento.

Gauge DHT11 com Raspberry Pi

Agora dê um duplo clique no bloco gauge referente a temperatura. Vamos configura-lo conforme imagens a seguir:

Configuração Gauge passo 1

Configuração Gauge passo 2

Configuração Gauge passo 3

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:

Configuração Gauge da Umidade DHT11 com Raspberry Pi

Configuração Gauge da Umidade DHT11 com Raspberry Pi passo 2

Configuração Gauge da Umidade DHT11 com Raspberry Pi passo 3

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 Deployabra 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:

Gauges configurados

Temas de Gauge

É 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. Em caso de dúvidas, caso queira trocar uma ideia, ou até mesmo dividir seu projeto, acesse nosso Fórum!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

2 Comentários

  1. é possivel criar usuarios com autenticação ? limitados ah um dash diferente? funções diferentes?