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, Novembar
Anonim
Image
Image

HTS221 je ultra kompaktni kapacitivni digitalni senzor za relativnu vlažnost i temperaturu. Sadrži osjetljivi element i integrirano kolo za mješoviti signal (ASIC) za mješoviti signal za pružanje mjernih informacija putem digitalnih serijskih sučelja. Integriran s toliko funkcija, ovo je jedan od najprikladnijih senzora za mjerenje kritične vlažnosti i temperature.

U ovom vodiču je prikazano povezivanje senzorskog modula HTS221 sa malinom pi, a prikazano je i njegovo programiranje pomoću jezika python. Za očitavanje vlažnosti i temperature koristili smo malinu pi sa I2C adapterom. Ovaj I2C adapter čini povezivanje sa 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

Korak 2: Povezivanje hardvera:

Povezivanje hardvera
Povezivanje hardvera
Povezivanje hardvera
Povezivanje hardvera

Odeljak za priključivanje hardvera u osnovi objašnjava potrebne ožičenje između senzora i maline pi. Osiguravanje ispravnih veza osnovna je potreba pri radu na bilo kojem sistemu 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 povezali senzor. Iskorištavajući ovu prednost ove ploče, ovdje demonstriramo njeno programiranje u pythonu. Python kôd za HTS221 može se preuzeti sa 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 smbus biblioteku u slučaju pythona, jer ova biblioteka podržava funkcije koje se koriste u kodu. Dakle, za preuzimanje biblioteke 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:

import smbus

vreme uvoza

# Nabavite I2C autobus

sabirnica = smbus. SMBus (1)

# HTS221 adresa, 0x5F (95)

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

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

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

# HTS221 adresa, 0x5F (95)

# Odaberite kontrolni 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)

# HTS221 adresa, 0x5F (95)

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

# Vlažnost Kalibracijske vrijednosti

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

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

H0 = val / 2

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

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

H1 = val /2

# Pročitajte podatke nazad od 0x36 (54), 2 bajta

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

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

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

# Pročitajte podatke sa 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 nazad od 0x32 (50), 1 bajt

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

T0 = (T0 i 0xFF)

# Pročitajte podatke sa 0x32 (51), 1 bajt

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

T1 = (T1 & 0xFF)

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

sirovi = bus.read_byte_data (0x5F, 0x35)

sirovo = (sirovo i 0x0F)

# Pretvorite temperaturne kalibracijske vrijednosti u 10-bitne

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

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

# Očitavanje podataka sa 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 komandnog registra 0x80 (128), 4 bajta

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

data = bus.read_i2c_block_data (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 ekran

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

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

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

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

import smbus

vreme uvoza

Kod 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 poput ovlaživača zraka i hladnjaka itd. Ovaj senzor svoju primjenu nalazi i u široj areni uključujući automatizaciju pametnih kuća, industrijsku automatizaciju, respiratornu opremu, praćenje imovine i robe.

Preporučuje se: