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.
 
 

65 lines
1.4 KiB

#!/usr/bin/env python
import ConfigParser
import os
import sqlite3
import time
import RPi.GPIO as io
from Adafruit_IO import *
config = ConfigParser.ConfigParser()
config.read('mousetrap.cfg')
io_key = config.get('io', 'key')
aio = Client(io_key)
def send_value(field, value):
print(field, value)
aio.send(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_activity = 0
previous_door_state = io.input(door_pin)
motion_detected = False
motion_instances = []
recent_problem_count = 0
while True:
previous_trap_value = trap_activity
previous_recent_problem_count = recent_problem_count
motion_detected = False
if io.input(pir_pin):
motion_detected = True
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) != previous_door_state:
previous_door_state = io.input(door_pin)
trap_activity += 1
if (previous_trap_value != trap_activity):
send_value('Trap Activity', trap_activity)
recent_problem_count = sum(motion_instances)
if previous_recent_problem_count != recent_problem_count:
send_value('Mouse Problems', sum(motion_instances))
time.sleep(6)