O ESP32 é uma placa de microcontrolador 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 uma tela OLED. Este tutorial abrange todas as etapas necessárias para interface esses sensores com o ESP32.
Este tutorial abrange o seguinte conteúdo:
1: Introdução ao sensor DHT11
2: pinagem do sensor DHT11
2.1: 3 PIN DHT11 Sensor
2.Sensor 2: 4 pinos DHT11
3: Módulo de exibição OLED com ESP32
4: Instalando as bibliotecas necessárias
4.1: Biblioteca Arduino para Sensor DHT
4.2: Biblioteca Arduino para tela OLED
5: Interface Esp32 com o sensor DHT11
5.1: esquemático
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 para dar temperatura e umidade relativa. Ele gera um sinal digital calibrado que cospe em duas leituras diferentes de temperatura e umidade.
Ele usa a técnica de aquisição de signo digital que oferece confiabilidade e estabilidade. O sensor DHT11 contém um componente de medição de umidade do tipo resistivo e apresenta um componente de medição de temperatura do NTC. Ambos são integrados a um microcontrolador altamente eficiente de 8 bits, que oferece resposta rápida, capacidade anti-interferência e custo-efetividade.
Aqui estão algumas especificações técnicas principais do DHT11:
Como cobrimos uma introdução básica ao sensor DHT11 agora vamos para a pinagem do DHT11.
2: pinagem do sensor DHT11
Na maioria das vezes, o sensor DHT11 vem em duas configurações diferentes de pinos. O sensor DHT11, que vem em 4 pinos, tem 3 pinos que não estão funcionando ou rotulados como nenhuma conexão.
O módulo sensor DHT11 de 3 pinos vem em três pinos que incluem potência, gnd e pino de dados.
1: 3 PIN DHT11 Sensor
A imagem dada mostra 3 configurações de pinos do sensor DHT11.
Esses três pinos são:
1. | Dados | Temperatura de saída e umidade nos dados seriados |
2. | VCC | Poder de entrada 3.5V a 5.5V |
3. | Gnd | Gnd de circuito |
Sensor 2: 4 pinos DHT11
A imagem a seguir ilustra 4 pinos DHT11 Módulo do sensor:
Esses 4 pinos incluem:
1. | VCC | Poder de entrada 3.5V a 5.5V |
2. | Dados | Temperatura de saída e umidade nos dados seriados |
3. | NC | Sem conexão ou não é usado |
4. | Gnd | Gnd de circuito |
3: Módulo de exibição OLED com ESP32
A tela OLED vem principalmente com dois protocolos de comunicação diferentes. Os dois protocolos são i2c e spi. A interface periférica em série (SPI) é geralmente mais rápida que o I2C, mas preferimos o protocolo I2C sobre o SPI, pois exigia um número menor de pinos.
A imagem a seguir ilustra o diagrama de conexão ESP32 com 128 × 64 pixels (0.96 ") OLED Display.
Abaixo está a tabela de conexão:
Depois que o ESP32 é interfocado com uma tela OLED, a próxima etapa da lista é instalar todas as bibliotecas necessárias para programação ESP32 usando Arduino IDE.
4: Instalando as bibliotecas necessárias
Aqui vamos interface dois sensores diferentes com o ESP32, para que ambos requerem bibliotecas separadas para operar. Agora vamos instalar bibliotecas para DHT11 e OLED Display.
1: Biblioteca Arduino para Sensor DHT
Abra o Arduino IDE, vá para: Sketch> Incluir biblioteca> Gerenciar bibliotecas
Como alternativa, também podemos abrir o gerente da biblioteca do botão lateral na interface Arduino IDE.
Pesquise a biblioteca DHT e instale a versão mais recente atualizada. A biblioteca DHT ajudará a ler dados do sensor.
Depois de instalar a biblioteca DHT em seguida, temos que instalar um Biblioteca de sensores unificados por Adafruit.
2: Biblioteca Arduino para tela OLED
Várias bibliotecas estão disponíveis no Arduino IDE para programar ESP32 com uma tela OLED. Aqui estaremos usando duas bibliotecas da Adafruit: SSD1306 e GFX Library.
Abra o IDE e clique em Gerenciador de bibliotecas e pesquise a biblioteca OLED SSD1306. Instale a biblioteca SSD1306 por Adafruit na barra de pesquisa.
Como alternativa, também se pode ir para: Sketch> Incluir biblioteca> Gerenciar bibliotecas
A próxima biblioteca que precisamos instalar é o GFX Biblioteca por Adafruit.
Instalamos bibliotecas para a tela OLED e o sensor DHT11. Agora podemos facilmente interface com o ESP32.
5: Interface Esp32 com o sensor DHT11 e OLED
Para interface Esp32 com o sensor DHT11, precisamos de um pino digital para leitura de dados do sensor e para alimentação do sensor DHT11, podemos usar o pino 3v3 ou o pino VIN do ESP32.
Para exibição OLED I2C PINS SDA e SCL serão usados. Para poder, podemos usar o VIN ou um pino de 3v3 do ESP32.
1: esquemático
Na imagem dada, podemos ver o diagrama esquemático do ESP32 com o DHT11 e, para a saída, uma tela OLED é usada. Esta imagem representa o módulo de sensor de 3 pinos que interface com o ESP32. Lembre -se de conectar um resistor pull up de 10kΩ.
Da mesma forma, 4 pinos DHT11 também podem ser conectados, a única diferença aqui é o 3 pino que não usa utilidade ou denominado como nenhuma conexão. O pino de dados está no pino 2 do sensor.
A tela OLED está conectada usando os pinos I2C SDA e SCL em D21 e D22, respectivamente.
2: código
Conecte o ESP32 com PC e abra Arduino IDE. Carregue o código fornecido para a placa ESP32.
#include /*Incluir biblioteca de comunicação de arame* /
#incluir
#include /*Biblioteca de exibição OLED* /
#incluir
#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* /
Adafruit_ssd1306 Display (Screen_width, Screen_Height, & Wire, -1); /*Ssd1306 I2C Display Inicialização*/
#Define dhtpin 4 /*pino de sinal para sensor dht11* /
#Define DHTTYPE DHT11
Dht dht (dhtpin, dhttype);
Void Setup ()
Serial.começar (115200);
dht.começar();
se(!mostrar.BEGIN (SSD1306_SWITCHCAPVCC, 0x3C)) /*i2c Endereço no qual OLED está conectado* /
Serial.println (f ("alocação SSD1306 falhou"));
para(;;);
Atraso (2000);
mostrar.clearDisplay ();
mostrar.setTextColor (branco); / *Saída de texto cor branca */
Void Loop ()
atraso (5000);
flutuar t = dht.readTemperature (); /*Leia a temperatura*/
flutuar h = dht.readhumidity (); /*Leia a umidade*/
if (isnan (h) || isnan (t))
Serial.println ("Falha ao ler do sensor DHT!");
mostrar.clearDisplay (); /*Clear OLED Display antes de exibir a leitura*/
mostrar.setTextsize (1); /*Tamanho da fonte de texto OLED*/
mostrar.setCursor (0,0);
mostrar.print ("Temperatura:");
mostrar.setTextsize (2);
mostrar.setCursor (0,10);
mostrar.impressão (t); /*Imprimir temperatura em Celsius*/
mostrar.imprimir(" ");
mostrar.setTextsize (1);
mostrar.CP437 (verdadeiro);
mostrar.Escreva (167);
mostrar.setTextsize (2);
mostrar.print ("c");
mostrar.setTextsize (1);
mostrar.setCursor (0, 35);
mostrar.impressão ("umidade:");
mostrar.setTextsize (2);
mostrar.setCursor (0, 45);
mostrar.impressão (h); /*Imprime a porcentagem de umidade*/
mostrar.imprimir(" %");
mostrar.mostrar();
O código iniciado incluindo as bibliotecas necessárias para sensores OLED e DHT11. Depois disso, as dimensões da tela OLED são definidas. Em seguida, o tipo de sensor DHT é definido se você estiver usando o DHT22, substitua -o de acordo.
Na parte de configuração, o sensor DHT e o 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, faça o upload do código fornecido neste artigo.
Os valores de temperatura e umidade são armazenados dentro da variável flutuante t e h respectivamente. Depois disso, esses dois valores são impressos em uma tela OLED.
3: saída
Na saída, podemos ver a temperatura e a umidade medidas em tempo real exibidas na tela OLED.
Concluímos com sucesso a interface do ESP32 com o sensor DHT11 e a tela OLED.
Conclusão
Displays OLED com ESP32 podem mostrar vários dados que são lidos usando os sensores externos. Aqui, este artigo cobre todas as etapas para interface Esp32 com o sensor DHT11 para medir a temperatura e a umidade de uma sala. Depois disso, todos os dados de leitura são exibidos no módulo de exibição I2C OLED.