[PYTHON] Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2

Lorsque j'essaye d'utiliser le module compatible I2C du capteur d'éclairement TSL2561, je trouve cela gênant. Il repose sur un certain nombre de modules Python et, pour une raison quelconque, l'exemple de programme comporte des centaines de lignes.

http://qiita.com/masato/items/1dd5bed82b19477b45d8 http://shimobayashi.hatenablog.com/entry/2015/07/27/001708

Je pensais que s'il s'agissait d'un capteur compatible I2C, je devrais pouvoir l'écrire simplement avec le module smbus.

https://github.com/aike/SimpleTSL2561.py

SimpleTSL2561.py


#!/usr/bin/python
#
# SimpleTSL2561.py by aike
# licenced under MIT License. 
#

import smbus
import time

class SimpleTSL2561:

    def __init__(self, address=0x39):
	self.bus = smbus.SMBus(1)
	self.address = address
        self.write8(0x80, 0x03)     # 0x03=PowerON 0x00=PowerOFF

    def write8(self, reg, value):
        try:
            self.bus.write_byte_data(self.address, reg, value)
        except IOError, err:
            print "IO Error"

    def readU16(self, reg):
        try:
            result = self.bus.read_word_data(self.address,reg)
            return result
        except IOError, err:
            print "IO Error"
            return 0

    def setParam(self, param):
	#  param   gain   integral
	#    0      x 1   13.7 ms
	#    1      x 1    101 ms
	#    2      x 1    402 ms  (default)
	#    3     x 16   13.7 ms
	#    4     x 16    101 ms
	#    5     x 16    402 ms
	if param >= 3:
	    param = param - 3 + 16
	self.write8(0x81, param)

    def readData(self):
        return self.readU16(0xAC)

if __name__ == "__main__":
	tsl = SimpleTSL2561()
	while True:
		print tsl.readData()
		time.sleep(1)

Causes de complexité

J'ai lu la fiche technique pour découvrir pourquoi l'exemple de programme est compliqué.

TSL2561 est multifonctionnel

・ La lumière visible et la lumière infrarouge peuvent être détectées. ・ Deux types de sensibilité, 1x et 16x, peuvent être sélectionnés. ・ Le temps d'intégration peut être sélectionné entre 13,7 ms / 101 ms / 402 ms

Spécifications de données spéciales du TSL2561

・ La valeur des données acquises n'est pas proportionnelle à la valeur de lux, et un coefficient de conversion pour chaque cas est requis. ・ TSL2561 est à peu près divisé en deux types, les séries T, FN, CL et CS, et leurs coefficients sont différents.

C'est pourquoi un programme qui peut obtenir des valeurs lux précises pour tous les TSL2561 a un nombre raisonnable de lignes. Si vous souhaitez uniquement prendre en charge votre propre matériel, vous n'avez pas besoin de deux types de traitement de conversion et un seul type suffit. En premier lieu, s'il s'agit d'une application courante telle que "allumer la lumière quand il fait noir", le processus de conversion de la valeur de lux peut être omis en tant que lumière visible uniquement, de sorte qu'il peut être écrit aussi court que le programme ci-dessus.

De plus, Adafruit_I2C.py est un wrapper fin pour smbus, donc c'est plutôt bien sans lui.

Recommended Posts

Un mémo pour utiliser simplement le capteur d'éclairement TSL2561 avec Raspberry Pi 2
Utilisez le capteur d'éclairement numérique TSL2561 avec Raspberry Pi
Utiliser le capteur Grove avec Raspberry Pi
Utiliser le capteur de mouvement PIR avec Raspberry Pi
Raspberry Pi --1 --Première fois (Connectez un capteur de température pour afficher la température)
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
J'ai tweeté l'éclairement de la pièce avec Raspberry Pi, Arduino et un capteur optique
Essayez d'utiliser le processeur à 4 cœurs du Raspberry Pi 2 avec Parallel Python
Visualisons la pièce avec tarte aux râpes, partie 1
Comment utiliser Raspeye Relay Module Python
[Mémo] Connectez Raspberry Pi Zero à Internet avec un seul câble USB! (Utilisez nfs, pas de carte SD, clavier, souris, moniteur requis)
Réalisez une maison super IoT en acquérant des données de capteur dans la maison avec Raspberry Pi
[Ne pas se référer au 04.02.17] Afficher le capteur de température dans un graphique en temps réel avec rasberry pi 3
Utilisez vl53l0x avec RaspberryPi (python)
Notez ce que vous voulez faire à l'avenir avec Razpai
Utiliser une webcam avec Raspberry Pi
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
J'ai créé un serveur Web avec Razpai pour regarder des anime
[Mémo] Comment utiliser BeautifulSoup4 (2) Afficher l'en-tête de l'article avec les demandes
Utilisez python sur Raspberry Pi 3 pour éclairer la LED (Hello World)
Remarques sur la connexion Bluetooth d'un smartphone / PC à Raspeye 4
[Mémo] Comment utiliser BeautifulSoup4 (3) Afficher l'en-tête de l'article avec class_
Consigner périodiquement les valeurs des capteurs d'environnement Omron avec Raspberry Pi
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é)
À propos de l'erreur que j'ai rencontrée en essayant d'utiliser Adafruit_DHT à partir de Python sur Raspberry Pi
Créer un environnement Tensorflow avec Raspberry Pi [2020]
Capteur humain amélioré fabriqué avec Raspberry Pi
Faire une minuterie de lavage-séchage avec Raspberry Pi
Faites fonctionner l'oscilloscope avec le Raspberry Pi
Créez un compteur de voiture avec Raspberry Pi
Utilisez Rasppie pour résoudre le problème de connexion Wi-Fi mobile insuffisante
[Python] Explique comment utiliser la fonction range avec un exemple concret
Remarque: je souhaite faire de la domotique avec Home Assistant + Raspberry Pi + capteur # 1
J'ai essayé de faire un signal avec Raspeye 4 (édition Python)
Enregistrement des valeurs du capteur d'environnement Omron avec Raspberry Pi (type USB)
Fabriquez un thermomètre avec Raspberry Pi et rendez-le visible sur le navigateur Partie 3
Comment utiliser Raspeye Pie Camera Python
Spécifiez le fichier exécutable Python à utiliser avec virtualenv
Le moyen le plus simple d'utiliser OpenCV avec python
Observez le groupe de météores Futago avec RaspberryPi4
Grove - Capteur de température et d'humidité (DHT11) avec Raspberry Pi
Utilisez "TSL2561 Illumination Sensor Module Manufacturer Part Number: TSL2561" fabriqué par Strawberry Linux avec Raspberry pi 3 (essai et erreur)
Enregistrer l'objet dans un fichier avec pickle
[Pour les débutants] J'ai fait un capteur humain avec Raspberry Pi et notifié LINE!
J'ai essayé de créer un bouton pour Slack avec Raspeye + Tact Switch
Utilisation du capteur de température numérique à 1 fil DS18B20 avec Raspberry Pi de Python
Comment faire un Raspberry Pi qui parle les tweets d'un utilisateur spécifié
Connectez-vous à MySQL avec Python sur Raspberry Pi
Utilisez le capteur de température analogique Raspberry Pi Python vers TMP36 et le convertisseur MCP3008 AD
[Note] Utilisez un périphérique de connexion LAN filaire avec pont WiFi-Eth sur Raspberry Pi 4B
Contrôlez la lecture de musique sur un smartphone connecté à Raspberry Pi 3 et Bluetooth avec AVRCP
Compilez Apache2.4 + PHP7.4 avec Raspberry Pi et construisez un serveur Web --3. Utilisez MySQL
Quand j'ai essayé de faire une communication socket avec Raspberry Pi, le protocole était différent
Un mémo sur la façon de surmonter le problème difficile de la capture d'effets avec l'IA
Une note de malentendu lors de la tentative de chargement de l'intégralité du module self-made avec Python3
Mémo connecté à HiveServer2 d'EMR avec python