Måling av fuktighet og temperatur ved bruk av HTS221 og Raspberry Pi: 4 trinn
Måling av fuktighet og temperatur ved bruk av HTS221 og Raspberry Pi: 4 trinn
Anonim
Image
Image

HTS221 er en ultrakompakt kapasitiv digital sensor for relativ fuktighet og temperatur. Den inneholder et følerelement og en spesifikk integrert krets (ASIC) for blandet signal for å gi måleinformasjonen gjennom digitale serielle grensesnitt. Integrert med så mange funksjoner, dette er en av de mest passende sensorene for kritiske fuktighets- og temperaturmålinger.

I denne opplæringen er grensesnittet mellom HTS221 sensormodulen og bringebær pi demonstrert, og programmeringen ved hjelp av pythonspråk er også illustrert. For å lese fuktighets- og temperaturverdiene har vi brukt bringebærpi med en I2C -adapter. Denne I2C -adapteren gjør tilkoblingen til sensormodulen enkel og mer pålitelig.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Materialene vi trenger for å nå målet vårt inkluderer følgende maskinvarekomponenter:

1. HTS221

2. Bringebær Pi

3. I2C -kabel

4. I2C Shield for bringebær pi

5. Ethernet -kabel

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvaretilkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og bringebær -pi. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

HTS221 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker.

Alt du trenger er fire ledninger! Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Kode for fuktighet og temperaturmåling:

Kode for fuktighet og temperaturmåling
Kode for fuktighet og temperaturmåling

Fordelen med å bruke bringebær pi er at det gir deg fleksibiliteten til programmeringsspråket der du vil programmere brettet for å koble sensoren til det. Ved å utnytte denne fordelen med dette brettet, demonstrerer vi her programmeringen i python. Python -koden for HTS221 kan lastes ned fra vårt github -fellesskap som er Control Everything Community.

I tillegg til brukernes brukervennlighet, forklarer vi koden også her:

Som det første trinnet i kodingen må du laste ned smbus -biblioteket i tilfelle python, fordi dette biblioteket støtter funksjonene som brukes i koden. Så for å laste ned biblioteket kan du besøke følgende lenke:

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

Du kan også kopiere arbeidspythonkoden for denne sensoren herfra:

importer smbus

importtid

# Få I2C -buss

buss = smbus. SMBus (1)

# HTS221 -adresse, 0x5F (95)

# Velg gjennomsnittlig konfigurasjonsregister, 0x10 (16)

# 0x1B (27) Temperatur gjennomsnittlige prøver = 256, Fuktighets gjennomsnittsprøver = 512

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

# HTS221 -adresse, 0x5F (95)

# Velg kontrollregister1, 0x20 (32)

# 0x85 (133) Strøm PÅ, kontinuerlig oppdatering, datautgangshastighet = 1 Hz

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

time.sleep (0,5)

# HTS221 -adresse, 0x5F (95)

# Les kalibreringsverdier fra ikke-flyktig minne på enheten

# Fuktighetskalibreringsverdier

# Les data tilbake fra 0x30 (48), 1 byte

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

H0 = val / 2

# Les data tilbake fra 0x31 (49), 1 byte

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

H1 = val /2

# Les data tilbake fra 0x36 (54), 2 byte

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

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

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

# Les data tilbake fra 0x3A (58), 2 byte

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

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

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

# Temperaturkalibreringsverdier

# Les data tilbake fra 0x32 (50), 1 byte

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

T0 = (T0 & 0xFF)

# Les data tilbake fra 0x32 (51), 1 byte

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

T1 = (T1 & 0xFF)

# Les data tilbake fra 0x35 (53), 1 byte

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

rå = (rå & 0x0F)

# Konverter temperaturkalibreringsverdiene til 10-bits

T0 = ((rå & 0x03) * 256) + T0

T1 = ((rå & 0x0C) * 64) + T1

# Les data tilbake fra 0x3C (60), 2 byte

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

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

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

# Les data tilbake fra 0x3E (62), 2 byte

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

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

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

# Les data tilbake fra 0x28 (40) med kommandoregister 0x80 (128), 4 byte

# fuktighet msb, fuktighet lsb, temp msb, temp lsb

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

# Konverter dataene

fuktighet = (data [1] * 256) + data [0]

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

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

hvis temp> 32767:

temperatur -= 65536

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

fTemp = (cTemp * 1.8) + 32

# Utdata til skjermen

print "Relativ fuktighet: %.2f %%" %fuktighet

print "Temperatur i Celsius: %.2f C" %cTemp

print "Temperatur i Fahrenheit: %.2f F" %fTemp

Den delen av koden som er nevnt nedenfor inkluderer bibliotekene som kreves for riktig utførelse av pythonkodene.

importer smbus

importtid

Koden kan utføres ved å skrive kommandoen nedenfor i ledeteksten.

$> python HTS221.py

Sensorens utgang er også vist på bildet ovenfor for referanse til brukeren.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

HTS221 kan brukes i forskjellige forbrukerprodukter som luftfuktere og kjøleskap etc. Denne sensoren finner også sin anvendelse på en bredere arena, inkludert smart hjemmeautomatisering, industriell automatisering, åndedrettsutstyr, eiendeler og varesporing.

Anbefalt: