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