Utilisation du capteur de lumière numérique BH1750FVI I2C

Utilisation du capteur de lumière numérique BH1750FVI I2C

L’appareil BH1750 est un capteur de lumière numérique qui utilise l’interface I2C. Cela lui permet d’être connecté au Raspberry Pi avec seulement quatre fils.

Le module permet une mesure rapide et économique du niveau de lumière ambiante et le niveau de lumière peut être lu sous forme de nombre numérique grâce au convertisseur analogique-numérique 16 bits intégré. L’appareil lui-même est couramment utilisé dans les téléphones portables, les téléviseurs LCD et les appareils photo numériques.

Module de capteur de lumière BH1750

Le module que j’ai ne mesure que 32 x 16 mm. J’ai soudé un en-tête à cinq broches sur le PCB et cela m’a permis de le brancher sur un morceau de planche à pain.

le Fiche technique du circuit intégré du capteur de lumière ambiante BH1750 fournit tous les détails techniques dont certains sont utilisés dans mon exemple de script Python.

Configurer l’interface I2C

Pour utiliser ce module, vous devez activer l’interface I2C sur le Raspberry Pi car elle n’est pas activée par défaut. Il s’agit d’un processus assez simple qui est décrit dans mon tutoriel Activation de l’interface I2C sur le Raspberry Pi.

Connexion du matériel du capteur de lumière au Pi

Le tableau suivant montre comment j’ai connecté les broches du module sur le PCB à l’en-tête GPIO du Pi (P1). Veuillez vous référer à mon guide d’en-tête GPIO pour un diagramme.

Carte de circuits imprimés Desc Broches d’en-tête GPIO
GND Terre P1-14
AJOUTER Adresse sélectionner P1-14
ADD I2C SDA P1-03
SCL I2C SCL P1-05
VCC 3.3V P1-01

Voici un schéma d’une configuration de maquette. Si vous connectez les cinq broches du module directement au Pi, vous n’avez besoin que de cinq fils femelle-femelle.

Configuration du module BH1750

Ce diagramme de Fritzing utilise une pièce personnalisée que j’ai créée pour mon module. D’autres modules peuvent avoir une disposition des broches différente, alors assurez-vous de connecter les bonnes broches au Pi si la vôtre est légèrement différente.

Avec l’appareil connecté et le Pi sous tension, la commande « i2cdetect » devrait afficher l’appareil avec l’adresse 0x23.

Exemple de script Python pour afficher le niveau de luminosité

Vous pouvez télécharger un exemple de script pour lire le niveau de luminosité du module et l’imprimer à l’écran.

Utilisez la commande suivante :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bh1750.py

Ou utiliser ce lien dans un navigateur.

Pour l’exécuter, vous pouvez utiliser :

python bh1750.py

ou pour Python 3 :

python3 bh1750.py

La sortie devrait ressembler à quelque chose comme :

BH1750 Exemple de sortie

La boucle while continue de prendre des lectures toutes les demi-secondes jusqu’à ce que vous appuyiez sur CTRL-C.

Remarques sur les scripts Python :

  • Les instructions import importent les bibliothèques Python utilisées dans le reste du code, y compris smbus qui gère l’interface I2C.
  • Tous les appareils I2C doivent avoir une adresse. Dans cet exemple, j’ai lié la broche ADDR à la terre afin que l’adresse utilisée par l’appareil soit 0x23. L’adresse devient 0x5C si la broche ADDR est liée à 3,3V.
  • Le bloc de constantes est répertorié dans la fiche technique et définit les différents modes dans lesquels l’appareil peut fonctionner. Je les définis tous mais n’utilise que « ONE_TIME_HIGH_RES_MODE_1 ». Les autres modes ne présentent un réel intérêt que si vous devez effectuer des lectures à grande vitesse.
  • La fonction « smbus.SMBus(1) » configure l’interface I2C.
  • La fonction « read_i2c_block_data » permet de lire 2 octets de données de l’appareil à l’aide du ONE_TIME_HIGH_RES_MODE_1.
  • La fonction convertToNumber est ensuite utilisée pour convertir ces 2 octets de données en un nombre. La valeur 1,2 dans le calcul est définie dans la fiche technique.

Acheter un module BH1750

Le module est disponible auprès de différents vendeurs en ligne :

  • Jopto 3 Pièces BH1750FVI Intensité lumineuse numérique Module de capteur de lumière Capteur d'éclairage DC 5V Boule lumineuse Boule d'éclairage Compatible avec Arduino
    Le module de capteur de lumière numérique BH1750FVI est un circuit intégré de capteur d'intensité lumineuse numérique pour une interface de bus série à deux fils. Les données d'intensité lumineuse collectées par le module peuvent être utilisées pour régler la luminosité du rétroéclairage de l'écran LCD et du clavier. La résolution du module peut détecter une large gamme de changements d'intensité lumineuse. Tension de fonctionnement : 5 V CC Interface de communication : I2C La gamme de lumière d'entrée: 1-65535lx Faible dépendance à la source lumineuse : lampe à incandescence, lampe fluorescente, lampe halogène, LED blanche, lampe fluorescente peuvent être utilisées.
  • ICQUANZX 3 Pcs GY-302 BH1750FVI Capteur D'Intensité De La Lumière Numérique Module Détecteur 3V-5V Alimentation pour AVR Arduino
    Module de détecteur d'intensité lumineuse numérique GY-302 Capteur intégré 16bitAD BH1750FVI d'origine utilisant ROHM Alimentation: 3-5v Taille: 13.9mm X 18.5mm (1mm = 0.0393inch)
  • ARCELI 3 pièces BH1750FVI Module numérique de capteur de lumière, Puce numérique d'éclairage d'intensité Sphère de lumière pour Arduino
    Le module de capteur de lumière numérique BH1750FVI est un capteur d'intensité lumineuse numérique avec circuit intégré pour une interface de bus série à deux fils. Conversion interne du niveau de communication, connexion au microcontrôleur 5 V E / A, support de STM32 / 51 / Arduino. Câble d'interface XH2.54, pratique pour les clients DIY ; Petite taille, largement utilisé dans la détection de lumière intérieure, les légumes, les pépinières, les serres. Les données d'intensité lumineuse détectées par le module peuvent être utilisées pour régler la luminosité du rétroéclairage de l'écran LCD et du clavier. La résolution du module peut détecter une large gamme de changements d'intensité lumineuse. Faiblement dépendant de la source lumineuse : ampoule, tube fluorescent, halogène, LED blanche ou tube fluorescent. Convient pour les téléphones portables, les téléviseurs LCD, les ordinateurs portables, les consoles de jeux portables, les appareils photo numériques, les caméras vidéo numériques, les PDA, les moniteurs LCD