Skip to content

Активност

Мерач енергије светлости

Напредно | MakeCode, Python | Лед екран, Сензор светла, Тастери | 13 Клима, Логичке операције, Променљиве, Сензори, Улаз/излаз

Корак 1: Уради

Шта је ово?

Време колико дуго су ваша светла укључена како бисте пратили потрошњу енергије. Овим пројектом такође можете да пратите колико је сунчаних сати у пројекту метеоролошка станица.

Овај пројекат део је серије направљене како би се понудиле активности за решавање проблема и дизајнирању прототипова за истраживање технологије као решења за изазове Глобалних циљева одрживог развоја.

Шта сте научили

  • како користити сензоре и кôд за надгледање догађаја из свакодневног живота
  • поставите снимач података како бисте снимили поуздане податаке
  • прикупљати и упоређивати податке током времена да би се уочили обрасци у коришћењу енергије
  • тумачити и анализирати податке како би се извршиле промене у понашању
  • како корисник може да промени променљиве како би конфигурисао систем пре употребе

Како употребљавати

  • Прво користите Пројекат мерач енергетске осветљености да бисте сазнали очитавања када се сијалица пали и гаси. Обавезно то радите на истом месту и у условима осветљења у којима ћете поставити надзорни micro:bit и уверите се да дневно светло не покреће лажно очитавање укључених сијалица.
  • Поставите очитавање осветљења у кôд где је постављена променљива СВЕТЛО. Дали смо вам број 100, али вероватно ћете морати да промените ово пре него што пребаците кôд на ваш micro:bit.
  • Повежите батерију и поставите micro:bit под светло које желите да надгледате. Требало би да видети тачку на екрану када је светло искључено, а екран светли када је светло укључено. Ако ово не успе, размислите о поновном коришћењу пројекта Мерач светла да бисте пронашли ниво светлости када је светло укључено или померите micro:bit.
  • Micro:bit ће чувати време и када притиснете дугме Б, приказаће се колико дуго је светло било укључено у минутима.

Како то ради

  • Овај програм користи логичку променљиву која се назива timing која контролише програм. Логичке променљиве могу имати само две вредности: тачно или нетачно.
  • Ако је очитавање светлосног сензора изнад нивоа који сте поставили, покреће се тајмер и светли ЛЕД екран. Ако падне испод овог нивоа, зауставља се тајмер и приказује се тачка на екрану.
  • Овај пројекат користи хистерезис да би се осигурало да се тајмер не укључује и искључује пречесто када се ниво светлости незнатно мења око прага за покретање тајмера. Ствара већи опсег око прага који треба да се пређе пре укључивања или искључивања тајмера.
  • Хистереза је уобичајена карактеристика у контролним системима који користе сензоре, на пример у системима грејања који имају термостат. Ако термостат подесите на одређену температуру, не желите да се грејање непрекидно укључује и искључује често када се температура креће око вредности коју сте поставили. Хистереза спречава да се то догоди.

Шта вам је потребно

  • micro:bit
  • MakeCode или Python уређивач
  • паковање батерија (препоручено)

Корак 2: Програмирај

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: Унапреди

  • Промените обрасце приказане на ЛЕД екрану како би батерије дуже трајале, или затамните екран.
  • Искористите забележено време да утврдите колико сте електричне енергије потрошили и колико та утрошена електрична енергија може да кошта. Детаљи су у нашем Пројекту калкулатор трошкова енергије
  • Користите исти кôд за мерење сати сунчеве енергије. Користите пројекат Мерач светла како бисте израчунали вредност светлости када сунце сија на micro:bit и када је облачно. Можда ћете морати да направите посуду за свој micro:bit са прозирним поклопцем против дифузног светла и заштитили micro:bit од кише, на пример можете да искористите стару пластичну посуду за храну.