Usando mais dois sensores de umidade e temperatura HTU21DF com Arduino

Usando mais dois sensores de umidade e temperatura HTU21DF com Arduino

Neste tutorial, aprenderemos como conectar e usar dois sensores de temperatura e umidade HTU21DF com um Arduino. O sensor HTU21DF é conhecido por sua precisão e baixo consumo de energia, tornando-o ideal para várias aplicações. Ao final deste tutorial, você será capaz de ler os valores de temperatura e umidade de ambos os sensores e exibi-los no monitor serial.

HTU21D module

Para começar, vamos revisar brevemente os componentes de hardware envolvidos neste projeto. Os sensores HTU21DF se comunicam via I2C, o que requer apenas duas linhas de dados além das conexões de energia e terra. O Arduino lerá os dados dos sensores e imprimirá os resultados no monitor serial, permitindo que você observe as mudanças na temperatura e umidade em tempo real.

Para uma compreensão mais clara do processo de fiação e codificação, considere assistir ao vídeo associado (no vídeo aos 01:30). Vamos mergulhar nos detalhes!

Hardware Explicado

O componente principal deste projeto é o sensor HTU21DF, que mede a temperatura e a umidade relativa. Este sensor opera utilizando comunicação I2C, que simplifica a fiação precisando apenas de duas linhas de dados. Ele é capaz de medir temperaturas de -40°C a 125°C e níveis de umidade de 0% a 100% com uma resolução de 0,04%.

Quando o sensor não está medindo ativamente, consome apenas 0,04 µA, tornando-o adequado para aplicações alimentadas por bateria. Ao medir, o consumo de corrente é em torno de 400 µA, o que ainda é relativamente baixo para a maioria dos projetos.

Detalhes da Ficha Técnica

FabricanteTE Connectivity
Número da peçaHTU21DF
Tensão de lógica/IO1,5 - 3,6 V
Tensão de alimentação3,3 V
Corrente de saída (por canal)0,4 mA (medindo)
Corrente de pico (por canal)450 µA (máx)
Orientação de frequência PWMNão aplicável
Limiares de lógica de entrada0,3 x VDDpara 0,7 x VDD
Queda de tensão / RDS(on)/ saturaçãoN/A
Limites térmicos-40°C a +125°C
PacoteDFN de 6 pinos
Notas / variantesDisponível em diferentes tamanhos de embalagem.

  • Fonte de alimentação: 3,3 V recomendada para um desempenho ideal.
  • Conecte SCL ao pino de clock I2C (A5 no Arduino UNO).
  • Conecte SDA ao pino de dados I2C (A4 no Arduino UNO).
  • Assegure a fiação correta para evitar entradas flutuantes.
  • Monitore o consumo de corrente durante a medição para gerenciar a vida útil da bateria.
  • Considere usar resistores de pull-up, se necessário, para as linhas I2C.

Instruções de Fiação

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

Para conectar os sensores HTU21DF, comece ligando o VCCpino de cada sensor ao pino de 3,3 V no Arduino. Em seguida, conecte o pino GND de cada sensor a um terra comum. Para comunicação I2C, conecte o pino SDA de ambos os sensores ao pino A4 no Arduino e o pino SCL ao pino A5. Certifique-se de que os sensores estejam devidamente alimentados e que as conexões de dados estejam seguras para facilitar a comunicação.

Se você estiver usando sensores ou componentes adicionais, certifique-se de que a fiação deles não interfira no barramento I2C. Os sensores HTU21DF podem ser conectados em paralelo ao mesmo barramento I2C, permitindo que o Arduino leia dados de ambos os sensores sem confusão.

Exemplos de Código e Tutorial

O código a seguir inicializa os sensores HTU21DF e lê seus valores de temperatura e umidade. Primeiro, incluímos as bibliotecas necessárias e criamos instâncias para ambos os sensores:

#include 
#include "Adafruit_HTU21DF.h"

Adafruit_HTU21DF htu1 = Adafruit_HTU21DF(); // create object for first sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF(); // create object for second sensor

O código acima configura as bibliotecas necessárias e cria dois objetos de sensor,htu1ehtu2, que será utilizado para ler dados de cada sensor de forma independente.

Próximo, nasetup()função, inicializamos o monitor serial e verificamos se os sensores estão conectados:

void setup() {
  Serial.begin(9600);
  if (!htu1.begin() || !htu2.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

Esta seção do código inicializa a comunicação serial a 9600 baud e verifica se ambos os sensores estão funcionando. Se um sensor não for detectado, será exibida uma mensagem de erro e o programa será interrompido.

No loop principal, lemos os valores de temperatura e umidade de ambos os sensores e os exibimos:

void loop() {
    float temp1 = htu1.readTemperature();
    float rel_hum1 = htu1.readHumidity();
    float temp2 = htu2.readTemperature();
    float rel_hum2 = htu2.readHumidity();

    Serial.print("Sensor 1 Temp: "); Serial.print(temp1); Serial.print(" C");
    Serial.print("\tSensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
    Serial.print("Sensor 2 Temp: "); Serial.print(temp2); Serial.print(" C");
    Serial.print("\tSensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
    delay(500);
}

Este loop lê e imprime continuamente a temperatura e a umidade de ambos os sensores a cada 500 milissegundos. Você pode observar como os valores mudam em resposta às condições ambientais.

Demonstração / O que Esperar

Quando você executar o código, o monitor serial exibirá os valores de temperatura e umidade de ambos os sensores. Você pode aplicar calor, como de um soprador térmico, para observar como as leituras de temperatura aumentam enquanto os níveis de umidade podem diminuir (no vídeo às 12:30). Se a temperatura exceder o limite máximo mensurável de 125°C, o sensor pode retornar zero ou um erro, indicando que não consegue ler o valor.

Esteja atento a erros de fiação, como conexões invertidas ou entradas flutuantes, que podem levar a leituras incorretas. Ao seguir os passos descritos neste tutorial, você deve ser capaz de implementar com sucesso os sensores HTU21DF e monitorar suas leituras de forma eficaz.

Marcos do Vídeo

  • 00:00- Introdução
  • 01:30- Explicação da Fiação
  • 02:45- Explicação do Código
  • 12:30- Demonstração com Pistola de Calor
  • 14:00- Conclusão

Imagens

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
212-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic)
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Folha de dados (pdf)