Files
smart-home/garage.py
T
2020-08-04 20:26:26 +00:00

55 lines
1.5 KiB
Python

import RPi.GPIO as GPIO
import logging
import time
from threading import Thread
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s - %(message)s')
PIN_MOTOR_BUTTON = 23
PIN_REMOTE_BUTTON = 24
PIN_MOTOR = 21
PIN_REMOTE = 26
PIN_LED = 11
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_MOTOR_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(PIN_REMOTE_BUTTON, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(PIN_MOTOR, GPIO.OUT)
GPIO.setup(PIN_REMOTE, GPIO.OUT)
GPIO.setup(PIN_LED, GPIO.OUT)
def check_motor_button(channel):
logging.info("Motor pressed")
GPIO.output(PIN_MOTOR, GPIO.LOW)
GPIO.output(PIN_LED, GPIO.HIGH)
time.sleep(0.8)
GPIO.output(PIN_MOTOR, GPIO.HIGH)
GPIO.output(PIN_LED, GPIO.LOW)
time.sleep(1)
def check_remote_button(channel):
logging.info("Remote pressed")
GPIO.output(PIN_REMOTE, GPIO.HIGH)
GPIO.output(PIN_LED, GPIO.HIGH)
time.sleep(0.8)
GPIO.output(PIN_REMOTE, GPIO.LOW)
GPIO.output(PIN_LED, GPIO.LOW)
time.sleep(1)
GPIO.add_event_detect(PIN_MOTOR_BUTTON, GPIO.FALLING, callback=check_motor_button, bouncetime=200)
GPIO.add_event_detect(PIN_REMOTE_BUTTON, GPIO.FALLING, callback=check_remote_button, bouncetime=200)
try:
GPIO.output(PIN_MOTOR, GPIO.HIGH)
GPIO.output(PIN_REMOTE, GPIO.LOW)
GPIO.output(PIN_LED, GPIO.LOW)
while True:
time.sleep(0.01)
except KeyboardInterrupt:
logging.info('Shutdown')
finally:
logging.info('Reset GPIO configuration and close')
GPIO.cleanup()