Skip to content

Aktywność

Miernik światła

Zaawansowany | MakeCode, Python | Czujnik światła, Przyciski, Wyświetlacz LED | 13 Klimat, Czujniki, Logika boolowska, Wejście/Wyjście, Zmienne

Krok 1: Wykonaj to

Co to jest?

Czas, jak długo świecą się Twoje światła, aby śledzić zużycie energii. Możesz również użyć tego projektu do śledzenia godzin nasłonecznienia w projekcie stacji pogodowej.

Projekt ten jest częścią serii stworzonej w celu zaoferowania działań w zakresie rozwiązywania problemów i prototypowania, do zbadania nowych technologii jako rozwiązania wyzwań Globalnych Celów Zrównoważonego Rozwoju.

Czego się nauczysz

  • jak używać czujników i kodu do monitorowania wydarzeń w otaczającym nas świecie
  • umieść rejestrator danych do zapisania wiarygodnych wartości
  • zbierz i zestaw dane z upływem czasu, aby wykryć wzorce zużycia energii
  • zinterpretuj i zanalizuj dane, aby mieć wpływ na zmianę zachowań
  • jak zmienne mogą być modyfikowane przez użytkownika, aby skonfigurować system przed użyciem

Jak go używać

  • Najpierw użyj Projektu miernika energi światła, aby otrzymać odczyty, gdy Twoje światła są włączone i wyłączone. Upewnij się, że robisz to w tym samym miejscu i warunkach oświetlenia, w którym umieścisz monitorowanie micro:bit, i upewnij się, że światło dzienne nie powoduje fałszywego odczytu włączonych świateł.
  • Umiesć odczyt światła do kodu, w którym ustawiona jest zmienna LIGHT. Ustawilismy wartość 100, ale prawdopodobnie będziesz musiał to zmienić przed wgraniem kodu na swój micro:bit.
  • Załącz pakiet baterii i umieść swój micro:bit pod źródłem światła, które chcesz monitorować. Powinieneś zobaczyć kropkę na ekranie, gdy światło jest wyłączone, a światłą wyświetlacza po włączeniu światła. Jeśli to nie zadziała, rozważ ponowne użycie Projektu licznika światła, aby znaleźć poziom światła, gdy światło jest włączone, lub przesuń micro:bit.
  • micro:bit zmierzy czas i po naciśnięciu przycisku B pokaże, jak długo światło zostało włączone w minutach.

Jak to działa

  • Program używa zmiennej logicznej o nazwie timing do kontroli programu. Zmienne logiczne mogą mieć tylko dwie wartości: prawda (true) lub fałsz (false).
  • Jeśli odczyt czujnika światła jest powyżej ustawionego poziomu, to uruchamia timer i zapala wyświetlacz LED. Jeśli spadnie poniżej tego poziomu, to zatrzymuje czasomierz i pokazuje kropkę na wyświetlaczu.
  • Ten projekt używa histerezy, aby zapewnić, że zegar nie włącza się i wyłącza zbyt często, gdy poziom światła zmienia się nieznacznie blisko progu uruchamiania zegara. Tworzy większe pasmo wokół progu, które musi zostać przekroczone przed włączeniem lub wyłączeniem timera.
  • Hystereza jest zwykłą cechą systemów sterowania, wykorzystujących czujniki, na przykład w systemach ogrzewania wyposażonych w termostat. Jeśli ustawisz termostat na określoną temperaturę, nie chcesz, aby ogrzewanie było wielokrotnie włączane i wyłączane zaraz po tym, gdy wartość zmieni się w stosunku do ustawionej temperatury. Histereoza zapobiega temu zjawisku.

Czego potrzebujesz

  • micro:bit
  • MakeCode lub edytor Pythona
  • pakiet baterii (zalecane)

Krok 2: Zakoduj to

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        

Krok 3: Ulepsz to

  • Zmień wzory wyświetlane na wyświetlaczu LED, aby baterie wytrzymały dłużej, lub przyciemnij wyświetlacz.
  • Użyj zarejestrowanego czasu świecenia do określenia ilości zużytej energii elektrycznej i oblicz, ile to może kosztować. Szczegóły znajdują się w naszym Projekcie kalkulatora kosztów energii
  • Użyj tego samego kodu, aby zmierzyć godziny nasłonecznienia. Użyj projektu miernika światła, aby obliczyć wartość nasłonecznienia, gdy słońce świeci na micro:bit i kiedy jest pochmurnie. Konieczne może być stworzenie pojemnika dla swojego micro:bit za pomocą przezroczystej pokrywy, aby rozproszyć światło i chronić micro:bit przed deszczem, uzywając na przykład starego plastikowego pojemnika na żywność.