Sadržaj:

Raspberry Pi HTS221 senzor relativne vlažnosti i temperature Java Vodič: 4 koraka
Raspberry Pi HTS221 senzor relativne vlažnosti i temperature Java Vodič: 4 koraka

Video: Raspberry Pi HTS221 senzor relativne vlažnosti i temperature Java Vodič: 4 koraka

Video: Raspberry Pi HTS221 senzor relativne vlažnosti i temperature Java Vodič: 4 koraka
Video: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Python Tutorial 2024, Juli
Anonim
Image
Image

HTS221 je ultra kompaktni kapacitivni digitalni senzor za relativnu vlažnost i temperaturu. Sadrži osjetljivi element i integrirano kolo za mješoviti signal (ASIC) za mješoviti signal za pružanje mjernih informacija putem digitalnih serijskih sučelja. Integriran s toliko funkcija, ovo je jedan od najprikladnijih senzora za mjerenje kritične vlažnosti i temperature. Evo demonstracije s java kodom pomoću Raspberry Pi.

Korak 1: Šta vam treba..

Sta ti treba..!!
Sta ti treba..!!

1. Malina Pi

2. HTS221

3. I²C kabel

4. I²C štit za Raspberry Pi

5. Ethernet kabel

Korak 2: Veze:

Veze
Veze
Veze
Veze
Veze
Veze
Veze
Veze

Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.

Zatim spojite jedan kraj I2C kabela na HTS221 senzor, a drugi kraj na I2C štit.

Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.

Veze su prikazane na gornjoj slici.

Korak 3: Kod:

Šifra
Šifra

Python kod za HTS221 može se preuzeti sa našeg github spremišta-Dcube Store

Evo linka za isto:

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

Za java kod koristili smo biblioteku pi4j, koraci za instaliranje pi4j na malinu pi opisani su ovdje:

pi4j.com/install.html

Kôd možete i kopirati odavde, dat je na sljedeći način:

// Distribuirano s licencom za slobodnu volju.

// Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.

// HTS221

// Ovaj kod je dizajniran za rad s HTS221_I2CS I2C mini modulom.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

javna klasa HTS221 {public static void main (String args ) baca iznimku

{

// Kreiranje I2CBus -a

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

// Nabavite I2C uređaj, HTS221 I2C adresa je 0x5F (95)

I2CDevice uređaj = bus.getDevice (0x5F);

// Odabir prosječnog registra konfiguracije

// Prosječni uzorci temperature = 16, prosječni uzorci vlažnosti = 32

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

// Odaberite kontrolni registar1

// Uključivanje, blokiranje ažuriranja podataka, brzina prijenosa o/p = 1 Hz

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

Thread.sleep (500);

// Očitavanje kalibracijskih vrijednosti iz energetske memorije uređaja

// Vrijednosti kalibracije vlažnosti

bajt val = novi bajt [2];

// Očitavanje 1 bajta podataka s adrese 0x30 (48)

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

// Očitavanje 1 bajta podataka s adrese 0x31 (49)

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

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

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

// Očitavanje 1 bajta podataka s adrese 0x36 (54)

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

// Očitavanje 1 bajta podataka s adrese 0x37 (55)

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

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

// Očitavanje 1 bajta podataka s adrese 0x3A (58)

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

// Očitavanje 1 bajta podataka s adrese 0x3B (59)

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

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

// Vrijednosti kalibracije temperature

// Očitavanje 1 bajta podataka s adrese 0x32 (50)

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

// Očitavanje 1 bajta podataka s adrese 0x33 (51)

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

// Očitavanje 1 bajta podataka s adrese 0x35 (53)

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

// Pretvorimo temperaturne kalibracijske vrijednosti u 10-bitne

T0 = ((neobrađeno & 0x03) * 256) + T0;

T1 = ((neobrađeno & 0x0C) * 64) + T1;

// Očitavanje 1 bajta podataka s adrese 0x3C (60)

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

// Očitavanje 1 bajta podataka s adrese 0x3D (61)

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

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

// Očitavanje 1 bajta podataka s adrese 0x3E (62)

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

// Očitavanje 1 bajta podataka s adrese 0x3F (63)

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

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

// Očitavanje 4 bajta podataka

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

bajt podatak = novi bajt [4]; device.read (0x28 | 0x80, podaci, 0, 4);

// Pretvorimo podatke

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

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

if (temp> 32767)

{

temp -= 65536;

}

dvostruka vlažnost = ((1,0 * H1) - (1,0 * H0)) * (1,0 * hum - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

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

dvostruki fTemp = (cTemp * 1.8) + 32;

// Iznos podataka na ekran

System.out.printf ("Relativna vlažnost: %.2f %% RH %n", vlažnost);

System.out.printf ("Temperatura u Celzijusima: %.2f C %n", cTemp);

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

}

}

Korak 4: Aplikacije:

HTS221 se može koristiti u raznim proizvodima široke potrošnje poput ovlaživača zraka i hladnjaka itd. Ovaj senzor svoju primjenu nalazi i u široj areni uključujući automatizaciju pametnih kuća, industrijsku automatizaciju, respiratornu opremu, praćenje imovine i robe.

Preporučuje se: