Este tutorial faz parte de: Sensor digital de umidade relativa e temperatura HTU21D
Vídeos relacionados ao sensor digital de umidade relativa e temperatura HTU21D. Os links para outros vídeos estão abaixo deste artigo.
Aula 36: Usando o Sensor de Temperatura HTU21D com um LCD Arduino Curso Passo a Passo
O sensor de temperatura e umidade HTU21D é uma escolha popular para muitos projetos com Arduino devido à sua facilidade de uso e precisão. Nesta lição, construiremos um projeto simples que lê dados de temperatura e umidade do sensor e os exibe em uma tela LCD. Ao final deste tutorial, você terá uma configuração funcional que exibe continuamente a temperatura em Celsius, Fahrenheit e Kelvin, bem como a porcentagem de umidade relativa. Para mais esclarecimentos, você pode consultar o vídeo (no vídeo em mm:ss).
Hardware Explicado
O componente principal deste projeto é o sensor de temperatura e umidade HTU21D, que se comunica via I2C. Este sensor opera dentro de uma faixa de tensão de 1,5 a 3,6 volts, tornando-o adequado para sistemas de 3,3V e 5V. Ele consome muito pouca energia, tipicamente apenas 0,02 microamperes quando em repouso e 450 microamperes durante a medição. Além do HTU21D, também usaremos um display LCD, especificamente o LCD1602 com I2C. Este display permite a saída fácil de dados textuais e requer apenas dois pinos para comunicação: SDA (linha de dados) e SCL (linha de clock). A combinação destes componentes nos permitirá criar um display informativo para monitorar os níveis de temperatura e umidade.
Detalhes da Ficha Técnica
| Fabricante | TE Connectivity |
|---|---|
| Número da peça | HTU21D-F |
| Tensão de Lógica/IO | 1,5 - 3,6 V |
| Tensão de alimentação | 3,3 V (típ.) |
| Corrente de saída (típ.) | 0,02 µA (em repouso), 450 µA (medição) |
| Faixa de temperatura | -40 a +125 °C |
| Faixa de umidade | 0 a 100 %UR |
| Resolução (Temperatura) | 0,01 °C |
| Resolução (Umidade) | 0,04 %UR |
| Pacote | DFN-6 |
- Use um resistor de pull-up para as linhas SDA e SCL, se não estiver integrado.
- Garanta a tensão de alimentação correta para evitar danos ao sensor.
- Mantenha a fiação adequada para evitar erros de comunicação.
- Verifique o endereço I2C se o sensor não responder.
- Use um atraso entre as leituras para evitar sobrecarga do sensor.
- Certifique-se de que o LCD seja compatível com a comunicação I2C.
Instruções de Fiação
Para conectar o sensor HTU21D e o display LCD, comece pelas conexões de energia. Conecte o pino da esquerda do HTU21D à fonte de alimentação de 3,3V e o segundo pino (geralmente vermelho) ao terra. Em seguida, conecte o pino SDA do HTU21D ao pino analógico A4 do Arduino e o pino SCL ao pino analógico A5. Para o display LCD1602, conecte o pino VCC à mesma fonte de 3,3V e conecte o pino GND ao terra. O pino SDA no LCD também deve ser conectado a A4 e o pino SCL deve ser conectado a A5, permitindo que ambos os componentes compartilhem o barramento I2C. Certifique-se de que todas as conexões estejam seguras para facilitar a comunicação adequada entre o Arduino, o sensor e o display.
Exemplos de Código e Passo a Passo
O seguinte código inicializa o sensor HTU21D e o display LCD. Na função de configuração, o LCD é preparado para uso e o sensor é verificado quanto à conectividade:
void setup() {
lcd.begin();
lcd.backlight();
if (!htu.begin()) {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("sensor missing");
while (1);
} else {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("Demo");
}
delay(2000);
}Este trecho verifica se o sensor está conectado corretamente. Se não, exibe uma mensagem de erro no LCD e interrompe o programa. Se o sensor estiver funcionando, mostra uma mensagem de demonstração por dois segundos. A função de loop é onde a leitura e exibição principais ocorrem. Aqui, chamamos a função `lcdDisplay` para mostrar a temperatura em diferentes unidades:
void loop() {
lcd.clear(); // clear previous values from screen
lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');
lcdDisplay(0, 1, "Fahrenheit: ", 10, 1, getHTU('F'), 'd');
delay(5000);
}Neste loop, o LCD é limpo e as leituras de temperatura em Celsius e Fahrenheit são exibidas. A função `getHTU` é chamada com o caractere 'C' para Celsius e 'F' para Fahrenheit, respectivamente. Finalmente, a função `getHTU` é definida para ler a temperatura ou umidade com base no caractere de entrada:
float getHTU(char type) {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
if(type =='F') {
return temp * 9/5 + 32; // convert to Fahrenheit
} else if(type =='K') {
return temp + 273.15; // convert to Kelvin
} else if(type =='H') {
return rel_hum; // return relative humidity
} else {
return temp; // return Celsius
}
}Esta função lê a temperatura e a umidade do sensor e converte a temperatura para a unidade solicitada. Certifique-se de verificar o código completo carregado abaixo do artigo para detalhes adicionais.
Demonstração / O que Esperar
Ao concluir a fiação e carregar o código, você deve ver os valores de temperatura e umidade exibidos no LCD. As leituras serão atualizadas a cada poucos segundos, refletindo as condições atuais. Se você aplicar calor ao sensor, deverá perceber a temperatura subindo de acordo, enquanto a umidade deve diminuir ligeiramente. Fique atento ao limite máximo de temperatura do sensor; exceder isso pode resultar em leituras imprecisas ou falha do sensor (no vídeo em mm:ss).
Marcos do Vídeo
- 00:00- Introdução ao projeto
- 01:15Instruções de fiação
- 03:30- Revisão de código
- 10:00- Demonstração da configuração
Este tutorial é parte de: Sensor digital de umidade relativa e temperatura HTU21D
- Lição 35-1: Usando o Sensor de Temperatura HTU21D
- Lição 35-2: Usando o Sensor de Temperatura HTU21D - Código Personalizado
- Lição 35: Usando o sensor de temperatura HTU21D com Arduino
- Usando mais dois sensores de umidade e temperatura HTU21DF com Arduino
- Exibindo a temperatura de um HTU21D em um LCD
- Exibindo a Temperatura de um HTU21D como um Gráfico de Barras em um LCD
- Como Usar o Sensor de Umidade e Temperatura HTU21DF com Arduino (Código Básico)
- Como Usar o Sensor de Umidade e Temperatura HTU21DF com Arduino (Código Personalizado)
Coisas que você pode precisar
-
Amazonas
-
eBayCompre HTU21D no eBayebay.us
-
AliExpressCompre HTU21D ou SHT21 no AliExpresss.click.aliexpress.com
Recursos e referências
-
ExternoBiblioteca Adafruit HTU21D (GitHub)github.com
-
ExternoDiferença entre HTU21DF e HTU21D (imagem)robojax.com
Arquivos📁
Folha de dados (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB