Skip to content

Aktivnost

Alarm za svjetlo

Napredni | MakeCode, Python | LED zaslon, Radio, Senzor osvjetljenja, Zvuk | Energija, Iteracije, Komunikacija, Odabir, Relacijski operatori, Senzori, Svjetlo

1. korak: Napravi

Što je to?

Alarm kojim se daljinski upravlja putem radija obavještava te kad je netko upalio svjetlo ili pak otvorio ladicu ili torbu.

Micro:bit pokazuje ljutito lice i šalje radio valove kada ga se osvijetli.

Kako to radi

  • Poput projekta Senzor sunca (Sunlight sensor), ovdje se koriste micro:bitove LEDice kao senzor za svjetlost kako bi se izmjerila količina svjetlosti koja pada na zaslon.
  • Program putem petlje šalje svakih 10 sekundi radio poruku o tome je li svjetlo ili tama. Na temelju očitane vrijednosti šalje se poruka 'upaljeno' ako je izmjereno više od (>) 50, a poruka 'ugašeno' ako je izmjereno manje od (<) 50. Možda će te vrijednosti trebati prilagoditi ovisno o osvjetljenju na licu mjesta.
  • Pritiskom tipke A na ulazu, na LED zaslonu će se kao izlaz prikazati izmjerena količina svjetlosti, a pomoću toga možeš namjestiti alarm pa možeš vrijednost 50 zamijeniti nekom koja bolje odgovara okruženju.
  • Program za alarm reagira čim dobije poruku. Ako je poruka jednaka 'ugašeno' tada se briše LED zaslon, a ako je poruka jednaka 'upaljeno' tada se prikaže ljutito lice i oglasi se 'ZLOČESTI' ton alarma.
  • Pazi da senzor i alarm koriste istu radio grupu - neki broj između 0 i 255.

Što ti treba

  • 2 micro:bita, bar jedan mora imati komplet baterija
  • nešto vrijedno što treba pohraniti na sigurno
  • po želji slušalice, zujala ili zvučnici za alarm.

2. korak: Kodiraj

Senzor/ predajnik:

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

Alarm / prijemnik:

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

3. korak: Unaprijedi

  • Kombiniraj ovo s projektom Alarm za nagib (Tilt alarm) kako bi opazio kad se nešto pomakne ILI kad se upali svjetlo.
  • Učini da alarm radi obratno, tako da se oglasi kada netko ugasi svjetlo.
  • Prilagodi program tako da se prati potrošnja energije: upotrijebi varijablu za upis broja sekundi koliko je svjetlo bilo upaljeno ili pokreni alarm tek nakon što je predugo gorjelo.