Taula de continguts:

Raspberry Pi HTS221 Sensor d'humitat i temperatura relativa Tutorial de Java: 4 passos
Raspberry Pi HTS221 Sensor d'humitat i temperatura relativa Tutorial de Java: 4 passos

Vídeo: Raspberry Pi HTS221 Sensor d'humitat i temperatura relativa Tutorial de Java: 4 passos

Vídeo: Raspberry Pi HTS221 Sensor d'humitat i temperatura relativa Tutorial de Java: 4 passos
Vídeo: Particle Photon - HTS221 Relative Humidity and Temperature Sensor Tutorial 2024, Desembre
Anonim
Image
Image

HTS221 és un sensor digital capacitiu ultra compacte per a humitat relativa i temperatura. Inclou un element de detecció i un circuit integrat específic d’aplicació de senyal mixta (ASIC) per proporcionar la informació de mesurament a través d’interfícies serials digitals. Integrat amb tantes funcions, aquest és un dels sensors més adequats per a mesuraments crítics d’humitat i temperatura. Aquí teniu la demostració amb un codi java que utilitza Raspberry Pi.

Pas 1: el que necessiteu..

Què necessites..!!
Què necessites..!!

1. Raspberry Pi

2. HTS221

3. Cable I²C

4. Escut I²C per a Raspberry Pi

5. Cable Ethernet

Pas 2: connexions:

Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
Connexions
Connexions

Agafeu un escut I2C per a raspberry pi i passeu-lo suaument per sobre dels pins gpio de raspberry pi.

A continuació, connecteu un extrem del cable I2C al sensor HTS221 i l’altre extrem al blindatge I2C.

Connecteu també el cable Ethernet al pi o podeu utilitzar un mòdul WiFi.

Les connexions es mostren a la imatge superior.

Pas 3: Codi:

Codi
Codi

El codi python de HTS221 es pot descarregar des del nostre dipòsit github-Dcube Store

Aquí teniu l’enllaç per al mateix:

github.com/DcubeTechVentures/HTS221/blob/master/Java/HTS221.java

Hem utilitzat la biblioteca pi4j per al codi Java; aquí es descriuen els passos per instal·lar pi4j al raspberry pi:

pi4j.com/install.html

També podeu copiar el codi des d’aquí, es dóna de la següent manera:

// Distribuïda amb llicència de lliure voluntat.

// Utilitzeu-lo de la manera que vulgueu, sense ànim de lucre o de franc, sempre que encaixi en les llicències de les obres associades.

// HTS221

// Aquest codi està dissenyat per funcionar amb el mini mòdul HTS221_I2CS I2C.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

importació java.io. IOException;

classe pública HTS221 {public static void main (String args ) llança Excepció

{

// Crea I2CBus

Bus I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// Obteniu un dispositiu I2C, l'adreça HTS221 I2C és 0x5F (95)

I2CDevice device = bus.getDevice (0x5F);

// Seleccioneu un registre de configuració mitjà

// Mostres mitjanes de temperatura = 16, mostres mitjanes d’humitat = 32

device.write (0x10, (byte) 0x1B);

// Seleccioneu control register1

// Encès, bloqueig d’actualització de dades, velocitat de dades o / p = 1 Hz

device.write (0x20, (byte) 0x85);

Thread.sleep (500);

// Llegiu els valors de calibració de la memòria no volàtil del dispositiu

// Valors de calibració de la humitat

byte val = byte nou [2];

// Llegir 1 byte de dades de l'adreça 0x30 (48)

val [0] = (byte) device.read (0x30);

// Llegir 1 byte de dades de l'adreça 0x31 (49)

val [1] = (byte) device.read (0x31);

int H0 = (val [0] & 0xFF) / 2;

int H1 = (val [1] & 0xFF) / 2;

// Llegir 1 byte de dades de l'adreça 0x36 (54)

val [0] = (byte) device.read (0x36);

// Llegir 1 byte de dades de l'adreça 0x37 (55)

val [1] = (byte) device.read (0x37);

int H2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Llegir 1 byte de dades de l'adreça 0x3A (58)

val [0] = (byte) device.read (0x3A);

// Llegir 1 byte de dades de l'adreça 0x3B (59)

val [1] = (byte) device.read (0x3B);

int H3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Valors de calibració de la temperatura

// Llegir 1 byte de dades de l'adreça 0x32 (50)

int T0 = ((byte) device.read (0x32) & 0xFF);

// Llegir 1 byte de dades de l'adreça 0x33 (51)

int T1 = ((byte) device.read (0x33) & 0xFF);

// Llegir 1 byte de dades de l'adreça 0x35 (53)

int raw = ((byte) device.read (0x35) & 0x0F);

// Converteix els valors de la calibració de la temperatura a 10 bits

T0 = ((en brut & 0x03) * 256) + T0;

T1 = ((en brut & 0x0C) * 64) + T1;

// Llegir 1 byte de dades de l'adreça 0x3C (60)

val [0] = (byte) device.read (0x3C);

// Llegir 1 byte de dades de l'adreça 0x3D (61)

val [1] = (byte) device.read (0x3D);

int T2 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Llegir 1 byte de dades de l'adreça 0x3E (62)

val [0] = (byte) device.read (0x3E);

// Llegir 1 byte de dades de l'adreça 0x3F (63)

val [1] = (byte) device.read (0x3F);

int T3 = ((val [1] & 0xFF) * 256) + (val [0] & 0xFF);

// Llegiu 4 bytes de dades

// hum msb, hum lsb, temp msb, temp lsb

byte dades = byte nou [4]; device.read (0x28 | 0x80, dades, 0, 4);

// Converteix les dades

int hum = ((dades [1] i 0xFF) * 256) + (dades [0] i 0xFF);

int temp = ((dades [3] i 0xFF) * 256) + (dades [2] i 0xFF);

si (temp> 32767)

{

temp - = 65536;

}

doble humitat = ((1.0 * H1) - (1.0 * H0)) * (1.0 * hum - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

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

doble fTemp = (cTemp * 1,8) + 32;

// Sortiu les dades a la pantalla

System.out.printf ("Humitat relativa:%.2f %% RH% n", humitat);

System.out.printf ("Temperatura en centígrads:%.2f C% n", cTemp);

System.out.printf ("Temperatura en Fahrenheit:%.2f F% n", fTemp);

}

}

Pas 4: aplicacions:

HTS221 es pot utilitzar en diversos productes de consum com humidificadors d'aire i neveres, etc. Aquest sensor també troba la seva aplicació en un àmbit més ampli, inclosa la domòtica intel·ligent, l'automatització industrial, els equips respiratoris, el seguiment d'actius i mercaderies.

Recomanat: