Raspberry Pi 3 Mod B / B+: Sensor TSL 45315 |
![]() ![]() |
|
![]() |
Sensorplatine
Watterott mit dem AMS-Sensor TSL 45315
Der
Sensor TSL 45315 mißt Helligkeiten zwischen 3 und 220.000
Lux.
Datenblatt
der Fa. AMS.pdf
Die
vorliegende Platine der Fa. Watterott Electronik kann mit einer
Spannung zwischen 3,3V bis 5V betrieben werden. Sie besitzt ein
I2C- Interface. Die I2C-Adresse des Bausteins lautet 0x29. Die
Beschaltung des I2C-Interface ist im obigen Bild eingezeichnet.
Herkunft
des Sensors:
www.watterott.com/de/TSL45315-Breakout
Anmerkungen
zu Helligkeitswerten:
5 mW
Laserpointer, grün (532 nm), 3 mm Strahldurchmesser 427.000
lx
5 mW
Laserpointer, rot (635 nm), 3 mm Strahldurchmesser 105.000 lx
Heller
Sonnentag 100.000 lx
Bedeckter
Sommertag 20.000 lx
Im
Schatten im Sommer 10.000 lx
Bedeckter
Wintertag 3.500 lx
Büro-/Zimmerbeleuchtung
500 lx .. Flurbeleuchtung 100 lx
Vollmondnacht
0,050,36 lx
Sternklarer
Nachthimmel (Neumond) 0,001 lx
|
PHYTON-Programm
für den Rasbberry Pi 2/3
#
python compiler unter: /usr/bin/python
#
-*- coding: utf-8 -*-
import smbus import time # --------------------- # Konfiguration ------------------ # # Pi-Version 1 benutzt Kanal 0 KANAL = 1 # Pi-Version 2 u. 3 benutzen Kanal 1 I2Cadr = 0x29 # I2C Adresse des TSL 45315 # -------------------------------------------------------- # # Wahl des I2C-Kanals am Raspberry Pi bus = smbus.SMBus(KANAL) # Control Register, 0x00 # START: normale operation bus.write_byte_data(I2Cadr, 0x80, 0x03) # Konfigurations-Register, 0x01 # Faktor = 1, (00b) Integrationszeit 400 ms # Je nach gewaehlter Integrationszeit muss der Messwert # laut Datenblatt mit dem Faktor multipliziert werden .. bus.write_byte_data(I2Cadr, 0x81, 0x00) # Wartezeit in Sekunden (hier 0,5 sek) time.sleep(0.5) # Aus dem Konfigurations-Register 0x0A die chipID lesen. # Der Rückgabewert kann hier nur 0x0A = TSL 45315 sein id = bus.read_byte_data(I2Cadr, 0x8A) >> 4 # Die DATA-Register 0x04 und 0x05 lesen # 2 Bytes beginnend mit Register 0x04 lesen # Rückgabe: LSB first data = bus.read_i2c_block_data(I2Cadr, 0x84, 2) # 16-Bit-Helligkeits-MessWert in Lux # da der Faktor hier 1 ist wird nicht mit ihm multipliziert helligkeit = (data[1] << 8) + data[0] # (* Faktor) # -------------------------------------------------------- # # Ausgabe zum Bildschirm print ("chipID: 0x0%X" % id) print ("Helligkeit: %d lux" % helligkeit) |
Der Start des Programms Wird das Programm im Ordner /usr/ mit dem Namen licht.py abgelegt, kann es aus dem LXTerminal, durch .. .. gestartet werden. python /usr/licht.py |
PHP-Programmstart |
Start
eines python Programms durch PHP
1.
NANO Editor mit der Datei sudoers.tmp öffnen durch ..
sudo
visudo
2. Rechte für
www-data an python und das zu startende Programm hinzufügen
www-data ALL=(ALL) NOPASSWD: /usr/bin/python /usr/licht.py 2a. Soll das Python-Programm mit Parametern gestartet werden, so für jeden Parameter einen * anfügen (im Beispiel zwei Parameter) www-data ALL=(ALL) NOPASSWD: /usr/bin/python /usr/licht.py * * 3. Das PHP-Script erstellen <?php echo "Licht-Test"; echo shell_exec("sudo python /usr/licht.py"); ?> |
|
Aufruf des Programms über eine PHP-Datei Die Datei soll den Namen licht.php erhalten, und im LAN-Verzeichnis /var/www/http abgelegt worden sein. Die IP-Adresse ergibt sich aus der Zuweisung des Routers für den Raspberry Pi (siehe dort). |
<?php
//Aufruf
und Rückgabe der Ausgaben von Systembefehlen (hier dem
Datum)
echo
'<pre>';
system('date');
echo
'</pre>';
//
Aufruf von ausführbaren Dateien. Es werden alle Ausgaben
angezeigt
//
(hier des python Programms /usr/licht.py
echo
'<pre>';
system("sudo
python /usr/licht.py");
echo
'</pre><BR>';
//
PHP muß die Ausführung erlaubt werden ....
//
Aufruf von ausführbaren Dateien. Es werden alle Aus-
//
gaben zurückgegeben
$shell=shell_exec("sudo
python /usr/licht.py");
//
Aufruf von ausführbaren Dateien. Es wird nur die
//
letzte Ausgabe zurückgegeben
$exec=exec("sudo
python /usr/licht.py");
// Ausgabe zum Bildschirm echo '<BR><BR>Rueckgabe shell_exec= ',$shell; echo '<BR><BR>Rueckgabe exec= ',$exec; ?> |
Der Start des Programms über das Netzwerk 192.168.x.x/licht.php |
![]() ![]() |