Tartalomjegyzék:
Videó: Arduino Nano - HTS221 Relatív páratartalom és hőmérséklet érzékelő bemutató: 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. Itt a demonstráció az arduino nanóval.
1. lépés: Amire szüksége van..
1. Arduino Nano
2. HTS221
3. I²C kábel
4. I²C pajzs az Arduino Nano számára
2. lépés: Csatlakozások:
Vegyünk egy I2C pajzsot az Arduino Nano számára, és óvatosan toljuk át a Nano csapjaira.
Ezután csatlakoztassa az I2C kábel egyik végét a HTS221 érzékelőhöz, a másik végét pedig az I2C árnyékoláshoz.
A csatlakozásokat a fenti kép mutatja.
3. lépés: Kód:
A HTS221 arduino kódja letölthető a github tárhelyünkről- DCUBE Community.
Itt a link ugyanerre:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Tartalmazzuk a Wire.h könyvtárat, hogy megkönnyítsük az érzékelő I2c kommunikációját az Arduino táblával.
Innen is másolhatja a kódot, ez a következőképpen van megadva:
// Szabad akaratú licenccel terjesztik.
// Bármilyen módon használhatja, haszonnal vagy ingyen, feltéve, hogy illeszkedik a kapcsolódó művek licenceihez.
// HTS221
// Ez a kód a HTS221_I2CS I2C Mini modullal való együttműködésre készült
#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);
}
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:
Automatikus hűtőventilátor a szervó és a DHT11 hőmérséklet- és páratartalom -érzékelő használatával Arduino segítségével: 8 lépés
Automatikus hűtőventilátor a szervó és a DHT11 hőmérséklet- és páratartalom -érzékelő használatával az Arduino segítségével: Ebben az oktatóanyagban megtanuljuk, hogyan kell elindítani & forgassa a ventilátort, ha a hőmérséklet egy bizonyos szint fölé emelkedik
DHT21 digitális hőmérséklet- és páratartalom -érzékelő Arduino -val: 6 lépés
DHT21 digitális hőmérséklet- és páratartalom -érzékelő Arduino -val: Ebben az oktatóanyagban megtanuljuk, hogyan kell használni a DHT21 páratartalom- és hőmérséklet -érzékelőt az Arduino -val, és megjeleníteni az értékeket az OLED kijelzőn. Nézze meg a videót
Raspberry Pi SHT25 páratartalom és hőmérséklet érzékelő Python bemutató: 4 lépés
Raspberry Pi SHT25 páratartalom és hőmérséklet érzékelő Python bemutató: SHT25 I2C páratartalom és hőmérséklet érzékelő ± 1,8%RH ± 0,2 ° C I2C mini modul. Az SHT25 nagy pontosságú páratartalom- és hőmérséklet-érzékelő iparági szabvány lett az alaktényező és az intelligencia tekintetében, kalibrált, linearizált érzékelőjeleket biztosítva
Raspberry Pi - HIH6130 I2C páratartalom és hőmérséklet érzékelő Python bemutató: 4 lépés
Raspberry Pi - HIH6130 I2C Python és páratartalom érzékelő bemutató: 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
Hőmérséklet, relatív páratartalom, légköri nyomás regisztráló a Raspberry Pi és a TE Connectivity használatával MS8607-02BA01: 22 lépés (képekkel)
Hőmérséklet, relatív páratartalom, légköri nyomás naplózó a Raspberry Pi és a TE Connectivity használatával MS8607-02BA01: Bevezetés: Ebben a projektben megmutatom, hogyan kell lépésről lépésre létrehozni a beállításokat a hőmérséklet páratartalmára és a légköri nyomásra. Ez a projekt a Raspberry Pi 3 Model B és a TE Connectivity MS8607-02BA környezeti érzékelő chipen alapul