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.
Lição 35: Usando o sensor de temperatura HTU21D com Arduino
Este projeto orienta você no uso de um Arduino para ler dados de temperatura e umidade de um sensor HTU21D-F. Este sensor é de baixo custo e amplamente disponível, tornando-o perfeito para uma variedade de projetos. O sensor transmite os dados via I2C, um protocolo de comunicação digital comum. Aprender a usar este sensor e o I2C abrirá muitas possibilidades para seus projetos.

Aplicações práticas:
- Construindo um monitor ambiental para uma casa inteligente
- Criando uma estação meteorológica
- Desenvolvendo um compartimento climatizado para equipamentos eletrônicos sensíveis
- Monitoramento da temperatura e da umidade em uma estufa ou terrário
Hardware/Componentes
Você precisará dos seguintes componentes:
- Placa Arduino (por exemplo, Uno, Nano)
- Sensor de temperatura e humidade HTU21D-F (no vídeo em 00:22)
- Fios de ligação
- Protoboard (opcional, mas recomendada)
Guia de fiação
A fiação é simples. Conecte o sensor ao Arduino da seguinte forma (no vídeo em 02:28):
- VCC do sensor ao Arduino 3.3V
- GND do sensor ao GND do Arduino
- SDA do sensor para o Arduino A4
- SCL do sensor ao Arduino A5

Explicação do código
O código fornecido utiliza a biblioteca Adafruit HTU21D-F (no vídeo em 03:03) para interagir com o sensor. As partes principais são:
// These are the lines that you can configure:
const int inPin =A0;//can change
const int iteration = 1000; //can change (see video at 00:22)
const float LM35_FACTOR =0.01;// do not change
inPin: Especifica o pino analógico conectado ao sensor de temperatura. Você pode alterá-lo para se adequar à sua fiação.
iteration: Esta variável controla o número de leituras realizadas para calcular a média da temperatura. Ao aumentá-la, melhora a precisão, mas torna as leituras mais lentas (no vídeo em 00:22).
OgetHTU()A função (no vídeo em 08:46) permite recuperar a temperatura em Celsius, Fahrenheit ou Kelvin, ou a umidade, passando um caractere ('C', 'F', 'K' ou 'H') como argumento. O código então usa essa função para exibir os dados no monitor serial.
float getTemperature(char type) {
// ... (code to read temperature and humidity) ...
if (type == 'F') {
value = averageTemperature * 9 / 5 + 32; // Fahrenheit
} else if (type == 'K') {
value = averageTemperature + 273.15; // Kelvin
} else {
value = averageTemperature; // Celsius
}
return value;
}
Projeto ao vivo/Demonstração
O vídeo demonstra a funcionalidade do sensor (no vídeo em 07:34). O monitor serial exibe as leituras de temperatura e umidade. O apresentador também mostra como o código pode acionar ações com base em limiares de temperatura (no vídeo em 06:45).
Capítulos
- [00:00] Introdução
- [00:22] Visão geral do sensor
- [01:22] Revisão da ficha técnica
- [02:28] Fiação
- [03:03] Instalação da Biblioteca
- [04:05] Explicação do Código (Parte 1)
- [08:33] Explicação do Código (Parte 2)
- [07:34] Demonstração ao vivo
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
- Aula 36: Usando o Sensor de Temperatura HTU21D com um LCD Arduino Curso Passo a Passo
- 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)
++
/***************************************************
This is an example for the HTU21D-F Humidity & Temperature Sensor
Designed specifically to work with the HTU21D-F sensor from Adafruit
----> https://www.adafruit.com/products/1899
These module use I2C to communicate; 2 pins are required to
interface
****************************************************/
#include <Wire.h>
#include "Adafruit_HTU21DF.h"
// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF();//create object for first HTU21DF sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF();//create object for second HTU21DF sensor
//Adafruit_HTU21DF htu3 = Adafruit_HTU21DF();//create object for third HTU21DF sensor (disabled, remove // from begging of code)
void setup() {
Serial.begin(9600);
Serial.println("HTU21D-F test for two modules");
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
void loop() {
//get value for sensor 1
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
//get value for sensor 2
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
//get value for sensor 3
float temp3 = htu3.readTemperature();
float rel_hum3 = htu3.readHumidity();
//print values for sensor 1
Serial.print("Sensor 1 Temp : "); Serial.print(temp1); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
//print values for sensor 2
Serial.print("Sensor 2 Temp : "); Serial.print(temp2); Serial.print(" C");
Serial.print("\t\t");
Serial.print("Sensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
//print values for sensor 3
//Serial.print("Sensor 3 Temp : "); Serial.print(temp3); Serial.print(" C");
//Serial.print("\t\t");
//Serial.print("Sensor 3 Humidity: "); Serial.print(rel_hum3); Serial.println(" %");
delay(500);
}
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
-
ExternoFolha de dados HTU21D (PDF)cdn-shop.adafruit.com
Arquivos📁
Bibliotecas do Arduino (zip)
-
Biblioteca Adafruit HTU21DF (Robojax.com)
robojax_HTU21DF_Adafruit_HTU21DF_Library-master.zip0.01 MB