BH1750 Ambient light Shield – Wemos D1 Mini

Il BH1750 Ambient light Shield è appositamente progettato per essere utilizzato con le schede Wemos D1 Mini  o Wemos D1 Mini Pro, su di esso è presente il sensore di luce digitale BH1750.
E’ in grado di trasformare l’intensità della luce, compresa in un range da 1 a 65.535 lux,
Per altri shield specifici per Wemos D1 mini vedere l’articolo  Wemos D1 mini – Raccolta Shield disponibili.

BH1750 Shield D1 Mini - Foto monatggio

Descrizione del modulo

Il BH1750 Ambient light Shield – Wemos D1 Mini è appositamente progettato per essere utilizzato con le schede Wemos D1 Mini  o Wemos D1 Mini Pro. Su di esso è presente il sensore di luce digitale BH1750.
Si tratta di un sensore di luce ambientale digitale posto all’interno di un circuito integrato con interfaccia bus I2C. Questo circuito integrato è adatto per ottenere dati relativi alla luce ambientale in un’ampia gamma  spettrale e ad alta risoluzione ( 1 – 65535 lx ).
Per altri sensori di luce vedere il post Raccolta sensori di luce

BH1750 Shield D1 Mini - Foto fronte e retro PCB

Caratteristiche del BH1750 Ambient light Shield

  • Interfaccia I2C – 0x23 (0x5C)
  • Due indirizzi selezionabili dall’utente
  • BH1750FVI Convertitore digitale di illuminamento
  • Ampia gamma e alta risoluzione. ( 1 – 65535 lx )
  • Design separabile
  • Fori di montaggio da Φ2 mm
  • Alimentazione  3.3V

Circuito elettrico

Nella figura sottostante è visibile lo schema del BH1750 Shield D1 Mini (schema in formato PDF) che è composto principalmente dal sensore BH170 (datasheet) U1, troviamo poi vari condensatori  e resistenze.
Le due resistenze (R2 e R3 da 4,7 KΩ ) hanno la funzione di  pull-up sulle linee SCL e SDA bus I2C.
J1 (PU) permette di collegarle o meno alla tensione di alimentazione.
Il sensore può essere impostato per due indirizzi a seconda di come è collegato il pin 2 (ADR), questo varia a seconda che il pin sia collegato al positivo e negativo dell’alimentazione.

  • Se ADR = LOW, l’indirizzo sarà 0x23
  • Se ADR = HIGH, l’indirizzo sarà 0x5C

Nel nostro caso essendo il pin connesso tramite la resistenza R4 da 4,7 KΩ a GND (LOW) per cui l’indirizzo sarà 0x23.

BH1750 Shield D1 Mini - Circuito elettrico

Sotto è riportato il dettaglio dei Jumper ADR (J2) e PU (J1) descritti precedentemente.
Nel caso vogliate modificare l’indirizzo del sensore occorre effettuare un ponticello di stagno tra le due piazzole ADR.

BH1750 Shield D1 Mini - PCB ridotto

Collegamento alternativo del modulo sensore

Il BH1750 Shield D1 Mini può essere installato direttamente su modulo Wemos D1 mini

BH1750 Shield D1 Mini - Montaggio diretto

Esiste  la possibilità di utilizzare solamente il piccolo PCB su cui è presente il sensore.  infatti come potete vedere, esiste una fresatura sul modulo e se si applica una leggera forza in corrispondenza del piccolo connettore questo si stacca.

BH1750 Shield D1 Mini

Le dimensioni del piccolo modulo sono a questo punto di 13x13mm circa. Il connettore presente è a 4 pin I2C.

BH1750 Shield D1 Mini - Distacco del modulo sensore

Questo potrà essere collegato tramite apposito cavetto per esempio al modulo TFT I2C Connector Shield su cui  sono presenti due connettori I2C utilizzabili per questo scopo.

TFT I2C Connector Shield

Pin Wemos D1
13V3
2D4 (IO2)
3D3 (IO0)
4GND
Ourpcb

BH1750 Shield D1 Mini - Collegamento con cavo

Cavo per I2C / IO

Si tratta di un cavo con due connettori 4 Pin, lunghezza 10 cm.

Dove trovare il BH1750 Ambient light Shield

Il  BH1750 Ambient light Shield, può essere acquistato online per esempio presso il  sito AliExpress

BH1750 Shield D1 Mini - blister

Nel blister antistatico sono presenti due pin strip che dovranno essere saldati a vostra cura

BH1750 Shield D1 Mini - Contenuto della confezione

Misurazione dell’illuminamento

