Բովանդակություն:

Raspberry Pi HTS221 Հարաբերական խոնավության և ջերմաստիճանի ցուցիչ Java ձեռնարկ. 4 քայլ
Raspberry Pi HTS221 Հարաբերական խոնավության և ջերմաստիճանի ցուցիչ Java ձեռնարկ. 4 քայլ

Video: Raspberry Pi HTS221 Հարաբերական խոնավության և ջերմաստիճանի ցուցիչ Java ձեռնարկ. 4 քայլ

Video: Raspberry Pi HTS221 Հարաբերական խոնավության և ջերմաստիճանի ցուցիչ Java ձեռնարկ. 4 քայլ
Video: Raspberry Pi HTS221 Relative Humidity and Temperature Sensor Java Tutorial 2024, Նոյեմբեր
Anonim
Image
Image

HTS221- ը ծայրահեղ կոմպակտ տարողունակ թվային սենսոր է հարաբերական խոնավության և ջերմաստիճանի համար: Այն ներառում է զգայուն տարր և խառը ազդանշանների կիրառման հատուկ ինտեգրալ միացում (ASIC) `թվային սերիական միջերեսների միջոցով չափման տեղեկատվությունը տրամադրելու համար: Ինտեգրված այսքան շատ հատկանիշներով սա խոնավության և ջերմաստիճանի կրիտիկական չափումների ամենահարմար սենսորներից է: Ահա java կոդով ցուցադրումը ՝ օգտագործելով Raspberry Pi- ն:

Քայլ 1: Այն, ինչ ձեզ հարկավոր է..

Այն, ինչ ձեզ պետք է.. !!
Այն, ինչ ձեզ պետք է.. !!

1. Ազնվամորի Պի

2. HTS221

3. I²C մալուխ

4. I²C Shield ազնվամորի Pi- ի համար

5. Ethernet մալուխ

Քայլ 2: Միացումներ

Միացումներ
Միացումներ
Միացումներ
Միացումներ
Միացումներ
Միացումներ
Միացումներ
Միացումներ

Վերցրեք I2C վահան ազնվամորու pi- ի համար և նրբորեն մղեք այն ազնվամորի pi- ի gpio կապանքների վրա:

Այնուհետև I2C մալուխի մի ծայրը միացրեք HTS221 սենսորին, իսկ մյուս ծայրը ՝ I2C վահանին:

Միացրեք Ethernet մալուխը pi- ին կամ կարող եք օգտագործել WiFi մոդուլ:

Կապերը ցուցադրվում են վերևի նկարում:

Քայլ 3: Կոդ

Կոդ
Կոդ

HTS221- ի համար պիթոնի ծածկագիրը կարելի է ներբեռնել մեր github պահոցից `Dcube Store- ից

Ահա նույնի հղումը.

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

Մենք օգտագործել ենք pi4j գրադարանը java կոդի համար, ազնվամորի pi- ի վրա pi4j տեղադրելու քայլերը նկարագրված են այստեղ.

pi4j.com/install.html

Այստեղից կարող եք նաև պատճենել կոդը, այն տրվում է հետևյալ կերպ.

// Տարածված է ազատ կամքի լիցենզիայով:

// Օգտագործեք այն ինչպես ցանկանում եք, շահույթ կամ անվճար, պայմանով, որ այն տեղավորվում է դրա հետ կապված աշխատանքների լիցենզիաներում:

// HTS221

// Այս ծածկագիրը նախատեսված է HTS221_I2CS I2C մինի մոդուլի հետ աշխատելու համար:

ներմուծել com.pi4j.io.i2c. I2CBus;

ներմուծել com.pi4j.io.i2c. I2CD սարք;

ներմուծել com.pi4j.io.i2c. I2CFactory;

ներմուծում java.io. IOException;

հանրային դաս HTS221 {public static void main (String args ) նետում է Բացառություն

{

// Ստեղծել I2CBus

I2CBus ավտոբուս = I2CFactory.getInstance (I2CBus. BUS_1);

// Ստացեք I2C սարք, HTS221 I2C հասցեն ՝ 0x5F (95)

I2CDevice սարք = bus.getDevice (0x5F);

// Ընտրեք միջին կազմաձևման գրանցամատյան

// Temերմաստիճանի միջին նմուշներ = 16, խոնավության միջին նմուշներ = 32

device.write (0x10, (բայթ) 0x1B);

// Ընտրեք հսկիչ գրանցամատյան 1

// Միացնել, արգելափակել տվյալների թարմացումը, տվյալների արագությունը o/p = 1 Հց

device.write (0x20, (բայթ) 0x85);

Thread.sleep (500);

// Կարդացեք Calibration- ի արժեքները սարքի անկայուն հիշողությունից

// Խոնավության ստուգաչափման արժեքներ

բայթ val = նոր բայթ [2];

// Կարդացեք 1 բայթ տվյալներ 0x30 հասցեից (48)

val [0] = (բայթ) սարք. կարդալ (0x30);

// Կարդացեք 1 բայթ տվյալներ 0x31 (49) հասցեից

val [1] = (բայթ) սարք. կարդալ (0x31);

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

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

// Կարդացեք 1 բայթ տվյալներ 0x36 հասցեից (54)

val [0] = (բայթ) սարք. կարդալ (0x36);

// Կարդացեք 1 բայթ տվյալներ 0x37 հասցեից (55)

val [1] = (բայթ) սարք. կարդալ (0x37);

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

// Կարդացեք 1 բայթ տվյալներ 0x3A հասցեից (58)

val [0] = (բայթ) սարք. կարդալ (0x3A);

// Կարդացեք 1 բայթ տվյալներ 0x3B հասցեից (59)

val [1] = (բայթ) սարք. կարդալ (0x3B);

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

// Temերմաստիճանի ստուգաչափման արժեքներ

// Կարդացեք 1 բայթ տվյալներ 0x32 հասցեից (50)

int T0 = ((բայթ) սարք. կարդալ (0x32) & 0xFF);

// Կարդացեք 1 բայթ տվյալներ 0x33 հասցեից (51)

int T1 = ((բայթ) սարք. կարդալ (0x33) & 0xFF);

// Կարդացեք 1 բայթ տվյալներ 0x35 հասցեից (53)

int raw = ((բայթ) սարք. կարդալ (0x35) & 0x0F);

// Փոխարկեք ջերմաստիճանի չափման արժեքները 10 բիթ

T0 = ((հում և 0x03) * 256) + T0;

T1 = ((հում և 0x0C) * 64) + T1;

// Կարդացեք 1 բայթ տվյալներ 0x3C հասցեից (60)

val [0] = (բայթ) սարք. կարդալ (0x3C);

// Կարդացեք 1 բայթ տվյալներ 0x3D (61) հասցեից

val [1] = (բայթ) սարք. կարդալ (0x3D);

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

// Կարդացեք 1 բայթ տվյալներ 0x3E հասցեից (62)

val [0] = (բայթ) սարք. կարդալ (0x3E);

// Կարդացեք 1 բայթ տվյալներ 0x3F հասցեից (63)

val [1] = (բայթ) սարք. կարդալ (0x3F);

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

// Կարդացեք 4 բայթ տվյալներ

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

բայթ տվյալներ = նոր բայթ [4]; device.read (0x28 | 0x80, տվյալներ, 0, 4);

// Փոխարկել տվյալները

int hum = ((տվյալները [1] & 0xFF) * 256) + (տվյալները [0] & 0xFF);

int temp = ((տվյալները [3] & 0xFF) * 256) + (տվյալները [2] & 0xFF);

եթե (ջերմաստիճան> 32767)

{

ջերմաստիճան -= 65536;

}

կրկնակի խոնավություն = ((1.0 * H1) - (1.0 * H0)) * (1.0 * հում - 1.0 * H2) / (1.0 * H3 - 1.0 * H2) + (1.0 * H0);

կրկնակի cTemp = ((T1 - T0) / 8.0) * (temp - T2) / (T3 - T2) + (T0 / 8.0);

կրկնակի fTemp = (cTemp * 1.8) + 32;

// Ելքի տվյալները էկրանին

System.out.printf ("Հարաբերական խոնավություն. %.2f %% RH %n", խոնավություն);

System.out.printf («elsերմաստիճանը Celsius: %.2f C %n», cTemp);

System.out.printf («Fերմաստիճանը Ֆարենհայտում ՝ %.2f F %n», fTemp);

}

}

Քայլ 4: Դիմումներ

HTS221- ը կարող է օգտագործվել սպառողական տարբեր ապրանքների մեջ, ինչպիսիք են օդի խոնավացուցիչները և սառնարանները և այլն: Այս սենսորը նաև իր կիրառությունն է գտնում ավելի լայն ասպարեզում, ներառյալ Smart home automation, Industrial automation, շնչառական սարքավորումներ, ակտիվների և ապրանքների հետևում:

Խորհուրդ ենք տալիս: