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
Alguns cuidados a se ter com o sensor 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.