Turinys:
- 1 veiksmas: reikalinga aparatūra:
- 2 veiksmas: prijungimas prie aparatūros:
- 3 žingsnis: Drėgmės ir temperatūros matavimo kodas:
- 4 žingsnis: programos:
Video: Drėgmės ir temperatūros matavimas naudojant HTS221 ir „Arduino Nano“: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
HTS221 yra ypač kompaktiškas talpinis skaitmeninis jutiklis, skirtas santykiniam drėgnumui ir temperatūrai. Jame yra jutimo elementas ir mišraus signalo taikymo integruotas grandynas (ASIC), skirtas pateikti matavimo informaciją per skaitmenines nuoseklias sąsajas. Integruotas su daugybe funkcijų, tai yra vienas tinkamiausių jutiklių kritiniams drėgmės ir temperatūros matavimams.
Šioje pamokoje buvo parodyta HTS221 jutiklio modulio sąsaja su arduino nano. Norėdami nuskaityti drėgmės ir temperatūros vertes, mes naudojome arduino su I2c adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti jutiklio modulį.
1 veiksmas: reikalinga aparatūra:
Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:
1. HTS221
2. „Arduino Nano“
3. I2C kabelis
4. „I2C Shield“, skirtas „Arduino Nano“
2 veiksmas: prijungimas prie aparatūros:
Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir „arduino nano“. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:
HTS221 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.
Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.
Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.
Šie ryšiai parodyti aukščiau esančiose nuotraukose.
3 žingsnis: Drėgmės ir temperatūros matavimo kodas:
Pradėkime nuo „Arduino“kodo dabar.
Naudodami jutiklio modulį su „Arduino“, įtraukiame „Wire.h“biblioteką. „Wire“bibliotekoje yra funkcijos, palengvinančios „i2c“ryšį tarp jutiklio ir „Arduino“plokštės.
Visas „Arduino“kodas pateiktas žemiau, kad būtų patogiau:
#įtraukti
// HTS221 I2C adresas yra 0x5F
#define Addr 0x5F
negaliojanti sąranka ()
{
// Inicijuoti I2C komunikaciją kaip MASTER
Wire.begin ();
// Inicijuoti nuoseklųjį ryšį, nustatyti duomenų perdavimo spartą = 9600
Serial.begin (9600);
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite vidutinį konfigūracijos registrą
Wire.write (0x10);
// Temperatūros vidurkio mėginiai = 256, Vidutinės drėgmės mėginiai = 512
Wire.write (0x1B);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Pasirinkite valdymo registrą1
Wire.write (0x20);
// Įjungimas, nuolatinis atnaujinimas, duomenų išvesties sparta = 1 Hz
Wire.write (0x85);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
vėlavimas (300);
}
tuštumos kilpa ()
{
nepasirašyti int duomenys [2];
unsigned int val [4];
nepasirašytas int H0, H1, H2, H3, T0, T1, T2, T3, neapdorotas;
// Drėgmės nustatymo vertės
už (int i = 0; i <2; i ++)
{
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write ((48 + i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
duomenys = Wire.read ();
}
}
// Konvertuoti drėgmės duomenis
H0 = duomenys [0] / 2;
H1 = duomenys [1] / 2;
už (int i = 0; i <2; i ++)
{
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write ((54 + i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
duomenys = Wire.read ();
}
}
// Konvertuoti drėgmės duomenis
H2 = (duomenys [1] * 256,0) + duomenys [0];
už (int i = 0; i <2; i ++)
{
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write ((58 + i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
duomenys = Wire.read ();
}
}
// Konvertuoti drėgmės duomenis
H3 = (duomenys [1] * 256,0) + duomenys [0];
// Temperatūros nustatymo vertės
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write (0x32);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write (0x33);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write (0x35);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
raw = Wire.read ();
}
žaliavas = žalias & 0x0F;
// Konvertuokite temperatūros iškvietimo reikšmes į 10 bitų
T0 = ((neapdorotas ir 0x03) * 256) + T0;
T1 = ((neapdorota ir 0x0C) * 64) + T1;
už (int i = 0; i <2; i ++)
{
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write ((60 + i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
duomenys = Wire.read ();
}
}
// Konvertuoti duomenis
T2 = (duomenys [1] * 256,0) + duomenys [0];
už (int i = 0; i <2; i ++)
{
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write ((62 + i));
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 1 baito duomenų
Wire.requestFrom (Addr, 1);
// Skaityti 1 baitą duomenų
jei (Wire.available () == 1)
{
duomenys = Wire.read ();
}
}
// Konvertuoti duomenis
T3 = (duomenys [1] * 256,0) + duomenys [0];
// Pradėti I2C perdavimą
Wire.beginTransmission (Addr);
// Siųsti duomenų registrą
Wire.write (0x28 | 0x80);
// Sustabdyti I2C perdavimą
Wire.endTransmission ();
// Prašyti 4 baitų duomenų
Wire.requestFrom (Addr, 4);
// Perskaitykite 4 baitus duomenų
// drėgmė msb, drėgmė lsb, temp msb, temp lsb
jei (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Konvertuoti duomenis
plūdės drėgmė = (val [1] * 256,0) + val [0];
drėgmė = ((1,0 * H1) - (1,0 * H0)) * (1,0 * drėgmė - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
plūdė cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
plūdė fTemp = (cTemp * 1.8) + 32;
// Duomenų išvedimas į serijinį monitorių
Serial.print ("Santykinė drėgmė:");
Serijinis atspaudas (drėgmė);
Serial.println (" % RH");
Serial.print ("Temperatūra Celsijaus laipsniais:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatūra Farenheitu:");
Serial.print (fTemp);
Serial.println ("F");
vėlavimas (500);
}
Laidų bibliotekoje Wire.write () ir Wire.read () naudojami komandoms rašyti ir jutiklio išėjimui skaityti.
Serial.print () ir Serial.println () naudojami jutiklio išėjimui rodyti „Arduino IDE“serijos monitoriuje.
Jutiklio išvestis parodyta aukščiau esančiame paveikslėlyje.
4 žingsnis: programos:
HTS221 gali būti naudojamas įvairiose plataus vartojimo prekėse, tokiose kaip oro drėkintuvai ir šaldytuvai ir tt
Rekomenduojamas:
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir „Arduino Nano“: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir Arduino Nano: HIH6130 yra drėgmės ir temperatūros jutiklis su skaitmenine išvestimi. Šie jutikliai užtikrina ± 4% RH tikslumo lygį. Su pirmaujančiu ilgalaikiu stabilumu pramonėje, tikru temperatūros kompensuojamu skaitmeniniu I2C, patikimumu pramonėje, energijos vartojimo efektyvumu
Temperatūros ir drėgmės matavimas naudojant HDC1000 ir Arduino Nano: 4 žingsniai
Temperatūros ir drėgmės matavimas naudojant HDC1000 ir „Arduino Nano“: HDC1000 yra skaitmeninis drėgmės jutiklis su integruotu temperatūros jutikliu, kuris užtikrina puikų matavimo tikslumą esant labai mažai galiai. Prietaisas matuoja drėgmę remdamasis nauju talpiniu jutikliu. Drėgmės ir temperatūros jutikliai yra
Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: HTS221 yra ypač kompaktiškas talpinis skaitmeninis jutiklis, skirtas santykiniam drėgnumui ir temperatūrai. Jame yra jutimo elementas ir mišraus signalo taikymo integruotas grandynas (ASIC), kuris pateikia matavimo informaciją skaitmeniniu nuosekliu
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir Raspberry Pi: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir Raspberry Pi: HIH6130 yra drėgmės ir temperatūros jutiklis su skaitmenine išvestimi. Šie jutikliai užtikrina ± 4% RH tikslumo lygį. Su pirmaujančiu ilgalaikiu stabilumu pramonėje, tikru temperatūros kompensuojamu skaitmeniniu I2C, patikimumu pramonėje, energijos vartojimo efektyvumu
Drėgmės ir temperatūros matavimas naudojant HTS221 ir dalelių fotoną: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HTS221 ir dalelių fotoną: HTS221 yra ypač kompaktiškas talpinis skaitmeninis jutiklis, skirtas santykiniam drėgnumui ir temperatūrai. Jame yra jutimo elementas ir mišraus signalo taikymo integruotas grandynas (ASIC), kuris pateikia matavimo informaciją skaitmeniniu nuosekliu