Obsah:
Video: Arduino Nano - HTS221 Relatívny snímač vlhkosti a teploty Výučba: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
HTS221 je ultrakompaktný kapacitný digitálny snímač relatívnej vlhkosti a teploty. Obsahuje snímací prvok a integrovaný obvod špecifický pre zmiešaný signál (ASIC) na poskytovanie informácií o meraní prostredníctvom digitálnych sériových rozhraní. Integrovaný s toľkými funkciami, je to jeden z najvhodnejších senzorov pre kritické merania vlhkosti a teploty. Tu je ukážka s arduino nano.
Krok 1: Čo potrebujete.. !
1. Arduino Nano
2. HTS221
3. Kábel I²C
4. I²C štít pre Arduino Nano
Krok 2: Pripojenia:
Vezmite štít I2C pre Arduino Nano a jemne ho zatlačte cez kolíky Nano.
Potom pripojte jeden koniec kábla I2C k senzoru HTS221 a druhý koniec k štítu I2C.
Pripojenia sú znázornené na obrázku vyššie.
Krok 3: Kód:
Arduino kód pre HTS221 si môžete stiahnuť z nášho úložiska github- komunity DCUBE.
Tu je odkaz na to isté:
github.com/DcubeTechVentures/HTS221/blob/master/Arduino/HTS221.ino
Ponúkame knižnicu Wire.h na uľahčenie komunikácie senzora I2c s doskou Arduino.
Odtiaľto môžete tiež skopírovať kód, ktorý je nasledujúci:
// Distribuované s licenciou slobodnej vôle.
// Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií k ním pridruženým dielam.
// HTS221
// Tento kód je navrhnutý tak, aby pracoval s mini modulom HTS221_I2CS I2C
#zahrnúť
// Adresa HTS221 I2C je 0x5F
#define Addr 0x5F
neplatné nastavenie ()
{
// Inicializujte komunikáciu I2C ako MASTER
Wire.begin ();
// Inicializujte sériovú komunikáciu, nastavte prenosovú rýchlosť = 9600
Serial.begin (9600);
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte priemerný konfiguračný register
Wire.write (0x10);
// Priemerné teplotné vzorky = 256, Vlhké priemerné vzorky = 512
Wire.write (0x1B);
// Zastavte prenos I2C
Wire.endTransmission ();
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Vyberte riadiaci register1
Wire.write (0x20);
// ZAPNUTIE, nepretržitá aktualizácia, rýchlosť dátového výstupu = 1 Hz
Wire.write (0x85);
// Zastavte prenos I2C
Wire.endTransmission ();
oneskorenie (300);
}
prázdna slučka ()
{
int data bez znamienka [2];
bez znamienka int val [4];
bez znamienka int H0, H1, H2, H3, T0, T1, T2, T3, surový;
// Hodnoty kalibrácie vlhkosti
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((48 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H0 = údaje [0] / 2;
H1 = údaje [1] / 2;
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((54 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H2 = (údaje [1] * 256,0) + údaje [0];
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((58 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje o vlhkosti
H3 = (údaje [1] x 256,0) + údaje [0];
// Hodnoty kalibrácie teploty
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x32);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
T0 = Wire.read ();
}
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x33);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
T1 = Wire.read ();
}
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x35);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
raw = Wire.read ();
}
raw = surový & 0x0F;
// Previesť hodnoty kalibrácie teploty na 10-bitové
T0 = ((surový & 0x03) * 256) + T0;
T1 = ((surový & 0x0C) * 64) + T1;
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((60 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje
T2 = (údaje [1] * 256,0) + údaje [0];
pre (int i = 0; i <2; i ++)
{
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write ((62 + i));
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 1 bajt údajov
Wire.requestFrom (Addr, 1);
// Prečítajte 1 bajt údajov
ak (Wire.available () == 1)
{
data = Wire.read ();
}
}
// Previesť údaje
T3 = (údaje [1] * 256,0) + údaje [0];
// Spustite prenos I2C
Wire.beginTransmission (Addr);
// Odoslanie dátového registra
Wire.write (0x28 | 0x80);
// Zastavte prenos I2C
Wire.endTransmission ();
// Požiadajte o 4 bajty údajov
Wire.requestFrom (Addr, 4);
// Prečítajte 4 bajty údajov
// vlhkosť msb, vlhkosť lsb, temp msb, temp lsb
ak (Wire.available () == 4)
{
val [0] = Wire.read ();
val [1] = Wire.read ();
val [2] = Wire.read ();
val [3] = Wire.read ();
}
// Previesť údaje
plávajúca vlhkosť = (val [1] * 256,0) + val [0];
vlhkosť = ((1,0 * H1) - (1,0 * H0)) * (1,0 * vlhkosť - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);
int temp = (val [3] * 256) + val [2];
float cTemp = (((T1 - T0) / 8,0) * (teplota - T2)) / (T3 - T2) + (T0 / 8,0);
float fTemp = (cTemp * 1,8) + 32;
// Výstup údajov na sériový monitor
Serial.print ("Relatívna vlhkosť:");
Sériový tlač (vlhkosť);
Serial.println (" % RH");
Serial.print ("Teplota v stupňoch Celzia:");
Serial.print (cTemp); Serial.println ("C");
Serial.print ("Teplota vo Fahrenheite:");
Serial.print (fTemp);
Serial.println ("F");
oneskorenie (500);
}
Krok 4: Aplikácie:
HTS221 je možné použiť v rôznych spotrebiteľských výrobkoch, ako sú zvlhčovače vzduchu a chladničky atď. Tento senzor nachádza svoje uplatnenie aj v širšej oblasti, vrátane inteligentnej domácej automatizácie, priemyselnej automatizácie, respiračných zariadení, sledovania majetku a tovaru.
Odporúča:
Raspberry Pi MCP9808 Snímač teploty Python Výučba: 4 kroky
Teplotný snímač Raspberry Pi MCP9808 Python Výukový program: MCP9808 je vysoko presný digitálny teplotný senzor mini modul I2C s ± 0,5 ° C. Sú vybavené užívateľsky programovateľnými registrami, ktoré uľahčujú aplikácie snímania teploty. Vysoko presný teplotný senzor MCP9808 sa stal priemyselným
Raspberry Pi MCP9803 Snímač teploty Java Výučba: 4 kroky
Teplotný snímač Raspberry Pi MCP9803 Java Návod: MCP9803 je 2-vodičový vysoko presný teplotný senzor. Sú vybavené užívateľsky programovateľnými registrami, ktoré uľahčujú aplikácie snímania teploty. Tento senzor je vhodný pre vysoko sofistikovaný viaczónový systém monitorovania teploty. Tu
Raspberry Pi MCP9805 Snímač teploty Java Výučba: 4 kroky
Teplotný snímač Raspberry Pi MCP9805 Java Návod: MCP9805 je digitálny teplotný snímač pamäťového modulu. Je integrovaný s užívateľsky programovateľnými registrami, ktoré poskytujú flexibilitu pre aplikácie snímajúce teplotu. Tento senzor je navrhnutý tak, aby bol integrovaný v pamäťovom module mobilnej platformy
Raspberry Pi - snímač teploty TCN75A Python Výučba: 4 kroky
Raspberry Pi-snímač teploty TCN75A Python Výukový program: TCN75A je dvojvodičový sériový snímač teploty vstavaný s prevodníkom teploty na digitál. Je integrovaný s užívateľsky programovateľnými registrami, ktoré poskytujú flexibilitu pre aplikácie snímajúce teplotu. Nastavenia registra umožňujú používateľom
Snímač teploty a vlhkosti s displejom Arduino a LCD: 4 kroky
Snímač teploty a vlhkosti s displejom Arduino a LCD: Dobrý deň, priatelia, vitajte späť v Artuine. Ako ste videli, začal som InstructableDnes si urobíme teplotu & Merač vlhkosti s modulom DHT11. Začnime Zvážte prihlásenie sa na odber a lajknutie videa