Turinys:

Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: 4 žingsniai
Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: 4 žingsniai

Video: Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: 4 žingsniai

Video: Drėgmės ir temperatūros matavimas naudojant HTS221 ir Raspberry Pi: 4 žingsniai
Video: 3 в 1 ZigBee датчик температуры, влажности и освещения с LCD дисплеем 2024, Liepa
Anonim
Image
Image

HTS221 yra ypač kompaktiškas talpinis skaitmeninis jutiklis, skirtas santykiniam drėgnumui ir temperatūrai. Jame yra jutimo elementas ir mišraus signalo taikymo integruotas grandynas (ASIC), skirtas pateikti matavimo informaciją per skaitmenines nuoseklias sąsajas. Integruotas su daugybe funkcijų, tai yra vienas tinkamiausių jutiklių kritiniams drėgmės ir temperatūros matavimams.

Šioje pamokoje parodyta HTS221 jutiklio modulio sąsaja su aviečių pi ir taip pat iliustruotas jo programavimas naudojant python kalbą. Norėdami nuskaityti drėgmės ir temperatūros vertes, mes naudojome aviečių pi su I2C adapteriu. Šis I2C adapteris leidžia lengvai ir patikimiau prijungti prie jutiklio modulio.

1 veiksmas: reikalinga aparatūra:

Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra
Reikalinga aparatūra

Medžiagos, reikalingos mūsų tikslui pasiekti, apima šiuos aparatūros komponentus:

1. HTS221

2. Raspberry Pi

3. I2C kabelis

4. I2C skydas avietėms pi

5. Ethernet kabelis

2 veiksmas: prijungimas prie aparatūros:

Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas
Aparatūros prijungimas

Techninės įrangos prijungimo skyriuje iš esmės paaiškinamos reikalingos laidų jungtys tarp jutiklio ir aviečių pi. Užtikrinti teisingas jungtis yra pagrindinė būtinybė dirbant su bet kuria norimos išvesties sistema. Taigi, būtinos jungtys yra šios:

HTS221 veiks per I2C. Čia yra elektros instaliacijos schemos pavyzdys, parodantis, kaip prijungti kiekvieną jutiklio sąsają.

Iš karto plokštė sukonfigūruota I2C sąsajai, todėl rekomenduojame naudoti šį prijungimą, jei esate kitaip agnostikas.

Viskas, ko jums reikia, yra keturi laidai! Reikia tik keturių jungčių „Vcc“, „Gnd“, „SCL“ir „SDA“kaiščių, kurie yra prijungti naudojant I2C kabelį.

Šie ryšiai parodyti aukščiau esančiose nuotraukose.

3 žingsnis: Drėgmės ir temperatūros matavimo kodas:

Drėgmės ir temperatūros matavimo kodas
Drėgmės ir temperatūros matavimo kodas

„Raspberry pi“naudojimo pranašumas yra tai, kad suteikia lankstumo programavimo kalbai, kuria norite programuoti plokštę, kad su ja susietumėte jutiklį. Pasinaudoję šiuo šios plokštės pranašumu, mes čia demonstruojame jos programavimą python'e. HTS221 python kodą galima atsisiųsti iš mūsų „github“bendruomenės, kuri yra „Control Everything Community“.

Be vartotojų patogumo, mes taip pat paaiškiname kodą čia:

Kaip pirmąjį kodavimo žingsnį turite atsisiųsti „smbus“biblioteką „python“atveju, nes ši biblioteka palaiko kode naudojamas funkcijas. Taigi, norėdami atsisiųsti biblioteką, galite apsilankyti šioje nuorodoje:

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

Taip pat galite nukopijuoti šio jutiklio veikiančio python kodą:

importuoti smbus

importo laikas

# Gaukite I2C autobusą

autobusas = smbus. SMBus (1)

# HTS221 adresas, 0x5F (95)

# Pasirinkite vidutinį konfigūracijos registrą, 0x10 (16)

# 0x1B (27) Vidutiniai temperatūros mėginiai = 256, vidutiniai drėgmės mėginiai = 512

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

# HTS221 adresas, 0x5F (95)

# Pasirinkite valdymo registrą1, 0x20 (32)

# 0x85 (133) Įjungta, nuolat atnaujinama, duomenų išvesties sparta = 1 Hz

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

laikas. miegas (0,5)

# HTS221 adresas, 0x5F (95)

# Kalibravimo vertes skaitykite iš nepastovios įrenginio atminties

# Drėgmės kalibravimo vertės

# Perskaitykite duomenis iš 0x30 (48), 1 baito

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

H0 = val / 2

# Perskaitykite duomenis iš 0x31 (49), 1 baito

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

H1 = val /2

# Perskaitykite duomenis iš 0x36 (54), 2 baitų

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

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

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

# Perskaitykite duomenis iš 0x3A (58), 2 baitų

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

val1 = autobusas. skaitymo_baitų duomenys (0x5F, 0x3B)

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

# Temperatūros kalibravimo vertės

# Perskaitykite duomenis iš 0x32 (50), 1 baito

T0 = autobusas. Skaitymo_baitų_datai (0x5F, 0x32)

T0 = (T0 ir 0xFF)

# Perskaitykite duomenis iš 0x32 (51), 1 baito

T1 = autobusas. Skaitymo_baitų_datai (0x5F, 0x33)

T1 = (T1 ir 0xFF)

# Perskaitykite duomenis iš 0x35 (53), 1 baito

neapdorotas = autobusas. skaitymo_baito_datai (0x5F, 0x35)

žalias = (neapdorotas ir 0x0F)

# Konvertuokite temperatūros kalibravimo vertes į 10 bitų

T0 = ((neapdorotas ir 0x03) * 256) + T0

T1 = ((neapdorota ir 0x0C) * 64) + T1

# Perskaitykite duomenis iš 0x3C (60), 2 baitų

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

val1 = magistralė. skaitymo_baitų duomenys (0x5F, 0x3D)

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

# Perskaitykite duomenis iš 0x3E (62), 2 baitai

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

val1 = magistralė. skaitymo_baitų duomenys (0x5F, 0x3F)

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

# Perskaitykite duomenis iš 0x28 (40) naudodami komandų registrą 0x80 (128), 4 baitus

# drėgmė msb, drėgmė lsb, temp msb, temp lsb

duomenys = autobusas.read_i2c_block_data (0x5F, 0x28 | 0x80, 4)

# Konvertuokite duomenis

drėgmė = (duomenys [1] * 256) + duomenys [0]

drėgmė = ((1,0 * H1) - (1,0 * H0)) * (1,0 * drėgmė - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0)

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

jei temperatūra> 32767:

temperatūra -= 65536

cTemp = ((T1 - T0) / 8.0) * (temperatūra - T2) / (T3 - T2) + (T0 / 8.0)

fTemp = (cTemp * 1.8) + 32

# Išveskite duomenis į ekraną

spausdinti „Santykinė drėgmė: %.2f %%“%drėgmė

spausdinti "Temperatūra Celsijaus: %.2f C" %cTemp

spausdinti "Temperatūra Farenheitu: %.2f F" %fTemp

Toliau nurodyta kodo dalis apima bibliotekas, reikalingas teisingam python kodų vykdymui.

importuoti smbus

importo laikas

Kodą galima vykdyti komandų eilutėje įvedus žemiau nurodytą komandą.

$> python HTS221.py

Jutiklio išvestis taip pat parodyta aukščiau esančiame paveikslėlyje vartotojo naudai.

4 žingsnis: programos:

Programos
Programos

HTS221 gali būti naudojamas įvairiose plataus vartojimo prekėse, tokiose kaip oro drėkintuvai ir šaldytuvai ir tt

Rekomenduojamas: