Turinys:
Video: „Arduino Nano“- HTS221 santykinio drėgmės ir temperatūros jutiklio pamoka: 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. Štai demonstracija su arduino nano.
1 žingsnis: ko jums reikia..
1. „Arduino Nano“
2. HTS221
3. I²C kabelis
4. „I²C Shield“, skirtas „Arduino Nano“
2 žingsnis: jungtys:
Paimkite „Arduino Nano“I2C skydą ir švelniai stumkite jį per „Nano“kaiščius.
Tada vieną I2C kabelio galą prijunkite prie HTS221 jutiklio, o kitą - prie I2C skydo.
Sujungimai parodyti aukščiau esančiame paveikslėlyje.
3 žingsnis: kodas:
HTS221 arduino kodą galima atsisiųsti iš mūsų „github“saugyklos- „DCUBE Community“.
Čia yra nuoroda į tą patį:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Įtraukiame „Wire.h“biblioteką, kad palengvintume jutiklio I2c ryšį su „Arduino“plokšte.
Taip pat galite nukopijuoti kodą iš čia, jis pateikiamas taip:
// Platinama su laisvos valios licencija.
// Naudokite bet kokiu būdu, pelningai ar nemokamai, jei jis atitinka susijusių darbų licencijas.
// HTS221
// Šis kodas skirtas dirbti su „HTS221_I2CS I2C Mini“moduliu
#į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);
}
4 žingsnis: programos:
HTS221 gali būti naudojamas įvairiose plataus vartojimo prekėse, tokiose kaip oro drėkintuvai ir šaldytuvai ir tt
Rekomenduojamas:
„Raspberry Pi SHT25“drėgmės ir temperatūros jutiklio „Python“pamoka: 4 žingsniai
„Raspberry Pi SHT25“drėgmės ir temperatūros jutiklio „Python“pamoka: SHT25 I2C drėgmės ir temperatūros jutiklis ± 1,8%RH ± 0,2 ° C I2C mini modulis. SHT25 didelio tikslumo drėgmės ir temperatūros jutiklis tapo pramonės standartu pagal formos faktorių ir intelektą, suteikiantį kalibruotus, linijinius jutiklių ženklus
„Arduino Nano“- SI7050 temperatūros jutiklio pamoka: 4 žingsniai
„Arduino Nano“- SI7050 temperatūros jutiklio pamoka: SI7050 yra skaitmeninis temperatūros jutiklis, veikiantis pagal I2C ryšio protokolą ir užtikrinantis didelį tikslumą per visą darbinę įtampą ir temperatūros diapazoną. Šis didelis jutiklio tikslumas priskiriamas naujam signalų apdorojimui ir analiniam
„Arduino Nano“- TCN75A temperatūros jutiklio pamoka: 4 žingsniai
„Arduino Nano“-TCN75A temperatūros jutiklio pamoka: TCN75A yra dviejų laidų nuoseklus temperatūros jutiklis, integruotas su temperatūros ir skaitmeninio keitikliu. Jis įtrauktas į vartotojo programuojamus registrus, kurie suteikia lankstumo temperatūros jutiklinėms programoms. Registro nustatymai leidžia vartotojams
„Arduino Nano“- STS21 temperatūros jutiklio pamoka: 4 žingsniai
„Arduino Nano“- STS21 temperatūros jutiklio pamoka: STS21 skaitmeninis temperatūros jutiklis siūlo puikų našumą ir taupo vietą. Jis teikia kalibruotus, linijinius signalus skaitmeniniu I2C formatu. Šio jutiklio gamyba pagrįsta CMOSens technologija, kuri priskiriama pranašesniam
„Arduino Nano“- TMP100 temperatūros jutiklio pamoka: 4 žingsniai
„Arduino Nano“-TMP100 temperatūros jutiklio pamoka: TMP100 didelio tikslumo, mažos galios, skaitmeninis temperatūros jutiklis I2C MINI modulis. TMP100 idealiai tinka ilgesniam temperatūros matavimui. Šis prietaisas siūlo ± 1 ° C tikslumą, nereikalaujant kalibravimo ar išorinio komponento signalo kondicionavimo. Jis