Skip to content

Atividade

Alarme de porta via rádio

Avançado | MakeCode, Python | Bússola, Rádio, Visor LED | Comunicação, Magnetismo, Ondas de rádio, Operadores relacionais, Seleção, Sensores

Primeiro passo: o projeto

O que é?

Um alarme sem fio para avisar quando alguém abrir ou deixar uma porta aberta.

Como fazer

  • Você precisará de dois micro:bits com códigos diferentes em cada um. Um micro:bit atua como transmissor de rádio e o outro como receptor de rádio.
  • Prenda o transmissor micro:bit e a bateria no canto de uma moldura de porta e prenda um ímã próximo a ele no canto de uma porta.
  • Coloque o receptor micro:bit em qualquer lugar próximo.
  • Se o alarme não funcionar como esperado, talvez seja necessário alterar o número da força magnética no código do transmissor. Pressionar o botão A mostra a leitura atual da força magnética. Use isso para decidir o número limite, fazendo leituras com a porta aberta e fechada.

Como funciona:

  • O programa transmissor usa o micro:bit bússola (magnetômetro) sensor de entrada e um loop para medir a força do campo magnético a cada dois segundos.
  • Ele usa seleção portanto, quando a intensidade do campo magnético cai abaixo de um determinado nível (o limiar), ele envia um  sinal de rádio  'aberto'. Se a leitura do magnetismo estiver acima do limite, ele enviará o sinal “fechado”.
  • Quando o receptor micro:bit recebe o sinal “aberto”, uma cruz aparece em seu visor de LED e um alarme sonoro é emitido. Quando recebe o sinal “fechado”, um tique aparece em seu visor de LED e nenhum som é reproduzido.

Itens necessários:

  • dois micro:bits e pelo menos um conjunto de baterias
  • Um imã;
  • Algumas fitas dupla-face ou algo similar para fixar um ímã em uma porta e um micro:bit no batente da porta;
  • se você tem um micro:bit V1 e quer ouvir um alarme audível, fones de ouvido opcionais, campainha ou alto-falante e clipe de crocodilo leva a anexá-los

Segundo passo: é hora de programar

Sensor / transmissor:

1from microbit import *
2import radio
3radio.config(group=17)
4radio.on()
5
6while True:
7    if button_a.was_pressed():
8        display.scroll(compass.get_field_strength())
9    if compass.get_field_strength() < 100000:
10        display.show(Image.DIAMOND_SMALL)
11        radio.send('open')
12    else:
13        display.clear()
14        radio.send('closed')
15    sleep(2000)
16

Alarme / receptor:

1from microbit import *
2import music
3import radio
4radio.config(group=17)
5radio.on()
6
7while True:
8    message = radio.receive()
9    if message:
10        if message == 'open':
11            display.show(Image.NO)
12            music.play(["C4:4"])
13        if message == 'closed':
14            display.show(Image.YES)
15

Terceiro passo: vamos deixar o código ainda melhor

  • Use vários micro:bits para rastrear o status de portas diferentes: envie mensagens de rádio diferentes, como "porta dos fundos aberta";
  • Use uma variável para medir quanto tempo as portas ficam abertas. Será que isso poderia ajudá-lo a economizar a energia utilizada no aquecimento?