[PYTHON] Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2

Wenn ich versuche, das I2C-kompatible Modul des Beleuchtungsstärkesensors TSL2561 zu verwenden, finde ich es problematisch. Es basiert auf einer Reihe von Python-Modulen, und aus irgendeinem Grund enthält das Beispielprogramm Hunderte von Zeilen.

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

Ich dachte, wenn es ein I2C-kompatibler Sensor wäre, könnte ich ihn einfach mit dem smbus-Modul schreiben können.

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)

Ursachen der Komplexität

Ich habe das Datenblatt gelesen, um herauszufinden, warum das Beispielprogramm kompliziert ist.

TSL2561 ist multifunktional

・ Sowohl sichtbares Licht als auch Infrarotlicht können erfasst werden. ・ Es können zwei Empfindlichkeitstypen ausgewählt werden, 1x und 16x. ・ Die Integrationszeit kann zwischen 13,7 ms / 101 ms / 402 ms gewählt werden

Spezielle Datenspezifikationen von TSL2561

・ Der Wert der erfassten Daten ist nicht proportional zum Wert von Lux, und für jeden Fall ist ein Umrechnungskoeffizient erforderlich. ・ TSL2561 ist grob in zwei Typen unterteilt, T-, FN-, CL-Serie und CS-Serie, und ihre Koeffizienten sind unterschiedlich.

Aus diesem Grund verfügt ein Programm, das für alle TSL2561 genaue Lux-Werte erhalten kann, über eine angemessene Anzahl von Zeilen. Wenn Sie nur Ihre eigene Hardware unterstützen möchten, benötigen Sie keine zwei Arten der Konvertierungsverarbeitung, und nur ein Typ reicht aus. Erstens, wenn es sich um eine übliche Anwendung wie "Licht einschalten, wenn es dunkel wird" handelt, kann der Konvertierungsprozess des Lux-Werts als nur sichtbares Licht weggelassen werden, sodass er so kurz wie das obige Programm geschrieben werden kann.

Außerdem ist Adafruit_I2C.py ein dünner Wrapper für smbus, daher ist er ohne ihn ziemlich gut.

Recommended Posts

Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2
Verwendung des digitalen Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi
Verwenden Sie den Grove-Sensor mit Raspberry Pi
Verwenden Sie einen PIR-Bewegungssensor mit Himbeer-Pi
Raspberry Pi --1 - Zum ersten Mal (Schließen Sie einen Temperatursensor an, um die Temperatur anzuzeigen)
Verwenden Sie Python auf Raspberry Pi 3, um die LED mit Schaltersteuerung zu beleuchten!
Ich habe die Beleuchtungsstärke des Raumes mit Raspberry Pi, Arduino und einem optischen Sensor getwittert
Versuchen Sie, die 4-Kern-CPU des Raspberry Pi 2 mit Parallel Python zu verbrauchen
Stellen wir uns den Raum mit Raspeltorte vor, Teil 1
Verwendung von Raspeye Relay Module Python
[Memo] Verbinden Sie Raspberry Pi Zero mit einem einzigen USB-Kabel mit dem Internet! (Verwenden Sie NFS, keine SD-Karte, Tastatur, Maus, Monitor erforderlich)
Verwirklichen Sie ein Super-IoT-Haus, indem Sie mit Raspberry Pi Sensordaten im Haus erfassen
[Siehe nicht 04.02.17] Zeigen Sie den Temperatursensor in Echtzeit in einem Diagramm mit Himbeer-Pi 3 an
Verwenden Sie vl53l0x mit RaspberryPi (Python)
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Verwenden einer Webkamera mit Raspberry Pi
Steuern Sie den Motor mit einem Motortreiber mit Python auf Raspberry Pi 3!
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich habe mit Razpai einen Webserver erstellt, um Anime zu schauen
[Memo] Verwendung von Beautiful Soup4 (2) Zeigen Sie die Artikelüberschrift mit Anfragen an
Verwenden Sie Python auf Raspberry Pi 3, um die LED zu beleuchten (Hello World)
Hinweise zum Verbinden von Bluetooth von einem Smartphone / PC mit Raspeye 4
[Memo] Verwendung von BeautifulSoup4 (3) Zeigen Sie die Artikelüberschrift mit class_ an
Protokollieren Sie die Omron-Umgebungssensorwerte regelmäßig mit Raspberry Pi
Verwenden Sie "TSL2561 Beleuchtungssensormodul (Hersteller-Teilenummer: TSL2561)", hergestellt von Strawberry Linux mit Rasberry pi 3 (Zusammenfassung)
Über den Fehler, den ich beim Versuch, Adafruit_DHT von Python auf Raspberry Pi zu verwenden, festgestellt habe
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Verbesserter menschlicher Sensor mit Raspberry Pi
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Bedienen Sie das Oszilloskop mit dem Raspberry Pi
Erstellen Sie eine Auto-Anzeige mit Himbeer-Pi
Verwenden Sie Rasppie, um das Problem einer unzureichenden mobilen Wi-Fi-Verbindung zu lösen
[Python] Erklärt anhand eines konkreten Beispiels, wie die Bereichsfunktion verwendet wird
Hinweis: Ich möchte die Heimautomation mit Home Assistant + Raspberry Pi + Sensor Nr. 1 durchführen
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Protokollierung der Omron-Umgebungssensorwerte mit Raspberry Pi (USB-Typ)
Machen Sie ein Thermometer mit Raspberry Pi und machen Sie es im Browser Teil 3 sichtbar
Verwendung von Raspeye Pie Camera Python
Geben Sie die ausführbare Python-Datei an, die mit virtualenv verwendet werden soll
Der einfachste Weg, OpenCV mit Python zu verwenden
Beobachten Sie die Futago-Meteorgruppe mit Raspberry Pi4
Grove - Temperatur- und Feuchtigkeitssensor (DHT11) mit Raspberry Pi
Verwenden Sie "TSL2561 Beleuchtungssensormodul Hersteller Teilenummer: TSL2561", hergestellt von Strawberry Linux mit Raspberry pi 3 (Versuch und Irrtum)
Speichern Sie das Objekt in einer Datei mit pickle
[Für Anfänger] Ich habe mit Raspberry Pi einen menschlichen Sensor erstellt und LINE benachrichtigt!
Ich habe versucht, mit Raspeye + Tact Switch eine Schaltfläche für Slack zu erstellen
Verwendung des digitalen 1-Draht-Temperatursensors DS18B20 mit Raspberry Pi von Python
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Verwenden Sie den analogen Temperatursensor Raspberry Pi Python to TMP36 und den AD-Wandler MCP3008
[Hinweis] Verwenden Sie auf dem Raspberry Pi 4B ein kabelgebundenes LAN-Verbindungsgerät mit WiFi-Eth-Bridge
Steuern Sie die Musikwiedergabe auf einem Smartphone, das mit Raspberry Pi 3 und Bluetooth mit AVRCP verbunden ist
Quellkompilieren Sie Apache2.4 + PHP7.4 mit Raspberry Pi und erstellen Sie einen Webserver --3. Verwenden Sie MySQL
Als ich versuchte, eine Socket-Kommunikation mit Raspberry Pi durchzuführen, war das Protokoll anders
Ein Memo darüber, wie man das schwierige Problem der Erfassung von FX mit AI überwinden kann
Ein Hinweis auf Missverständnisse beim Versuch, das gesamte selbst erstellte Modul mit Python3 zu laden
Memo mit Python mit HiveServer2 von EMR verbunden