[PYTHON] Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi

En plus des capteurs de température et d'humidité, il existe un capteur d'éclairement en tant que capteur facile à utiliser. L'unité peut être mesurée en lux. Cette fois, nous avons préparé le capteur d'éclairement numérique Adafruit TSL2561. Il existe également un capteur humain qui utilise les rayons infrarouges comme capteur optique. Il semble que vous puissiez faire quelque chose comme l'IoT lorsqu'il est utilisé en combinaison.

Câblage de la planche à pain

Le câblage de la maquette est une version Arduino sur le site lern d'Adafruit, mais peut être trouvé sur TSL2561 Luminosity Sensor.

Si le câblage réussit, vous pouvez vérifier l'adresse 0x39.

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- 39 -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Pilote I2C

Python 2

Le pilote pour obtenir les données du bus I2C est [Adafruit_I2C.py] de Python dans le référentiel Adafruit-Raspberry-Pi-Python-Code. ](Https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code/blob/master/Adafruit_I2C/Adafruit_I2C.py) est utilisé. Ce pilote fonctionne avec Python 2, qui est installé par défaut sur le Raspberry Pi.

$ cd ~/python_apps
$ git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code
$ cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_I2C

Python 3

Quick2Wire est également utilisé dans RPi-Light-Sensor Je vais. Je n'ai pas installé Python 3 sur Raspberry Pi, je vais donc préparer un virtualenv et l'utiliser la prochaine fois.

Programme TSL2561

Le programme pour mesurer l'éclairement de TSL2561 est [TSL2561.py](https: // github.) Dans le forum de TSL2561 et Raspberry Pi. com / seanbechhofer / raspberrypi / blob / master / python / TSL2561.py) est introduit.

De plus, Raspberry Pi Hacks a tsl2561-lux.py. -lux.py) est publiée. Les deux ont presque le même code, mais cette fois je téléchargerai tsl2561-lux.py depuis le dépôt rpihacks dans le répertoire ʻAdafruit_I2C` et l'utiliserai.

$ cd ./Adafruit_I2C
$ wget https://raw.githubusercontent.com/spotrh/rpihacks/master/tsl2561-lux.py
$ chmod +x tsl2561-lux.py

Même si vous commentez la fin de tsl2561-lux.py, il peut être appelé de l'extérieur en tant que module.

~/python_apps/Adafruit-Raspberry-Pi-Python-Code/Adafruit_I2C/tsl2561-lux.py


...
#oLuxmeter=Luxmeter()

#print "LUX HIGH GAIN ", oLuxmeter.getLux(16)
#print "LUX LOW GAIN ", oLuxmeter.getLux(1)
#print "LUX AUTO GAIN ", oLuxmeter.getLux()

Malheureusement, le nom du fichier contient des traits d'union, donc Python ne peut pas l'importer tel quel. Remplacez par un trait de soulignement pour créer un lien symbolique.

$ ln -s tsl2561-lux.py tsl2561_lux.py

Créez tsl2561.py comme point d'entrée pour mesurer l'éclairement en utilisant la classe Luxmeter.

~/python_apps/Adafruit-Raspberry-Pi-Python-Code/Adafruit_I2C/tsl2561.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from time import sleep
from tsl2561_lux import Luxmeter

if __name__ == "__main__":

    while True:
        tsl=Luxmeter()
        sensor_value = tsl.getLux()
        print(sensor_value)
        sleep(5)

Courir

Exécutez le programme qui mesure l'éclairement à des intervalles de 5 secondes. L'unité est le lux. Les données présentent des variations, probablement à cause de la mesure instantanée.

$ chmod u+x tsl2561.py
$ ./tsl2561.py
1691.71324345
961.73944068
1274.95548759
690.479479419
14.30208
0
11.50656
388.866054431
1316.01531121
0
0

Illuminez le capteur avec l'application de lampe de poche de l'iPhone pour augmenter votre apparence. La prochaine fois, j'essaierai d'acquérir des données stables en mesurant dans une pièce noire.

19088.793866
0
0

UPDATE 2015-05-25

J'ai modifié le programme pour le publier sur MQTT lorsqu'il dépasse 500 lux. L'intervalle de mesure est également raccourci à 3 secondes.

~/meshblu/publish.py


#!/usr/bin/env python
# -*- coding: utf-8 -*-

from time import sleep
from tsl2561_lux import Luxmeter
import paho.mqtt.client as mqtt
import json

def sensor():
    sensor = W1ThermSensor()
    celsius = sensor.get_temperature()
    return celsius

def on_connect(client, userdata, rc):
    print("Connected with result code " + str(rc))

def on_publish(client, userdata, mid):
    print("publish: " + str(mid))

def main():
    client = mqtt.Client(client_id='',clean_session=True,
        protocol=mqtt.MQTTv311)

    client.username_pw_set("{username}","{password}")
    client.connect("{mqtt_broker_host}", 1883, 60)

    client.on_connect = on_connect
    client.on_publish = on_publish

    tsl=Luxmeter()

    while True:
        sensor_value = tsl.getLux()
        print(sensor_value)
        if sensor_value > 500.0:
            message = json.dumps(dict(trigger="on"))
            client.publish("data",message)
        sleep(3)
if __name__ == '__main__':
    main()

J'ai déménagé dans une pièce sombre et l'ai testé. Une mesure précise est possible lorsque l'éclairement est stable et sombre. Il semble être 0 si l'éclairement change trop. J'ai lentement rapproché la lumière de l'iPhone et l'ai publiée deux fois.

$ python ./publish.py
1.42263737647
1.42263737647
1.42263737647
1.42263737647
1.42263737647
1.42263737647
1.42263737647
781.750737506
publish: 1
1212.30526902
publish: 2
2.45526898227
1.48479374557
119.459947915
287.1274
45.49168
0
0
1.45533948132
1.41892978382
1.41892978382

Recommended Posts

Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
Essayez d'utiliser le capteur de température (LM75B) avec Raspeye.
J'ai tweeté l'éclairement de la pièce avec Raspberry Pi, Arduino et un capteur optique
Utilisation du capteur de température numérique à 1 fil DS18B20 avec Raspberry Pi de Python
Utiliser une webcam avec Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Utiliser le capteur Grove avec Raspberry Pi
Capteur humain amélioré fabriqué avec Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Consigner périodiquement les valeurs des capteurs d'environnement Omron avec Raspberry Pi
Enregistrement des valeurs du capteur d'environnement Omron avec Raspberry Pi (type USB)
Observez le groupe de météores Futago avec RaspberryPi4
Sonnez le buzzer en utilisant python sur Raspberry Pi 3!
GPGPU avec Raspberry Pi
DigitalSignage avec Raspberry Pi
Utilisation de la voiture 4RM FT-MC-004 d'Akizuki Denshi avec Raspberry Pi
Visualisons la pièce avec tarte aux râpes, partie 1
Prenez la valeur du thermo-hygromètre SwitchBot avec Raspberry Pi
Changer les valeurs du thermo-hygromètre Bot avec Raspberry Pi
Réalisez une maison super IoT en acquérant des données de capteur dans la maison avec Raspberry Pi
Surveillance intérieure à l'aide de Raspberry Pi
Jouez avec le module de caméra Raspberry Pi Zero WH Partie 1
Vérifiez! Obtenez les données du capteur via Bluetooth avec Raspberry Pi ~ Préparation
Obtenez la météo en utilisant l'API et laissez Raspberry Pi parler!
Je voulais faire fonctionner le moteur avec une tarte à la râpe, alors j'ai essayé d'utiliser la carte de commande du moteur de Waveshare
[Raspberry Pi] Contrôle du moteur pas à pas avec Raspberry Pi
Utilisez vl53l0x avec RaspberryPi (python)
Commande de servomoteur avec Raspberry Pi
USB sur Ethernet avec Raspberry pi
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai appris comment la télécommande infrarouge fonctionne avec Raspberry Pi
Communication série avec Raspberry Pi + PySerial
Fabriquez un incubateur à CO2 simple à l'aide de Raspberry PI et d'un capteur de CO2 (MH-Z14A)
Configuration du système d'exploitation avec Raspberry Pi Imager
Essayez d'utiliser ArUco avec Raspberry Pi
Essayez L Chika avec raspberrypi
Utilisez le «module de capteur d'éclairage TSL2561 (numéro de pièce du fabricant: TSL2561)» fabriqué par Strawberry Linux avec Rasberry pi 3 (résumé)
Construire un serveur VPN avec Raspberry Pie
Raspberry Pi --1 --Première fois (Connectez un capteur de température pour afficher la température)
Essayez de déplacer 3 servos avec Raspeye
[Remarque] Utilisation d'un écran LCD à 16 caractères à 2 chiffres (1602A) de Python avec Raspeye
Détectez les signaux analogiques avec un convertisseur A / N en utilisant python sur Raspberry Pi 3!
Remarque: je souhaite faire de la domotique avec Home Assistant + Raspberry Pi + capteur # 1
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Acquérir la valeur du capteur de Grove Pi + avec Raspberry Pi et la stocker dans Kintone
Mesurer la force du signal SIM avec Raspberry Pi
Surveillance des animaux avec Rekognition et Raspberry pi
Détectez la "luminosité" en utilisant python sur Raspberry Pi 3!
Derrière le flyer: utiliser Docker avec Python
Bonjour le monde avec Raspberry Pi + Minecraft Pi Edition
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Essayez d'utiliser l'appareil photo avec OpenCV de Python
Faire en sorte que Raspberry Pi parle japonais en utilisant OpenJtalk
Essayez de pêcher le Wakasagi avec Raspberry Pi
Travailler avec OpenStack à l'aide du SDK Python