Leituras de temperatura e umidade ESP32 DHT11 em display OLED usando Arduino IDE

Leituras De Temperatura E Umidade Esp32 Dht11 Em Display Oled Usando Arduino Ide



O ESP32 é uma placa microcontroladora avançada que pode executar várias instruções para gerar saídas. Uma tela OLED é usada para exibir diferentes tipos de dados. Usando ESP32 com sensor DHT11, podemos fazer leituras de temperatura e umidade. Todos esses dados podem ser representados em um display OLED. Este tutorial cobre todas as etapas necessárias para fazer a interface desses sensores com o ESP32.

Este tutorial abrange o seguinte conteúdo:







1: Introdução ao Sensor DHT11



2: Pinagem do Sensor DHT11



2.1: Sensor DHT11 de 3 pinos





2.2: Sensor DHT11 de 4 pinos

3: Módulo de Display OLED com ESP32



4: Instalando as Bibliotecas Necessárias

4.1: Biblioteca Arduino para Sensor DHT

4.2: Biblioteca Arduino para display OLED

5: Interface ESP32 com Sensor DHT11

5.1: Esquema

5.2: Código

5.3: Saída

1: Introdução ao Sensor DHT11

O DHT11 é um dos sensores de monitoramento de temperatura e umidade comumente usados ​​na comunidade eletrônica. É mais preciso em fornecer temperatura e umidade relativa. Ele emite um sinal digital calibrado que gera duas leituras diferentes de temperatura e umidade.

Ele usa a técnica de aquisição de sinal digital que oferece confiabilidade e estabilidade. O sensor DHT11 contém um componente de medição de umidade do tipo resistivo e possui um componente de medição de temperatura NTC. Ambos são integrados a um microcontrolador altamente eficiente de 8 bits que oferece resposta rápida, capacidade anti-interferência e economia.

Aqui estão algumas das principais especificações técnicas do DHT11:

    • O sensor DHT11 opera em uma tensão de 5V a 5,5V.
    • A corrente operacional durante a medição é de 0,3mA e durante o tempo de espera é de 60uA.
    • Ele emite dados seriais em sinal digital.
    • A temperatura do sensor DHT11 varia de 0°C a 50°C.
    • Faixa de umidade: 20% a 90%.
    • Precisão de ±1°C para medição de temperatura e ±1% para leituras de umidade relativa.

Como abordamos uma introdução básica ao sensor DHT11, agora vamos avançar para a pinagem do DHT11.

2: Pinagem do Sensor DHT11

Na maioria das vezes, o sensor DHT11 vem em duas configurações de pinos diferentes. O sensor DHT11 que vem na configuração de 4 pinos tem 3 pinos que não funcionam ou rotulados como sem conexão.

O módulo sensor DHT11 de 3 pinos vem em três pinos que incluem alimentação, GND e pino de dados.

2.1: Sensor DHT11 de 3 pinos

A imagem dada mostra configurações de 3 pinos do sensor DHT11.


Esses três pinos são:

1. Dados Temperatura de saída e umidade em dados seriais
2. Vcc Potência de entrada 3,5 V a 5,5 V
3. GND GND do circuito

2.2: Sensor DHT11 de 4 pinos

A imagem a seguir ilustra o módulo do sensor DHT11 de 4 pinos:


Esses 4 pinos incluem:

1. Vcc Potência de entrada 3,5 V a 5,5 V
2. Dados Temperatura de saída e umidade em dados seriais
3. NC Sem conexão ou não usado
Quatro. GND GND do circuito

3: Módulo de Display OLED com ESP32

O display OLED vem principalmente com dois protocolos de comunicação diferentes. Os dois protocolos são I2C e SPI. A interface periférica serial (SPI) geralmente é mais rápida do que I2C, mas preferimos o protocolo I2C ao SPI, pois exigia um número menor de pinos.

A imagem a seguir ilustra o diagrama de conexão do ESP32 com tela OLED de 128 × 64 pixels (0,96 '').


Segue abaixo a tabela de conexão:


Depois que o ESP32 estiver conectado a um display OLED, a próxima etapa da lista é instalar todas as bibliotecas necessárias para a programação do ESP32 usando o Arduino IDE.

4: Instalando as Bibliotecas Necessárias

Aqui vamos fazer a interface de dois sensores diferentes com o ESP32, então ambos requerem bibliotecas separadas para operar. Agora vamos instalar bibliotecas para display DHT11 e OLED.

4.1: Biblioteca Arduino para Sensor DHT

Abra o Arduino IDE, vá para: Esboço>Incluir biblioteca>Gerenciar bibliotecas

Como alternativa, também podemos abrir o gerenciador de bibliotecas no botão lateral da interface IDE do Arduino.

Procure a biblioteca DHT e instale a versão atualizada mais recente. A biblioteca DHT ajudará a ler os dados do sensor.


Depois de instalar a biblioteca DHT, temos que instalar um biblioteca unificada de sensores por Adafruit.

4.2: Biblioteca Arduino para display OLED

Várias bibliotecas estão disponíveis no Arduino IDE para programar o ESP32 com um display OLED. Aqui usaremos duas bibliotecas da Adafruit: SSD1306 e biblioteca GFX.

Abra o IDE, clique em Library Manager e procure a biblioteca OLED SSD1306. Instale a biblioteca SSD1306 da Adafruit na barra de pesquisa.

Em alternativa, também se pode aceder a: Esboço>Incluir biblioteca>Gerenciar bibliotecas


A próxima biblioteca que precisamos instalar é a GFX biblioteca da Adafruit.


Instalamos bibliotecas para a tela OLED e para o sensor DHT11. Agora podemos interagir facilmente com o ESP32.

5: Interface ESP32 com Sensor DHT11 e OLED

Para fazer a interface do ESP32 com o sensor DHT11, precisamos de um pino digital para ler os dados do sensor e, para alimentar o sensor DHT11, podemos usar o pino 3V3 ou o pino Vin do ESP32.

Para exibição em OLED, os pinos I2C SDA e SCL serão usados. Para alimentar podemos usar Vin ou um pino 3V3 do ESP32.

5.1: Esquema

Na imagem fornecida podemos ver o diagrama esquemático do ESP32 com DHT11 e para a saída é usada uma tela OLED. Esta imagem representa o módulo sensor de 3 pinos em interface com o ESP32. Lembre-se de conectar um resistor pull up de 10kΩ.


Da mesma forma, DHT11 de 4 pinos também pode ser conectado, a única diferença aqui é o pino 3 que não tem utilidade ou é denominado como Sem conexão. O pino de dados está no pino 2 do sensor.

O display OLED é conectado usando os pinos I2C SDA e SCL em D21 e D22, respectivamente.

5.2: Código

Conecte o ESP32 com o PC e abra o Arduino IDE. Carregue o código fornecido para a placa ESP32.

#include             /*Incluir biblioteca de comunicação por fio*/
#include
#include /*biblioteca de display OLED*/
#include
#include             /*Biblioteca de sensores de temperatura e umidade*/
#define SCREEN_WIDTH 128    /*largura da tela OLED 128 pixels*/
#define SCREEN_HEIGHT 64   /*Altura da tela OLED 64 pixels*/
Tela Adafruit_SSD1306 ( SCREEN_WIDTH, SCREEN_HEIGHT, & Escuta, - 1 ) ; /* SSD1306 I2C Display inicialização */
#define DHCPIN 4          /*Pino de sinal para sensor DHT11*/
#define DHTTYPE    DHT11
DHT dht ( DHCPIN, DHTTYPE ) ;
anular configuração ( ) {
Serial.begin ( 115200 ) ;
dht.begin ( ) ;
E se ( ! display.begin ( SSD1306_SWITCHCAPVCC, 0x3C ) ) { /* Endereço I2C em que OLED está conectado */
Serial.println ( F ( 'Falha na alocação do SSD1306' ) ) ;
para ( ;; ) ;
}
atraso ( 2000 ) ;
display.clearDisplay ( ) ;
display.setTextColor ( BRANCO ) ; /* Cor do texto de saída branco */
}
loop vazio ( ) {
atraso ( 5000 ) ;
float t = dht.readTemperature ( ) ; /* ler temperatura */
float h = dht.readHumidity ( ) ; /* ler umidade */
E se ( é um ( h ) || é um ( t ) ) {
Serial.println ( 'Falha ao ler do sensor DHT!' ) ;
}
display.clearDisplay ( ) ; /* Claro Visor OLED antes de exibir a leitura */
display.setTextSize ( 1 ) ; /* Fonte de texto OLED Tamanho */
display.setCursor ( 0 , 0 ) ;
display.print ( 'Temperatura: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , 10 ) ;
display.print ( t ) ; /* temperatura de impressão no Celsius */
display.print ( ' ' ) ;
display.setTextSize ( 1 ) ;
exibir.cp437 ( verdadeiro ) ;
exibir.escrever ( 167 ) ;
display.setTextSize ( 2 ) ;
display.print ( 'C' ) ;

display.setTextSize ( 1 ) ;
display.setCursor ( 0 , 35 ) ;
display.print ( 'Umidade: ' ) ;
display.setTextSize ( 2 ) ;
display.setCursor ( 0 , Quatro cinco ) ;
display.print ( h ) ; /* imprime porcentagem de umidade */
display.print ( '%' ) ;
display.display ( ) ;
}


O código começou incluindo as bibliotecas necessárias para sensores OLED e DHT11. Depois disso, as dimensões do display OLED são definidas. Em seguida, o tipo de sensor DHT é definido caso, se você estiver usando DHT22, substitua-o adequadamente.

Na parte de configuração, o sensor DHT e o visor OLED são inicializados. A tela OLED está conectada em um endereço I2C de 0x3C. Caso alguém queira verificar o endereço I2C, carregue o código fornecido neste artigo .

Os valores de temperatura e umidade são armazenados dentro da variável float t e h respectivamente. Depois disso, ambos os valores são impressos em uma tela OLED.

5.3: Saída

Na saída, podemos ver a temperatura medida em tempo real e a umidade exibida na tela OLED.




Concluímos com sucesso a interface do ESP32 com o sensor DHT11 e a tela OLED.

Conclusão

Os monitores OLED com ESP32 podem mostrar vários dados que são lidos usando os sensores externos. Aqui, este artigo cobre todas as etapas para interfacear o ESP32 com o sensor DHT11 para medir a temperatura e a umidade de uma sala. Depois disso, todos os dados lidos são exibidos no módulo de exibição I2C OLED.