Meranie intenzity svetla pomocou BH1715 a Raspberry Pi: 5 krokov
Meranie intenzity svetla pomocou BH1715 a Raspberry Pi: 5 krokov
Anonim
Image
Image

Včera sme pracovali na LCD displejoch a pri ich práci sme si uvedomili dôležitosť výpočtu intenzity svetla. Intenzita svetla nie je dôležitá len vo fyzickej oblasti tohto sveta, ale má svoju dobre uvedenú úlohu aj v biologickej oblasti. Presný odhad intenzity svetla hrá kľúčovú úlohu v našom ekosystéme, pri raste rastlín atď. Preto sme na tento účel študovali tento snímač BH1715, ktorý je 16-bitovým snímačom okolitého svetla so sériovým výstupom.

V tomto tutoriáli ukážeme, ako funguje BH1715 s Raspberry pi pomocou programovacieho jazyka Java.

Hardvér, ktorý budete na tento účel potrebovať, je nasledujúci:

1. BH1715 - Senzor okolitého svetla

2. Raspberryy Pi

3. Kábel I2C

4. I2C štít pre Raspberry Pi

5. Ethernetový kábel

Krok 1: Prehľad BH1715:

Čo potrebuješ..!!
Čo potrebuješ..!!

V prvom rade by sme vás chceli zoznámiť so základnými funkciami senzorového modulu, ktorým je BH1715, a komunikačným protokolom, na ktorom funguje.

BH1715 je digitálny snímač okolitého svetla s rozhraním zbernice I²C. BH1715 sa bežne používa na získavanie údajov o okolitom svetle na úpravu výkonu podsvietenia LCD a klávesnice pre mobilné zariadenia. Toto zariadenie ponúka 16-bitové rozlíšenie a nastaviteľný rozsah merania, čo umožňuje detekciu od 0,23 do 100 000 luxov.

Komunikačný protokol, na ktorom senzor funguje, je I2C. I2C znamená interintegrovaný obvod. Ide o komunikačný protokol, v ktorom komunikácia prebieha prostredníctvom liniek SDA (sériové údaje) a SCL (sériové hodiny). Umožňuje pripojenie viacerých zariadení súčasne. Je to jeden z najjednoduchších a najefektívnejších komunikačných protokolov.

Krok 2: Čo potrebujete.. !

Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!
Čo potrebuješ..!!

Materiály, ktoré potrebujeme na dosiahnutie nášho cieľa, obsahujú nasledujúce hardvérové komponenty:

1. BH1715 - Senzor okolitého svetla

2. Raspberry Pi

3. Kábel I2C

4. I2C štít pre Raspberry Pi

5. Ethernetový kábel

Krok 3: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a malinovým pi. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

BH1715 bude fungovať na I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik. Všetko, čo potrebujete, sú štyri drôty!

Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 4: Meranie intenzity svetla pomocou kódu Java:

Meranie intenzity svetla pomocou kódu Java
Meranie intenzity svetla pomocou kódu Java
Meranie intenzity svetla pomocou kódu Java
Meranie intenzity svetla pomocou kódu Java

Výhodou použitia raspberry pi je, že vám poskytuje flexibilitu programovacieho jazyka, v ktorom chcete dosku programovať, aby ste s ním mohli prepojiť senzor. S využitím tejto výhody tejto dosky demonštrujeme, že je programovaná v jazyku Java. Kód Java pre BH1715 je možné stiahnuť z našej komunity GitHub, ktorou je Dcube Store.

Rovnako ako pre jednoduchosť používateľov, vysvetľujeme kód aj tu:

Ako prvý krok kódovania si musíte stiahnuť knižnicu pi4j v prípade jazyka Java, pretože táto knižnica podporuje funkcie použité v kóde. Ak si chcete stiahnuť knižnicu, môžete navštíviť nasledujúci odkaz:

pi4j.com/install.html

Pracovný kód java pre tento senzor môžete skopírovať aj tu:

// Distribuované s licenciou slobodnej vôle.

// Používajte ho akýmkoľvek spôsobom chcete, so ziskom alebo zadarmo, za predpokladu, že sa zmestí do licencií k ním pridruženým dielam.

// BH1715

// Tento kód je navrhnutý tak, aby pracoval s mini modulom BH1715_I2CS I2C, ktorý je k dispozícii na ControlEverything.com.

//

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

verejná trieda BH1715

{

public static void main (String args ) hodí výnimku

{

// Vytvorenie zbernice I2C

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

// Získať zariadenie I2C, adresa BH1715 I2C je 0x23 (35)

I2CDevice zariadenie = bus.getDevice (0x23);

// Odoslanie príkazu na zapnutie

device.write ((byte) 0x01);

// Odoslanie príkazu na nepretržité meranie

device.write ((byte) 0x10);

Thread.sleep (500);

// Prečítajte 2 bajty údajov

// jas msb, jas lsb

bajt dáta = nový bajt [2];

device.read (údaje, 0, 2);

// Previesť údaje

dvojnásobný jas = ((údaje [0] & 0xFF) * 256 + (údaje [1] & 0xFF)) / 1,20;

// Výstup údajov na obrazovku

System.out.printf ("Svietivosť okolitého svetla: %.2f lux %n", svietivosť);

}

}

Knižnica, ktorá uľahčuje komunikáciu i2c medzi senzorom a doskou, je pi4j a jej rôzne balíky I2CBus, I2CDevice a I2CFactory pomáhajú nadviazať spojenie.

importovať com.pi4j.io.i2c. I2CBus; importovať com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;

Táto časť kódu umožňuje senzoru pracovať pri meraní intenzity svetla tak, že napíše príslušné príkazy pomocou funkcie write () a potom sa údaje prečítajú pomocou funkcie read ().

device.write ((byte) 0x01); // príkaz na zapnutie

device.write ((byte) 0x10); // príkaz na kontinuálne meranie

bajt dáta = nový bajt [2]; // Prečítajte 2 bajty údajov

device.read (údaje, 0, 2);

Údaje prijaté zo snímača sa prevedú do vhodného formátu pomocou nasledujúceho postupu:

dvojnásobná svietivosť = ((údaje [0] & 0xFF) * 256 + (údaje [1] & 0xFF)) / 1,20;

Výstup je vytlačený pomocou funkcie System.out.println () v nasledujúcom formáte.

System.out.printf ("Svietivosť okolitého svetla: %.2f lux %n", svietivosť);

Výstup senzora je zobrazený na obrázku vyššie.

Krok 5: Aplikácie:

Aplikácie
Aplikácie

BH1715 je snímač okolitého svetla s digitálnym výstupom, ktorý je možné integrovať do mobilného telefónu, LCD televízora, prenosného počítača NOTE atď. Je možné ho použiť aj v prenosných herných prístrojoch, digitálnych fotoaparátoch, digitálnych videokamerách, PDA, LCD displejoch a mnohých ďalších zariadeniach, ktoré vyžadujú efektívne aplikácie na snímanie svetla.

Odporúča: