from machine import Pin, PWM, Timer, WDT
from time import sleep, ticks_ms, ticks_diff
watchdog_timeout = 30000 #30s
# Créer une instance du watchdog timer
wdt = WDT(timeout=watchdog_timeout)
pir = Pin(14, Pin.IN) # PIR sur GPIO14
# Buzzer (PWM)
buzzer_pwm = PWM(Pin(2,Pin.OUT))
buzzer_pwm.deinit() # éteint au départ
def pir_irq(pin):
# Déclenché uniquement au front montant sur 2s(0 -> 1)
buzzer_pwm.init(freq=2000, duty=512) # duty ~ 50% (ESP32: 0..1023)
print("Mouvement-------------!!!!!!!!!!!!!!!!!")
wdt.feed()
sleep(2)
buzzer_pwm.deinit() # éteint au départ
pir.irq(trigger=Pin.IRQ_RISING, handler=pir_irq)
print("Prêt : mouvement -> buzzer 2s (déclenchement au front montant)")
start10 = ticks_ms() # initialisation du compteur des secondes
start = ticks_ms() # initialisation du compteur des secondes
while True:
delta = ticks_diff(ticks_ms(), start10)
if delta >= 10000 : # Si 10s est passée alors :
temps_p = int(ticks_diff(ticks_ms(), start)/1000)
print(f"compteur des secondes : {temps_p}")
start10 = ticks_ms() # initialisation du compteur de temps chaque 10s
sleep(1)