dimanche 24 février 2019

Capteur de lumière TSL2561 et Raspberry Pi

Le capteur de lumière TSL2561 permet de mesurer l'intensité lumineuse avec une très bonne précision. Il comporte en fait deux capteurs: un capteur large bande qui réagit à la lumière visible et à la lumière infrarouge, et un deuxième capteur qui ne réagit qu'à l'infrarouge. Au moyen des deux valeurs mesurées, il est possible de calculer l'éclairement en lux. Nous avons déjà eu l'occasion d'utiliser un de ces modules avec un Arduino mais voyons maintenant ce que nous pouvons en tirer si nous le connectons à un Raspberry Pi, que nous programmerons en Python

Connexion du module TSL2561 au Raspberry Pi


Puisqu'il s'agit d'un capteur I2C, nous utilisons les broches du Raspberry Pi qui sont dédiées à ce type de communication.

                                             Module TSL2561  ----------    Raspberry Pi
                                                         VCC   ---------------   Broche 1 (3,3 V)
                                                         GND   ---------------- Broche 6 (GND)
                                                         SCL     --------------   Broche 5 (GPIO3)
                                                         SDA    ---------------  Broche 3 (GPIO2)
                                                         INT      -------------    pas branché


Préparation du Raspberry Pi pour la communication i2c

La communication i2c doit avoir été activée sur votre Raspberry Pi. Pour ce faire, il s'agit d'aller dans le menu "Préférences / Configuration du Raspberry Pi".


On sélectionne ensuite "Activé" sur la ligne "I2C", et on redémarre le Raspberry Pi.


Si le module TSL2561 est correctement branché à votre Raspberry Pi, vous devriez le voir à l'adresse 39 en entrant la commande "i2cdetect -y 1" dans le Terminal.


Bibliothèque

Il n'est pas très difficile de récupérer les données brutes issues des deux capteurs du TSL2561, mais leur conversion en lux est assez délicate, et j'ai donc préféré utiliser une bibliothèque conçue par Keiichi Shima.  De tous ces fichiers présents dans cette collection, seuls tsl2561.py et sensorbase.py sont nécessaires.

Script 1: affichage des données dans le terminal

Commençons par un premier exemple minimaliste: une fois par seconde, l'intensité lumineuse mesurée par le capteur est affichée dans le terminal. Il est facile de faire varier la valeur affichée en couvrant le capteur, en le dirigeant vers une source lumineuse, etc.





Script 2: affichage dans une fenêtre avec Tkinter (interface graphique)

Dans ce deuxième exemple, j'ai utilisé Tkinter afin d'afficher la valeur mesurée dans une fenêtre plus élégante. Grâce à la méthode "after" de Tkinter, la valeur affichée se met à jour chaque seconde.




Script 3: datalogging dans un fichier csv

Finalement, ce troisième script consigne les mesures à l'intérieur d'un fichier intitulé "luminosité.csv", qui est créé dans le même répertoire que le script python, et qui peut ensuite être ouvert avec LibreOffice Calc.

La capture d'écran ci-dessus montre le résultat pendant que le soleil se lève, un matin d'hiver nuageux. La première colonne contient le moment de la mesure (en secondes), et la deuxième colonne contient la valeur mesurée en lux.





Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire