from machine import Pin
import time
pir_pin = 23 # sensor PIR
button_pin = 21 # botón activar/desactivar
buzzer_pin = 22 # buzzer o LED alarma
pir = Pin(pir_pin, Pin.IN)
button = Pin(button_pin, Pin.IN, Pin.PULL_UP)
buzzer = Pin(buzzer_pin, Pin.OUT)
alarma_activa = False
def toggle_alarma(pin):
global alarma_activa
time.sleep_ms(50) # anti‑rebote simple
if pin.value() == 0: # botón pulsado → LOW
alarma_activa = not alarma_activa
print("Alarma {}".format("ACTIVADA" if alarma_activa else "DESACTIVADA"))
time.sleep_ms(300) # espera para evitar múltiples triggers
# Configurar interrupción para el botón
button.irq(trigger=Pin.IRQ_FALLING, handler=toggle_alarma)
print("Sistema de alarma iniciado.")
print("Pulse el botón para activar/desactivar.")
while True:
if alarma_activa:
if pir.value() == 1:
buzzer.value(1)
print("¡MOVIMIENTO DETECTADO! Alarma ON.")
else:
buzzer.value(0)
else:
buzzer.value(0)
time.sleep_ms(200)