Sensor de temperatura e umidade DHTTOP 10 com OLED usando Arduino Nano

Sensor de temperatura e umidade DHTTOP 10 com OLED usando Arduino Nano
Arduino Nano é uma pequena e poderosa placa de microcontrolador que é capaz de interagir com uma ampla gama de sensores e dispositivos. O sensor DHT11 é um sensor comumente usado para medir a temperatura e a umidade, e pode ser facilmente conectado a uma placa de nano Arduino usando fios de jumper e uma placa de ensaio.

Neste projeto, usaremos o sensor Arduino Nano e DHT11 para criar um sistema de monitoramento de temperatura e umidade. O Arduino Nano lerá os valores de temperatura e umidade do DHT11 e exibirá no OLED.

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 Arduino Nano

4: Instalando as bibliotecas necessárias

4.1: Biblioteca Arduino para Sensor DHT

4.2: Biblioteca Arduino para tela OLED

5: Verifique o endereço I2C da tela OLED no Arduino Nano

6: Interface Arduino Nano com sensor DHT11 e OLED

6.1: esquemático

6.2: código

6.3: saída

1: Introdução ao sensor DHT11

O sensor DHT11 é um dispositivo compacto e de baixo custo para medir a temperatura e a umidade. Arduino Nano com DHT11 é usado para projetar estações meteorológicas portáteis, sistemas HVAC e sistemas de automação residencial.

O sensor DHT11 consiste em um elemento de detecção de umidade e um elemento de detecção de temperatura, que são combinados em um único circuito integrado. O sensor é capaz de medir a umidade relativa e a temperatura e pode transmitir esses dados por meio de um sinal digital para um microcontrolador ou outro dispositivo.

O sensor DHT11 pode ser integrado e controlado usando o código Arduino. Ele pode ser conectado a um microcontrolador ou computador de placa única usando fios de jumper e uma placa de ensaio, e pode ser facilmente integrado a uma variedade de projetos.

Alguma grande especificação do DHT11:

  • A tensão operacional começa em 3.5V a 5.5V
  • Corrente do sensor durante a medição dos valores é 0.3MA e corrente de espera é 60ua
  • Valores de saída como sinal digital
  • A temperatura começa de 0 ° C a 50 ° C
  • Umidade mediu de 20% a 90%
  • Temperatura e umidade ambos são de 16 bits
  • Precisão de ± 1 ° C para medição de temperatura e ± 1% para leituras de umidade relativa

Agora cobrimos o básico do sensor DHT11. Agora vamos discutir a pinagem do DHT11.

2: pinagem do sensor DHT11

O DHT11 tem duas variantes, uma com 4 pinos e outro com 3 pinos. A única diferença aqui é que o sensor de 4 pinos DHT11 tem um pino extra sem conexão. Este pino é rotulado como NC e não usado para nenhum propósito.

Os 3 pinos do DHT11 são:

  • Pino de tensão de potência
  • GND PIN
  • Pino de sinal de dados digital

2.1: 3 PIN DHT11 Sensor

A seguir, a pinagem é de 3 pinos DHT11:

1 Dados Leituras de temperatura de saída e valores de umidade
2 VCC Tensão de entrada entre 3.5V a 5.5V
3 Gnd Gnd

2.Sensor 2: 4 pinos DHT11

Abaixo está a pinagem de 4 pinos do sensor DHT11:

Esses 4 pinos do sensor DHT11 incluem:

1 VCC Entrada 3.5V a 5.5V
2 Dados Leituras de temperatura de saída e umidade
3 NC Sem pino de conexão
4 Gnd Gnd

3: Módulo de exibição OLED com Arduino Nano

A tela OLED vem principalmente com dois protocolos de comunicação diferentes. Esses dois são i2c e spi. O protocolo SPI é mais rápido em comparação com I2C, mas o I2C é preferido e tem a vantagem sobre o SPI devido a menos pinos necessários.

A imagem a seguir ilustra um diagrama de conexão de nano Arduino com 128 × 64 pixels (0.96 ") OLED Display.

Abaixo da tabela Mostrar configuração de pinout de OLED com Nano:

Como interfigurmos o Arduino Nano com uma tela OLED. Para exibir dados em uma tela OLED, devemos instalar algumas bibliotecas necessárias primeiro.

4: Instalando as bibliotecas necessárias

Estamos interfacendo dois sensores; um é um monitor OLED e o outro é um sensor DHT11. Ambos os sensores exigiam bibliotecas separadas para funcionar. Agora vamos instalar bibliotecas separadas para telas DHT11 e OLED.

4.1: Biblioteca Arduino para Sensor DHT

Abra o IDE, vá para: Sketch> Incluir biblioteca> Gerenciar bibliotecas:

Pode -se também usar o Arduino Library Manager para instalar bibliotecas. Pesquise a biblioteca do sensor DHT11 e instale a versão atualizada. Esta biblioteca lerá dados do sensor DHT11.

Agora vamos instalar o Biblioteca de sensores unificados.

As bibliotecas de sensores DHT11 estão instaladas. Em seguida, as bibliotecas OLED precisam ser instaladas.

4.2: Biblioteca Arduino para tela OLED

Existem várias bibliotecas disponíveis para exibição OLED no IDE. Usaremos a biblioteca Adafruit GFX e SSD1306 para tela OLED.

Abra o IDE e pesquise na biblioteca SSD1306 no gerente da biblioteca:

Depois de instalar a biblioteca SSD1306, instale o GFX Biblioteca por Adafruit:

Instalamos bibliotecas para ambos os sensores e agora podemos fazer o upload de código no Arduino Nano. Mas antes disso é necessário verificar o endereço I2C OLED.

5: Verifique o endereço I2C da tela OLED no Arduino Nano

I2C permite que vários dispositivos sejam conectados e se comuniquem entre si em uma interface de dois fios. Cada dispositivo I2C deve ter um endereço exclusivo, variando de 0 a 127, para garantir que ele possa ser identificado e comunicado na linha I2C. Vários dispositivos com o mesmo endereço não podem ser conectados no mesmo barramento i2c.

Conecte a tela OLED com Arduino Nano e, depois de selecionar a placa e o porto no Arduino IDE, envie o código fornecido nos dispositivos I2C do artigo em Arduino. Após o upload do código, obteremos o endereço i2C da tela OLED que, em nosso caso, é 0x3c:

Definiremos esse endereço I2C dentro do código Arduino.

6: Interface Arduino Nano com sensor DHT11 e OLED

Para interface Arduino Nano com DHT11 Um alfinete digital do Nano Board será usado para leitura de dados. Para alimentar o DHT11 5V O pino da placa de nano será interfocado.

Para pinos da tela OLED I2C SDA e SCL no A4 e A5 pinos de arduino nano serão usados. Para alimentar um pino de 5V OLED de Arduino Nano será usado.

6.1: esquemático

Abaixo está o diagrama esquemático do Arduino Nano com o sensor DHT11 e para exibir valores de leitura, uma tela OLED é usada. Esta imagem esquemática é do sensor de 3 pinos DHT11. 10kΩ Pull Up Resistor é integrado na saída DHT11.

Da mesma forma, um sensor de 4 pinos DHT11 está conectado com uma placa de nano. A tela OLED está conectada aos pinos de nano A4 e A5 GPIO usando a comunicação I2C. DHT11 PIN 2 é saída de dados. O 4 pino DHT11 tem 1 pino extra, o que não usa utilidade.

6.2: código

Conecte o Arduino Nano e envie o código fornecido:

#include /*biblioteca de comunicação de arame* /
#incluir
#include /*biblioteca Adafruit OLED* /
#incluir
#include /*Biblioteca de sensores DHT* /
#Define screen_width 128 /*128 Largura OLED em pixels* /
#Define screen_height 64 /*64 altura OLED em pixel* /
Adafruit_ssd1306 Display (Screen_width, Screen_Height, & Wire, -1); /*I2C Display Inicialização*/
#Define dhtpin 4 /*pino de sinal dht11* /
#Define DHTTYPE DHT11
//#defina dhttype dht22 // dht 22 (am2302), am2321
//#defina dhttype dht21 // dht 21 (AM2301)
Dht dht (dhtpin, dhttype);
Void Setup ()
Serial.começar (9600);
dht.começar();
se(!mostrar.BEGIN (SSD1306_SWITCHCAPVCC, 0X3C)) /*OLED I2C Endereço* /
Serial.println (f ("alocação SSD1306 falhou"));
para(;;);

Atraso (2000);
mostrar.clearDisplay ();
mostrar.setTextColor (branco); /*Cor do texto*/

Void Loop ()
atraso (5000);
flutuar t = dht.readTemperature (); /*Leia Temp*/
flutuar h = dht.readhumidity (); /*Leia a umidade*/
if (isnan (h) || isnan (t))
Serial.println ("Falha ao ler do sensor DHT!");

mostrar.clearDisplay (); /*Exibição clara*/
mostrar.setTextsize (1); /*Tamanho da fonte OLED*/
mostrar.setCursor (0,0);
mostrar.print ("Temperatura:");
mostrar.setTextsize (2);
mostrar.setCursor (0,10);
mostrar.impressão (t); /*Imprima 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();

No início do código, incluímos as bibliotecas de sensores OLED e DHT. O tamanho da tela OLED é definido em pixels. Depois desse tipo de sensor DHT, é inicializado. Se você estiver usando algum outro tipo de DHT11, descompor o nome do sensor de acordo com o código.

Em seguida no código, inicializamos o sensor DHT e OLED. O OLED está conectado no endereço 0x3c i2c. O endereço i2C pode ser verificado usando o código neste artigo.

As duas variáveis ​​flutuantes t e h armazenará os valores de temperatura e umidade, respectivamente. Lasty no código Todos os valores são exibidos em uma tela OLED usando as funções da biblioteca GFX OLED.

6.3: saída

A saída mostra os valores de temperatura e umidade em tempo real exibidos na tela OLED:

Concluímos a interface do sensor OLED e DHT11 com o Arduino Nano Board.

Conclusão

Arduino Nano pode ser integrado com vários sensores. Este artigo abrange a interface do sensor OLED e DHT11 com o Arduino Nano. Usando o DHT11, medimos a temperatura e a umidade que são exibidos no OLED. Usando o código fornecido, qualquer um dos Arduino Nano pode ser programado para exibir leituras de sensores em uma tela OLED.