Skip to content

Activiteit

Energie lichtmeter

Gevorderd | MakeCode, Python | Knoppen, LED scherm, Licht sensor | 13 Klimaat, Boolean logica, Invoer/Uitvoer, Sensoren, Variabelen

Stap 1: Maak het

Wat is het?

Meet hoe lang je lampen aan blijven om je energieverbruik bij te houden. Je kunt dit project ook gebruiken om uren zonneschijn in een weerstation project bij te houden.

Dit project maakt deel uit van een serie die is gemaakt om probleemoplossing en prototype activiteiten aan te bieden die zijn ontworpen om technologie te onderzoeken als een oplossing voor de uitdagingen van de Werelddoelstellingen voor duurzame ontwikkeling.

Wat je gaat leren

  • hoe sensoren en code te gebruiken om gebeurtenissen in de echte wereld te volgen
  • plaats een datalogger om betrouwbare gegevens vast te leggen
  • verzamel en vergaar gegevens in de loop van de tijd om patronen in energieverbruik te herkennen
  • interpreteren en analyseren van gegevens om gedrags wijzigingen door te voeren
  • hoe variabelen door een gebruiker kunnen worden gewijzigd om een systeem te configureren voor afgaand aan gebruik

Hoe het te gebruiken

  • Gebruik eerst het project Energielichtmeter om de meetwaarden te achterhalen wanneer je lampen aan en uit zijn. Zorg ervoor dat je dit op dezelfde plaats en in dezelfde lichtomstandigheden doet als waar je jouw monitoring micro:bit plaatst, en zorg ervoor dat daglicht geen valse meting veroorzaakt doordat lichten aan zijn.
  • Zet je lichtmeting in de code waar de LICHT variabele is ingesteld. We hebben je het nummer 100 gegeven, maar je zult dit waarschijnlijk moeten veranderen voordat je de code op je micro:bit flasht.
  • Bevestig een batterijpakket en plaats je micro:bit onder de lamp die je wilt monitoren. Je zou een stip op het display moeten zien wanneer het licht uit is, en het display licht op wanneer jouw licht aan is.
    Als dit niet werkt, overweeg dan om het licht meter project opnieuw te gebruiken om het lichtniveau te vinden wanneer het licht aan is, of om de micro:bit te verplaatsen.
  • De micro:bit houdt de timing bij en wanneer je op knop B drukt, wordt weergegeven hoe lang het licht in minuten is ingeschakeld.

Zo werkt het

  • Het programma gebruikt een Booleaanse variabele genaamd timing om het programma te besturen. Booleaanse variabelen kunnen maar twee waarden hebben: waar of onwaar.
  • Als de meetwaarde van de lichtsensor hoger is dan het niveau dat je hebt ingesteld, wordt de timer gestart en gaat het LED display branden. Als het onder dit niveau komt, stopt het de timer en verschijnt er een stip op het display.
  • Dit project maakt gebruik van hysterese om ervoor te zorgen dat de timer niet te vaak in- en uitschakelt wanneer het lichtniveau iets verandert rond de drempel voor het activeren van de timer. Het creëert een grotere band rond de drempel die moet worden overschreden voordat de timer wordt in- of uitgeschakeld.
  • Hysterese is een veelvoorkomend kenmerk in regelsystemen die gebruik maken van sensoren, bijvoorbeeld in verwarmingssystemen met een thermostaat. Als je je thermostaat op een bepaalde temperatuur zet, wil je niet dat de verwarming steeds weer heel snel aan en uit gaat als de temperatuur rond het door jou ingestelde aantal schommelt. Hysterese voorkomt dat dit gebeurt.

Benodigdheden

  • micro:bit
  • MakeCode of Python editor
  • Batterij pakket (aanbevolen)

Step 2: Codeer het

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        

Stap 3: Verbeter het

  • Verander de patronen die op het LED display worden weergegeven om de batterijen langer mee te laten gaan, of dim het display.
  • Gebruik de geregistreerde tijd om uit te rekenen hoeveel elektriciteit je hebt verbruikt en wat dit kan kosten. Details staan in ons project Energie kosten calculator
  • Gebruik dezelfde code om uren zonlicht te meten. Gebruik het Licht meter project om de lichtwaarde te berekenen als zon schijnt op de micro:bit en wanneer het bewolkt is. Je moet mogelijk een container maken voor je micro:bit met een deksel om het licht te verwisselen en de micro:bit te beschermen tegen regen, bijvoorbeeld een oude plastic voedsel bak.