Obsah:

Meranie vlhkosti a teploty pomocou HTS221 a Raspberry Pi: 4 kroky
Meranie vlhkosti a teploty pomocou HTS221 a Raspberry Pi: 4 kroky

Video: Meranie vlhkosti a teploty pomocou HTS221 a Raspberry Pi: 4 kroky

Video: Meranie vlhkosti a teploty pomocou HTS221 a Raspberry Pi: 4 kroky
Video: Часть 5 - Аудиокнига Уолдена Генри Дэвида Торо (глы 12–15) 2024, Júl
Anonim
Image
Image

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.

V tomto návode je demonštrované prepojenie senzorového modulu HTS221 s malinovou pí a bolo tiež znázornené jeho programovanie v jazyku python. Na čítanie hodnôt vlhkosti a teploty sme použili malinu pi s adaptérom I2C. Vďaka tomuto adaptéru I2C je pripojenie k senzorovému modulu jednoduché a spoľahlivejšie.

Krok 1: Potrebný hardvér:

Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér

Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:

1. HTS221

2. Raspberry Pi

3. Kábel I2C

4. I2C štít pre malinovú pi

5. Ethernetový kábel

Krok 2: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a malinovým pi. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

HTS221 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik.

Všetko, čo potrebujete, sú štyri drôty! Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 3: Kód na meranie vlhkosti a teploty:

Kód na meranie vlhkosti a teploty
Kód na meranie vlhkosti a teploty

Výhodou použitia maliny pi je, že vám poskytuje flexibilitu programovacieho jazyka, v ktorom chcete dosku programovať, aby ste s ňou mohli prepojiť senzor. S využitím tejto výhody tejto dosky tu demonštrujeme jej programovanie v pythone. Pythonový kód pre HTS221 si môžete stiahnuť z našej komunity github, ktorá je komunitou Control Everything.

Rovnako ako pre jednoduchosť používateľov, vysvetľujeme kód aj tu:

Ako prvý krok kódovania si musíte stiahnuť knižnicu smbus v prípade pythonu, pretože táto knižnica podporuje funkcie použité v kóde. Ak si chcete stiahnuť knižnicu, môžete navštíviť nasledujúci odkaz:

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

Pracovný kód pythonu pre tento senzor môžete skopírovať aj tu:

import smbus

čas importu

# Získajte autobus I2C

bus = smbus. SMBus (1)

# Adresa HTS221, 0x5F (95)

# Vyberte priemerný konfiguračný register, 0x10 (16)

# 0x1B (27) Priemerné teplotné vzorky = 256, vlhké priemerné vzorky = 512

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

# Adresa HTS221, 0x5F (95)

# Vyberte riadiaci register1, 0x20 (32)

# 0x85 (133) ZAPNUTÉ, nepretržitá aktualizácia, rýchlosť výstupu údajov = 1 Hz

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

čas.spánok (0,5)

# Adresa HTS221, 0x5F (95)

# Prečítajte si kalibračné hodnoty z energeticky nezávislej pamäte zariadenia

# Hodnoty kalibrácie vlhkosti

# Načítajte údaje späť z 0x30 (48), 1 bajt

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

H0 = val / 2

# Načítajte údaje späť z 0x31 (49), 1 bajt

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

H1 = val /2

# Načítajte údaje späť z 0x36 (54), 2 bajtov

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

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

H2 = ((hodnota1 a 0xFF) * 256) + (hodnota0 a 0xFF)

# Načítajte údaje späť z 0x3A (58), 2 bajtov

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

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

H3 = ((hodnota1 a 0xFF) * 256) + (hodnota0 a 0xFF)

# Hodnoty kalibrácie teploty

# Načítajte údaje späť z 0x32 (50), 1 bajt

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

T0 = (T0 a 0xFF)

# Načítajte údaje späť z 0x32 (51), 1 bajt

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

T1 = (T1 a 0xFF)

# Načítajte údaje späť z 0x35 (53), 1 bajt

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

raw = (surový & 0x0F)

# Konvertujte hodnoty kalibrácie teploty na 10-bitové

T0 = ((surový & 0x03) * 256) + T0

T1 = ((surový a 0x0C) * 64) + T1

# Načítajte údaje späť z 0x3C (60), 2 bajtov

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

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

T2 = ((hodnota1 a 0xFF) * 256) + (hodnota0 a 0xFF)

# Načítajte údaje späť z 0x3E (62), 2 bajtov

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

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

T3 = ((hodnota1 a 0xFF) * 256) + (hodnota0 a 0xFF)

# Načítajte údaje späť z 0x28 (40) s príkazovým registrom 0x80 (128), 4 bajty

# vlhkosť msb, vlhkosť lsb, teplota msb, teplota lsb

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

# Previesť údaje

vlhkosť = (údaje [1] * 256) + údaje [0]

vlhkosť = ((1,0 * H1) - (1,0 * H0)) * (1,0 * vlhkosť - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0)

temp = (údaje [3] * 256) + údaje [2]

ak je teplota> 32767:

teplota -= 65536

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

fTemp = (cTemp * 1,8) + 32

# Výstup údajov na obrazovku

vytlačiť „Relatívna vlhkosť: %.2f %%“%vlhkosť

vytlačiť "Teplota v stupňoch Celzia: %.2f C" %cTemp

vytlačiť "Teplota vo Fahrenheite: %.2f F" %fTemp

Ďalej uvedená časť kódu obsahuje knižnice potrebné na správne spustenie kódov pythonu.

import smbus

čas importu

Kód je možné vykonať zadaním nižšie uvedeného príkazu do príkazového riadka.

$> python HTS221.py

Výstup senzora je tiež uvedený na obrázku vyššie pre referenciu používateľa.

Krok 4: Aplikácie:

Aplikácie
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: