Sensore di luce BH1750 con Demo board XIAO METER

Vediamo in questo articolo come interpretare i valori letti dal sensore  BH1750 utilizzando la Demo board XIAO METER su cui è istallato un XIAO SAMD21 della SEEED STUDIO.
Il sensore BH1750 presente sul breakout  GY-302 è in grado di trasformare l’intensità della luce, compresa in un range da 1 a 65.535 lux, in un segnale digitale disponibile tramite interfaccia I2C.

BH1750 demo board XIAO samd21

La demo board XIAO METER

La Demo board XIAO METER utilizzata in questo articolo, è una scheda autoprodotta che permette di testare facilmente un elevato numero di sensori. Si può fare tramite l’utilizzo di un XIAO SAMD21 della SEEED STUDIO che è il membro più piccolo della famiglia Seeeduino.
Il modulo misura solamente 20×17.5×3.5mm e dispone di un microprocessore Cortex-M0, 11 porte di I/O, connessioni seriali UART, I2C ed SPI. È compatibile con l’IDE di Arduino.

BMP180 demo board XIAO samd21Sotto le caratteristiche della Demo board XIAO METER.

DescrizioneValore
Tensione di esercizioBatteria al litio da 5 V / 3,7 V
Corrente di carica1A (massimo)
DisplayOLED da 0,96" 128×64 pixel - driver SSD1306
Porte I2C2
Porte digitali1
Porte analogiche1
Altre apparecchiature esternepulsante utente
Modulo alimentatore /caricabatteriaLX-LCBS
Dimensioni48.96 x 49.53 mm

Il modulo Seeed Studio XIAO SAMD21

Il modulo Seeed Studio XIAO SAMD21 è perfettamente compatibile con Arduino IDE. Questo permette di sviluppare facilmente piccoli progetti con l’aiuto della vasta e completa libreria Arduino.
Ecco le sue principali caratteristiche:

DescrizioneValore
ProcessoreCPU ARM Cortex-M0+ (SAMD21G18) fino a 48 MHz
Memoria flash256KB
Sram32KB
Pin I/O11 PIN analogici (10 o 12 bit), 11 PIN digitali, 1 pin di uscita DAC
Interfaccia I2C1
Interfaccia SPI1
Interfaccia UART1
LED1 LED utente, 1 LED di alimentazione, due LED per il download della porta seriale
Porta alimentazione e interfaccia di downloadTipo-C
Alimentazione3,3 V/5 V CC
Dimensioni20 × 17,5 × 3,5 mm
Compatibilità softwareCompatibile con Arduino IDE

Seeed Studio XIAO SAMD21

Maggiori informazioni nell’articolo Seeed Studio XIAO SAMD21 – Presentazione

Realizzazione del PCB con PCBWay

Il PCB è stato disegnato con il programma online EasyEDA, mentre è stato realizzato tramite il servizio offerto dal sito PCBWay

Sito online per creazioni schemi e PCB  Sito produzione PCB

Dove trovare il progetto

Il progetto completo può essere scaricato dal mio account presso OSHWLabutilizzando questo link.

Per realizzare il PCB si può anche utilizzare il mio progetto presente sulla piattaforma di condivisione offerta dalla PCBWay, ecco in link.

demo board XIAO METER

Per maggiori informazioni relative alla costruzione della Demo Board vedere l’articolo Demo board XIAO METER per XIAO SAMD21 – Progetto completo

Descrizione del sensore BH1750FVI

[Traduzione della pagina relativa alla libreria  Arduino del sensore fatta da Cristopher Laws ]
Il sensore di luce ambientale BH1750 montato sul modulo GY-302 ha sei diverse modalità di misurazione che sono divise in due gruppi: misurazioni continue e una tantum.

BH1750 demo board XIAO samd21In modalità continua il sensore misura continuamente il valore di luminosità. In modalità singola, il sensore effettua una sola misurazione e poi passa alla modalità Spegnimento.

