1. korak: Napravi
Što je to?
Odredi koliko dugo gori svjetlo i na taj način prati potrošnju energije. Ovim projektom možeš koristiti u meteorološkoj postaji za mjerenje trajanja sunčanog vremena.
Ovaj projekt spada u seriju projekata koji potiču aktivnosti za rješavanje problema i izradu prototipova u korištenja tehnologije pri izradi rješenja za izazove Globalnih ciljeva održivog razvoja.
Što ćeš naučiti
- kako pratiti zbivanja u okolini koristeći senzore i kôd
 - smjestiti zapisivač podataka tako da može bilježiti pouzdane podatke
 - prikupljati i uspoređivati podatke kroz neko vrijeme kako bi uočio obrasce u potrošnji energije
 - protumačiti i analizirati podatke ne bi li potaknuo promjene ponašanja
 - kako korisnik može izmijeniti varijable i namjestiti sustav prije korištenja
 
Kako koristiti
- Prvo na temelju projekta Mjerač osvjetljenja utvrdi vrijednosti kod upaljenog i ugašenog svjetla. Pazi da to radiš na istom mjestu i pri istim svjetlosnim uvjetima u kojima će se nalaziti micro:bit za mjerenje i pazi da dnevno svjetlo ne stvori lažnu informaciju paljenja svjetla.
 - Vrijednost očitanu za upaljeno svjetlo unesi u kôd tamo gdje se postavlja vrijednost varijable LIGHT (svjetlo). Mi smo stavili brojku 100, no vjerojatno ćeš to promijeniti prije flashanja kôda na micro:bit.
 - Prikopčaj komplet baterija i smjesti micro:bit pod svjetiljku koju ćeš mjeriti. Dok je svjetiljka ugašena, na zaslonu bi trebala biti točka, a kada se svjetiljka upali, upali se i zaslon. Ako to ne radi, možda bi trebalo projektom Mjerač osvjetljenja ponovo pronaći razinu svjetlosti upaljene svjetiljke ili treba pomaknuti micro:bit
 - Micro:bit će nastaviti mjeriti vrijeme, a pritiskom tipke B pokazat će koliko je minuta svjetlo gorjelo.
 
Kako to radi
- Program koristi Booleovu varijablu vrijeme kojom se upravlja izvođenjem. Booleove varijable mogu imati samo dvije vrijednosti: točno ili netočno.
 - Ako je očitanje svjetlosti iznad postavljene razine, tajmer se pokreće i uključuje LED zaslon. Ako je ispod te razine, tajmer se zaustavlja, a na zaslonu se pojavljuje točka.
 - Ovaj se projekt koristi histerezom za sprečavanje prečestog uključivanja/isključivanja uslijed variranja razine svjetlosti oko granične vrijednosti. Ona stvara širi pojas oko granične vrijednosti, a cijeli taj prag treba prijeći prije nego što se tajmer uključi/isključi.
 - Histereza je česta značajka kontrolnih sustava koji se služe senzorima, primjerice u sustavima grijanja s termostatom. Kada postaviš termostat na željenu temperaturu, ne želiš da se sustav stalno uključuje i isključuje čim se temperatura neznatno promijeni. Histereza to sprečava.
 
Što ti treba
- micro:bit
 - Uređivač MakeCode ili Python
 - komplet baterija (preporučeno)
 
2. korak: Kodiraj
1from microbit import *
2display.show('L')
3
4LIGHT = 100  # <<< Enter your 'measured' reading here
5
6HYSTERESIS = 8
7LIGHT -= (HYSTERESIS/2)
8DARK = LIGHT - HYSTERESIS
9ON_IMAGE = Image('99999:99999:99999:99999:99999')
10OFF_IMAGE = Image('00000:00000:00900:00000:00000')
11timing = False
12start_time = 0
13total_time = 0
14reading = display.read_light_level()
15sleep(1000)
16
17def show_number(n):
18    # Make number display the same as MakeCode
19    if len(str(n)) == 1:
20        display.show(n)
21    else:
22        display.scroll(n)
23
24while True:
25    reading = display.read_light_level()
26    if reading < DARK:
27        if timing:
28            # it has just gone dark, update timer for 'on' time
29            end_time = running_time()
30            total_time += (end_time - start_time)
31            timing = False
32        
33    elif reading >= LIGHT:
34        if not timing:
35            # it has just gone light, start the timer
36            start_time = running_time()
37            timing = True
38        
39    if button_b.was_pressed():
40        # calculate and display cumulative time in minutes
41        minutes = total_time / 60000
42        if timing:
43            # adjust live for current ON time
44            minutes += (running_time() - start_time) / 60000
45        display.clear()
46        show_number(round(minutes))  # whole numbers only
47        sleep(500)
48
49    # update the display with the ON/OFF state
50    if timing:
51        display.show(ON_IMAGE)
52    else:
53        display.show(OFF_IMAGE)
54    sleep(1000)
55
56        3. korak: Unaprijedi
- Promijeni prikaz na LED zaslonu kako bi baterije dulje trajale ili smanji osvjetljenje na zaslonu.
 - Izmjereno vrijeme upotrijebi za izračun potrošnje električne energije i koliko bi to iznosilo. Detalji su navedeni u projektu Kalkulator troškova za energiju
 - Isti kôd iskoristi za mjerenje sati sunčanog vremena. Iskoristi projekt Mjerač svjetla za izračun razine svjetla kada sunce sja na micro:bit i kada je oblačno. Bilo bi dobro micro:bit smjestiti u neku kutiju s prozirnim poklopcem koji raspršuje svjetlo, a kutija štiti micro:bit od kiše, to može biti i plastična kutija za hranu.
 
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.