No tutorial de hoje, vamos abordar o sensor de umidade e temperatura AHT21, abordaremos suas principais características e aplicações.

Para realizar este tutorial, tenha em mãos os seguintes componentes:

 

Lista de materiais:

01 - Sensor de umidade e temperatura AHT21

01 - Arduino Uno Compatível com Cabo USB

01 - Display OLED 128x64 PX – 0.96”- 7 Pin

01 – Kit de Jumpers Macho – Macho

01 – Módulo rele 2 Canais - 5V/10A

 

O tutorial será dividido nos seguintes tópicos listados a baixo, clique em algum para ser redirecionado para este trecho na página.

O que é o sensor de umidade e temperatura AHT21

Principais Características do AHT21

Definição da interface do AHT21

Dimensões do sensor AHT21

Comunicação do sensor AHT21

Alguns cuidados a se ter com o sensor AHT21

Como funciona o sensor AHT21

Como testar o sensor

Projeto com AHT21

 

O que é o sensor de umidade e temperatura AHT21

O sensor AHT21 é um sensor de umidade e temperatura com saída digital I2C. Pode ser aplicado em sistemas de climatização, desumidificador, teste e inspeção de equipamentos, produtos de consumo, automóveis, controles automáticos, data loggers, estações climáticas, aplicações caseiras, controle de umidade, aplicações médicas e diversas aplicações onde é necessário haver a detecção e o controle de temperatura e umidade.

Principais características do AHT21

 

-Precisão típica: Umidade Relativa: ± 3% 

-Temperatura: ± 0.5°C

-Sinal de saída: digital totalmente calibrada e processada

-Protocolo: I2C

-Tensão suportada: 2,2 a 5,5V DC

-Excelente estabilidade em longo prazo

-Resposta rápida

-Anti-interferência

-Corrente de entrada por pino: entre –10 e 10mA.

 

Definição da interface do AHT21

 

Dimensões do sensor AHT21

 

Comunicação do Sensor AHT21

A comunicação do sensor de umidade e temperatura AHT21 é realizada através do padrão I²C.
O padrão I²C foi criado pela empresa Holandesa Philips e permite a utilização de diversos componentes padronizados em um mesmo barramento. Utiliza dois fios SDA: Dados e SCL: Clock, para realizar uma comunicação Half Duplex.
A comunicação Half Duplex, assim como a comunicação Full Duplex, é feita de forma bidirecional, ou seja, o escravo e o mestre agem como transmissor e como receptor, a diferença está no fato dessa troca não ser possível de forma simultânea, por haver apenas uma linha destinada à transmissão e recepção. Um exemplo do uso é em Walk-Talk.

 

Alguns cuidados a se ter com o sensor AHT21

-Não utiliza-lo em gás corrosivo ou vapor de água.

-Durante o processo de solda, não permanecer com o ferro por mais de 5 segundos com a temperatura máxima de 300°C.

-Após realizar a solda, o ATH21 deve ser restaurado em uma condição de umidade relativa maior que 75% e por 12 horas para garantir a reidratação do polímero. Caso não restaurado o sensor pode ter variação na sua medição. O sensor também pode ser colocado em uma umidade relativa ambiente maior que 40% por mais de dois dias para reidratação.

-Evitar longo tempo de exposição á vapor químico, pois isso pode causar desvio do sinal de saída. Utilizar o sensor entre a temperatura de 10°C a 50°C, e a no máximo de 0°C a 85°C e a umidade relativa entre 20 a 60%. Também é recomendada a utilização de uma case para proteção do sensor.

-Em casos em que o sensor fica exposto a um ambiente de trabalho muito extremo ou exposto a vapor químico gerando desvio do sinal de saída, pode-se restaurar o estado de calibração do sensor seguindo estes passos.

Secagem: Permanecer por 6 horas à temperatura de 60-65°C e umidade relativa menor que 5%.

Reidratação: Permanecer por 6 horas à temperatura de 20-30°C e umidade relativa maior que 75%.

-Quando a taxa de atualização de dados estiver em alta frequência, a temperatura do sensor aumentará e isso afetará na precisão. Se desejar manter a variação de temperatura do sensor menor que 0.1°C a taxa de atualização do ATH21B não pode exceder 10% do tempo de atualização. Com isso, é recomendado manter a taxa de atualização dos dados do sensor a cada 2 segundos.

 

Como funciona o sensor AHT21 

 O sensor AHT21 é equipado com um novo circuito integrado de aplicação especifica, e conta com um sensor de umidade, que possui um sistema melhorado de semicondutores capacitivos microeletromecânicos. Também conta com um sensor padrão de temperatura. Seu desempenho e confiabilidade foram melhorados em relação à geração anterior, o que o torna mais estável em situações severas.

 

Como testar o sensor AHT21

Para utilizar este sensor, é necessário um microcontrolador que possa captar e nos mostrar as informações e para isso utilizaremos um Arduino Uno, junto a sua interface de programação Arduino IDE.

