Bei mir funktioniert es aber noch nicht richtig. Der Bildschirm stellt sich an durch den Bewegungsmelder und geht nach 60 Sekunden wieder aus. Der Bildschirm geht dann aber von selbst nach 60 Sekunden wieder an und nach 60 Sekunden wieder aus usw. Woran könnte es liegen?
Diese Programm habe ich verwendet:
#!/usr/bin/env python
import RPi.GPIO as GPIO
import os
import time
import sys
PIR pin
PIR_GPIO = 16
Display timeout in seconds
TIMEOUT = 60
DONT EDIT BELOW THIS LINE
UNLESS YOU KNOW WHAT YOU ARE DOING
GPIO.setmode(GPIO.BOARD)
GPIO.setup(PIR_GPIO, GPIO.IN)
timer = 0
display = False
def set_display(enable):
global display
display = enable
os.system("vcgencmd display_power " + str(int(enable)))
def check_timeout():
if timer >= TIMEOUT and display:
set_display(False)
elif not display and timer < TIMEOUT:
set_display(True)
def motion(pin):
global timer
timer = 0
if name == "main":
try:
GPIO.add_event_detect(PIR_GPIO, GPIO.RISING, callback=motion)
while True:
time.sleep(1)
if timer < TIMEOUT:
timer += 1
check_timeout()
except KeyboardInterrupt:
GPIO.cleanup()
sys.exit(0)
Ich habe bei dem Programm jedoch PIR_GPIO = 7 stehen, weil ich den Pin 7 auf dem raspberry 3 Belegt habe. Sonst ist alles gleich.
Gestartet wird das Programm über @pyhton pir.py in /etc/xdg/lxsession/LXDE-pi/autostart.