Il sensore presentato in questo articolo, fornisce il valore in lux della luce che lo colpisce. Il lux (simbolo lx) è l’unità di misura per l’illuminamento.
Un lux è pari a un lumen su metro quadrato. Potremmo quindi definire il lux come il flusso luminoso per unità di superficie.
È un’unità di misura relativa alla luce visibile,  dipende dalle caratteristiche dell’occhio umano, attraverso la curva di sensibilità dell’occhio alla radiazione luminosa.
Alcuni dati di illuminamento per dare un’idea di quanto vale un lux:

  • la luce riflessa della Luna piena è pari a circa 1 lx;
  • la luce del Sole mediamente varia tra i 32 000 lx  e i 100 000 lx ;
  • sotto i riflettori degli studi televisivi si hanno circa 1 000 lx ;
  • in un campo di calcio (illuminazione notturna per riprese tv) tra i 500 lx e i 1200 lx;
  • in un ufficio luminoso si hanno circa 400 lx;
  • la luce di una stella luminosa è soltanto 0,00005 lx .

Modulo D1 MINI

Wemos D1 mini (V3.1.0)

Wemos D1 mini Pro (V1.1.0)

Per informazioni del modulo Wemos D1 mini vedere articolo Modulo WeMos – LOLIN D1 mini 

Libreria di gestione del sensore H1750FVI

[Traduzione della pagina relativa alla libreria  Arduino del sensore fatta da Cristopher Laws ]

Il sensore di luce ambientale BH1750 ha sei diverse modalità di misurazione che sono divise in due gruppi: misurazioni continue e una tantum.
In 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 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; tenere presente che il tempo di misurazione viene modificato di conseguenza.

Test base del modulo

Per la prova del BH1750 Ambient light Shield utilizzeremo oltre al Modulo Wemos D1 Mini, lo BH1750 Ambient light Shield il modulo Display
Per la sua conformazione, lo shield può essere montato direttamente sul modulo Wemos D1 mini, nel nostro caso si è utilizzata una base tripla, l’alimentazione potrà essere fornita da PC tramite il cavo USB a cui è collegato il modulo Wemos, oppure tramite una Power bank utilizzando sempre il cavo USB

Materiale occorrente

Wemos D1 Mini

BH1750 Ambient light Shield

OLED Shield

Base tripla

Schema dei collegamenti

BH1750 Shield D1 Mini - Schema dei collegamenti

BH1750 Shield D1 Mini - Foto collegamento

Librerie necessarie

Come anticipato, per la gestione del sensore è necessario utilizzare l’apposita libreria. Questa potrà essere ricercata inserendo nel campo della ricerca il testo “bh1750“, quella utilizzata è stata scritta da Cristopher Laws, nella versione 1.3.0

Lo Sketch utilizzato deve inoltre gestire il display 64 x 48 pixel con driver SSD1306, in questo caso occorre caricare una specifica libreria in quanto quella standard non funzionerà.
Quella da utilizzare è stata scritta in origine dalla Adafruit ma modificata da @mcauser. Scaricabile dal suo sito oppure da questo link.
In questo caso dovrebbe apparire la versione 1.1.0. Non effettuate l’aggiornamento proposto.

La scritta “INSTALLED” segnalerà l’avvenuta installazione delle libreria.
Per informazioni su come installare una libreria vedere l’articolo Arduino – Tutorial, come installare una libreria

Sketch del programma

Prima di caricare il programma per testare il BH1750 Shield D1 Mini, occorre verificare di aver impostato nell’IDE correttamente la scheda Wemos Di mini e che questa sia correttamente riconosciuta, verificando a quale porta risulta collegata. Il test è stato fatti utilizzando l’IDE nella versione 2.2.1.
Se tutto funziona, sul display potrete leggete il valore il lx dell’illuminamento del luogo in cui è posto il sensore,
BH1750 Shield D1 Mini - Foto testo

Wemos D1 mini – Raccolta Shield disponibili

Oltre al BH1750 Shield D1 Mini , per la scheda Wemos D1 mini, prodotta dalla WEMOS/LOLIN sono disponibili vari shield che appartengono a varie categorie: Display & Interactive Shield, Environment, Power, Control, Others.
Per l’elenco vedere articolo Wemos D1 mini – Raccolta Shield disponibili

Wemos D1 mini shield

Utilizzo del sensore BH1750 con Arduino

Per l’utilizzo del sensore BH1750 presente sul breakout  GY-302  con Arduino vedere lo specifico articolo BH1750 GY-302 Sensore di luce
Per informazioni relative ad altri sensori di luce vedere invece l’articolo Panoramica dei moduli sensori di luce