Sisukord:

Niiskuse ja temperatuuri mõõtmine HTS221 ja Raspberry Pi abil: 4 sammu
Niiskuse ja temperatuuri mõõtmine HTS221 ja Raspberry Pi abil: 4 sammu

Video: Niiskuse ja temperatuuri mõõtmine HTS221 ja Raspberry Pi abil: 4 sammu

Video: Niiskuse ja temperatuuri mõõtmine HTS221 ja Raspberry Pi abil: 4 sammu
Video: 3 в 1 ZigBee датчик температуры, влажности и освещения с LCD дисплеем 2024, November
Anonim
Image
Image

HTS221 on ülikompaktne mahtuvuslik digitaalne andur suhtelise niiskuse ja temperatuuri jaoks. See sisaldab andurielementi ja segasignaalirakenduse spetsiifilist integraallülitust (ASIC), et edastada mõõtmisteavet digitaalsete jadaliideste kaudu. See on integreeritud nii paljude funktsioonidega, see on üks kõige sobivamaid andureid kriitilise niiskuse ja temperatuuri mõõtmiseks.

Selles õpetuses on näidatud HTS221 andurimooduli liidestamist vaarika pi -ga ja illustreeritud on ka selle programmeerimine python -keelt kasutades. Niiskuse ja temperatuuri väärtuste lugemiseks oleme kasutanud vaarika pi koos I2C adapteriga. See I2C adapter muudab ühenduse andurimooduliga lihtsaks ja usaldusväärsemaks.

Samm: vajalik riistvara:

Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara
Vajalik riistvara

Eesmärgi saavutamiseks vajalikud materjalid sisaldavad järgmisi riistvarakomponente:

1. HTS221

2. Vaarika Pi

3. I2C kaabel

4. I2C Shield vaarika pi jaoks

5. Etherneti kaabel

2. samm: riistvara ühendamine:

Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine
Riistvara ühendamine

Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja vaarika pi vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:

HTS221 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.

Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik.

Kõik, mida vajate, on neli juhtmest! Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.

Neid seoseid on näidatud ülaltoodud piltidel.

3. samm: niiskuse ja temperatuuri mõõtmise kood:

Niiskuse ja temperatuuri mõõtmise kood
Niiskuse ja temperatuuri mõõtmise kood

Vaarika pi kasutamise eeliseks on see, et saate paindlikult programmeerimiskeelt, milles soovite plaati programmeerida, et andurit sellega liidestada. Kasutades selle plaadi eeliseid, demonstreerime siin selle programmeerimist pythonis. HTS221 püütoni koodi saab alla laadida meie githubi kogukonnast, mis on Control Everything Community.

Lisaks kasutajate mugavusele selgitame koodi ka siin:

Kodeerimise esimese sammuna peate pythoni korral alla laadima smbus -raamatukogu, kuna see teek toetab koodis kasutatavaid funktsioone. Niisiis, teegi allalaadimiseks võite külastada järgmist linki:

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

Siit saate kopeerida ka selle anduri töötava püütoni koodi:

import smbus

impordi aeg

# Hankige I2C buss

buss = smbus. SMBus (1)

# HTS221 aadress, 0x5F (95)

# Valige keskmine konfiguratsiooniregister, 0x10 (16)

# 0x1B (27) Temperatuuri keskmised proovid = 256, Niiskuse keskmised proovid = 512

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

# HTS221 aadress, 0x5F (95)

# Valige juhtregister1, 0x20 (32)

# 0x85 (133) Toide sisse lülitatud, pidev värskendamine, andmete väljundkiirus = 1 Hz

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

aeg. uni (0,5)

# HTS221 aadress, 0x5F (95)

# Lugege kalibreerimisväärtusi seadme püsimälust

# Niiskuse kalibreerimise väärtused

# Lugege andmeid tagasi alates 0x30 (48), 1 bait

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

H0 = val / 2

# Lugege andmeid tagasi alates 0x31 (49), 1 bait

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

H1 = val /2

# Lugege andmeid tagasi 0x36 (54), 2 baiti

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

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

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

# Lugege andmeid tagasi 0x3A (58), 2 baiti

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

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

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

# Temperatuuri kalibreerimise väärtused

# Lugege andmeid tagasi 0x32 (50), 1 bait

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

T0 = (T0 ja 0xFF)

# Lugege andmeid tagasi alates 0x32 (51), 1 bait

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

T1 = (T1 ja 0xFF)

# Lugege andmeid tagasi alates 0x35 (53), 1 bait

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

toores = (toores ja 0x0F)

# Teisendage temperatuuri kalibreerimisväärtused 10-bitisteks

T0 = ((toores ja 0x03) * 256) + T0

T1 = ((toores ja 0x0C) * 64) + T1

# Lugege andmeid tagasi 0x3C (60), 2 baiti

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

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

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

# Lugege andmeid tagasi 0x3E (62), 2 baiti

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

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

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

# Lugege andmeid tagasi 0x28 (40) käskude registriga 0x80 (128), 4 baiti

# niiskus msb, niiskus lsb, temp msb, temp lsb

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

# Teisendage andmed

niiskus = (andmed [1] * 256) + andmed [0]

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

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

kui temp> 32767:

temp -= 65536

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

fTemp = (cTemp * 1,8) + 32

# Väljastage andmed ekraanile

print "Suhteline õhuniiskus: %.2f %%" %niiskus

print "Temperatuur Celsiuse järgi: %.2f C" %cTemp

print "Temperatuur Fahrenheiti järgi: %.2f F" %fTemp

Allpool mainitud koodi osa sisaldab teeke, mida on vaja püütoni koodide õigeks täitmiseks.

import smbus

impordi aeg

Koodi saab käivitada, sisestades käsureale allpool nimetatud käsu.

$> python HTS221.py

Anduri väljund on kasutaja jaoks viidatud ka ülaltoodud pildile.

4. samm: rakendused:

Rakendused
Rakendused

HTS221 saab kasutada mitmesugustes tarbekaupades nagu õhuniisutajad ja külmikud jne. Seda andurit saab kasutada ka laiemal areenil, sealhulgas nutika kodu automatiseerimine, tööstusautomaatika, hingamisteede seadmed, varade ja kaupade jälgimine.

Soovitan: