Kazalo:

Raspberry Pi HTS221 Senzor relativne vlažnosti in temperature Java Vadnica: 4 koraki
Raspberry Pi HTS221 Senzor relativne vlažnosti in temperature Java Vadnica: 4 koraki

Video: Raspberry Pi HTS221 Senzor relativne vlažnosti in temperature Java Vadnica: 4 koraki

Video: Raspberry Pi HTS221 Senzor relativne vlažnosti in temperature Java Vadnica: 4 koraki
Video: Arduino Nano - Учебное пособие по датчику относительной влажности и температуры HTS221 2024, Julij
Anonim
Image
Image

HTS221 je ultra kompakten kapacitivni digitalni senzor za relativno vlažnost in temperaturo. Vključuje zaznavni element in integrirano vezje za aplikacije z mešanim signalom (ASIC) za zagotavljanje merilnih informacij prek digitalnih serijskih vmesnikov. Integriran s toliko funkcijami, je eden najprimernejših senzorjev za merjenje kritične vlažnosti in temperature. Tukaj je predstavitev s kodo java z uporabo Raspberry Pi.

Korak: Kaj potrebujete.. !

Kaj rabiš..!!
Kaj rabiš..!!

1. Malina Pi

2. HTS221

3. Kabel I²C

4. I²C ščit za Raspberry Pi

5. Ethernetni kabel

2. korak: Povezave:

Povezave
Povezave
Povezave
Povezave
Povezave
Povezave
Povezave
Povezave

Za malino pi vzemite ščit I2C in ga nežno potisnite čez zatiče gpio maline pi.

Nato en konec kabla I2C priključite na senzor HTS221, drugi konec pa na ščit I2C.

Ethernetni kabel priključite tudi na pi ali pa uporabite modul WiFi.

Povezave so prikazane na zgornji sliki.

3. korak: Koda:

Koda
Koda

Kodo python za HTS221 lahko prenesete iz našega skladišča github-Dcube Store

Tukaj je povezava za isto:

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

Za kodo java smo uporabili knjižnico pi4j, koraki za namestitev pi4j na malino pi so opisani tukaj:

pi4j.com/install.html

Kodo lahko tudi kopirate od tu, podana je na naslednji način:

// Razdeljeno z licenco za svobodno voljo.

// Uporabljajte ga kakor koli želite, dobičkonosno ali brezplačno, pod pogojem, da ustreza licencam povezanih del.

// HTS221

// Ta koda je zasnovana za delo z mini modulom HTS221_I2CS I2C.

uvoz com.pi4j.io.i2c. I2CBus;

uvoz com.pi4j.io.i2c. I2CDevice;

uvoz com.pi4j.io.i2c. I2CFactory;

uvoz java.io. IOException;

javni razred HTS221 {public static void main (String args ) vrže Exception

{

// Ustvari I2CBus

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

// Pridobite napravo I2C, naslov HTS221 I2C je 0x5F (95)

Naprava I2CDevice = bus.getDevice (0x5F);

// Izbira povprečnega registra konfiguracije

// Temperaturni povprečni vzorci = 16, povprečni vzorci vlažnosti = 32

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

// Izberite kontrolni register1

// Vklop, blokiranje posodobitve podatkov, hitrost prenosa podatkov o/p = 1 Hz

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

Thread.sleep (500);

// Odčitavanje kalibracijskih vrednosti iz nehlapnega pomnilnika naprave

// Kalibracijske vrednosti vlažnosti

bajt val = nov bajt [2];

// branje 1 bajta podatkov z naslova 0x30 (48)

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

// branje 1 bajta podatkov z naslova 0x31 (49)

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

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

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

// branje 1 bajta podatkov z naslova 0x36 (54)

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

// branje 1 bajta podatkov z naslova 0x37 (55)

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

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

// branje 1 bajta podatkov z naslova 0x3A (58)

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

// branje 1 bajta podatkov z naslova 0x3B (59)

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

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

// Temperaturne kalibracijske vrednosti

// branje 1 bajta podatkov z naslova 0x32 (50)

int T0 = ((bajtna) naprava.preberi (0x32) & 0xFF);

// branje 1 bajta podatkov z naslova 0x33 (51)

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

// branje 1 bajta podatkov z naslova 0x35 (53)

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

// Pretvarjanje temperaturnih kalibracijskih vrednosti v 10 bitov

T0 = ((surovo & 0x03) * 256) + T0;

T1 = ((surovo & 0x0C) * 64) + T1;

// branje 1 bajta podatkov z naslova 0x3C (60)

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

// branje 1 bajta podatkov z naslova 0x3D (61)

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

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

// branje 1 bajta podatkov z naslova 0x3E (62)

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

// branje 1 bajta podatkov z naslova 0x3F (63)

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

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

// Branje 4 bajtov podatkov

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

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

// Pretvorimo podatke

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

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

če (temp> 32767)

{

temp -= 65536;

}

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

dvojni cTemp = ((T1 - T0) / 8,0) * (temp - T2) / (T3 - T2) + (T0 / 8,0);

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

// Izhod podatkov na zaslon

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

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

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

}

}

4. korak: Aplikacije:

HTS221 se lahko uporablja v različnih potrošniških izdelkih, kot so vlažilci zraka in hladilniki itd. Ta senzor se uporablja tudi na širšem področju, vključno z avtomatizacijo pametnega doma, industrijsko avtomatizacijo, opremo za dihanje, sledenjem sredstev in blaga.

Priporočena: