Code tested and runs clean on python3
This commit is contained in:
parent
04859cb7a7
commit
039b53be09
4 changed files with 66 additions and 0 deletions
4
Sitcom_SFX_Door_Trigger/README.md
Normal file
4
Sitcom_SFX_Door_Trigger/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Sitcom_SFX_Door_Trigger
|
||||||
|
|
||||||
|
Code to accompany this tutorial:
|
||||||
|
https://learn.adafruit.com/sitcom-sfx-door-trigger
|
||||||
62
Sitcom_SFX_Door_Trigger/Sitcom_SFX_Door_Trigger.py
Normal file
62
Sitcom_SFX_Door_Trigger/Sitcom_SFX_Door_Trigger.py
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
import time
|
||||||
|
import board
|
||||||
|
from digitalio import DigitalInOut, Direction
|
||||||
|
import pygame.mixer
|
||||||
|
|
||||||
|
# setup inputs
|
||||||
|
door_switch_pin = board.D23
|
||||||
|
motion_sensor_pin = board.D24
|
||||||
|
|
||||||
|
door = DigitalInOut(door_switch_pin)
|
||||||
|
door.direction = Direction.INPUT
|
||||||
|
|
||||||
|
motion = DigitalInOut(motion_sensor_pin)
|
||||||
|
motion.direction = Direction.INPUT
|
||||||
|
|
||||||
|
# setup output LED indicators
|
||||||
|
motion_led_pin = board.D18
|
||||||
|
door_led_pin = board.D25
|
||||||
|
|
||||||
|
door_led = DigitalInOut(door_led_pin)
|
||||||
|
door_led.direction = Direction.OUTPUT
|
||||||
|
door_led.value = False
|
||||||
|
|
||||||
|
motion_led = DigitalInOut(motion_led_pin)
|
||||||
|
motion_led.direction = Direction.OUTPUT
|
||||||
|
motion_led.value = False
|
||||||
|
|
||||||
|
prev_door = False
|
||||||
|
|
||||||
|
# audio settings
|
||||||
|
pygame.mixer.init(44100, -16, 2, 1024)
|
||||||
|
|
||||||
|
# sound files expect to be in the same directory as script
|
||||||
|
enter = pygame.mixer.Sound("./enter.wav")
|
||||||
|
exit = pygame.mixer.Sound("./exit.wav")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
|
||||||
|
# toggle door LED based on door sensor
|
||||||
|
if door.value:
|
||||||
|
door_led.value = True
|
||||||
|
else:
|
||||||
|
door_led.value = False
|
||||||
|
|
||||||
|
# toggle motion LED based on motion (PIR) sensor
|
||||||
|
if motion.value:
|
||||||
|
motion_led.value = True
|
||||||
|
else:
|
||||||
|
motion_led.value = False
|
||||||
|
|
||||||
|
# When the door is opened, if there is movement outside,
|
||||||
|
# It means that someone is entering.
|
||||||
|
# If not, someone is exiting.
|
||||||
|
if door.value and not prev_door:
|
||||||
|
if motion.value:
|
||||||
|
enter.play()
|
||||||
|
else:
|
||||||
|
exit.play()
|
||||||
|
|
||||||
|
prev_door = door.value
|
||||||
|
|
||||||
|
time.sleep(0.01)
|
||||||
BIN
Sitcom_SFX_Door_Trigger/enter.wav
Normal file
BIN
Sitcom_SFX_Door_Trigger/enter.wav
Normal file
Binary file not shown.
BIN
Sitcom_SFX_Door_Trigger/exit.wav
Normal file
BIN
Sitcom_SFX_Door_Trigger/exit.wav
Normal file
Binary file not shown.
Loading…
Reference in a new issue