Լույսի ինտենսիվության չափում `օգտագործելով BH1715 և ազնվամորի Pi: 5 քայլ
Լույսի ինտենսիվության չափում `օգտագործելով BH1715 և ազնվամորի Pi: 5 քայլ
Anonim
Image
Image

Երեկ մենք աշխատում էինք LCD էկրաններով, և դրանց վրա աշխատելիս մենք հասկացանք լույսի ինտենսիվության հաշվարկի կարևորությունը: Լույսի ուժգնությունը ոչ միայն կարևոր է այս աշխարհի ֆիզիկական տիրույթում, այլև այն ունի իր հստակ դերը նաև կենսաբանական տիրույթում: Լույսի ինտենսիվության ճշգրիտ գնահատումը առանցքային դեր է խաղում մեր էկոհամակարգում, բույսերի աճի մեջ և այլն: Այսպիսով, այս նպատակին ծառայելու համար մենք ուսումնասիրեցինք այս BH1715 սենսորը, որը 16 բիթանոց սերիական ելքային տիպի շրջակա լույսի սենսոր է:

Այս ձեռնարկում մենք պատրաստվում ենք ցույց տալ BH1715- ի աշխատանքը Raspberry pi- ի հետ ՝ օգտագործելով Java- ն որպես ծրագրավորման լեզու:

Սարքավորումները, որոնք ձեզ անհրաժեշտ կլինեն այս նպատակով, հետևյալն են.

1. BH1715 - Շրջակա լույսի ցուցիչ

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

3. I2C մալուխ

4. I2C Shield For Raspberry Pi

5. Ethernet մալուխ

Քայլ 1: BH1715 Ակնարկ

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

Առաջին հերթին, մենք կցանկանայինք ձեզ ծանոթացնել սենսորային մոդուլի հիմնական հատկանիշներին, որն է BH1715- ը և հաղորդակցության արձանագրությունը, որի վրա այն աշխատում է:

BH1715- ը թվային Ambient Light Sensor է `I²C ավտոբուսի ինտերֆեյսով: BH1715- ը սովորաբար օգտագործվում է շրջակա լույսի տվյալների ստացման համար `շարժական սարքերի համար LCD- ի և ստեղնաշարի լուսավորության հզորությունը կարգավորելու համար: Այս սարքն առաջարկում է 16-բիթ թույլատրելիություն և կարգավորելի չափման տիրույթ, որը թույլ է տալիս հայտնաբերել.23-ից մինչև 100.000 լյուքս:

Հաղորդակցության արձանագրությունը, որի վրա աշխատում է սենսորը, I2C է: I2C- ը նշանակում է ինտեգրված միացում: Այն հաղորդակցման արձանագրություն է, որի միջոցով հաղորդակցությունը տեղի է ունենում SDA (սերիական տվյալներ) և SCL (սերիական ժամացույց) գծերի միջոցով: Այն թույլ է տալիս միաժամանակ միացնել բազմաթիվ սարքեր: Այն ամենապարզ և ամենաարդյունավետ հաղորդակցման արձանագրություններից մեկն է:

Քայլ 2: Այն, ինչ ձեզ պետք է..

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

Նյութերը, որոնք մեզ անհրաժեշտ են մեր նպատակին հասնելու համար, ներառում են հետևյալ ապարատային բաղադրիչները.

1. BH1715 - Շրջակա լույսի ցուցիչ

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

3. I2C մալուխ

4. I2C Shield For Raspberry Pi

5. Ethernet մալուխ

Քայլ 3: Սարքավորման միացում

Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում
Սարքավորումների միացում

Սարքավորումների միացման բաժինը հիմնականում բացատրում է սենսորի և ազնվամորու pi- ի միջև պահանջվող լարերի միացումները: Connectionsանկալի ելքի համար ցանկացած համակարգի վրա աշխատելիս հիմնական անհրաժեշտությունն է հիմնական կապերի ապահովումը: Այսպիսով, անհրաժեշտ կապերը հետևյալն են.

BH1715- ը կաշխատի I2C- ով: Ահա միացման սխեմայի օրինակ, որը ցույց է տալիս, թե ինչպես միացնել սենսորի յուրաքանչյուր միջերեսը:

Տուփից դուրս, տախտակը կազմաձևված է I2C ինտերֆեյսի համար, ուստի խորհուրդ ենք տալիս օգտագործել այս կապը, եթե այլապես ագնոստիկ եք: Ձեզ անհրաժեշտ է չորս լար:

Միայն չորս միացում է պահանջվում Vcc, Gnd, SCL և SDA կապում, որոնք միացված են I2C մալուխի օգնությամբ:

Այս կապերը ցուցադրվում են վերը նշված նկարներում:

Քայլ 4: Լույսի ինտենսիվության չափում `օգտագործելով Java ծածկագիրը

Լույսի ինտենսիվության չափում `օգտագործելով Java ծածկագիրը
Լույսի ինտենսիվության չափում `օգտագործելով Java ծածկագիրը
Լույսի ինտենսիվության չափում `օգտագործելով Java ծածկագիրը
Լույսի ինտենսիվության չափում `օգտագործելով Java ծածկագիրը

Ազնվամորու pi- ի օգտագործման առավելությունն այն է, որ ապահովում է այն ծրագրավորման լեզվի ճկունությունը, որով ցանկանում եք ծրագրավորել տախտակը `սենսորը դրա հետ միացնելու համար: Օգտվելով այս տախտակի այս առավելությունից ՝ մենք այստեղ ցույց ենք տալիս, որ այն ծրագրավորում է Java- ում: BH1715- ի Java կոդը կարելի է ներբեռնել մեր GitHub համայնքից, որը Dcube Store- ն է:

Ինչպես նաև օգտվողների հեշտության համար, մենք այստեղ բացատրում ենք ծածկագիրը.

Որպես կոդավորման առաջին քայլ, java- ի դեպքում անհրաժեշտ է ներբեռնել pi4j գրադարանը, քանի որ այս գրադարանը աջակցում է կոդի մեջ օգտագործվող գործառույթներին: Այսպիսով, գրադարանը ներբեռնելու համար կարող եք այցելել հետևյալ հղումը.

pi4j.com/install.html

Այս սենսորի աշխատանքային java ծածկագիրը կարող եք պատճենել նաև այստեղից.

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

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

// ԲՀ1715

// Այս կոդը նախատեսված է BH1715_I2CS I2C մինի մոդուլի հետ աշխատելու համար, որը հասանելի է ControlEverything.com- ից:

//

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

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

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

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

հանրային դաս BH1715

{

public static void main (String args ) նետում է Բացառություն

{

// Ստեղծել I2C ավտոբուս

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

// Ստացեք I2C սարք, BH1715 I2C հասցեն ՝ 0x23 (35)

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

// Ուղարկեք իշխանություն հրամանով

device.write ((բայթ) 0x01);

// Ուղարկել շարունակական չափման հրաման

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

Thread.sleep (500);

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

// պայծառություն msb, պայծառություն lsb

բայթ տվյալներ = նոր բայթ [2];

device.read (տվյալներ, 0, 2);

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

կրկնակի լուսավորություն = ((տվյալները [0] & 0xFF) * 256 + (տվյալները [1] & 0xFF)) / 1.20;

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

System.out.printf ("Շրջապատի լույսի լուսավորություն. %.2f lux %n", լուսավորություն);

}

}

Գրադարանը, որը հեշտացնում է i2c հաղորդակցումը սենսորի և տախտակի միջև, pi4j է, դրա տարբեր փաթեթները I2CBus, I2CDevice և I2CFactory- ն օգնում են կապ հաստատել:

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

Կոդի այս հատվածը ստիպում է սենսորին աշխատել լույսի ինտենսիվության չափման համար `համապատասխան հրամանները գրելով ՝ գրելով () գործառույթը, այնուհետև տվյալները կարդացվում են կարդալու () գործառույթի միջոցով:

device.write ((բայթ) 0x01); // հրամանատարության ուժ

device.write ((բայթ) 0x10); // շարունակական չափման հրաման

բայթ տվյալներ = նոր բայթ [2]; // Կարդացեք 2 բայթ տվյալներ

device.read (տվյալներ, 0, 2);

Սենսորից ստացված տվյալները փոխարկվում են համապատասխան ձևաչափի ՝ օգտագործելով հետևյալը.

կրկնակի լուսավորություն = ((տվյալները [0] & 0xFF) * 256 + (տվյալները [1] & 0xFF)) / 1.20;

Ելքը տպվում է System.out.println () գործառույթի միջոցով ՝ հետևյալ ձևաչափով:

System.out.printf ("Շրջապատի լույսի լուսավորություն. %.2f lux %n", լուսավորություն);

Սենսորի ելքը ցուցադրվում է վերևի նկարում:

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

Դիմումներ
Դիմումներ

BH1715- ը շրջակա լույսի թվային ելքային տվիչ է, որը կարող է ներառվել բջջային հեռախոսի, LCD հեռուստատեսության, ՆՇԱՆԱԿԻ ԱՀ -ի և այլնի մեջ: Այն կարող է օգտագործվել նաև շարժական խաղային մեքենայի, թվային ֆոտոխցիկի, թվային տեսախցիկի, PDA- ի, LCD էկրանին և շատ այլ սարքերի համար, որոնք պահանջում են Լույսի զգայուն արդյունավետ ծրագրեր:

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