Satura rādītājs:
- 1. solis: kas jums nepieciešams..
- 2. darbība. Savienojumi:
- 3. darbība: kods:
- 4. darbība. Lietojumprogrammas:
Video: Arduino Nano - HTS221 relatīvā mitruma un temperatūras sensora apmācība: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
HTS221 ir īpaši kompakts kapacitatīvs digitālais sensors relatīvajam mitrumam un temperatūrai. Tas ietver sensoru elementu un jauktu signālu lietojumprogrammu integrētu shēmu (ASIC), lai sniegtu mērījumu informāciju, izmantojot digitālās sērijas saskarnes. Integrēts ar tik daudzām funkcijām, tas ir viens no vispiemērotākajiem sensoriem kritiskiem mitruma un temperatūras mērījumiem. Šeit ir demonstrācija ar arduino nano.
1. solis: kas jums nepieciešams..
1. Arduino Nano
2. HTS221
3. I²C kabelis
4. I²C vairogs Arduino Nano
2. darbība. Savienojumi:
Paņemiet I2C vairogu Arduino Nano un viegli piespiediet to pār Nano tapām.
Pēc tam pievienojiet I2C kabeļa vienu galu HTS221 sensoram un otru galu pie I2C vairoga.
Savienojumi ir parādīti attēlā iepriekš.
3. darbība: kods:
HTS221 arduino kodu var lejupielādēt no mūsu github repozitorija DCUBE Community.
Šeit ir saite uz to pašu:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Mēs iekļaujam bibliotēku Wire.h, lai atvieglotu sensora I2c komunikāciju ar Arduino plati.
Varat arī nokopēt kodu no šejienes, tas ir norādīts šādi:
// Izplatīts ar brīvās gribas licenci.
// Izmantojiet to jebkurā veidā, bez peļņas vai bez maksas, ja tas iekļaujas saistīto darbu licencēs.
// HTS221
// Šis kods ir paredzēts darbam ar mini moduli HTS221_I2CS I2C
#iekļaut
// HTS221 I2C adrese ir 0x5F
#define Addr 0x5F
anulēts iestatījums ()
{
// Inicializēt I2C komunikāciju kā MASTER
Wire.begin ();
// Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600
Sērijas sākums (9600);
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Izvēlieties vidējo konfigurācijas reģistru
Wire.write (0x10);
// Vidējie temperatūras paraugi = 256, vidējie mitruma paraugi = 512
Wire.write (0x1B);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Atlasiet vadības reģistru1
Wire.write (0x20);
// Ieslēgšana, nepārtraukta atjaunināšana, datu izvades ātrums = 1 Hz
Wire.write (0x85);
// Apturēt I2C pārraidi
Wire.endTransmission ();
kavēšanās (300);
}
tukša cilpa ()
{
neparakstīti int dati [2];
neparakstīts int val [4];
neparakstīts int H0, H1, H2, H3, T0, T1, T2, T3, neapstrādāts;
// Mitruma zvana vērtības
par (int i = 0; i <2; i ++)
{
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write ((48 + i));
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
dati = Wire.read ();
}
}
// Pārvērst mitruma datus
H0 = dati [0] / 2;
H1 = dati [1] / 2;
par (int i = 0; i <2; i ++)
{
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write ((54 + i));
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
dati = Wire.read ();
}
}
// Pārvērst mitruma datus
H2 = (dati [1] * 256,0) + dati [0];
par (int i = 0; i <2; i ++)
{
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write ((58 + i));
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
dati = Wire.read ();
}
}
// Pārvērst mitruma datus
H3 = (dati [1] * 256,0) + dati [0];
// Temperatūras zvana vērtības
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write (0x32);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write (0x33);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write (0x35);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
raw = Wire.read ();
}
neapstrādāts = neapstrādāts & 0x0F;
// Konvertējiet temperatūras zvana vērtības uz 10 bitiem
T0 = ((neapstrādāts & 0x03) * 256) + T0;
T1 = ((neapstrādāta & 0x0C) * 64) + T1;
par (int i = 0; i <2; i ++)
{
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write ((60 + i));
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
dati = Wire.read ();
}
}
// Konvertēt datus
T2 = (dati [1] * 256,0) + dati [0];
par (int i = 0; i <2; i ++)
{
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write ((62 + i));
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 1 baitu datu
Wire.requestFrom (Addr, 1);
// Lasīt 1 baitu datu
ja (Wire.available () == 1)
{
dati = Wire.read ();
}
}
// Konvertēt datus
T3 = (dati [1] * 256,0) + dati [0];
// Sākt I2C pārraidi
Wire.beginTransmission (Addr);
// Sūtīt datu reģistru
Wire.write (0x28 | 0x80);
// Apturēt I2C pārraidi
Wire.endTransmission ();
// Pieprasīt 4 baitus datu
Wire.requestFrom (Addr, 4);
// Lasīt 4 baitus datu
// mitrums msb, mitrums lsb, temp msb, temp lsb
ja (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Konvertēt datus
pludiņa mitrums = (val [1] * 256,0) + val [0];
mitrums = ((1,0 * H1) - (1,0 * H0)) * (1,0 * mitrums - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
pludiņš cTemp = ((((T1 - T0) / 8.0) * (temp - T2)) / (T3 - T2) + (T0 / 8.0);
pludiņš fTemp = (cTemp * 1.8) + 32;
// Izvadiet datus uz seriālo monitoru
Serial.print ("Relatīvais mitrums:");
Sērijas nospiedums (mitrums);
Serial.println (" % RH");
Serial.print ("Temperatūra pēc Celsija:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Temperatūra pēc Fārenheita:");
Sērijas nospiedums (fTemp);
Serial.println ("F");
kavēšanās (500);
}
4. darbība. Lietojumprogrammas:
HTS221 var izmantot dažādās patēriņa precēs, piemēram, gaisa mitrinātājos un ledusskapjos uc
Ieteicams:
Raspberry Pi SHT25 mitruma un temperatūras sensora Python apmācība: 4 soļi
Raspberry Pi SHT25 mitruma un temperatūras sensora Python apmācība: SHT25 I2C mitruma un temperatūras sensors ± 1,8%RH ± 0,2 ° C I2C mini modulis. SHT25 augstas precizitātes mitruma un temperatūras sensors ir kļuvis par nozares standartu formas un intelekta ziņā, nodrošinot kalibrētus, linearizētus sensoru signālus
Arduino Nano - SI7050 temperatūras sensora apmācība: 4 soļi
Arduino Nano - SI7050 temperatūras sensora apmācība: SI7050 ir digitāls temperatūras sensors, kas darbojas saskaņā ar I2C sakaru protokolu un piedāvā augstu precizitāti visā darba sprieguma un temperatūras diapazonā. Šī sensora augstā precizitāte ir saistīta ar jauno signālu apstrādi un anālo
Arduino Nano - TCN75A temperatūras sensora apmācība: 4 soļi
Arduino Nano-TCN75A temperatūras sensora apmācība: TCN75A ir divu vadu sērijas temperatūras sensors, kas apvienots ar temperatūras pārveidotāju cipariem. Tas ir iekļauts lietotāja programmējamos reģistros, kas nodrošina elastību lietojumprogrammām temperatūras noteikšanai. Reģistra iestatījumi ļauj lietotājiem
Arduino Nano - STS21 temperatūras sensora apmācība: 4 soļi
Arduino Nano - STS21 temperatūras sensora apmācība: STS21 digitālais temperatūras sensors piedāvā izcilu veiktspēju un vietu taupošu nospiedumu. Tas nodrošina kalibrētus, linearizētus signālus digitālā, I2C formātā. Šī sensora izgatavošana ir balstīta uz CMOSens tehnoloģiju, kas izcilākajam piešķir
Raspberry Pi - HIH6130 I2C mitruma un temperatūras sensora Python apmācība: 4 soļi
Raspberry Pi - HIH6130 I2C mitruma un temperatūras sensora Python apmācība: HIH6130 ir mitruma un temperatūras sensors ar digitālo izeju. Šie sensori nodrošina precizitātes līmeni ± 4% RH. Ar nozarē vadošo ilgtermiņa stabilitāti, patiesu temperatūras kompensētu digitālo I2C, nozares vadošo uzticamību, energoefektivitāti