Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
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 dalelių fotonu. Norėdami nuskaityti drėgmės ir temperatūros vertes, naudojome daleles 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. Dalelių fotonas
3. I2C kabelis
4. I2C skydas dalelių fotonui
2 veiksmas: prijungimas prie aparatūros:
Techninės įrangos prijungimo skyrius iš esmės paaiškina laidų jungtis, reikalingas tarp jutiklio ir dalelių fotono. 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 dalelių kodo dabar.
Naudodami jutiklio modulį su dalele, įtraukiame „application.h“ir „spark_wiring_i2c.h“biblioteką. Bibliotekoje „application.h“ir spark_wiring_i2c.h yra funkcijos, palengvinančios i2c ryšį tarp jutiklio ir dalelės.
Visas dalelių kodas pateikiamas žemiau, kad būtų patogiau vartotojui:
#įtraukti
#įtraukti
// HTS221 I2C adresas yra 0x5F
#define Addr 0x5F
dviguba drėgmė = 0,0;
dvigubas cTemp = 0,0;
dvigubas fTemp = 0,0;
int temp = 0;
negaliojanti sąranka ()
{
// Nustatyti kintamąjį
Particle.variable ("i2cdevice", "HTS221");
Dalelė.kintamasis ("Drėgmė", drėgmė);
Particle.variable ("cTemp", cTemp);
// 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
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);
temp = (val [3] * 256) + val [2]; cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
fTemp = (cTemp * 1,8) + 32;
// Išvesti duomenis į prietaisų skydelį
Particle.publish ("Santykinė drėgmė:", Styga (drėgmė));
vėlavimas (1000);
Particle.publish ("Temperatūra Celsijaus laipsniais:", Styga (cTemp));
vėlavimas (1000);
Particle.publish ("Temperatūra Farenheitu:", Styga (fTemp));
vėlavimas (1000);
}
Funkcija „Particle.variable ()“sukuria kintamuosius, kad išsaugotų jutiklio išvestį, o „Particle.publish“() rodo išvestį svetainės prietaisų skydelyje.
Jutiklio išvestis yra 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 matavimas naudojant HYT939 ir dalelių fotoną: 4 žingsniai
Drėgmės matavimas naudojant HYT939 ir dalelių fotoną: HYT939 yra skaitmeninis drėgmės jutiklis, veikiantis pagal I2C ryšio protokolą. Drėgmė yra pagrindinis parametras, kai kalbama apie medicinos sistemas ir laboratorijas, todėl, siekdami šių tikslų, mes bandėme sujungti HYT939 su aviečių pi. Aš
Temperatūros matavimas naudojant MCP9803 ir dalelių fotoną: 4 žingsniai
Temperatūros matavimas naudojant MCP9803 ir dalelių fotoną: MCP9803 yra 2 laidų didelio tikslumo temperatūros jutiklis. Jie yra su vartotojo programuojamais registrais, palengvinančiais temperatūros jutimo programas. Šis jutiklis tinka labai sudėtingai kelių zonų temperatūros stebėjimo sistemai
Temperatūros matavimas naudojant STS21 ir dalelių fotoną: 4 žingsniai
Temperatūros matavimas naudojant STS21 ir dalelių fotoną: STS21 skaitmeninis temperatūros jutiklis pasižymi puikiu našumu ir taupo vietą. Jis teikia kalibruotus, linijinius signalus skaitmeniniu I2C formatu. Šio jutiklio gamyba pagrįsta CMOSens technologija, kuri priskiriama pranašesniam
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir dalelių fotoną: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HIH6130 ir dalelių fotoną: HIH6130 yra drėgmės ir temperatūros jutiklis su skaitmeniniu išėjimu. Š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 dalelių fotoną: 4 žingsniai
Temperatūros ir drėgmės matavimas naudojant HDC1000 ir dalelių fotoną: 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