from machine import Pin
import time
# Configuración de los LEDs
ledVerde = Pin(13, Pin.OUT)
ledRojo = Pin(12, Pin.OUT)
# Configuración de los botones
p1 = Pin(34, Pin.IN)
p2 = Pin(35, Pin.IN)
p3 = Pin(32, Pin.IN)
p4 = Pin(33, Pin.IN)
enter = Pin(25, Pin.IN)
pCambio = Pin(27, Pin.IN)
# Variable global para almacenar la contraseña
codigoEstablecido = ""
def cambioAcceso():
codigoUCI = []
print('Para establecer el código de UCI (p1:1, p2:2, p3:3, p4:4)')
while True:
if p1.value() == 1:
codigoUCI.append(1)
while p1.value() == 1:
pass
if p2.value() == 1:
codigoUCI.append(2)
while p2.value() == 1:
pass
if p3.value() == 1:
codigoUCI.append(3)
while p3.value() == 1:
pass
if p4.value() == 1:
codigoUCI.append(4)
while p4.value() == 1:
pass
if enter.value() == 1:
codigostr = ''.join(map(str, codigoUCI))
print(f"La nueva contraseña UCI es: {codigostr}")
while enter.value() == 1:
pass
return codigostr
def acceso():
codigo = []
print('Introduzca el código de acceso: ')
while True:
# Vamos agregando la función de cambio
if pCambio.value() == 1:
print("Usted presionó el botón de cambio")
while pCambio.value() == 1:
pass
# Devolver un código especial para señalar cambio
return "cambio"
if p1.value() == 1:
codigo.append(1)
codigoAcceso = ""
for i in codigo:
codigoAcceso += str(i)
print("El código va así: " + codigoAcceso)
while p1.value() == 1:
pass
if p2.value() == 1:
codigo.append(2)
codigoAcceso = ""
for i in codigo:
codigoAcceso += str(i)
print("El código va así: " + codigoAcceso)
while p2.value() == 1:
pass
if p3.value() == 1:
codigo.append(3)
codigoAcceso = ""
for i in codigo:
codigoAcceso += str(i)
print("El código va así: " + codigoAcceso)
while p3.value() == 1:
pass
if p4.value() == 1:
codigo.append(4)
codigoAcceso = ""
for i in codigo:
codigoAcceso += str(i)
print("El código va así: " + codigoAcceso)
while p4.value() == 1:
pass
if enter.value() == 1:
codigoAcceso = ""
for i in codigo:
codigoAcceso += str(i)
print(f"El código ingresado fue: {codigoAcceso}")
while enter.value() == 1:
pass
return codigoAcceso
# Función de verificación y cambio
def main():
global codigoEstablecido
# Establecer contraseña inicial
print("Establezca la configuración inicial para ingresar a la UCI")
codigoEstablecido = cambioAcceso()
# Bucle principal
cambioModo = False #Inicializamos una variable como flag
while True:
# Verificar si el botón de cambio está presionado
if pCambio.value() == 1:
print("Botón de cambio presionado")
cambioModo = True
while pCambio.value() == 1:
pass
time.sleep(0.2)
if cambioModo:
print("Para iniciar, ingrese la contraseña actual: ")
codigoActual = acceso()
# Si durante el ingreso se presionó pCambio nuevamente, salir del modo cambio
if codigoActual == "cambio":
cambioModo = False
continue
# Verificar codigo para acceder a cambiarlo
if codigoActual == codigoEstablecido:
print("Código correcta, ahora ingrese la nueva contraseña: ")
nuevoCodigo = cambioAcceso()
codigoEstablecido = nuevoCodigo
print("El código de ingreso ha sido cambiado")
else:
print("Código incorrecta, no se puede cambiar el código")
cambioModo = False #Acá estamos cerrando la función de cambio
continue
codigoAcceso = acceso() #Volvemos a nuestra verificación del acceso
if codigoAcceso == "cambio": #Para determinar si se presiona pCambio
cambioModo = True
continue
# Esta es nuestra función de la verificación de código
if codigoEstablecido == codigoAcceso:
print("Acceso concedido :)")
ledVerde.on()
time.sleep(0.5)
ledVerde.off()
else:
print("Acceso denegado, intente de nuevo :(")
ledRojo.on()
time.sleep(0.5)
ledRojo.off()
# Iniciar el programa
if __name__ == "__main__":
main()