Kazalo:
Video: Arduino Nano - HTS221 Vadnica senzorja relativne vlažnosti in temperature: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
HTS221 je ultra kompakten kapacitivni digitalni senzor za relativno vlažnost in temperaturo. Vključuje zaznavni element in integrirano vezje za aplikacije z mešanim signalom (ASIC) za zagotavljanje merilnih informacij prek digitalnih serijskih vmesnikov. Integriran s toliko funkcijami, je eden najprimernejših senzorjev za merjenje kritične vlažnosti in temperature. Tukaj je predstavitev z arduino nano.
Korak: Kaj potrebujete.. !
1. Arduino Nano
2. HTS221
3. Kabel I²C
4. I²C ščit za Arduino Nano
2. korak: Povezave:
Vzemite ščit I2C za Arduino Nano in ga nežno potisnite čez zatiče Nano.
Nato en konec kabla I2C priključite na senzor HTS221, drugi konec pa na ščit I2C.
Povezave so prikazane na zgornji sliki.
3. korak: Koda:
Kodo arduino za HTS221 lahko prenesete iz našega skladišča github- skupnosti DCUBE.
Tukaj je povezava za isto:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Vključujemo knjižnico Wire.h za olajšanje komunikacije senzorja I2c s ploščo Arduino.
Kodo lahko tudi kopirate od tu, podana je na naslednji način:
// Razdeljeno z licenco za svobodno voljo.
// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.
// HTS221
// Ta koda je zasnovana za delo z mini modulom HTS221_I2CS I2C
#vključi
// Naslov HTS221 I2C je 0x5F
#define Addr 0x5F
void setup ()
{
// Inicializirajte komunikacijo I2C kot MASTER
Wire.begin ();
// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600
Serial.begin (9600);
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izbira povprečnega registra konfiguracije
Wire.write (0x10);
// Povprečni temperaturni vzorci = 256, Povprečni vzorci vlažnosti = 512
Wire.write (0x1B);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Izberite kontrolni register1
Wire.write (0x20);
// Vklop, neprekinjeno posodabljanje, Izhodna hitrost podatkov = 1 Hz
Wire.write (0x85);
// Ustavi prenos I2C
Wire.endTransmission ();
zamuda (300);
}
void loop ()
{
podpisani int podatki [2];
brez podpisa int val [4];
nepodpisani int H0, H1, H2, H3, T0, T1, T2, T3, surov;
// Vrednosti kalibracije vlažnosti
za (int i = 0; i <2; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write ((48 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvarjanje podatkov o vlažnosti
H0 = podatki [0] / 2;
H1 = podatki [1] / 2;
za (int i = 0; i <2; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write ((54 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvarjanje podatkov o vlažnosti
H2 = (podatki [1] * 256,0) + podatki [0];
za (int i = 0; i <2; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write ((58 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvarjanje podatkov o vlažnosti
H3 = (podatki [1] * 256,0) + podatki [0];
// Vrednosti umerjanja temperature
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji podatkovni register
Wire.write (0x32);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji podatkovni register
Wire.write (0x33);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write (0x35);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
surovo = Wire.read ();
}
surovo = surovo & 0x0F;
// Pretvorimo vrednosti kalibracije temperature v 10 bitov
T0 = ((surovo & 0x03) * 256) + T0;
T1 = ((surovo & 0x0C) * 64) + T1;
za (int i = 0; i <2; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write ((60 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvorimo podatke
T2 = (podatki [1] * 256,0) + podatki [0];
za (int i = 0; i <2; i ++)
{
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji podatkovni register
Wire.write ((62 + i));
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 1 bajt podatkov
Wire.requestFrom (Addr, 1);
// Preberite 1 bajt podatkov
če (Wire.available () == 1)
{
podatki = Wire.read ();
}
}
// Pretvorimo podatke
T3 = (podatki [1] * 256,0) + podatki [0];
// Zagon prenosa I2C
Wire.beginTransmission (Addr);
// Pošlji register podatkov
Wire.write (0x28 | 0x80);
// Ustavi prenos I2C
Wire.endTransmission ();
// Zahtevajte 4 bajte podatkov
Wire.requestFrom (Addr, 4);
// Branje 4 bajtov podatkov
// vlažnost msb, vlažnost lsb, temp msb, temp lsb
če (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Pretvorimo podatke
plavajoča vlažnost = (val [1] * 256,0) + val [0];
vlažnost = ((1,0 * H1) - (1,0 * H0)) * (1,0 * vlažnost - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8,0) * (temp - T2)) / (T3 - T2) + (T0 / 8,0);
float fTemp = (cTemp * 1.8) + 32;
// Izhodni podatki na serijski monitor
Serial.print ("Relativna vlažnost:");
Serijski.tisk (vlažnost);
Serial.println (" % RH");
Serial.print ("Temperatura v Celzijusi:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatura v Fahrenheitu:");
Serial.print (fTemp);
Serial.println ("F");
zamuda (500);
}
4. korak: Aplikacije:
HTS221 se lahko uporablja v različnih potrošniških izdelkih, kot so vlažilci zraka in hladilniki itd. Ta senzor se uporablja tudi na širšem področju, vključno z avtomatizacijo pametnega doma, industrijsko avtomatizacijo, opremo za dihanje, sledenjem sredstev in blaga.
Priporočena:
Arduino Nano - TSL45315 Vadnica senzorja zunanje svetlobe: 4 koraki
Arduino Nano - TSL45315 Vadnica za senzor svetlobe okolice: TSL45315 je digitalni senzor za svetlobo okolice. Približuje odziv človeškega očesa v različnih svetlobnih pogojih. Naprave imajo tri izbirne integracijske čase in zagotavljajo neposreden 16-bitni lux izhod prek vmesnika vodila I2C. Naprava skupaj
Gasilni aparat senzorja temperature in vlažnosti senzorja (Arduino UNO): 11 korakov
Samodejni gasilni aparat s senzorjem temperature in vlažnosti (Arduino UNO): Ta projekt je bil namenjen vsem v domovih ali podjetjih kot senzor temperature in vlažnosti, prikazan na LCD -prikazovalniku, ter senzor plamena, povezan z zvočnikom in vodno črpalko za gašenje. požar v nujnih primerih
Raspberry Pi - HIH6130 I2C senzor vlažnosti in temperature Python Vadnica: 4 koraki
Raspberry Pi - HIH6130 I2C Senzor vlažnosti in temperature Python Vadnica: HIH6130 je senzor vlažnosti in temperature z digitalnim izhodom. Ti senzorji zagotavljajo natančnost ± 4% RH. Z dolgoročno stabilnostjo v industriji, resnično temperaturno kompenziranim digitalnim I2C, vodilno zanesljivostjo v industriji, energetsko učinkovitostjo
Raspberry Pi - HIH6130 I2C senzor vlažnosti in temperature Java Vadnica: 4 koraki
Raspberry Pi - HIH6130 I2C senzor vlažnosti in temperature Java Vadnica: HIH6130 je senzor vlažnosti in temperature z digitalnim izhodom. Ti senzorji zagotavljajo natančnost ± 4% RH. Z dolgoročno stabilnostjo v industriji, resnično temperaturno kompenziranim digitalnim I2C, vodilno zanesljivostjo v industriji, energetsko učinkovitostjo
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: 4 koraki
Metode odkrivanja nivoja vode Arduino z uporabo ultrazvočnega senzorja in senzorja vode Funduino: V tem projektu vam bom pokazal, kako z dvema metodama ustvarite poceni detektor vode: 1. Ultrazvočni senzor (HC-SR04) .2. Senzor vode Funduino