*: initial toying with gpiozero python3
Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
This commit is contained in:
parent
ac063c96e3
commit
b10dcbba57
5 changed files with 93 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
*~
|
15
README.md
15
README.md
|
@ -1,2 +1,17 @@
|
||||||
# bathroom-timer
|
# bathroom-timer
|
||||||
|
|
||||||
|
Problem: the kids take showers or are "on the can" for longer than 30min.
|
||||||
|
|
||||||
|
Solution: make an alarm that goes off when the door has been closed for 30min.
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
Started with this kit: [Huzzah! Adafruit.io Internet of Things Feather ESP8266 - WiFi Starter Kit](https://www.adafruit.com/product/2680)
|
||||||
|
|
||||||
|
But I needed a clock to measure 30min, so I am now using an old, low-voltage RPI Model A+ v1.1.
|
||||||
|
|
||||||
|
Still considering the solder kit: [Ladyada's Electronics Toolkit](https://www.adafruit.com/product/136)
|
||||||
|
|
||||||
|
- [python GPIO zero](https://gpiozero.readthedocs.io/en/latest/installing.html)
|
||||||
|
- [MagPI article on programming GPIO on the RPI](https://raw.githubusercontent.com/raspberrypipress/released-pdfs/main/simple-electronics-with-gpio-zero.pdf)
|
||||||
|
|
||||||
|
|
13
blink.py
Normal file
13
blink.py
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from gpiozero import LED
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
led = LED(25)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
led.on()
|
||||||
|
sleep(1)
|
||||||
|
led.off()
|
||||||
|
sleep(1)
|
||||||
|
|
25
button.py
Normal file
25
button.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from gpiozero import LED
|
||||||
|
from gpiozero import Button
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
|
led = LED(25)
|
||||||
|
button = Button(21)
|
||||||
|
|
||||||
|
def pressed():
|
||||||
|
led.on()
|
||||||
|
print("button pressed. LED on")
|
||||||
|
|
||||||
|
def released():
|
||||||
|
led.off()
|
||||||
|
print("button released. LED off")
|
||||||
|
|
||||||
|
button.when_pressed = pressed
|
||||||
|
button.when_released = released
|
||||||
|
print("ready")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
sleep(0.2)
|
||||||
|
|
||||||
|
|
39
door.py
Normal file
39
door.py
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from gpiozero import Button, Buzzer
|
||||||
|
from time import sleep
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# https://docs.python.org/3/library/datetime.html#datetime.datetime.now
|
||||||
|
|
||||||
|
# the door sensor
|
||||||
|
door = Button(23)
|
||||||
|
btn = Button(19)
|
||||||
|
bz = Buzzer(26)
|
||||||
|
#bz.on()
|
||||||
|
#bz.off()
|
||||||
|
|
||||||
|
def alarm():
|
||||||
|
bz.beep(0.5,0.25,8)
|
||||||
|
|
||||||
|
def doorClosed():
|
||||||
|
t = datetime.now()
|
||||||
|
print(f"{t} - door closed. LED on")
|
||||||
|
|
||||||
|
def doorOpen():
|
||||||
|
t = datetime.now()
|
||||||
|
print(f"{t} - door open. LED off")
|
||||||
|
|
||||||
|
def whenPressed():
|
||||||
|
bz.toggle()
|
||||||
|
|
||||||
|
btn.when_pressed = whenPressed
|
||||||
|
door.when_pressed = doorClosed
|
||||||
|
door.when_released = doorOpen
|
||||||
|
|
||||||
|
print("ready")
|
||||||
|
|
||||||
|
while True:
|
||||||
|
sleep(0.2)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue