from machine import Pin
import time
# Definición de pines
pin_red = Pin(4, Pin.IN) # Señal de entrada de red (1 si hay red, 0 si no)
pin_grupo = Pin(5, Pin.IN) # Señal de entrada de grupo (1 si grupo listo, 0 si no)
salida_red_abrir = Pin(12, Pin.OUT) # Pulso para abrir interruptor de red
salida_red_cerrar = Pin(13, Pin.OUT) # Pulso para cerrar interruptor de red
salida_grupo_abrir = Pin(14, Pin.OUT) # Pulso para abrir interruptor de grupo
salida_grupo_cerrar = Pin(15, Pin.OUT) # Pulso para cerrar interruptor de grupo
def abrir_interruptor(pin):
pin.on()
time.sleep(10)
pin.off()
def cerrar_interruptor(pin):
pin.on()
time.sleep(10)
pin.off()
def transferir_a_grupo():
print("Transfiriendo a grupo...")
abrir_interruptor(salida_red_abrir)
time.sleep(1) # Breve espera de seguridad
cerrar_interruptor(salida_grupo_cerrar)
def transferir_a_red():
print("Transfiriendo a red...")
abrir_interruptor(salida_grupo_abrir)
time.sleep(1) # Breve espera de seguridad
cerrar_interruptor(salida_red_cerrar)
estado_actual = "RED"
while True:
if estado_actual == "RED" and pin_red.value() == 0 and pin_grupo.value() == 1:
print("Corte de red detectado. Esperando 1 minuto...")
time.sleep(60)
if pin_red.value() == 0 and pin_grupo.value() == 1:
transferir_a_grupo()
estado_actual = "GRUPO"
elif estado_actual == "GRUPO" and pin_red.value() == 1:
print("Red restaurada. Esperando 1 minuto...")
time.sleep(60)
if pin_red.value() == 1:
transferir_a_red()
estado_actual = "RED"
time.sleep(1) # Pequeño retardo para evitar lecturas constantes