Kazalo:

Merjenje vlažnosti in temperature z uporabo HTS221 in Raspberry Pi: 4 koraki
Merjenje vlažnosti in temperature z uporabo HTS221 in Raspberry Pi: 4 koraki

Video: Merjenje vlažnosti in temperature z uporabo HTS221 in Raspberry Pi: 4 koraki

Video: Merjenje vlažnosti in temperature z uporabo HTS221 in Raspberry Pi: 4 koraki
Video: Часть 5 - Аудиокнига Уолдена Генри Дэвида Торо (глы 12–15) 2024, Julij
Anonim
Image
Image

HTS221 je ultra kompakten kapacitivni digitalni senzor za relativno vlažnost in temperaturo. Vključuje zaznavni element in integrirano vezje za aplikacije z mešanim signalom (ASIC) za zagotavljanje merilnih informacij prek digitalnih serijskih vmesnikov. Integriran s toliko funkcijami, je eden najprimernejših senzorjev za merjenje kritične vlažnosti in temperature.

V tej vadnici je prikazano povezovanje senzorskega modula HTS221 z malino pi, ponazorjeno pa je tudi njegovo programiranje z uporabo jezika python. Za branje vrednosti vlažnosti in temperature smo uporabili malinovo pi z adapterjem I2C, ki omogoča enostavno in zanesljivo povezavo s senzorskim modulom.

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:

1. HTS221

2. Malina Pi

3. Kabel I2C

4. I2C ščit za malinovo pi

5. Ethernetni kabel

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in malinovim pi. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

HTS221 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični.

Vse kar potrebujete so štiri žice! Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

3. korak: Koda za merjenje vlažnosti in temperature:

Koda za merjenje vlažnosti in temperature
Koda za merjenje vlažnosti in temperature

Prednost uporabe maline pi je, da vam omogoča prilagodljivost programskega jezika, v katerem želite programirati ploščo, da povežete senzor z njo. Če izkoristimo to prednost te plošče, tukaj dokazujemo njeno programiranje v pythonu. Kodo python za HTS221 lahko prenesete iz naše skupnosti github, ki je Skupnost Control Everything.

Poleg lažjega uporabnika kodo razlagamo tudi tukaj:

Kot prvi korak kodiranja morate prenesti knjižnico smbus v primeru pythona, ker ta knjižnica podpira funkcije, ki se uporabljajo v kodi. Če želite prenesti knjižnico, obiščite naslednjo povezavo:

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

Delovno kodo python za ta senzor lahko kopirate tudi od tu:

uvoz smbus

čas uvoza

# Pridobite avtobus I2C

vodilo = smbus. SMBus (1)

# Naslov HTS221, 0x5F (95)

# Izberite povprečni konfiguracijski register, 0x10 (16)

# 0x1B (27) Povprečni temperaturni vzorci = 256, povprečni vzorci vlažnosti = 512

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

# Naslov HTS221, 0x5F (95)

# Izberite kontrolni register1, 0x20 (32)

# 0x85 (133) VKLOP, stalna posodobitev, izhodna hitrost podatkov = 1 Hz

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

time.sleep (0,5)

# Naslov HTS221, 0x5F (95)

# Preberite kalibracijske vrednosti iz nehlapnega pomnilnika naprave

# Vlažnost Kalibracijske vrednosti

# Preberite podatke nazaj od 0x30 (48), 1 bajt

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

H0 = val / 2

# Preberite podatke nazaj od 0x31 (49), 1 bajt

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

H1 = val /2

# Preberite podatke nazaj iz 0x36 (54), 2 bajta

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

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

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

# Preberite podatke nazaj 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)

# Temperaturne kalibracijske vrednosti

# Preberite podatke nazaj od 0x32 (50), 1 bajt

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

T0 = (T0 & 0xFF)

# Preberite podatke nazaj iz 0x32 (51), 1 bajt

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

T1 = (T1 & 0xFF)

# Preberite podatke nazaj od 0x35 (53), 1 bajt

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

surovo = (surovo in 0x0F)

# Pretvorite temperaturne kalibracijske vrednosti v 10-bitne

T0 = ((surovo in 0x03) * 256) + T0

T1 = ((surovo in 0x0C) * 64) + T1

# Preberite podatke nazaj iz 0x3C (60), 2 bajta

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

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

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

# Preberite podatke nazaj 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)

# Preberite podatke nazaj iz 0x28 (40) z ukaznim registrom 0x80 (128), 4 bajti

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

data = bus.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

# Pretvorite podatke

vlažnost = (podatki [1] * 256) + podatki [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 = (podatki [3] * 256) + podatki [2]

če je temp> 32767:

temp -= 65536

cTemp = ((T1 - T0) / 8,0) * (temp - T2) / (T3 - T2) + (T0 / 8,0)

fTemp = (cTemp * 1.8) + 32

# Iznesite podatke na zaslon

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

natisni "Temperatura v Celzijah: %.2f C" %cTemp

natisni "Temperatura v Fahrenheitu: %.2f F" %fTemp

Del spodaj omenjene kode vključuje knjižnice, potrebne za pravilno izvedbo kod Python.

uvoz smbus

čas uvoza

Kodo lahko izvedete tako, da v ukazni poziv vnesete spodnji ukaz.

$> python HTS221.py

Izhod senzorja je prikazan tudi na zgornji sliki za referenco uporabnika.

4. korak: Aplikacije:

Aplikacije
Aplikacije

HTS221 se lahko uporablja v različnih potrošniških izdelkih, kot so vlažilci zraka in hladilniki itd. Ta senzor se uporablja tudi na širšem področju, vključno z avtomatizacijo pametnega doma, industrijsko avtomatizacijo, opremo za dihanje, sledenjem sredstev in blaga.

Priporočena: