Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
O HDC1000 é um sensor de umidade digital com sensor de temperatura integrado que oferece excelente precisão de medição em potência muito baixa. O dispositivo mede a umidade com base em um novo sensor capacitivo. Os sensores de umidade e temperatura são calibrados de fábrica. É funcional dentro da faixa de temperatura total de -40 ° C a + 125 ° C.
Neste tutorial, a interface do módulo sensor HDC1000 com o fóton de partícula foi ilustrada. Para ler os valores de temperatura e umidade, usamos partículas com um adaptador I2c. Este adaptador I2C torna a conexão ao módulo do sensor mais fácil e confiável.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. HDC1000
2. Partícula de fóton
3. Cabo I2C
4. Escudo I2C para partícula de fóton
Etapa 2: Conexão de Hardware:
A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e o fóton da partícula. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:
O HDC1000 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.
Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico.
Você só precisa de quatro fios! São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.
Essas conexões são demonstradas nas fotos acima.
Etapa 3: Código para medição de temperatura e umidade:
Vamos começar com o código da partícula agora.
Ao usar o módulo sensor com a partícula, incluímos a biblioteca application.h e spark_wiring_i2c.h. A biblioteca "application.h" e spark_wiring_i2c.h contém as funções que facilitam a comunicação i2c entre o sensor e a partícula.
Todo o código da partícula é fornecido abaixo para a conveniência do usuário:
#incluir
#incluir
// O endereço I2C HDC1000 é 0x40 (64)
#define Addr 0x40
cTemp duplo = 0,0, fTemp = 0,0, umidade = 0,0;
int temp = 0, zumbido = 0;
void setup ()
{
// Definir variável
Particle.variable ("i2cdevice", "HDC1000");
Partícula.variable ("umidade", umidade);
Particle.variable ("cTemp", cTemp);
// Inicializar a comunicação I2C
Wire.begin ();
// Inicialize a comunicação serial, defina a taxa de transmissão = 9600
Serial.begin (9600);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecionar registro de configuração
Wire.write (0x02);
// Temperatura, umidade habilitada, resolução = 14 bits, aquecedor ligado
Wire.write (0x30);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [2];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar comando de medição de temperatura
Wire.write (0x00);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (500);
// Solicita 2 bytes de dados
Wire.requestFrom (Addr, 2);
// Lê 2 bytes de dados
// temp msb, temp lsb
if (Wire.available () == 2)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
}
// Converta os dados
temp = ((dados [0] * 256) + dados [1]);
cTemp = (temp / 65536,0) * 165,0 - 40;
fTemp = cTemp * 1,8 + 32;
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar comando de medição de umidade
Wire.write (0x01);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (500);
// Solicita 2 bytes de dados
Wire.requestFrom (Addr, 2);
// Lê 2 bytes de dados
// temp msb, temp lsb
if (Wire.available () == 2)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
}
// Converta os dados
hum = ((dados [0] * 256) + dados [1]);
umidade = (hum / 65536,0) * 100,0;
// Saída de dados para o painel
Particle.publish ("Umidade relativa:", String (umidade));
atraso (1000);
Particle.publish ("Temperatura em Celsius:", String (cTemp));
atraso (1000);
Particle.publish ("Temperatura em Fahrenheit:", String (fTemp));
atraso (1000);
}
A função Particle.variable () cria as variáveis para armazenar a saída do sensor e a função Particle.publish () exibe a saída no painel do site.
A saída do sensor é mostrada na imagem acima para sua referência.
Etapa 4: Aplicativos:
HDC1000 pode ser empregado em aquecimento, ventilação e ar condicionado (HVAC), termostatos inteligentes e monitores de ambiente. Este sensor também encontra sua aplicação em impressoras, medidores portáteis, dispositivos médicos, transporte de carga, bem como desembaçamento de pára-brisa automotivo.