Accueil > Arduino, NodeMCU > Utilisation du capteur de luminosité BH1750FVI

Utilisation du capteur de luminosité BH1750FVI

Il y a quelques jours j’ai commandé plusieurs capteurs de luminosité BH1750 que je vais mettre en oeuvre dans mes différents projets.

Les caractéristiques de ce capteur sont les suivantes :
– Alimentation de 3v à 5v.
– Communication via le bus I2C.
– Mesure de la lumière de 1 Lux à 65535 Lux.
– Plusieurs choix de mesures : mesure continu ou une seule mesure puis passage en veille.
– Plusieurs choix de résolution et donc de précision.
La carte GY-30 contenant le capteur se présente sous cette forme :

Le câblage utilisé pour le fonctionnement avec un module Wemos D1 mini sera le suivant :
Ce module est accessible par le bus I2C via 2 adresses :

– 0x23 : si ADD non connecté ou +3.3v-5v
– 0x5c : si ADD connecté à 0v

Pour me faire plaisir, j’ai décidé d’écrire une librairie en C++ pour Arduino qui peut être téléchargé à l’adresse suivante :
Cette librairie a été testée sur un Wemos D1 mini et un Arduino Nano et dans le lien j’y ai déposé des exemples d’utilisation.
Voici le contenu d’un exemple d’utilisation de la librairie pour un module Wemos D1 mini :
/*
 * Programme exemple pour lire la luminosité en continu en mode haute résolution
 * pour un NodeMCU Lolin ou Wemos D1 mini
 */
#include <Wire.h>  // ajout de librairie de gestion I2C
#include <bh1750.h>  // ajout de la librairie de gestion du capteur BH1750
bh1750 mesure_lumiere;  // création d’une instance
// déclaration des broches utilisées sur Wemos D1 mini
int sda = D2;  // GPIO4
int scl = D1;  // GPIO5
void setup()
{
  Serial.begin(115200);
  // adresse 0x23 si broche ADD non branchée ou relié à 5v ou 3.3v
  // adresse 0x5c si broche ADD branchée sur Ov
  mesure_lumiere.begin(0x23, sda, scl);  // initialise la librairie BH1750 pour une utilisation Wemos D1 mini
}
void loop()
{
  uint16_t lux = mesure_lumiere.lecture_lumiere(0x23, MODE_CONTINU_HAUTE_RESOLUTION);  // effectue une mesure
  Serial.print(« Luminosité : « );
  Serial.print(lux);
  Serial.println( » Lux »);
  delay(1000);
}
Et un autre exemple d’utilisation à partir d’un Arduino Nano :
/*
 * Programme exemple pour lire la luminosité en continu en mode haute résolution
 * pour un Arduino Nano
 */
#include <Wire.h>  // ajout de librairie de gestion I2C
#include <bh1750.h>  // ajout de la librairie de gestion du capteur BH1750
bh1750 mesure_lumiere;  // création d’une instance
void setup()
{
  Serial.begin(115200);
  mesure_lumiere.begin(0x23);  // initialise la librairie BH1750 pour une utilisation Arduino Nano
  // adresse 0x23 si broche ADD non branchée ou relié à 5v ou 3.3v
  // adresse 0x5c si broche ADD branchée sur Ov
}
void loop()
{
  uint16_t lux = mesure_lumiere.lecture_lumiere(0x23, MODE_CONTINU_HAUTE_RESOLUTION);  // effectue une mesure
  Serial.print(« Luminosité : « );
  Serial.print(lux);
  Serial.println( » Lux »);
  delay(1000);
}
L’association Française de l’éclairage (AFE) recommande de respecter certaines valeurs :
– Cuisine : 300 Lux, plan de travail 400 Lux.
– Salle de bain : 300 Lux, devant le miroir 500 Lux.
– Couloir / entrée : 100 Lux.
– Escalier : 200 Lux, pallier 300 Lux.
– Séjour : 200 Lux, autour du canapé pour lire 300 Lux.
– Chambre adulte : 100 Lux.
– Chambre enfant : 300 Lux, sur le bureau 500 Lux.
– Garage : 100 Lux, établi de bricolage 400 Lux.
Le Lumens est la puissance d’une source lumineuse; 1 Lux = 1 Lumens / m².
Pour le calcul du nombre d’ampoules nécessaires, il faut prendre en compte la formule suivante :
Lux souhaité * superficie de la pièce(m²) * 1/rendement du luminaire * 1/facteur de réflexion = nombre de Lumens à installer.
Le rendement luminaire est donné par le constructeur, généralement situé entre 0.7 et 0.8.
Le facteur de réflexion dépend de la couleur de la pièce :
– Murs en plâtre blanc : 0.85.
– Peinture blanche : 0.7.
– Couleur claire : 0.6.
– Gris claire : 0.5.
– Bois clair : 0.4.
– Gris Ardoise : 0.1.
Avec ces informations vous êtes capable de définir le nombre d’ampoules nécessaires pour suivre les recommandations d’éclairage.
Je reviendrai sur l’utilisation possible de ce capteur dans mes prochains articles.
Catégories :Arduino, NodeMCU Étiquettes : , , ,

Laisser un commentaire