Tartalomjegyzék:
- 1. lépés: Szükséges hardver:
- 2. lépés: Hardver csatlakoztatása:
- 3. lépés: A páratartalom és a hőmérséklet mérésének kódja:
- 4. lépés: Alkalmazások:
Videó: Páratartalom és hőmérséklet mérés HTS221 és Arduino Nano használatával: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:40
A HTS221 egy ultrakompakt kapacitív digitális érzékelő a relatív páratartalomhoz és a hőmérséklethez. Tartalmaz egy érzékelő elemet és egy vegyes jelműspecifikus integrált áramkört (ASIC) a mérési információk digitális soros interfészeken keresztül történő biztosítására. Sok funkcióval integrálva ez az egyik legmegfelelőbb érzékelő a kritikus páratartalom és hőmérséklet mérésekhez.
Ebben az oktatóanyagban bemutattuk a HTS221 érzékelő modul és az arduino nano interfészét. A páratartalom és hőmérséklet értékek leolvasásához az arduino -t használtuk I2c adapterrel. Ez az I2C adapter megkönnyíti és megbízhatóbbá teszi a kapcsolatot az érzékelőmodullal.
1. lépés: Szükséges hardver:
A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:
1. HTS221
2. Arduino Nano
3. I2C kábel
4. I2C pajzs az Arduino Nano számára
2. lépés: Hardver csatlakoztatása:
A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és az arduino nano között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:
A HTS221 az I2C -n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.
A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus.
Csak négy vezetékre van szüksége! Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.
Ezeket az összefüggéseket a fenti képek mutatják be.
3. lépés: A páratartalom és a hőmérséklet mérésének kódja:
Kezdjük most az Arduino kóddal.
Miközben az érzékelő modult használja az Arduino -val, a Wire.h könyvtárat is tartalmazza. A "Wire" könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és az Arduino kártya között.
A teljes Arduino kódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:
#befoglalni
// A HTS221 I2C címe 0x5F
#define Addr 0x5F
üres beállítás ()
{
// Inicializálja az I2C kommunikációt MASTER -ként
Wire.begin ();
// Inicializálja a soros kommunikációt, állítsa be az átviteli sebességet = 9600
Sorozat.kezdet (9600);
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Válassza ki az átlagos konfigurációs regisztert
Wire.write (0x10);
// Hőmérsékleti átlagminták = 256, Páratartalom átlagos minták = 512
Wire.write (0x1B);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Vezérlőregiszter kiválasztása1
Wire.write (0x20);
// Bekapcsolás, folyamatos frissítés, adatkimeneti sebesség = 1 Hz
Wire.write (0x85);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
késleltetés (300);
}
üres hurok ()
{
előjel nélküli int adatok [2];
unsigned int val [4];
előjel nélküli int H0, H1, H2, H3, T0, T1, T2, T3, nyers;
// Páratartalom hívásértékek
for (int i = 0; i <2; i ++)
{
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write ((48 + i));
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
adatok = Wire.read ();
}
}
// Nedvesség adatok konvertálása
H0 = adatok [0] / 2;
H1 = adatok [1] / 2;
for (int i = 0; i <2; i ++)
{
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write ((54 + i));
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
adatok = Wire.read ();
}
}
// Nedvesség adatok konvertálása
H2 = (adatok [1] * 256,0) + adatok [0];
for (int i = 0; i <2; i ++)
{
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write ((58 + i));
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
adatok = Wire.read ();
}
}
// Nedvesség adatok konvertálása
H3 = (adatok [1] * 256,0) + adatok [0];
// Hőmérséklet -mérési értékek
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write (0x32);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
T0 = huzal.olvasás ();
}
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write (0x33);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
T1 = huzal.olvasás ();
}
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write (0x35);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
nyers = Wire.read ();
}
nyers = nyers & 0x0F;
// A hőmérséklet-hívásértékek konvertálása 10 bitre
T0 = ((nyers & 0x03) * 256) + T0;
T1 = ((nyers & 0x0C) * 64) + T1;
for (int i = 0; i <2; i ++)
{
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write ((60 + i));
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
adatok = Wire.read ();
}
}
// Konvertálja az adatokat
T2 = (adatok [1] * 256,0) + adatok [0];
for (int i = 0; i <2; i ++)
{
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write ((62 + i));
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 1 bájt adat kérése
Wire.requestFrom (Addr, 1);
// 1 bájt adat olvasása
ha (Wire.available () == 1)
{
adatok = Wire.read ();
}
}
// Konvertálja az adatokat
T3 = (adatok [1] * 256,0) + adatok [0];
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter küldése
Wire.write (0x28 | 0x80);
// Állítsa le az I2C átvitelt
Wire.endTransmission ();
// 4 bájt adat kérése
Wire.requestFrom (Addr, 4);
// 4 bájt adat olvasása
// páratartalom msb, páratartalom lsb, temp msb, temp lsb
ha (Wire.available () == 4)
{
val [0] = Huzal.olvasás ();
val [1] = Huzal.olvasás ();
val [2] = Huzal.olvasás ();
val [3] = Huzal.olvasás ();
}
// Konvertálja az adatokat
úszó páratartalom = (val [1] * 256,0) + val [0];
páratartalom = ((1,0 * H1) - (1,0 * H0)) * (1,0 * páratartalom - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
úszó cTemp = ((((T1 - T0) / 8,0) * (hőmérséklet - T2)) / (T3 - T2) + (T0 / 8,0);
float fTemp = (cTemp * 1,8) + 32;
// Adatok kimenete soros monitorra
Serial.print ("Relatív páratartalom:");
Soros.nyomtatás (páratartalom);
Soros.println (" % RH");
Serial.print ("Hőmérséklet Celsius -ban:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Hőmérséklet Fahrenheitben:");
Serial.print (fTemp);
Serial.println ("F");
késleltetés (500);
}
A vezetékes könyvtárban a Wire.write () és a Wire.read () parancsokat írják és olvassák le az érzékelő kimenetét.
A Serial.print () és a Serial.println () az érzékelő kimenetének megjelenítésére szolgál az Arduino IDE soros monitorán.
Az érzékelő kimenete a fenti képen látható.
4. lépés: Alkalmazások:
A HTS221 alkalmazható különféle fogyasztási cikkekben, például légnedvesítőkben és hűtőszekrényekben. Ez az érzékelő szélesebb körben is alkalmazható, beleértve az intelligens otthoni automatizálást, az ipari automatizálást, a légzőkészülékeket, az eszközök és áruk nyomon követését.
Ajánlott:
Páratartalom és hőmérséklet mérés HIH6130 és Arduino Nano használatával: 4 lépés
Páratartalom és hőmérséklet mérés HIH6130 és Arduino Nano használatával: A HIH6130 egy digitális kimenettel rendelkező páratartalom- és hőmérséklet -érzékelő. Ezek az érzékelők ± 4% RH pontossági szintet biztosítanak. Az iparág vezető hosszú távú stabilitásával, valódi hőmérséklet-kompenzált digitális I2C-vel, az iparág vezető megbízhatóságával, energiahatékonyságával
Páratartalom és hőmérséklet mérés HTS221 és Raspberry Pi használatával: 4 lépés
Páratartalom és hőmérséklet mérés a HTS221 és a Raspberry Pi segítségével: A HTS221 egy ultra kompakt kapacitív digitális érzékelő a relatív páratartalomhoz és hőmérséklethez. Tartalmaz egy érzékelő elemet és egy vegyes jelműspecifikus integrált áramkört (ASIC) a mérési információk digitális soros továbbítására
Páratartalom és hőmérséklet mérés HIH6130 és Raspberry Pi használatával: 4 lépés
Páratartalom és hőmérséklet mérés a HIH6130 és a Raspberry Pi használatával: A HIH6130 egy digitális kimenettel rendelkező páratartalom- és hőmérséklet -érzékelő. Ezek az érzékelők ± 4% RH pontossági szintet biztosítanak. Az iparág vezető hosszú távú stabilitásával, valódi hőmérséklet-kompenzált digitális I2C-vel, az iparág vezető megbízhatóságával, energiahatékonyságával
Páratartalom és hőmérséklet mérés HIH6130 és részecskefoton használatával: 4 lépés
Páratartalom és hőmérséklet mérés HIH6130 és részecskefoton használatával: A HIH6130 egy digitális kimenettel rendelkező páratartalom- és hőmérséklet -érzékelő. Ezek az érzékelők ± 4% RH pontossági szintet biztosítanak. Az iparág vezető hosszú távú stabilitásával, valódi hőmérséklet-kompenzált digitális I2C-vel, az iparág vezető megbízhatóságával, energiahatékonyságával
Páratartalom és hőmérséklet mérés HTS221 és részecskefoton használatával: 4 lépés
Páratartalom és hőmérséklet mérés HTS221 és részecskefoton segítségével: A HTS221 egy ultrakompakt kapacitív digitális érzékelő a relatív páratartalomhoz és hőmérséklethez. Tartalmaz egy érzékelő elemet és egy vegyes jelműspecifikus integrált áramkört (ASIC) a mérési információk digitális soros továbbítására