intial import from article
This commit is contained in:
12
pir.service
Normal file
12
pir.service
Normal file
@@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Display timeout PIR daemon
|
||||
Wants=local-fs.target
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/local/sbin/pir
|
||||
Restart=always
|
||||
KillSignal=SIGINT
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
51
smartmirror_ir.py
Normal file
51
smartmirror_ir.py
Normal file
@@ -0,0 +1,51 @@
|
||||
#!/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)
|
||||
|
36
smartmirror_poll.py
Normal file
36
smartmirror_poll.py
Normal file
@@ -0,0 +1,36 @@
|
||||
import RPi.GPIO as GPIO
|
||||
import time
|
||||
import os
|
||||
|
||||
#Board Mode: Angabe der Pin-Nummer
|
||||
GPIO.setmode(GPIO.BOARD)
|
||||
|
||||
#GPIO Pin definieren fuer den Dateneingang vom Sensor
|
||||
PIR_GPIO = 16
|
||||
GPIO.setup(PIR_GPIO,GPIO.IN)
|
||||
|
||||
read=0
|
||||
wait=0
|
||||
|
||||
try:
|
||||
#PIR auslesen
|
||||
while GPIO.input(PIR_GPIO)==1:
|
||||
read=0
|
||||
|
||||
#Abbruch ctrl+c
|
||||
while True :
|
||||
#PIR Status abfragen
|
||||
read = GPIO.input(PIR_GPIO)
|
||||
|
||||
if read==1 and wait==0:
|
||||
os.system("vcgencmd display_power 1")
|
||||
wait=1
|
||||
|
||||
elif read==0 and wait==1:
|
||||
wait=0
|
||||
|
||||
time.sleep(0.01)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
GPIO.cleanup()
|
||||
|
Reference in New Issue
Block a user