Skip to content

Atividade

Alarme de luz

Avançado | MakeCode, Python | Ecrã LED, Rádio, Sensor de luz, Som | Comunicação, Energia, Iteração, Luz, Operadores relacionais, Seleção, Sensores

Passo 1: Faz tu mesmo

O que é isto?

Um alarme sem fios controlado por rádio para saber se alguém acende as luzes – ou abre uma gaveta ou uma bolsa.

micro:bit a transmitir ondas de rádio, a mostrar uma cara zangada e com uma lâmpada a iluminá-lo

Como é que funciona

  • Como no projeto Sensor de Luz Solar, este também usa os LEDs do micro:bit como sensor de luz para medir quanta luz está a incidir no ecrã.
  • O programa do sensor usa um loop que envia uma mensagem rádio de 10 em 10 segundos para dizer se está luz ou escuro. Usa uma seleção para transmitir um a mensagem "lights on" (luzes ligadas), se a medida de lus for mais de (>) 50, e "lights off" (luzes desligadas) se for menos de (<) 50. Talvez seja necessário alterar estes valores, dependendo das condições de iluminação do sitio onde estás.
  • Quando carregas no botão de entrada A podes ver o nível da luz no ecrã de LEDs de saída, o que te permite mudar o número 50 para um número que se ajusta mais ao teu ambiente, de maneira a configurares o teu alarme.
  • O programa de alarme reage sempre que recebe uma mensagem. Se a mensagem is equal to (é igual a) "lights off" then (então) limpa o ecrã de LEDs, mas se is equal to (é igual a) "luzes ligadas", then (então) mostra uma cara zangada e toca o som de alarme chamado "BADDY".
  • Assegura-te de que o sensor e o alarme estão no mesmo grupo de rádio - pode ser qualquer número entre 0 e 255.

Do que é que precisas

  • 2 micro:bits, pelo menos um deles com suporte de pilhas
  • algo valioso para guardar em segurança
  • auriculares, campainhas ou colunas ativas para alarme (opcional)

Passo 2: Cria o teu código

Sensor / transmissor:

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

Alarme / 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

Passo 3: Melhora-o

  • Combina com o projeto Alarme de Inclinação para um sensor funcionar quando algo está a ser mudado de sítio OU se as luzes são ligadas.
  • Faz com que o alarme funcione ao contrário, para se desligar quando as luzes são apagadas.
  • Adapta este programa para monitorizar quantos segundos as luzes ficam ligadas ou ativar um alarme quando elas ficam acesas demasiado tempo.