Header Ads

ESP8266 sous MicroPython - Utiliser un senseur de luminosité TSL2561

TSL2561 - Senseur de luminosité
TSL2561 Mesure de luminosité (en Lux)
Disponible chez MCHobby

Le senseur de luminosité TSL2561 est un senseur de lumière avancé, idéal pour une utilisation dans un large champs d'application relatif à la lumière. Ce senseur est plus précis qu'une photo résistance (CdS) et permet un calcul précis de la luminosité (en lux). Il peut être configuré pour différents gains/gamme de fréquences (gain/timing ranges) pour détecter de la lumière à la volée entre 0.1 et plus de 40,000 Lux.
Ce senseur inclus un régulateur 3.3V et "level shifter" 3-5V (circuit d'adaptation de niveaux logique). Vous pouvez donc utiliser ce TSL2561 avec n'importe quel microcontrôleur 3 ou 5v.
Le plus grand intérêt de ce senseur réside dans le fait qu'il contient deux diodes: une infrarouge et une pour le spectre lumineux entier! Cela signifie que vous pouvez séparément mesurer la lumière infrarouge, le spectre entier or la lumière visible (par nous les humains). La plupart des senseurs peuvent mesurer l'un ou l'autre... ce qui ne reproduit pas fidèlement ce que les yeux humains perçoivent (puisque les yeux humains ne perçoivent pas les InfraRouges pourtant détecté par la plupart des photo diodes).
Ce senseur dispose d'une interface (I2C). Vous pouvez sélectionner une des trois adresses disponibles, ce qui signifie que vous pouvez en brancher 3 sur une seule carte - chacun avec une adresse I2C différente. Le convertisseur Analogique/Digital interne permet de l'utiliser avec n'importe quel microcontrôleur, même s'il n'a pas d'entrée analogique. La consommation en courant est extrêmement faible, c'est pour cela qu'il convient particulièrement bien pour les système d'enregistrement de donnée (data-logging). Environ 0.5mA lorsque le senseur est actif et moins de 15 µA lorsqu'il est en veille.

Montage sur un ESP8266 sous MicroPython
Nous avions déjà vu comment reflasher un ESP8266 pour qu'il supporte MicroPython.

Le senseur peut se brancher comme suit:
Source: Ce tutoriel de MCHobby
Installer la bibliothèque
Vous aurez besoin du fichier tsl2561.py pour pouvoir utiliser ce senseur.
Voyez ce point du tutoriel de MCHobby pour trouver et installer le fichier sur votre ESP8266.

Code d'exemple
Voici le code utilisé pour tester la bibliothèque tsl2561.py
# Mesure de lumière avec Adafruit TSL2561 (ADA439) et ESP8266 MicroPython

* Shop: Adafruit TSL2561 (ADA439) - http://shop.mchobby.be/product.php?id_product=238
* Wiki: https://wiki.mchobby.be/index.php?title=MicroPython-Accueil#ESP8266_en_MicroPython

from tsl2561 import *
from machine import I2C, Pin

# Ne pas utiliser la broche 7 pour SCL parce ce qu'il perturbe la sequence
# de boot lorsqu'une alimentation est branchée sur le connecteur microUSB
# 
i2c = I2C( sda=Pin(4), scl=Pin(2), freq=20000 )

tsl = TSL2561( i2c )
# Lecture d'une valeur
#   Cela activera automatiquement le senseur (ce qui prend du temps)
#   puis effectue la lecture ensuite désactive le senseur.
#   Retourne une valeur en lux (ex: 6.815804 Lux)
print( tsl.read() )

# Note: vous pouvez activer/désactiver manuellement le senseur avec
# active(True/False).

# Vous pouvez changer manuellement le gain et temps d'intégration
# * Le gain peut être 1 ou 16
# * Le temps d'intégration : 0 ou 13 ou 101 ou 402 (0=manuel)
tsl.gain( 16 )
tsl.integration_time( 402 )
print( tsl.read() )

# Vous pouvez également utiliser une sélection automatique du gain (AutoGain)
# (uniquement si vous n'utilisez pas d'intégration manuelle)
tsl.integration_time( 402 )
print( tsl.read(autogain=True) )



Le tutoriel
Vous pouvez poursuivre votre lecture sur notre tutoriel, ou découvrir nos autres tutoriels sur ESP8266 sous MicroPython
Où acheter