Skip to content

Actividad

Alarma de luz

Avanzado | MakeCode, Python | Pantalla LED, Radio, Sensor de luz, Sonido | Comunicación, Energía, Iteración, Luz, Operadores relacionales, Selección, Sensores

Paso 1: Hazlo

¿Qué es?

Una alarma inalámbrica que te notifica cuando alguien enciende las luces – o abre un cajón o un bolso.

micro:bit siendo iluminada por una bombilla, mostrando una cara enfadada y emitiendo ondas de radio

Cómo funciona

  • Este proyecto, al igual que el del Sensor de luz solar, usa los LEDs del micro:bit como un sensor de luz para medir cuánta luz incide en la pantalla.
  • Un bucle se encarga de que cada diez segundos se envíe un mensaje de radio informando si hay luz o no. Mediante selección, comprueba si el nivel de luz es mayor que (>) 50 para enviar el mensaje de "lights on" (luces encendidas), o el de "lights off" (luces apagadas) en caso contrario. Puede que tengas que ajustar este umbral según las condiciones de iluminación de donde te encuentres.
  • Al pulsar el botón A, se mostrará el nivel actual de luz en la pantalla LED, de manera que puedas ajustar el umbral desde 50 a otro número más acorde al entorno.
  • El programa de alarma reacciona cuando recibe un mensaje. Si el mensaje es igual a "lights off" (luces apagadas) entonces borra la pantalla LED. Si por el contrario es igual a "lights on" (luces encendidas) entonces muestra una cara enfadada y reproduce la melodía "BADDY" (malote) como alarma.
  • Asegúrate de que tu sensor y la alarma están en el mismo grupo de radio, que puede ser cualquier número entre 0 y 255.

Qué necesitas

  • 2 micro:bits, al menos uno con pilas
  • algo valioso que proteger
  • opcionalmente, auriculares, zumbadores o altavoces con amplificador para la alarma

Paso 2: Prográmalo

Sensor / transmisor:

1from microbit import *
2import radio
3radio.config(group=5)
4radio.on()
5
6while True:
7    if button_a.was_pressed():
8        display.scroll(display.read_light_level())
9    if display.read_light_level() > 50:
10        radio.send('lights on')
11    else:
12        radio.send('lights off')
13    sleep(10000)
14

Alarma / receptor:

1from microbit import *
2import music
3import radio
4radio.config(group=5)
5radio.on()
6
7while True:
8    message = radio.receive()
9    if message:
10        if message == 'lights off':
11            display.clear()
12        elif message == 'lights on':
13            display.show(Image.ANGRY)
14            music.play(music.BADDY)
15

Paso 3: Mejóralo

  • Combina esto con el proyecto de alarma de inclinación para detectar cuando algo es movido O si las luces se encienden.
  • Cambia la alarma para que funcione al revés, y se dispare si alguien apaga las luces.
  • Mediante una variable, haz que registre cuánto tiempo llevan encendidas las luces: así puedes controlar el consumo energético, o hacer que se dispare la alarma sólo transcurrido cierto periodo de tiempo.