Sommario:

Misurazione dell'umidità e della temperatura utilizzando HTS221 e Raspberry Pi: 4 passaggi
Misurazione dell'umidità e della temperatura utilizzando HTS221 e Raspberry Pi: 4 passaggi

Video: Misurazione dell'umidità e della temperatura utilizzando HTS221 e Raspberry Pi: 4 passaggi

Video: Misurazione dell'umidità e della temperatura utilizzando HTS221 e Raspberry Pi: 4 passaggi
Video: Monitoring temperature and humidity using the Particle Photon 2024, Luglio
Anonim
Image
Image

HTS221 è un sensore digitale capacitivo ultra compatto per umidità relativa e temperatura. Include un elemento di rilevamento e un circuito integrato specifico per applicazioni a segnale misto (ASIC) per fornire le informazioni di misurazione tramite interfacce seriali digitali. Integrato con così tante funzioni, questo è uno dei sensori più appropriati per misurazioni critiche di umidità e temperatura.

In questo tutorial viene dimostrata l'interfacciamento del modulo sensore HTS221 con raspberry pi ed è stata anche illustrata la sua programmazione in linguaggio python. Per leggere i valori di umidità e temperatura, abbiamo utilizzato raspberry pi con un adattatore I2C. Questo adattatore I2C rende la connessione al modulo sensore facile e affidabile.

Passaggio 1: hardware richiesto:

Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto
Hardware richiesto

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. HTS221

2. Raspberry Pi

3. Cavo I2C

4. Scudo I2C per lampone pi

5. Cavo Ethernet

Passaggio 2: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione relativa ai collegamenti hardware spiega sostanzialmente le connessioni di cablaggio necessarie tra il sensore e il Raspberry Pi. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

L'HTS221 funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico.

Tutto ciò di cui hai bisogno sono quattro fili! Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 3: codice per la misurazione dell'umidità e della temperatura:

Codice per la misurazione dell'umidità e della temperatura
Codice per la misurazione dell'umidità e della temperatura

Il vantaggio dell'utilizzo di raspberry pi è che fornisce la flessibilità del linguaggio di programmazione in cui si desidera programmare la scheda per interfacciare il sensore con essa. Sfruttando questo vantaggio di questa scheda, stiamo dimostrando qui la sua programmazione in python. Il codice Python per HTS221 può essere scaricato dalla nostra comunità github che è Control Everything Community.

Oltre che per la facilità degli utenti, spieghiamo anche qui il codice:

Come primo passo della codifica è necessario scaricare la libreria smbus in caso di python, perché questa libreria supporta le funzioni utilizzate nel codice. Quindi, per scaricare la libreria puoi visitare il seguente link:

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

Puoi copiare il codice Python funzionante per questo sensore anche da qui:

import smbus

tempo di importazione

# Ottieni l'autobus I2C

bus = smbus. SMBus(1)

# Indirizzo HTS221, 0x5F(95)

# Seleziona il registro di configurazione medio, 0x10(16)

# 0x1B(27) Campioni medi di temperatura = 256, Campioni medi di umidità = 512

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

# Indirizzo HTS221, 0x5F(95)

# Seleziona registro di controllo1, 0x20(32)

# 0x85(133) Accensione, aggiornamento continuo, velocità di uscita dati = 1 Hz

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

tempo.sonno(0.5)

# Indirizzo HTS221, 0x5F(95)

# Leggi i valori di calibrazione dalla memoria non volatile del dispositivo

# Valori di calibrazione dell'umidità

# Rilegge i dati da 0x30(48), 1 byte

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

H0 = valore / 2

# Rilegge i dati da 0x31(49), 1 byte

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

H1 = valore /2

# Rilegge i dati da 0x36(54), 2 byte

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

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

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

# Rilegge i dati da 0x3A(58), 2 byte

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

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

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

# Valori di calibrazione della temperatura

# Rilegge i dati da 0x32(50), 1 byte

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

T0 = (T0 e 0xFF)

# Rilegge i dati da 0x32(51), 1 byte

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

T1 = (T1 e 0xFF)

# Rilegge i dati da 0x35(53), 1 byte

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

grezzo = (grezzo & 0x0F)

# Converti i valori di calibrazione della temperatura a 10 bit

T0 = ((grezzo & 0x03) * 256) + T0

T1 = ((grezzo & 0x0C) * 64) + T1

# Rilegge i dati da 0x3C(60), 2 byte

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

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

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

# Rilegge i dati da 0x3E(62), 2 byte

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

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

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

# Rilegge i dati da 0x28(40) con il registro di comando 0x80(128), 4 byte

# umidità msb, umidità lsb, temp msb, temp lsb

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

# Converti i dati

umidità = (dati[1] * 256) + dati[0]

umidità = ((1.0 * H1) - (1.0 * H0)) * (1.0 * umidità - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0)

temperatura = (dati[3] * 256) + dati[2]

se temperatura > 32767:

temperatura -= 65536

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

fTemp = (cTemp * 1.8) + 32

# Invia i dati allo schermo

print "Umidità relativa: %.2f %%" %umidità

print "Temperatura in gradi Celsius: %.2f C" %cTemp

print "Temperatura in Fahrenheit: %.2f F" %fTemp

La parte di codice menzionata di seguito include le librerie necessarie per la corretta esecuzione dei codici Python.

import smbus

tempo di importazione

Il codice può essere eseguito digitando il comando indicato di seguito nel prompt dei comandi.

$> pitone HTS221.py

L'uscita del sensore è mostrata anche nell'immagine sopra per riferimento dell'utente.

Passaggio 4: applicazioni:

Applicazioni
Applicazioni

HTS221 può essere impiegato in vari prodotti di consumo come umidificatori d'aria e frigoriferi, ecc. Questo sensore trova anche la sua applicazione in un'arena più ampia tra cui l'automazione domestica intelligente, l'automazione industriale, le apparecchiature respiratorie, il monitoraggio di beni e beni.

Consigliato: