Sommario:

Misurazione dell'intensità della luce utilizzando BH1715 e Raspberry Pi: 5 passaggi
Misurazione dell'intensità della luce utilizzando BH1715 e Raspberry Pi: 5 passaggi

Video: Misurazione dell'intensità della luce utilizzando BH1715 e Raspberry Pi: 5 passaggi

Video: Misurazione dell'intensità della luce utilizzando BH1715 e Raspberry Pi: 5 passaggi
Video: Come abbiamo misurato la velocità della luce? 2024, Dicembre
Anonim
Image
Image

Ieri stavamo lavorando su display LCD e mentre lavoravamo su di essi ci siamo resi conto dell'importanza del calcolo dell'intensità della luce. L'intensità della luce non è importante solo nel dominio fisico di questo mondo, ma ha anche il suo ruolo ben noto nel dominio biologico. La stima accurata dell'intensità della luce gioca un ruolo fondamentale nel nostro ecosistema, nella crescita delle piante, ecc. Quindi, per questo scopo abbiamo studiato questo sensore BH1715, che è un sensore di luce ambientale del tipo a uscita seriale a 16 bit.

In questo tutorial, dimostreremo il funzionamento di BH1715 con Raspberry pi, utilizzando Java come linguaggio di programmazione.

L'hardware di cui avrai bisogno per questo scopo è il seguente:

1. BH1715 - Sensore di luce ambientale

2. Pi lampone

3. Cavo I2C

4. Scudo I2C per Raspberry Pi

5. Cavo Ethernet

Fase 1: Panoramica del BH1715:

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

Prima di tutto, vorremmo familiarizzare con le caratteristiche di base del modulo sensore che è BH1715 e il protocollo di comunicazione su cui funziona.

BH1715 è un sensore di luce ambientale digitale con un'interfaccia bus I²C. Il BH1715 viene comunemente utilizzato per ottenere i dati sulla luce ambientale per regolare la potenza della retroilluminazione del display LCD e della tastiera per i dispositivi mobili. Questo dispositivo offre una risoluzione a 16 bit e un intervallo di misurazione regolabile, consentendo il rilevamento da 0,23 a 100.000 lux.

Il protocollo di comunicazione su cui funziona il sensore è I2C. I2C sta per il circuito inter-integrato. È un protocollo di comunicazione in cui la comunicazione avviene tramite le linee SDA (dati seriali) e SCL (orologio seriale). Consente di collegare più dispositivi contemporaneamente. È uno dei protocolli di comunicazione più semplici ed efficienti.

Passaggio 2: cosa ti serve.

Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!
Quello di cui hai bisogno..!!

I materiali di cui abbiamo bisogno per raggiungere il nostro obiettivo includono i seguenti componenti hardware:

1. BH1715 - Sensore di luce ambientale

2. Raspberry Pi

3. Cavo I2C

4. Scudo I2C per Raspberry Pi

5. Cavo Ethernet

Passaggio 3: collegamento hardware:

Collegamento hardware
Collegamento hardware
Collegamento hardware
Collegamento hardware

La sezione relativa ai collegamenti hardware spiega sostanzialmente le connessioni di cablaggio necessarie tra il sensore e il Raspberry Pi. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:

Il BH1715 funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.

Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!

Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.

Queste connessioni sono mostrate nelle immagini sopra.

Passaggio 4: misurazione dell'intensità della luce utilizzando il codice Java:

Misurazione dell'intensità della luce utilizzando il codice Java
Misurazione dell'intensità della luce utilizzando il codice Java
Misurazione dell'intensità della luce utilizzando il codice Java
Misurazione dell'intensità della luce utilizzando il codice Java

Il vantaggio di utilizzare raspberry pi è che ti offre la flessibilità del linguaggio di programmazione in cui desideri programmare la scheda per interfacciare il sensore con essa. Sfruttando questo vantaggio di questa scheda, stiamo dimostrando qui che è la programmazione in Java. Il codice Java per BH1715 può essere scaricato dalla nostra comunità GitHub che è Dcube Store.

Oltre che per la facilità degli utenti, spieghiamo anche qui il codice:

Come primo passo della codifica, devi scaricare la libreria pi4j in caso di java, perché questa libreria supporta le funzioni utilizzate nel codice. Quindi, per scaricare la libreria puoi visitare il seguente link:

pi4j.com/install.html

Puoi copiare il codice Java funzionante per questo sensore anche da qui:

// Distribuito con una licenza libera.

// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.

// BH1715

// Questo codice è progettato per funzionare con il mini modulo BH1715_I2CS I2C disponibile su ControlEverything.com.

//

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

import com.pi4j.io.i2c. I2CFactory;

import java.io. IOException;

classe pubblica BH1715

{

public static void main(String args) genera un'eccezione

{

// Crea bus I2C

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

// Ottieni il dispositivo I2C, l'indirizzo I2C BH1715 è 0x23(35)

I2CDevice device = bus.getDevice(0x23);

// Invia il comando di accensione

device.write((byte)0x01);

// Invia il comando di misurazione continua

device.write((byte)0x10);

Thread.sleep(500);

// Legge 2 byte di dati

// luminanza msb, luminanza lsb

byte dati = nuovo byte[2];

device.read(data, 0, 2);

// Converti dati

doppia luminanza = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)) / 1.20;

// Invia i dati allo schermo

System.out.printf("Luminanza luce ambiente: %.2f lux %n", luminanza);

}

}

La libreria che facilita la comunicazione i2c tra il sensore e la scheda è pi4j, i suoi vari pacchetti I2CBus, I2CDevice e I2CFactory aiutano a stabilire la connessione.

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

Questa parte del codice fa funzionare il sensore per la misurazione dell'intensità della luce scrivendo i rispettivi comandi utilizzando la funzione write() e quindi i dati vengono letti utilizzando la funzione read().

device.write((byte)0x01); // comando di accensione

device.write((byte)0x10); // comando di misurazione continua

byte dati = nuovo byte[2]; // Legge 2 byte di dati

device.read(data, 0, 2);

I dati ricevuti dal sensore vengono convertiti nel formato appropriato utilizzando quanto segue:

doppia luminanza = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF)) / 1.20;

L'output viene stampato utilizzando la funzione System.out.println(), nel formato seguente.

System.out.printf("Luminanza luce ambiente: %.2f lux %n", luminanza);

L'uscita del sensore è mostrata nell'immagine sopra.

Passaggio 5: applicazioni:

Applicazioni
Applicazioni

BH1715 è un sensore di luce ambientale con uscita digitale che può essere incorporato in telefoni cellulari, TV LCD, PC NOTE ecc. Può anche essere impiegato in macchine da gioco portatili, fotocamere digitali, videocamere digitali, PDA, display LCD e molti altri dispositivi che richiedono applicazioni di rilevamento della luce efficienti.

Consigliato: