Raspberry Pi HTS221 Relativ fuktighets- og temperatursensor Java Opplæring: 4 trinn
Raspberry Pi HTS221 Relativ fuktighets- og temperatursensor Java Opplæring: 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. Her er demonstrasjonen med en java -kode ved bruk av Raspberry Pi.

Trinn 1: Hva du trenger..

Hva trenger du..!!
Hva trenger du..!!

1. Bringebær Pi

2. HTS221

3. I²C -kabel

4. I²C Shield for Raspberry Pi

5. Ethernet -kabel

Trinn 2: Tilkoblinger:

Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger
Tilkoblinger

Ta et I2C -skjold for bringebærpi og skyv det forsiktig over gpio -pinnene til bringebærpi.

Koble deretter den ene enden av I2C -kabelen til HTS221 -sensoren og den andre enden til I2C -skjoldet.

Koble også Ethernet -kabelen til pi eller du kan bruke en WiFi -modul.

Tilkoblinger er vist på bildet ovenfor.

Trinn 3: Kode:

Kode
Kode

Python-koden for HTS221 kan lastes ned fra vår github repository-Dcube Store

Her er lenken til det samme:

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

Vi har brukt pi4j bibliotek for java -kode, trinnene for å installere pi4j på bringebær pi er beskrevet her:

pi4j.com/install.html

Du kan også kopiere koden herfra, den er gitt som følger:

// Distribuert med en fri viljelisens.

// Bruk den slik du vil, profitt eller gratis, forutsatt at den passer inn i lisensene til de tilhørende verkene.

// HTS221

// Denne koden er designet for å fungere med HTS221_I2CS I2C Mini Module.

importer com.pi4j.io.i2c. I2CBus;

importer com.pi4j.io.i2c. I2CDenhet;

importer com.pi4j.io.i2c. I2CFactory;

importer java.io. IOException;

public class HTS221 {public static void main (String args ) kaster Unntak

{

// Lag I2CBus

I2CBus -buss = I2CFactory.getInstance (I2CBus. BUS_1);

// Få I2C -enhet, HTS221 I2C -adresse er 0x5F (95)

I2CDevice -enhet = bus.getDevice (0x5F);

// Velg gjennomsnittlig konfigurasjonsregister

// Temperatur gjennomsnittlige prøver = 16, gjennomsnittlige fuktighetsprøver = 32

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

// Velg kontrollregister1

// Slå på, blokker dataoppdatering, datahastighet o/p = 1 Hz

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

Tråd. Sover (500);

// Les kalibreringsverdier fra enhetens ikke-flyktige minne

// Verdier for fuktighetskalibrering

byte val = ny byte [2];

// Les 1 byte data fra adresse 0x30 (48)

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

// Les 1 byte data fra adresse 0x31 (49)

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

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

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

// Les 1 byte data fra adresse 0x36 (54)

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

// Les 1 byte data fra adresse 0x37 (55)

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

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

// Les 1 byte data fra adresse 0x3A (58)

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

// Les 1 byte data fra adresse 0x3B (59)

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

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

// Temperaturkalibreringsverdier

// Les 1 byte data fra adresse 0x32 (50)

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

// Les 1 byte data fra adresse 0x33 (51)

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

// Les 1 byte data fra adresse 0x35 (53)

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

// Konverter temperaturkalibreringsverdiene til 10-bits

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

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

// Les 1 byte data fra adresse 0x3C (60)

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

// Les 1 byte data fra adresse 0x3D (61)

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

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

// Les 1 byte data fra adresse 0x3E (62)

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

// Les 1 byte data fra adresse 0x3F (63)

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

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

// Les 4 byte med data

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

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

// Konverter dataene

int hum = ((data [1] & 0xFF) * 256) + (data [0] & 0xFF);

int temp = ((data [3] & 0xFF) * 256) + (data [2] & 0xFF);

hvis (temp> 32767)

{

temperatur -= 65536;

}

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

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

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

// Utdata til skjermen

System.out.printf ("Relativ fuktighet: %.2f %% RH %n", fuktighet);

System.out.printf ("Temperatur i Celsius: %.2f C %n", cTemp);

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

}

}

Trinn 4: Søknader:

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: