Skip to content

Instantly share code, notes, and snippets.

@Joc193
Last active May 8, 2025 00:41
Show Gist options
  • Save Joc193/848dcd9d496927ff7408b05f9fba780b to your computer and use it in GitHub Desktop.
Save Joc193/848dcd9d496927ff7408b05f9fba780b to your computer and use it in GitHub Desktop.
Práctica: Cat Napping con micro:bit y MicroPython

Práctica: Cat Napping con micro:bit y MicroPython

Programa en MicroPython que registra datos de temperatura y luz ambiental utilizando los sensores integrados del micro:bit.


Código en MicroPython

# ---------------------------------------------------------------------------------
# Lenguajes de Interfaz - TECNM Campus ITT
# Autor: Jocelyn Alvarez Paniagua
# Matrícula: C20210713
# Fecha: 2025-05-07
# Descripción: Práctica: Cat Napping con micro:bit y MicroPython
# ---------------------------------------------------------------------------------

# Función que se ejecuta al presionar el botón A
def on_button_pressed_a():
    global logging  # Usamos una variable global llamada 'logging'
    logging = not (logging)  # Cambia entre True y False (activar/desactivar)

    if logging:
        # Si se activa el registro, muestra un ícono en pantalla
        basic.show_icon(IconNames.TARGET)

        # Y reproduce una melodía divertida (Nyan Cat)
        music._play_default_background(
            music.built_in_playable_melody(Melodies.NYAN),
            music.PlaybackMode.UNTIL_DONE
        )
    else:
        # Si se desactiva el registro, limpia la pantalla
        basic.clear_screen()

# Asocia la función al botón A
input.on_button_pressed(Button.A, on_button_pressed_a)

# Inicializa la variable de control del registro
logging = False

# Función que se ejecuta cada cierto intervalo de tiempo
def on_every_interval():
    if logging:
        # Si el registro está activado, guarda los valores de temperatura y luz
        datalogger.log(
            datalogger.create_cv("temp", input.temperature()),
            datalogger.create_cv("light", input.light_level())
        )

# Ejecuta la función cada 60,000 milisegundos (1 minuto)
loops.every_interval(60000, on_every_interval)

Captura de pantalla 2025-05-07 165127

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment