Ich habe dieses Forum gefunden und mich vor lauter Begeisterung gleich angemeldet. Der Grund dafür folgt unten.
Kurze Vorstellung zu meiner Person (falls es jemand wissen will):
Mein Name ist Kai und ich komme aus dem schönen Fichtelgebirge in Oberfranken. Zur Zeit habe ich sehr viel mit Elektrizität zu tun und mache das auch beruflich. Meine Hobbys decken sich mit meinen beruflichen Aktivitäten. Programmiertechnich habe ich allerdings außer SPS und KNX beruflich nichts zu tun. Dennoch gehört das nunmal zu meinem Vorhaben dazu und ich bin sehr wissbegierig und will das auch können und wissen.
Zu meinem derzeitigen Problem:
Ich habe ein 7" Raspberry Pi Touch LCD (Original Raspberry) und einen Raspberry Pi 3 mit Raspbian. Der Raspberry Pi soll eine Internetseite über Kiosk dauerhaft anzeigen.
Am Raspberry Pi ist auch ein Bewegungsmelder PIR angeschlossen. Der PIR ist an GPIO 23 angeschlossen. Er gibt ein 5V-Signal aus, wenn eine Bewegung erfolgt.
Über ein Python-Programm soll der PIR den Monitor ein und wenn keine Bewegung mehr erfolgt wieder nach einer bestimmten Zeit (nehmen wir mal 65 Sekunden) wieder ausschalten.
Was funktioniert:
Also der Raspberry Pi wird hochgefahren, zeigt in Kioskmodus die gewünschte Internetseite an. Den Bildschirm schalte ich über den Befehl
ab.sudo chmod 777 /sys/class/backlight/rpi_backlight/bl_power;sudo echo 1 > /sys/class/backlight/rpi_backlight/bl_power
Der PIR schaltet mit dem Programm
das Programmsudo nano pir.py
.import RPi.GPIO as GPIO
import time
import os
SENSOR_PIN = 23
GPIO.setmode(GPIO.BCM)
GPIO.setup(SENSOR_PIN, GPIO.IN)
def mein_callback(channel):
os.system("sudo chmod 777 /sys/class/backlight/rpi_backlight/bl_power;sudo echo 0 > /sys/class/backlight/rpi_backlight/bl_power")
print('Es gab eine Bewegung!')
time.sleep(30)
try:
GPIO.add_event_detect(SENSOR_PIN , GPIO.RISING, callback=mein_callback)
while True:
time.sleep(100)
except KeyboardInterrupt:
print "Beende..."
GPIO.cleanup()
Dieses Programm habe ich selbständig erweitert und geändert. Ich hoffe es passt so. Zumindest geht das LCD bei einer Bewegung an.
Wenn ich nun time.sleep (65000) eingebe, müsste es doch 65 Sekunden an sein, bevor es wieder aus geht. Allerdings wird eine neue bewegung nicht mehr registriert. Es wird also immer nach 65 Sekunden abgeschaltet. Wie bekomme ich das hin, dass es die neue Bewegung auch registriert.
Vielen vielen Dank für jeden Tip und Hinweis.
Kai aus Oberfranken.