Sadržaj:

Mjerenje vlažnosti i temperature pomoću HTS221 i Raspberry Pi: 4 koraka
Mjerenje vlažnosti i temperature pomoću HTS221 i Raspberry Pi: 4 koraka

Video: Mjerenje vlažnosti i temperature pomoću HTS221 i Raspberry Pi: 4 koraka

Video: Mjerenje vlažnosti i temperature pomoću HTS221 i Raspberry Pi: 4 koraka
Video: Часть 5 - Аудиокнига Уолдена Генри Дэвида Торо (глы 12–15) 2024, Studeni
Anonim
Image
Image

HTS221 je ultra kompaktni kapacitivni digitalni senzor za relativnu vlažnost i temperaturu. Sadrži osjetni element i integrirani krug specifične primjene mješovitog signala (ASIC) za pružanje mjernih informacija putem digitalnih serijskih sučelja. Integriran s toliko značajki, ovo je jedan od najprikladnijih senzora za mjerenje kritične vlažnosti i temperature.

U ovom vodiču prikazano je povezivanje senzorskog modula HTS221 s malinom pi, a prikazano je i njegovo programiranje pomoću jezika python. Za očitavanje vlažnosti i temperature koristili smo malinu pi s I2C adapterom. Ovaj adapter I2C čini povezivanje s senzorskim modulom lakim i pouzdanijim.

Korak 1: Potreban hardver:

Potreban hardver
Potreban hardver
Potreban hardver
Potreban hardver
Potreban hardver
Potreban hardver

Materijali koji su nam potrebni za postizanje našeg cilja uključuju sljedeće hardverske komponente:

1. HTS221

2. Malina Pi

3. I2C kabel

4. I2C štit za malinu pi

5. Ethernet kabel

2. korak: Spajanje hardvera:

Spajanje hardvera
Spajanje hardvera
Spajanje hardvera
Spajanje hardvera

Odjeljak hardverskog spajanja u osnovi objašnjava potrebne ožičenje potrebne veze između senzora i maline pi. Osiguravanje ispravnih veza osnovna je potreba tijekom rada na bilo kojem sustavu za željeni izlaz. Dakle, potrebne veze su sljedeće:

HTS221 će raditi preko I2C. Evo primjera dijagrama ožičenja koji pokazuje kako spojiti svako sučelje senzora.

Out-of-box, ploča je konfigurirana za I2C sučelje, pa kao takvu preporučujemo korištenje ove veze ako ste inače agnostični.

Sve što trebate su četiri žice! Potrebna su samo četiri priključka Vcc, Gnd, SCL i SDA pinovi koji se povezuju pomoću I2C kabela.

Ove veze su prikazane na gornjim slikama.

Korak 3: Kôd za mjerenje vlažnosti i temperature:

Kôd za mjerenje vlažnosti i temperature
Kôd za mjerenje vlažnosti i temperature

Prednost korištenja maline pi je ta što vam daje fleksibilnost programskog jezika u kojem želite programirati ploču kako biste s njom spojili senzor. Iskorištavajući ovu prednost ove ploče, ovdje demonstriramo njezino programiranje u pythonu. Python kôd za HTS221 može se preuzeti s naše github zajednice koja je Control Everything Community.

Osim radi lakšeg korištenja, kôd objašnjavamo i ovdje:

Kao prvi korak kodiranja morate preuzeti knjižnicu smbus u slučaju pythona, jer ova knjižnica podržava funkcije korištene u kodu. Dakle, za preuzimanje knjižnice možete posjetiti sljedeću vezu:

pypi.python.org/pypi/smbus-cffi/0.5.1

Ovdje možete kopirati radni python kôd za ovaj senzor:

uvoz smbus

vrijeme uvoza

# Nabavite I2C autobus

sabirnica = smbus. SMBus (1)

# Adresa HTS221, 0x5F (95)

# Odaberite prosječni registar konfiguracije, 0x10 (16)

# 0x1B (27) Uzorci prosječne temperature = 256, Uzorci prosječne vlažnosti = 512

bus.write_byte_data (0x5F, 0x10, 0x1B)

# Adresa HTS221, 0x5F (95)

# Odaberite upravljački registar1, 0x20 (32)

# 0x85 (133) Uključeno, kontinuirano ažuriranje, Brzina izlaznih podataka = 1 Hz

bus.write_byte_data (0x5F, 0x20, 0x85)

vrijeme.spavanje (0,5)

# Adresa HTS221, 0x5F (95)

# Očitajte kalibracijske vrijednosti iz neisparljive memorije uređaja

# Vrijednosti kalibracije vlažnosti

# Pročitajte podatke natrag od 0x30 (48), 1 bajt

val = bus.read_byte_data (0x5F, 0x30)

H0 = val / 2

# Pročitajte podatke natrag od 0x31 (49), 1 bajt

val = bus.read_byte_data (0x5F, 0x31)

H1 = val /2

# Vratite podatke s 0x36 (54), 2 bajta

val0 = bus.read_byte_data (0x5F, 0x36)

val1 = bus.read_byte_data (0x5F, 0x37)

H2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Očitavanje podataka iz 0x3A (58), 2 bajta

val0 = bus.read_byte_data (0x5F, 0x3A)

val1 = bus.read_byte_data (0x5F, 0x3B)

H3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Vrijednosti kalibracije temperature

# Pročitajte podatke natrag od 0x32 (50), 1 bajt

T0 = bus.read_byte_data (0x5F, 0x32)

T0 = (T0 i 0xFF)

# Očitavanje podataka s 0x32 (51), 1 bajt

T1 = bus.read_byte_data (0x5F, 0x33)

T1 = (T1 i 0xFF)

# Pročitajte podatke natrag od 0x35 (53), 1 bajt

neobrađeno = sabirnica.čitani_bajtski_dati (0x5F, 0x35)

neobrađeno = (sirovo i 0x0F)

# Pretvorite vrijednosti kalibracije temperature u 10 bita

T0 = ((neobrađeno & 0x03) * 256) + T0

T1 = ((sirovo i 0x0C) * 64) + T1

# Vratite podatke s 0x3C (60), 2 bajta

val0 = bus.read_byte_data (0x5F, 0x3C)

val1 = bus.read_byte_data (0x5F, 0x3D)

T2 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Očitavanje podataka iz 0x3E (62), 2 bajta

val0 = bus.read_byte_data (0x5F, 0x3E)

val1 = bus.read_byte_data (0x5F, 0x3F)

T3 = ((val1 & 0xFF) * 256) + (val0 & 0xFF)

# Očitavanje podataka iz 0x28 (40) pomoću naredbenog registra 0x80 (128), 4 bajta

# vlažnost msb, vlažnost lsb, temp msb, temp lsb

podaci = sabirnica.čitani_i2c_blok_podaci (0x5F, 0x28 | 0x80, 4)

# Pretvorite podatke

vlažnost = (podaci [1] * 256) + podaci [0]

vlažnost = ((1.0 * H1) - (1.0 * H0)) * (1.0 * vlažnost - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temp = (podaci [3] * 256) + podaci [2]

ako je temp> 32767:

temp -= 65536

cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# Izlažite podatke na zaslon

ispis "Relativna vlažnost: %.2f %%" %vlažnosti

ispis "Temperatura u Celzijusima: %.2f C" %cTemp

ispis "Temperatura u Fahrenheitu: %.2f F" %fTemp

Dio dolje navedenog koda uključuje knjižnice potrebne za ispravno izvršavanje python kodova.

uvoz smbus

vrijeme uvoza

Kôd se može izvršiti upisivanjem dolje navedene naredbe u naredbeni redak.

$> python HTS221.py

Izlaz senzora je također prikazan na gornjoj slici za referencu korisnika.

Korak 4: Aplikacije:

Prijave
Prijave

HTS221 se može koristiti u raznim proizvodima široke potrošnje kao što su ovlaživači zraka i hladnjaci itd. Ovaj senzor također ima svoju primjenu u široj areni uključujući automatizaciju pametnih kuća, industrijsku automatizaciju, respiratornu opremu, praćenje imovine i robe.

Preporučeni: