Sisukord:

Raspberry Pi HTS221 suhtelise niiskuse ja temperatuuri anduri Java õpetus: 4 sammu
Raspberry Pi HTS221 suhtelise niiskuse ja temperatuuri anduri Java õpetus: 4 sammu
Anonim
Image
Image

HTS221 on ülikompaktne mahtuvuslik digitaalne andur suhtelise niiskuse ja temperatuuri jaoks. See sisaldab andurielementi ja segasignaalirakenduse spetsiifilist integraallülitust (ASIC), et edastada mõõtmisteavet digitaalsete jadaliideste kaudu. See on integreeritud nii paljude funktsioonidega, see on üks kõige sobivamaid andureid kriitilise niiskuse ja temperatuuri mõõtmiseks. Siin on demonstratsioon java koodiga, kasutades Raspberry Pi.

Samm: mida vajate..

Mida sa vajad..!!
Mida sa vajad..!!

1. Vaarika Pi

2. HTS221

3. I²C kaabel

4. I²C kilp Raspberry Pi jaoks

5. Etherneti kaabel

Samm: ühendused:

Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused
Ühendused

Võtke vaarika pi jaoks I2C kilp ja lükake see õrnalt üle vaarika pi gpio tihvtide.

Seejärel ühendage I2C kaabli üks ots HTS221 anduriga ja teine ots I2C varjestusega.

Ühendage ka Etherneti kaabel pi -ga või võite kasutada WiFi -moodulit.

Ühendused on näidatud ülaltoodud pildil.

3. samm: kood:

Kood
Kood

HTS221 püütoni koodi saab alla laadida meie githubi hoidlast Dcube Store

Siin on link samale:

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

Oleme Java -koodi jaoks kasutanud pi4j -raamatukogu, pi4j -i vaarika pi -le installimise samme kirjeldatakse siin:

pi4j.com/install.html

Siit saate koodi ka kopeerida, see on järgmine:

// Levitatakse vaba tahte litsentsiga.

// Kasutage seda soovitud viisil, kasumit teenides või tasuta, tingimusel et see sobib sellega seotud teoste litsentsidega.

// HTS221

// See kood on loodud töötama koos HTS221_I2CS I2C minimooduliga.

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

importige java.io. IOException;

avalik klass HTS221 {public static void main (String args ) viskab Erand

{

// Loo I2CBus

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

// Hankige I2C seade, HTS221 I2C aadress on 0x5F (95)

I2CDseadme seade = buss.getDevice (0x5F);

// Valige keskmine konfiguratsiooniregister

// Temperatuuri keskmised proovid = 16, niiskuse keskmised proovid = 32

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

// Valige juhtregister1

// Lülitage sisse, blokeerige andmete värskendamine, andmeedastuskiirus o/p = 1 Hz

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

Niit.unenägu (500);

// Kalibreerimisväärtuste lugemine seadme püsimälust

// Niiskuse kalibreerimise väärtused

bait val = uus bait [2];

// Loe 1 bait andmeid aadressilt 0x30 (48)

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

// Lugege 1 bait andmeid aadressilt 0x31 (49)

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

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

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

// Loe 1 bait andmeid aadressilt 0x36 (54)

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

// Loe 1 bait andmeid aadressilt 0x37 (55)

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

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

// Loe 1 bait andmeid aadressilt 0x3A (58)

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

// Loe 1 bait andmeid aadressilt 0x3B (59)

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

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

// Temperatuuri kalibreerimise väärtused

// Loe 1 bait andmeid aadressilt 0x32 (50)

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

// Lugege 1 bait andmeid aadressilt 0x33 (51)

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

// Loe 1 bait andmeid aadressilt 0x35 (53)

int toores = ((bait) device.read (0x35) & 0x0F);

// Teisendage temperatuuri kalibreerimisväärtused 10-bitisteks

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

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

// Loe 1 bait andmeid aadressilt 0x3C (60)

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

// Loe 1 bait andmeid aadressilt 0x3D (61)

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

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

// Lugege 1 bait andmeid aadressilt 0x3E (62)

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

// Loe 1 bait andmeid aadressilt 0x3F (63)

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

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

// Loe 4 baiti andmeid

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

bait andmed = uus bait [4]; device.read (0x28 | 0x80, andmed, 0, 4);

// Teisendage andmed

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

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

kui (temp> 32767)

{

temp -= 65536;

}

kahekordne niiskus = ((1,0 * H1) - (1,0 * H0)) * (1,0 * hum - 1,0 * H2) / (1,0 * H3 - 1,0 * H2) + (1,0 * H0);

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

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

// Andmete väljastamine ekraanile

System.out.printf ("Suhteline õhuniiskus: %.2f %% RH %n", niiskus);

System.out.printf ("Temperatuur Celsiuse järgi: %.2f C %n", cTemp);

System.out.printf ("Temperatuur Fahrenheiti järgi: %.2f F %n", fTemp);

}

}

4. samm: rakendused:

HTS221 saab kasutada mitmesugustes tarbekaupades nagu õhuniisutajad ja külmikud jne. Seda andurit saab kasutada ka laiemal areenil, sealhulgas nutika kodu automatiseerimine, tööstusautomaatika, hingamisteede seadmed, varade ja kaupade jälgimine.

Soovitan: