33 lines
787 B
Python
33 lines
787 B
Python
import time
|
|
import grovepi
|
|
from sensors.lock import grove_lock
|
|
from shared import config
|
|
|
|
# Pin definition
|
|
BUZZER_PIN = 8
|
|
|
|
grovepi.pinMode(BUZZER_PIN, "OUTPUT")
|
|
buzzer_state = 0
|
|
|
|
def set_buzzer(state: int):
|
|
global buzzer_state
|
|
buzzer_state = state
|
|
if not config.BUZZER_ACTIVATED:
|
|
return
|
|
try:
|
|
with grove_lock:
|
|
grovepi.digitalWrite(BUZZER_PIN, state)
|
|
except Exception as e:
|
|
print(f"[BUZZER] Error occurred while setting buzzer state: {e}")
|
|
|
|
def buzzer_toggle():
|
|
global buzzer_state
|
|
new_state = 1 - buzzer_state
|
|
set_buzzer(new_state)
|
|
|
|
def buzzer_siren(beatsNb: int = 3, delay: float = 0.3):
|
|
for _ in range(beatsNb):
|
|
set_buzzer(1)
|
|
time.sleep(delay)
|
|
set_buzzer(0)
|
|
time.sleep(delay) |