Índice:
Vídeo: Arduino Nano - HTS221 Umidade Relativa e Sensor Tutorial: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
O HTS221 é um sensor digital capacitivo ultracompacto para umidade relativa e temperatura. Inclui um elemento de detecção e um circuito integrado específico de aplicativo de sinal misto (ASIC) para fornecer as informações de medição por meio de interfaces seriais digitais. Integrado com tantos recursos, este é um dos sensores mais apropriados para medições críticas de umidade e temperatura. Aqui está a demonstração com o arduino nano.
Etapa 1: O que você precisa..
1. Arduino Nano
2. HTS221
3. Cabo I²C
4. Escudo I²C para Arduino Nano
Etapa 2: Conexões:
Pegue um escudo I2C para Arduino Nano e empurre-o suavemente sobre os pinos do Nano.
Em seguida, conecte uma extremidade do cabo I2C ao sensor HTS221 e a outra extremidade à blindagem I2C.
As conexões são mostradas na imagem acima.
Etapa 3: Código:
O código do arduino para HTS221 pode ser baixado de nosso repositório github- DCUBE Community.
Aqui está o link para o mesmo:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Incluímos a biblioteca Wire.h para facilitar a comunicação I2c do sensor com a placa Arduino.
Você também pode copiar o código daqui, ele é fornecido da seguinte forma:
// Distribuído com uma licença de livre arbítrio.
// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.
// HTS221
// Este código é projetado para funcionar com o Mini Módulo HTS221_I2CS I2C
#incluir
// O endereço HTS221 I2C é 0x5F
#define Addr 0x5F
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);
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de configuração média
Wire.write (0x10);
// Amostras médias de temperatura = 256, Amostras médias de umidade = 512
Wire.write (0x1B);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de controle1
Wire.write (0x20);
// Power ON, atualização contínua, taxa de saída de dados = 1 Hz
Wire.write (0x85);
// Pare a transmissão I2C
Wire.endTransmission ();
atraso (300);
}
void loop ()
{
dados internos não assinados [2];
sem sinal int val [4];
sem sinal int H0, H1, H2, H3, T0, T1, T2, T3, bruto;
// Valores de umidade e calibrações
para (int i = 0; i <2; i ++)
{
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write ((48 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
dados = Wire.read ();
}
}
// Converter dados de umidade
H0 = dados [0] / 2;
H1 = dados [1] / 2;
para (int i = 0; i <2; i ++)
{
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write ((54 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
dados = Wire.read ();
}
}
// Converter dados de umidade
H2 = (dados [1] * 256,0) + dados [0];
para (int i = 0; i <2; i ++)
{
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write ((58 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
dados = Wire.read ();
}
}
// Converter dados de umidade
H3 = (dados [1] * 256,0) + dados [0];
// Valores de calliberation de temperatura
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write (0x32);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write (0x33);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write (0x35);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = raw & 0x0F;
// Converta os valores de calibração de temperatura para 10 bits
T0 = ((bruto & 0x03) * 256) + T0;
T1 = ((bruto & 0x0C) * 64) + T1;
para (int i = 0; i <2; i ++)
{
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write ((60 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
dados = Wire.read ();
}
}
// Converta os dados
T2 = (dados [1] * 256,0) + dados [0];
para (int i = 0; i <2; i ++)
{
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write ((62 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicitar 1 byte de dados
Wire.requestFrom (Addr, 1);
// Lê 1 byte de dados
if (Wire.available () == 1)
{
dados = Wire.read ();
}
}
// Converta os dados
T3 = (dados [1] * 256,0) + dados [0];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Enviar registro de dados
Wire.write (0x28 | 0x80);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 4 bytes de dados
Wire.requestFrom (Addr, 4);
// Lê 4 bytes de dados
// umidade msb, umidade lsb, temp msb, temp lsb
if (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Converta os dados
umidade flutuante = (val [1] * 256,0) + val [0];
umidade = ((1,0 * H1) - (1,0 * H0)) * (1,0 * umidade - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
temp int = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8,0) * (temp - T2)) / (T3 - T2) + (T0 / 8,0);
float fTemp = (cTemp * 1.8) + 32;
// 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);
}
Etapa 4: Aplicativos:
O HTS221 pode ser empregado em vários produtos de consumo, como umidificadores de ar e geladeiras, etc. Este sensor também pode ser aplicado em uma área mais ampla, incluindo automação residencial inteligente, automação industrial, equipamentos respiratórios, rastreamento de bens e mercadorias.
Recomendado:
Raspberry Pi SHT25 Sensor de umidade e temperatura Python Tutorial: 4 etapas
Raspberry Pi SHT25 Sensor de Umidade e Temperatura Python Tutorial: SHT25 I2C Sensor de Umidade e Temperatura ± 1,8% UR ± 0,2 ° C Mini Módulo I2C. O sensor de umidade e temperatura de alta precisão SHT25 se tornou um padrão da indústria em termos de fator de forma e inteligência, fornecendo sinais de sensor linearizados e calibrados
Automatizando uma estufa com LoRa! (Parte 1) -- Sensores (temperatura, umidade, umidade do solo): 5 etapas
Automatizando uma estufa com LoRa! (Parte 1) || Sensores (Temperatura, Umidade, Umidade do Solo): Neste projeto irei mostrar como automatizei uma estufa. Isso significa que vou mostrar como construí a estufa e como conectei a eletrônica de energia e automação. Além disso, mostrarei como programar uma placa Arduino que usa L
Raspberry Pi - HIH6130 I2C Sensor de umidade e temperatura Python Tutorial: 4 etapas
Raspberry Pi - HIH6130 I2C Sensor de Umidade e Temperatura Python Tutorial: HIH6130 é um sensor de umidade e temperatura com saída digital. Esses sensores fornecem um nível de precisão de ± 4% UR. Com estabilidade de longo prazo líder do setor, I2C digital com compensação de temperatura real, confiabilidade líder do setor, eficiência energética
Monitor de Umidade sem fio (ESP8266 + Sensor de Umidade): 5 etapas
Monitor de Umidade sem fio (ESP8266 + Sensor de Umidade): compro salsa em maconha e, na maior parte do dia, o solo estava seco. Então eu decido fazer esse projeto, sobre detectar a umidade do solo no vaso com salsa, para verificar, quando preciso deitar terra com água. Acho que esse sensor (sensor capacitivo de umidade v1.2) é bom porque
Registrador de temperatura, umidade relativa, pressão atmosférica usando Raspberry Pi e conectividade TE MS8607-02BA01: 22 etapas (com imagens)
Registrador de temperatura, umidade relativa e pressão atmosférica usando Raspberry Pi e conectividade TE MS8607-02BA01: Introdução: Neste projeto, mostrarei como construir uma configuração por etapa de um sistema de registro para temperatura, umidade e pressão atmosférica. Este projeto é baseado no chip sensor ambiental Raspberry Pi 3 Modelo B e TE Connectivity MS8607-02BA