Skip to content

Atividade

Alarme de luz

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

Primeiro passo: o projeto

O que é?

Um alarme remoto controlado por rádio que lhe avisa quando alguém acendeu as luzes ou abriu uma gaveta, ou bolsa.

micro:bit mostrando uma carinha zangada, com ondas de rádio saindo e uma fonte de luz incidindo nele

Como funciona:

  • Assim como o projeto Sensor de luz solar, este usa os LEDs do micro:bit como sensores de luz para medir o nível luz que está incidindo na tela;
  • A cada 10 segundos, por meio de um loop (laço de repetição), o programa do sensor envia uma mensagem de rádio informando se está claro ou escuro. Ele usa a seleção para transmitir uma mensagem de "luzes acesas" se a medição da luz for maior que (>) 50, e 'luzes apagadas' se for menor que (<) 50. Pode ser necessário alterar esses valores dependendo das condições de iluminação em que você estiver;
  • Ao pressionar o botão A, uma medição de luz é exibida no visor LED. Isso o ajudará a configurar o alarme, já que você poderá mudar de 50 para um valor mais adequado ao seu ambiente;
  • O programa de alarme responde sempre que recebe uma mensagem. Se a mensagem for igual a "lights off" (luzes apagadas), então ele limpará o visor LED; mas, se a mensagem é igual a "lights on" (luzes acesas), o programa exibirá uma carinha irritada e tocará o alarme com o som "BADDY" (vilão);
  • Verifique se o sensor e o alarme estão usando o mesmo grupo de rádio: qualquer número entre 0 e 255.

Itens necessários:

  • Dois micro:bits (pelo menos um deles deve possuir um conjunto de baterias);
  • Algo precioso que você queira manter seguro;
  • Opcional: fones de ouvido, buzzers ou caixas de som para o alarme.

Segundo passo: é hora de programar

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

Terceiro passo: vamos deixar o código ainda melhor

  • Combine isso com o projeto Alarme de inclinação para detectar quando algo está sendo movido ou se as luzes se acendem;
  • Faça o alarme funcionar de outra maneira: faça com que ele dispare se alguém apagar as luzes;
  • Adapte-o para monitorar o uso de energia: use uma variável para registar o tempo (em segundos) que a luz permanece acesa, disparando um alarme se ela ficar ligada por muito tempo.