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