Files
raspi-iot-ryhmatyo/init.py
Aaro Varis 390388329f m
2026-01-15 10:29:53 +02:00

64 lines
1.5 KiB
Python

from time import time
from astral import LocationInfo
from astral.sun import sun
from datetime import date
from grove.gpio import GPIO
city = LocationInfo("Seinäjoki", "Finland", "Europe/Helsinki", 62.7900, 22.8400)
s = sun(city.observer, date=date.today())
print(f"City: {city.name}, {city.region}")
print(f"Timezone: {city.timezone}")
print(f"Latitude: {city.latitude:.6f}; Longitude: {city.longitude:.6f}")
def isSunUp() -> bool:
from datetime import datetime
now = datetime.now(city.tzinfo)
return s["sunrise"] <= now <= s["sunset"]
# sunset and sunrise
class AlarmClock:
ledGpio: GPIO
buttonGpio: GPIO
lastKnownButtonState: bool = False
def __init__(self, pins: dict = {}):
self.ledGpio = GPIO(pins.get("led", 5), GPIO.OUT)
self.buttonGpio = GPIO(pins.get("button", 6), GPIO.IN)
def start(self):
print("AlarmClock started")
while True:
self.loop()
def loop(self):
currentButtonState = self.buttonGpio.read()
if currentButtonState != self.lastKnownButtonState:
self.lastKnownButtonState = currentButtonState
if currentButtonState:
self.onButtonPress("button")
def onButtonPress(self, button: str):
print(f"Button {button} pressed")
def setLcdText(self, text: str):
print(f"LCD: {text}")
pins = {
"button": 6,
"led": 5,
"buzzer": 12,
}
alarm_clock = AlarmClock(pins)
alarm_clock.start()