Impostazione precisione della misura

Ogni modalità ha tre diverse precisioni, vediamole:

  • Bassa risoluzione – (4 lx di precisione, 16 ms di tempo di misurazione)
  • Alta risoluzione – (precisione 1 lx, tempo di misurazione 120 ms)
  • Alta risoluzione 2 – (precisione 0,5 lx, tempo di misurazione 120 ms)

Per impostazione predefinita, questa libreria utilizza la modalità ad alta risoluzione continua, ma è possibile cambiarla in una modalità diversa passando l’argomento mode a BH1750.begin().

Quando viene utilizzata la modalità One-Time, il sensore entrerà in modalità Spegnimento una volta completata la misurazione e dopo averla letta. Quando il sensore viene riacceso, torna alla modalità predefinita, il che significa che deve essere riconfigurato in modalità One-Time.
La libreria utilizzata è stata implementata per riconfigurare automaticamente il sensore al successivo tentativo di misurazione.

Impostazione risoluzione

Di solito si otterrà un valore intero che rappresenta l’equivalente in lux.

  • Bassa risoluzione – (intervallo generico: 0,0 fino a 54612,5 lux)
  • Alta risoluzione – (intervallo generico: 0,0 fino a 54612,5 lux)
  • Alta risoluzione 2 – (intervallo generico: 0,0 fino a 27306,25 lux)

Il sensore stesso restituisce un intero senza segno a 16 bit. Pertanto il valore massimo è generalmente limitato. La conversione standard tra i cosiddetti “conteggi” in lux è 1/1.2, il che significa che si otterrà un valore inferiore. Poiché si usa float, se si verifica un errore otterrai un valore negativo.

-1 nessun dato valido è stato trasmesso dal sensore
-2 il dispositivo non è configurato.  Altrimenti i conteggi misurati vengono convertiti in lux e restituiti. Se non vengono modificati i parametri avanzati, il valore lux massimo è 54612,5 lx.

Poiché il sensore conta l’impatto della luce in un intervallo di tempo specifico, è possibile modificare questo intervallo di tempo. Ciò è necessario se si utilizza una finestra di sovrapposizione o si compensa l’influenza ambientale come l’oscurità. Questo lasso di tempo è definito da un registro chiamato MTreg.
Pertanto è possibile scegliere un valore compreso tra 32 e 254. Il valore predefinito è 69; va tenuto presente che il tempo di misurazione viene modificato di conseguenza.

Caratteristiche del sensore

Ampio range (Lux): da 1 a 65.535
Alimentazione: da 3 VDC a 5 VDC
Temperatura di funzionamento: da -40°C a +85°C
Dimensioni (mm): 18,5×13,9×2,5 (connettori esclusi)

PINOUT del modulo sensore BH1750 GY-302

  • VCC: ingresso alimentazione  2,7-5,5 VDC
  • GND: massa alimentazione
  • SCL: pin clock I2C
  • SDA: pin DATA I2C
  • ADDR: il pin viene utilizzato solo quando più BH1750 sono collegati ad una scheda di controllo

BH1750 demo board XIAO samd21

Dove trovare il sensore?

Il Breakout GY-302 con sensore BH1750  può essere acquistato presso il sito FUTURA ELETTRONICA, il codice prodotto è 1606-GY302BH1750. Il suo costo, al momento della pubblicazione di questo articolo è di 4,20 €.

BH1750 demo board XIAO samd21

Contento del blister

Video dimostrativo

Test BH1750 su Demo board XIAO SAMD21

I primi passi saranno quelli di configurare il sistema, per cui dovremo aggiungere, se non l’abbiamo già fatto, all’IDE, la possibilità di gestire il modulo XIAO SAMD1 e il display OLED.  Vediamo come.

Come aggiungere Seeed Studio XIAO SAMD21 all’Arduino IDE

