import network
from machine import Pin, PWM
import time
import utelegram
import privado
TOKEN = privado.token
sensorM = Pin(21, Pin.IN, Pin.PULL_DOWN)
rele = Pin(14, Pin.OUT)
boton_encender = Pin(19, Pin.IN)
boton_apagar = Pin(18, Pin.IN)
# Estado de la alarma
alarma_encendida = False
mensaje_encendido = 'Alarma Encendida: ¡ALERTA! Se detectó una persona desconocida dentro de la vivienda'
mensaje_apagado = 'Alarma Apagada: Ya estamos Fuera de Peligro'
# Función para conectar a la red WiFi
def conectarWIFI(red, password):
global miRed
miRed = network.WLAN(network.STA_IF)
if not miRed.isconnected():
miRed.active(True)
miRed.connect(red, password)
print('Conectándose a la red ....', red + "...\n")
timeout = time.time()
while not miRed.isconnected():
if (time.ticks_diff(time.time(), timeout) > 10):
return False
return True
# Conexión a la red WiFi
if conectarWIFI("Wokwi-GUEST", ""):
print("Conexión exitosa!!")
print("Datos de red (IP/netmask/gw/DNS): ", miRed.ifconfig())
print("Ya está conectado. Puede proceder a realizar sus respectivas pruebas\n")
while True:
# Botón de encendido
if not alarma_encendida and boton_encender.value() == 1:
print("Intruso Detectado")
medicion = sensorM.value()
if medicion == 0:
buzzer = PWM(Pin(4), freq=500, duty=512)
rele.value(1) # Enciende el LED conectado al relé
print("!ALERTA!, Ten Cuidado\n")
try:
# Crear una instancia del bot con tu token
miBot = utelegram.Bot(TOKEN)
# Enviar un mensaje usando el método send_message
miBot.send_message(privado.chat_id, mensaje_encendido)
alarma_encendida = True
except Exception as e:
print("Error al enviar el mensaje:", e)
alarma_encendida = True
time.sleep(0.5) # Pequeño retardo para evitar múltiples detecciones del botón
# Botón de apagado
if alarma_encendida and boton_apagar.value() == 1:
print("Intruso Atrapado")
medicion = sensorM.value()
if medicion == 0:
buzzer = PWM(Pin(4), freq=1, duty=0)
rele.value(0) # Apaga el LED conectado al relé
print("!No te preocupes! La persona desconocida ya fue capturada\n")
try:
# Crear una instancia del bot con tu token
miBot = utelegram.Bot(TOKEN)
# Enviar un mensaje diferente usando el método send_message
miBot.send_message(privado.chat_id, mensaje_apagado)
alarma_encendida = False
except Exception as e:
print("Error al enviar el mensaje:", e) # Envía el nuevo mensaje
time.sleep(0.5) # Pequeño retardo para evitar múltiples detecciones del botón
time.sleep(0.1)
else:
print("Error al conectar")
miRed.active(False)