Get you a Pi, quantify your vermin.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

60 lines
1.2 KiB

#!/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)