Il modulo Seeed Studio XIAO SAMD21 può essere programmato attraverso l’IDE di Arduino,  basta aggiungere la scheda tra quelle riconosciute.
Cominceremo accedendo alla voce di menù File > Impostazioni, e aggiungeremo alla sezione URL aggiuntive per il Gestore schede, la seguente URL :

https://files.seeedstudio.com/arduino/package_seeeduino_boards_index.json

Seeed Studio XIAO SAMD21

Ora cliccheremo su Strumenti-> Scheda-> Gestore di schede…, e inseriremo la keyword “Seeeduino xiao” nella casella di ricerca. Comparirà la voce “Seeed SAMD Boards“, che dovrà essere installata.

Seeed Studio XIAO SAMD21

Seeed Studio XIAO SAMD21

Per maggiori informazioni vedere l’articolo Seeed Studio XIAO SAMD21 – Presentazione

Libreria di gestione del display

Per utilizzare il display OLED è necessario installare l’apposita libreria. Può essere cercata tra le librerie installabili nell’IDE, basterà inserire nel campo di ricerca “Adafruit_SSD1306“.
Sarà anche mostrata una finestra che segnala che la libreria ha una dipendenza con la libreria grafica “Adafruit GFX Library“.  Procedete premendo su “Install all”.
Per altre informazioni su come installare le librerie vedete l’articolo Arduino – Tutorial, come installare una libreria

Per altre informazioni vedere l’articolo Display bicolore OLED 0.96″ 128×64 – SSD1306

Libreria di gestione del sensore

Per facilitare l’uso del sensore luce BH1750 è disponibile un’apposita libreria; questa funziona in unione alla libreria Wire.h che è già presente come libreria standard dell’IDE di Arduino che permette l’utilizzo del protocollo I2C
Per il caricamento occorre aprire sotto il menù Sketch, #include libreria, “Gestione Librerie..”

Nel campo ricerca si inserirà “BH1750”,  trovata la libreria  realizzata da Cristopher Laws , premendo su “More info..” apparirà il tasto “Installa” cliccare il tasto, la libreria verrà installata

Per altre informazioni vedere anche l’articolo Arduino – Tutorial, come installare una libreria

Collegamento del sensore BH1750 alla Demo board XIAO SAMD21

Se avremo realizzato la Demo Board XIAO METER per SAMD21  basterà posizionare il modulo sensore BH1750 in uno dei due connettori I2C disponibili controllando l’orientamento.

BH1750 demo board XIAO samd21

BH1750 demo board XIAO samd21

Nel caso non aveste realizzato la Demo Board è sempre possibile realizzare il circuito utilizzando una bread board. In questo caso vi occorreranno:

Bread Board

Scheda XIAO SAMD21

Display bicolore OLED 0.96″ 128×64 – SSD1306

Modulo BH1750

cavi colorati di collegamento

Modulo caricabatteria LX-LCBST 

Il modulo Caricabatteria LX-LCBST e la batteria potranno essere omessi in quanto il modulo XIAO SAMD21 può essere alimentato direttamente tramite il connettore USB

BH1750 demo board XIAO samd21

Sketch utilizzato

Lo sketch proposto mostrerà sul display il valore in Lx rilevato dal sensore.
I valori saranno aggiornati ogni  secondo.

Altri articoli dedicati al sensore BH1750

Lettura sensore tramite Arduino UNO, articolo BH1750 GY-302 Sensore di luce

Lettura tramite Modulo Wemos D1 mini, articolo BH1750 Ambient light Shield – Wemos D1 Mini

BH1750 demo board XIAO samd21

Altri sensori testati

Sotto potete trovare altri test effettuati con la Demo Board XIAO METER per SAMD21

Valore della temperatura ambiente letto dal sensore BMP180

Prossimamente

demo board XIAO METER

Gestione ingressi/uscite digitali, gestione led tramite pulsante

demo board XIAO METER

Lettura valore tensione tramite ingresso analogico