|
|
- #!/usr/bin/env python
-
- import time
-
- import RPi.GPIO as io
-
- def send_value(field, value):
- print(field, value)
-
- io.setmode(io.BCM)
-
- pir_pin = 18
- door_pin = 23
-
- # Activate input:
- io.setup(pir_pin, io.IN)
-
- # Activate input with PullUp:
- io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP)
-
- trap_closed = False
- motion_detected = False
- motion_instances = []
- recent_problem_count = 0
-
- while True:
- previous_trap_value = trap_closed
- previous_recent_problem_count = recent_problem_count
-
- motion_detected = False
- trap_closed = False
-
- if io.input(pir_pin):
- motion_detected = True
- print "MOTION DETECTED!"
-
- if motion_detected:
- motion_instances.append(1)
- else:
- motion_instances.append(0)
-
- if len(motion_instances) > 6:
- motion_instances.pop(0)
-
- if io.input(door_pin):
- trap_closed = False
- else:
- trap_closed = True
-
- if (previous_trap_value != trap_closed):
- if trap_closed:
- send_value('Trap State', 'Trap Closed')
- else:
- send_value('Trap State', 'Trap Open')
-
- recent_problem_count = sum(motion_instances)
- if previous_recent_problem_count != recent_problem_count:
- send_value('Mouse Problems', sum(motion_instances))
-
- time.sleep(0.5)
|