Faça login para adicionar itens aos seus favoritos.

Franzininho WiFi: Sensor de temperatura e umidade DHT22

Introdução

O sensor ‘DHT’ (Digital output relative Humidity & Temperature), ou também conhecido como AM2302, possui um pino bidirecional, responsável por enviar as medidas de temperatura e umidade relativa, bem como receber comandos, tudo isso apenas por um fio. Nesse tipo de comunicação, não existe presença do clock, o que torna a troca de informações lenta devido aos delays dentro do enlace. O protocolo que rege a comunicação é conhecido como One Wire. No invólucro interno do dispositivo, há dois sensores: um de temperatura (NTC) e outro de umidade relativa capacitivo, ambos conectados a um microcontrolador de 8 bits, o qual é responsável por capturar as leituras analógicas e torná-las digitais.

Ao consultar a temperatura ambiente ou nível de umidade relativa no ar, procuramos atender ao conforto térmico ou realizar o monitoramento de um ambiente. Para isso, é necessário ter em mãos um sensor de qualidade. 

Neste artigo vamos desenvolver um exemplo prático para leitura de temperatura e umidade usando o DHT22 com a Franzininho WiFi. 

Instalação da Biblioteca para leitura do DHT22

Antes de iniciar nosso projeto, vamos instalar no Arduino IDE a biblioteca responsável por comunicar-se com o DHT22.

Embarcados Experience 2024: Evento Presencial

Participe do Embarcados Experience 2024 em São Paulo. Conhecimento técnico, palestras, workshops e oportunidade de networking com profissionais experientes.

Inscreva-se agora

Acesse: Ferramenta -> Gerenciador de Bibliotecas (Tools  -> Manager Libraries)

Figura 1: Acessando o gerenciador de bibliotecas

Após acessar o Gerenciador de biblioteca vai surgir uma janela como apresentada abaixo e vamos digitar no campo de texto: “dht”. Aguarde carregar a lista de bibliotecas e procure por:  DHT sensor library by Adafruit. Por fim clique no botão install.

Figura 2: Instalação da biblioteca

Biblioteca DHT sensor library by Adafruit

Nesta seção vamos abordar os métodos presentes dentro da biblioteca “DHT.h” .

begin()

Configura o pino conectado ao sensor em pull up e tempo 

  • usec : parâmetro opcional(pode ser omitido ao chamar o método) usado para aguardar o tempo antes de iniciar as leituras.

readTemperatura()

Pega as leituras de temperatura. 

  • S : seleciona a escala da temperatura (Celsius – false  e Fahrenheit – true).
  • force : força para entrar no modo leitura.

Retorna o valor de temperatura na escala selecionada.

readHumidity()

Pega as leituras de umidade relativa do ar.

  • force : força para entrar no modo leitura.

Retorna  valor de umidade.

Materiais necessários

Para desenvolver nossa aplicação os materiais utilizados foram:

  • Placa Franzininho WiFi
  • DHT22
  • Resistor 4,7k ohms.
  • Jumpers
  • Arduino IDE 

Circuito para leitura do DHT22

No nosso circuito, é importante ter em mente que o sensor DHT22 possui quatro pinos: um para dados, dois para alimentação (VCC e GND) e outro que não é conectado. Vamos conectar o pino de dados à GPIO4 e utilizar um resistor de pull-up. A imagem abaixo ilustra a conexão para nos auxiliar

DHT22
Figura 2: Esquema de montagem com a Franzininho WiFi e o sensor DHT22

Para mais informações sobre o sensor consulte o datasheet. Na imagem abaixo temos a referência de cada pino. 

DHT22
Figura 3: Pinos de saída do sensor

Código

No projeto proposto, realizaremos a leitura da temperatura e umidade relativa do ar utilizando o sensor DHT22. Abaixo está o código comentado. Caso surjam dúvidas em relação aos métodos utilizados, consulte a seção sobre os detalhes da biblioteca DHT para obter mais informações. 

Simule esse exemplo no Wokwi: https://wokwi.com/projects/366181593139899393

Explicação do Código

Nesta seção, explicaremos o código linha por linha, para garantir uma compreensão completa e entender a finalidade de cada função utilizada.

Incluiu-se a biblioteca do DHT para acessar a classe que inclui todos os métodos utilizados para iniciar a comunicação com o dispositivo.

Define-se o pino físico utilizado para conectar-se ao sensor.

Declaramos o construtor junto aos seus parâmetros de pino (DHTPIN) e o tipo de DHT (DHT11, DHT22 ou DHT21). 

Criamos uma estrutura de dados para organizar todos os dados referentes ao DHT (temperatura e umidade). Logo em seguida declaramos a estrutura de dados.

No setup, configuramos o canal de comunicação serial com Baud Rate de 115200 (bps).

Inicializamos o driver do sensor e imprimimos na tela informando que estamos prontos para rodar o programa. Entenda por driver, um código que abstrai muitas a camada mais baixo nível entre o DHT e o Franzininho WiFi. 

No loop, onde vamos rodar repetidamente o programa, recebemos a leitura da umidade e da temperatura.  

Caso uma das leituras não seja valores numéricos, então consideramos a leitura inválida e imprime no Monitor Serial a frase “Falha na leitura!”.

Caso contrário, as leituras sendo válidas, imprimiremos os valores de temperatura e umidade. Após essa etapa aguardamos dois segundos, pois a taxa de amostragem de dados é 0.5 Hz (2 segundos).

Conclusão

Neste artigo, abordamos o módulo DHT22 e apresentamos um exemplo simples de projeto para realizar a leitura de temperatura e umidade em um ambiente. No entanto, esse módulo possui diversas possibilidades de aplicação, como a criação de algoritmos para controlar o acionamento de refrigeradores ou aquecedores, monitorar estufas e muito mais. Encorajamos os leitores a explorar ao máximo o potencial desse módulo e compartilhar seus resultados e projetos com a comunidade.

Outros artigos da série

<< Franzininho WiFi: Display OLEDFranzininho WiFi: Sensor de temperatura DS18B20 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Home » Arduino » Franzininho WiFi: Sensor de temperatura e umidade DHT22

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: