import utime
from machine import Pin, PWM
from wifi import conectar_wifi
from mqtt import conectar_mqtt
# Configuración del sensor PIR y el zumbador
pir = Pin(15, Pin.IN, Pin.PULL_DOWN)
buzzer = PWM(Pin(4)) # Inicializa el zumbador como PWM en el pin 4
buzzer.freq(200) # Cambia la frecuencia del zumbador
buzzer.duty(0) # Asegura que el zumbador esté apagado al inicio
# Conectar a WiFi
conectar_wifi("Wokwi-GUEST", None)
client = conectar_mqtt("esp32_client", "broker.hivemq.com")
# Variables para gestionar el estado del zumbador y notificaciones
notificado = False
# Bucle principal
while True:
estado = pir.value()
print(estado)
utime.sleep_ms(50)
if estado == 0:
# No hay movimiento, apagar el zumbador
print("Normal")
buzzer.duty(0) # Apaga el zumbador
notificado = False # Resetear el estado de notificación
else:
# Se detecta movimiento, encender el zumbador
print("Se registra movimiento")
buzzer.duty(512) # Enciende el zumbador
print("El zumbador está sonando")
# Enviar notificación solo si aún no se ha notificado
if not notificado:
print("Enviando mensaje por MQTT...")
client.publish("home/movimiento", "Movimiento detectado")
notificado = True
# Esperar 10 segundos antes de volver a detectar movimiento
utime.sleep(10)