Primeiramente precisamos montar o circuito a ser testado, e para isso vamos realizar a ligação da seguinte maneira:

Com isso a ligação fica da seguinte maneira:

 

Após isso, conecte o Arduino no Computador e vamos para os próximos passos.

Para realizar o teste é necessário realizar o download da biblioteca do sensor que se encontra no link: https://github.com/enjoyneering/AHTxx

Vá à opção Code e clique em Download ZIP:

Após realizar o download do arquivo ZIP, vamos instalar a biblioteca na IDE do Arduino.

Primeiro, vá até Sketch, incluir biblioteca, Adicionar Biblioteca .ZIP:

Procure o arquivo baixado, e após encontra-lo selecione e clique em abrir:

Após instalar a biblioteca do AHT21, vamos selecionar a placa e a porta a ser utilizada. Vá até a aba Ferramentas, e na opção Placas, selecione a sua placa. Neste caso, utilizaremos um Arduino Uno.

Feito isso, selecione a porta de comunicação em Ferramentas, Portas:

Após isso podemos iniciar um pequeno teste usando o próprio exemplo da biblioteca baixada. Vá em: Arquivo, exemplos e procure por AHT1x/AHT2x e em seguida selecione a opção AHT20_Serial.

Após isso, o código de teste aparecerá e agora é só carrega-lo no botão  

Para verificar se tudo esta funcionando corretamente, devemos ir até Ferramentas, Monitor Serial.

Com isso, a janela do monitor serial será aberta e nela podemos verificar a medição do sensor:

Projeto com AHT21 

Para realizar este projeto, pensado em ser utilizado como um pequeno sistema para uma estufa, vamos precisar dos seguintes materiais:

01 - Sensor de umidade e temperatura AHT21

01 - Arduino Uno Compatível SMD

01 - Display OLED 128x64 PX – 0.96”- 7 Pin

01 – Kit de Jumpers Macho – Macho

01 – Módulo rele 2 Canais - 5V/10A

Com todos os dispositivos em mãos vamos para a montagem do sistema.

Para a montagem do Display OLED, podemos utilizar o seguinte um tutorial já feito em nosso blog:

https://curtocircuito.com.br/blog/Categoria%20Arduino/display-oled-no-modo-i2c-e-no-modo-spi

Nele, encontramos algumas dicas de como utilizar este display.
A ligação do Display fica da seguinte maneira:

 

E como demonstrado mais acima na parte de testagem, a ligação do sensor AHT21 continua a mesma. A implementação do módulo relé ficou da seguinte maneira:

 

 

Com toda a ligação realizada, é hora de partir para a programação.

E o código ficou da seguinte maneira:

/*Codigo desenvolvido pela Curto Circuito */

#include <AHTxx.h> //Inclui a biblioteca AHT21
#include <SPI.h> // Inclui a biblioteca SPI
#include <Wire.h> // Inclui a biblioteca I2C
#include <Adafruit_SSD1306.h> /// Inclui a biblioteca OLED SSD1306

#define SCREEN_WIDTH 128 // Largura do display OLED, em pixels
#define SCREEN_HEIGHT 64 // Altura do display OLED, em pixels

#define OLED_MOSI   11 // Define o pino Serial Data no Arduino 
#define OLED_CLK   13 // Define o pino Serial Clock  no Arduino
#define OLED_DC    9 // Define o pino DC no Arduino
#define OLED_CS    10 // Define o pino CS no Arduino
#define OLED_RESET 8 // Define o pino RESET do Arduino

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT,
  OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS); // Define a sequência do display SSD1306

//Abaixo, temos o bitmap do logo da curto circuito
const unsigned char epd_bitmap_curto_logo [] PROGMEM = {
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x03, 0xff, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xf7, 0xfe, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xf8, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xf0, 0xff, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x7f, 0xff, 0xe3, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xe7, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xcf, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 0xdf, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xdf, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xcf, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xc0, 0x3f, 0xff, 0xc7, 0xef, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xff, 0xe3, 0xcf, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0xdf, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xe0, 0x1f, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xf3, 0xc0, 0x3f, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xfc, 0x20, 0x3f, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x07, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x80, 0x17, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xf8, 0x00, 0x0f, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xf1, 0xf2, 0xc7, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xf7, 0xf3, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xf7, 0xf9, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xfe, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xbf, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0x3f, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xfe, 0x7f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0x80, 0x3f, 0xf8, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xe1, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x03, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x07, 0xfc, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
};


const int epd_bitmap_allArray_LEN = 1; // Define a constante int para leitura do bitmap
const unsigned char* epd_bitmap_allArray[1] = {epd_bitmap_curto_logo}; // Define a constante do bitmap com os valores da logo da curto circuito


float TemperaturaAHT; // Váriavel do tipo float para realizar a medição da temperatura com o sensor AHT21 
float UmidadeAHT; // Váriavel do tipo floar para realizar a medição da umidaade com o sensor AHT21

AHTxx aht20(AHTXX_ADDRESS_X38, AHT2x_SENSOR); // Chama a biblioteca do AHT20 e define o seu endereço e seu tipo de sensor



void setup() 
{
  pinMode(2, OUTPUT); // Define o pino 1 do arduino cmo saída para o canal 1 do módulo relé
  pinMode(3, OUTPUT); // Define o pino 2 do arduino como saída para o canal 2 do módulo relé

  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  
aht20.begin();// Inicia o sensor AHT21

display.begin(SSD1306_SWITCHCAPVCC);// Inicia o display OLED SSD1306
display.display();


prog_logo(); //chama a função prog_logo para iniciar a leitura do código da logo da curto circuito
}

void loop() 
{
mostrarTempumidade(); //chama a função mostrarTempumidade que inicializa o Display OLED e mostra o valor da temperatura
AHT21(); //chama a função AHT21 que inicia a leitura do sensor AHT21
ModuloRele(); // chama a função ModuloRele que ativa o rele quando o sensor detecta as condições especificas 
}

void mostrarTempumidade(void){
  display.clearDisplay(); //limpa o display
  display.setTextColor(SSD1306_WHITE); //Defina a cor do texto como branca
  display.setTextSize(1.5); // Define o tamanho da fonte do texto
  display.setCursor(20,0); // Define a posição de escrita, sendo coluna/linha
  display.println("Curto Circuito"); // Escreve Curto Circuito
  display.println(" "); // Escreve o caractere espaço para preencher a linha com "vazio"
  display.setCursor(30,20); // Define a posição do cursor na escrita
  display.println("Temperatura:"); // Escreve temperatura 
  display.setCursor(30,30); // Define a posição do cursor na escrita 
  display.println(TemperaturaAHT); // Escreve o valor da váriavel de temperatura no display
  display.setCursor(60,30); // Define a posição do cursor na escrita
  display.println(" +- 0.3C"); //Escreve a variação padrão do sensor na leitura da temperatura 
  display.println(" "); // Mais uma vez, uma linha "vazia" para pular a linha 
  display.setCursor(40,45); // Define a posição do cursor na escrita
  display.println("Umidade:"); // Escreve a palavra Umidade no Sensor
  display.setCursor(30,55); // Define a posição do cursor na escrita
  display.println(UmidadeAHT); // Escreve o valor da váriavel de umidadde no display
  display.setCursor(65,55); // Define a posição ddo cursor na escrita
  display.println(" +- 2%"); // Escreve a variação padrão do sensor na leitura da umidade

  
  display.display();
  
}


void prog_logo(void) {
display.clearDisplay(); //Limpa o display
display.drawBitmap(0, 0, epd_bitmap_curto_logo, 128, 64, WHITE); //Define as regras para escrita do bitmap, 0 e 0 localização do primeiro pixel, epd_bitmap_curto_logo o nome da matriz de dados da logo da curto circuito, 128x64 o tamano do display sendo largura x Altura.

display.display();
delay(3000);
}

void AHT21(void)
{
TemperaturaAHT =aht20.readTemperature(); // Define a variavel TemperaturaAHT com o valor da leitura da umidade feita pelo sensor AHT21
UmidadeAHT =aht20.readHumidity(); // Define a variavel UmidadeAHT com o valor da leitura da umidade feita pelo sensor AHT21
delay(2000); // delay de dois segundos como o sensor pede
}

void ModuloRele(void)
{
if (TemperaturaAHT >= 32.00) // Quando o sensor detecta uma temperatura maior ou igual a 32°C

digitalWrite(2, LOW); // Muda o estado do pino 2 de HIGH para LOW, O que faz o módulo rele ligar, pois ele é normalmente aberto 

else
digitalWrite(2, HIGH); // Muda o estado do pino 2 para HIGH, o que faz o módulo rele ligar
// Quando o sensor detecta uma temperatura maior ou igual a 32°C, o código muda o estado da porta em que o rele está, de LOW para HIGH, ativando assim o rele

if (UmidadeAHT <= 50) //Se a leitura da umidade for menor que 50

digitalWrite(3, LOW); // Muda o estado do pino 3 para LOW, ativando assim o módulo rele

else
digitalWrite(3, HIGH); // Percanece com o estado no pino 3 em HIGH, deixando o rele desligado por ser normalmente aberto.
}

 

Conclusão

O sensor lê a temperatura e umidade, que envia a informação para o arduino. Com isso, ele mostra os valores lidos no display OLED. Quando a temperatura chega a 32°C ou mais, ele ativa o primeiro canal relé, que pode ser utilizado como um interruptor para um sistema de exaustão de temperatura de uma estufa. Já o segundo canal do relé é ativado quando a umidade do ar fica abaixo de 50% que seria o mínimo de umidade para uma estufa. Este relé pode ser utilizado em conjunto a um microaspersor para irrigação das plantas e aumento da umidade dentro da estufa.

 

Com este tutorial aprendemos um pouco mais sobre o sensor de umidade e temperatura AHT21,seu funcionamento, estrutura, como testa-lo e aplica-lo em um projeto prática.