Gestion d’un module de mesure de la luminosité GY-30 (BH1750)

1.1.1        La théorie

Le module GY-30 permet de mesurer la luminosité en lux.

Il peut par exemple permettre l’allumage d’un éclairage en dessous d’une certaine luminosité, détecter l’ouverture d’une porte, permettre le suivi du soleil, voire de la lune pour un télescope etc…

Résultat de recherche d'images pour "gy-30 raspberry"


 

1.1.2        L’électronique

Son câblage est plutôt intuitif, une alimentation VCC et GND, les deux broches I2C SDA et SCL. Seule la broche AD0 demande une certaine explication. C’est une borne d’adresse  qui permet de brancher deux modules sur un même bus I2C. Par contre, l’adressage est assez étrange car si cette broche est à la masse l’adresse est 0x23 alors qu’elle sera 0x5C si elle est à VCC. C’est d’ailleurs bien ce qui est indiqué dans le Datasheet.


 

1.1.3        Le logiciel

Le module admet un certain nombre de commandes permettant des mesures avec différentes sensibilités, soit en continu, soit avec une phase d’allumage et d’extinction à chaque mesure. Il est également possible de changer la sensibilité du module au prix d’un temps de mesure plus ou moins long.

Les temps de mesure indiqués sont pour la sensibilité standard, ils sont fonction de la sensibilité demandée.

Les sensibilités et temps de mesure seront les suivants :

Facteur

Sensibilité (lx)

Temps de mesure H-Resolution (ms)

Théorique / programmé

Temps de mesure L-Resolution (ms)

Théorique / programmé

0.45

1 à 9

54 / 70

 7 / 8

1

0.5 à 4

120 / 150

16 / 20

2

0.25 à 2

240 / 300

32 / 40

3.68

0.13 à 1.1

440 / 570

59 / 76

 


 

Le logiciel comprendra les fichiers suivants :

Fichier

Fonction

GestionBH1750.h

Entête de la librairie

GestionBH1750.cpp

Librairie : Elle comprend quatre fonctions de mesure pour les sensibilités minimum, standards, doubles et maximum. Ainsi qu’une fonction pour mettre le module en marche, arrêt ou Reset

tstBH1750.cpp

Programme de test de la librairie

 

Il utilise la librairie WiringPi. Il est possible d’utiliser les fonctions permettant de lire et d’écrire dans des registres même si le module n’en possède pas. Il suffit d’indiquer le registre 0x00 pour envoyer directement les commandes au module.

La compilation

Et l’exécution


 

1.1.4        Liste des programmes

https://github.com/montotof123/raspberry/blob/master/290_BH1750/GestionBH1750.cpp

https://github.com/montotof123/raspberry/blob/master/290_BH1750/GestionBH1750.h

https://github.com/montotof123/raspberry/blob/master/290_BH1750/tstBH1750.cpp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Lien vers la base du site.