Índice:

Medição de temperatura e umidade usando HDC1000 e Arduino Nano: 4 etapas
Medição de temperatura e umidade usando HDC1000 e Arduino Nano: 4 etapas

Vídeo: Medição de temperatura e umidade usando HDC1000 e Arduino Nano: 4 etapas

Vídeo: Medição de temperatura e umidade usando HDC1000 e Arduino Nano: 4 etapas
Vídeo: WPILib/roboRio Device Driver: Integration Testing With A Bus Pirate - Part 6 2024, Novembro
Anonim
Image
Image

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 arduino nano foi ilustrada. Para ler os valores de temperatura e umidade, usamos o arduino 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:

Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário

Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:

1. HDC1000

2. Arduino Nano

3. Cabo I2C

4. Escudo I2C para Arduino Nano

Etapa 2: Conexão de Hardware:

Conexão de hardware
Conexão de hardware
Conexão de hardware
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 arduino nano. 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:

Código para medição de temperatura e umidade
Código para medição de temperatura e umidade

Vamos começar com o código do Arduino agora.

Ao usar o módulo sensor com o arduino, incluímos a biblioteca Wire.h. A biblioteca "Wire" contém as funções que facilitam a comunicação i2c entre o sensor e a placa arduino.

Todo o código do arduino é fornecido abaixo para a conveniência do usuário:

#incluir

// O endereço I2C HDC1000 é 0x40 (64)

#define Addr 0x40

void setup ()

{

// Inicializar a comunicação I2C como MASTER

Wire.begin ();

// Inicialize a comunicação serial, defina a taxa de transmissão = 9600

Serial.begin (9600);

// Inicia a comunicaçã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];

// Inicia a comunicaçã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

int temp = (dados [0] * 256) + dados [1];

float cTemp = (temp / 65536,0) * 165,0 - 40;

float fTemp = cTemp * 1,8 + 32;

// Inicia a comunicaçã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

// umidade msb, umidade lsb

if (Wire.available () == 2)

{

dados [0] = Wire.read ();

dados [1] = Wire.read ();

}

// Converta os dados

umidade flutuante = (dados [0] * 256) + dados [1];

umidade = (umidade / 65536,0) * 100,0;

// Dados de saída para monitor serial

Serial.print ("Umidade relativa:");

Serial.print (umidade);

Serial.println ("% RH");

Serial.print ("Temperatura em Celsius:");

Serial.print (cTemp);

Serial.println ("C");

Serial.print ("Temperatura em Fahrenheit:");

Serial.print (fTemp);

Serial.println ("F");

atraso (500);

}

Na biblioteca de fios, Wire.write () e Wire.read () são usados para escrever os comandos e ler a saída do sensor.

Serial.print () e Serial.println () são usados para exibir a saída do sensor no monitor serial do IDE do Arduino.

A saída do sensor é mostrada na imagem acima.

Etapa 4: Aplicativos:

Formulários
Formulários

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.

Recomendado: