Projeto ESP32 com Display OLED e Sensor AM2302 DHT22 Medindo Temperatura e Umidade

Nesse Projeto ESP32 com Display iremos usar o Sensor AM2302 para exibir informações de temperatura e umidade no display integrado do NodeMCU ESP32 Display OLED. Veremos como utilizar a...

Nesse Projeto ESP32 com Display iremos usar o Sensor AM2302 para exibir informações de temperatura e umidade no display integrado do NodeMCU ESP32 Display OLED. Veremos como utilizar a biblioteca DHT para a interação com o sensor e usaremos funções da biblioteca SSD1306 para visualizar os dados na ESP.

AM2302

O Sensor de Umidade e Temperatura AM2302, também conhecido como DHT22, é utilizado para medir a temperatura nas escalas de -40 a 125° C  e umidade do ar nas faixas de 0 a 100%, contando com precisão que varia de 2 a 5%. Algumas de suas características mais relevantes são o baixo consumo de energia, a calibração totalmente automatizada e a saída única de sinal através de um barramento digital padrão e, acima de tudo, a sua fácil utilização. Como resultado disso, esse módulo é um grande aliado para o efetivo desenvolvimento de projetos.

Projeto ESP32 com Display OLED e Sensor AM2302 DHT22

Em primeiro lugar, no Projeto ESP32 Display OLED com Sensor DHT22 Medindo Temperatura e Umidade, vamos programar esse sensor na IDE do Arduino, precisaremos instalar a biblioteca DHT. Para isso,  basta acessar o menu “Ferramentas”, na IDE do Arduino, e clicar em “Gerenciar Bibliotecas…”. Uma janela, como ilustrado abaixo, irá aparecer. No canto superior esquerdo, digite “DHT” e pressione “Enter”, no teclado. Assim que o gerenciador encontrar a biblioteca que precisamos, ele a exibirá conforme ilustrado abaixo. Por fim, selecione a versão (nesse tutorial utilizamos a versão 1.2.3) e então clique em “Instalar” e aguarde o término do processo.

Para seguir esse tutorial esp32, tenha em mãos os materiais da seguinte lista:

 

Materiais

Esquema do circuito do Projeto ESP32 Display + Sensor AM2302 DHT22

Com os materiais em mãos, é hora de montar o circuito! Verifique-o no diagrama abaixo.

A tensão de alimentação do sensor é de 3 – 5,5V, ou seja, podemos conectá-lo no Vin, como mostrado na figura acima, ou também na porta de 3V3, conforme seja necessidade do seu projeto. O cabo de dados foi conectado na porta 16.

Na sequência, vamos para o código. Na IDE do Arduino, cole o código abaixo. Lembre-se que, ao passar o código, deve-se pressionar o botão “Boot” na placa e, após o código ter sido carregado, pressiona-se o botão “EN” para que ele seja executado.

Código

#include "DHT.h"
#include "SSD1306.h"

SSD1306 display(0x3c, 5, 4);
DHT dht(16, DHT22);

float t; //Temperatura
float h; // Umidade

void setup() {
 dht.begin();
 display.init();
 display.clear();
}

void loop() {
 h = dht.readHumidity();
 t = dht.readTemperature();

 display.clear();
 display.drawRect(10, 10, 80, 50);
 display.setFont(ArialMT_Plain_16);
 display.drawString(20, 14, (String)t+" °C");
 display.drawString(20, 35, (String)h+" %");
 display.flipScreenVertically();
 display.display();

 delay(1000);
}

Logo no início, há as inclusões de bibliotecas, DHT e SSD1306, usadas para o sensor AM2303 e o display, respectivamente. Em seguida, na linha 04, declaramos um objeto display, conectado nos pinos 5 e 4. Na linha 05, é declarado um objeto dht, do sensor de temperatura e umidade, conectado no pino 16. Nesse último, é especificado também o modelo, que no nosso caso é o DHT 22.

Em seguida, duas variáveis são criadas para armazenar os valores de temperatura e umidade.

 

Void Setup

No void setup, há duas inicializações de objetos, referentes ao sensor e ao display. Nelas são executadas rotinas de códigos internos à essas bibliotecas. Em seguida, a função display.clear() é utilizada para apagar quaisquer caracteres que poderiam haver no display, de códigos passados anteriormente.

 

Void Loop

Já no void loop, nas linhas 17 e 18, são executadas duas funções de leitura do sensor, uma para a umidade e outra para a temperatura. Essas funções são provenientes da biblioteca DHT. Na sequência, da linha 20 até 26, criamos o retângulo na tela, apenas para efeito estético. Além disso, nas linhas 23 e 24, escrevemos os valores de temperatura e umidade, respectivamente. Ainda, note que foi utilizado um (String) antes da variável h, apenas por questões de formalização, explicitando para o compilador encarar o h como uma String. Também utilizamos o operador + para concatenar (juntar) a variável t e h com o símbolo de graus centígrados e percentagem, respectivamente.

Finalmente, na linha 25 é executado uma função para inverter o display, que utilizamos apenas para representar melhor o projeto na protoboard. Essa linha pode ser removida, sem prejuízo a funcionalidade do código, caso o seu projeto não necessite dela. Em seguida, é executada a função que exibe todas as configurações anteriormente passadas. Por fim, há um delay de um segundo, visto que no ambiente em que fizemos o projeto não há alterações bruscas na temperatura ou umidade.

 

Conclusão

Com o desenvolvimento desse projeto ESP32 com Display OLED e Sensor AM2302 DHT22 Medindo Temperatura e Umidade, espera-se ter contribuído para o conhecimento do prezado leitor. Certamente projetos como esse servirão de base para aplicações muito mais complexas. Diversos conceitos aprendidos aqui poderão ser aplicados em outras situações. Assim como poderão ajudar a construir soluções para situações diferentes. Fique por dentro do blog para novos tutoriais!

Conheça toda linha de produtos NodeMCU ESP32 na UsinaInfo!

Categorias
ESP32

Bacharel em Ciência da Computação pela URI – Campus de Santo Ângelo, com experiência no desenvolvimento de pesquisas em Robótica e prototipação de Sistemas Robóticos.
Sem Comentários

Enviar Resposta

*

*

Sobre nós

Hoje a Usinainfo é um dos maiores ecommerces de Ferramentas, Peças para Eletrônica, Componentes Eletrônicos, Sensores e Arduino do Brasil, contando com uma grande diversidade de produtos na linha de eletrônica.

Sugestões
  • O Projeto Arduino de Irrigação Automática nos mostra que sempre existe algo escondido que nos arranca um sorriso e nos deixa impressionado. Conhecimento nunca é de mais e desbravar...
  • O ESP32 LoRa WiFi é uma pequena placa de desenvolvimento que integra três formas distintas de comunicação: Wifi, Bluetooth e a rede de comunicação de longo alcance – LoRa...
  • Adicionar em um Projeto ESP32 um Display torna a visibilidade de dados muito mais interessante. Nesse tutorial, demonstraremos como conectar um display de 16×2 em uma ESP32. Utilizaremos também...
  • Continuando a série de tutoriais sobre Micropython ESP32, iremos desenvolver alguns projetos para exemplificar o seu uso. Em todos os exemplos, estaremos utilizando o uPyCraft IDE. O entendimento do...

Artigos Relacionados

  • Esp32 Lora WiFi

    ESP32 LoRa WiFi SX1278

    O ESP32 LoRa WiFi é uma pequena placa de desenvolvimento que integra três formas distintas de comunicação: Wifi, Bluetooth e a rede de comunicação de longo alcance – LoRa...
  • Projeto ESP32 com Display 16×2

    Adicionar em um Projeto ESP32 um Display torna a visibilidade de dados muito mais interessante. Nesse tutorial, demonstraremos como conectar um display de 16×2 em uma ESP32. Utilizaremos também...
  • Micropython ESP32: Parte 2

    Continuando a série de tutoriais sobre Micropython ESP32, iremos desenvolver alguns projetos para exemplificar o seu uso. Em todos os exemplos, estaremos utilizando o uPyCraft IDE. O entendimento do...
  • Micropython ESP32: Parte 1

    Micropython ESP32 é uma linguagem de programação compacta, porém eficiente, derivada de Python 3. Ela inclui diversas subfunções da biblioteca padrão do Python e é otimizada para rodar em...