Skip to content

活動

能源成本計算機

進階 | MakeCode, Python | LED 螢幕, 光感應器, 按鈕 | 13 氣候, 乘法, 布爾邏輯, 感應器, 測量, 變數, 輸入輸出, , 除法

步驟1:製作

它是什麼?

這是幫助您收集關於您的能源使用數據的三個項目中的第三個。 學會如何計算能源成本,並製作一個衡量電燈運行成本的計時器。

這個項目是一個系列的一部分,提供解決問題和原型設計的活動來探索作為可持續發展的全球目標的解決方案。

介紹

編程指引

您將學到什麼

  • 如何利用數學來轉換單位:瓦特到千瓦以及分鐘到小時
  • 如何從以瓦特 (W) 為單位的電力和時間來計算以千瓦時 (kWh) 為單位的能源使用量。
  • 如何利用變數來儲存用戶在使用之前對系統進行組態設定的數值。

如何使用它

在上一個項目能源燈計時器中,測量了一盞燈保持開啓的時間。 同一項目的特殊版本以類似的方式工作,但是它是計算並顯示一個燈泡使用的能量的成本,而不是時間。
要使用它,您必須知曉 3 個數字:

  • 當燈被打開時的讀數。 這是您利用第一個項目,能量燈光計並且運用於能量燈光計時器項目,所找到的數字。
  • 您的燈的瓦數是多少。 這通常是印刷在燈泡上。
  • 以及您的電費價格,每千瓦的單位成本

該項目會將這三個數字儲存到變數中,您必須在開始這項目前編輯這些數字。

像之前一樣使用燈光計項目來獲得一個數字並存入 LIGHT 變數中。

查看電燈泡的瓦數。 記住,燈泡可能會變得很燙,而且通常接著電,所以請成年人幫忙做這件事。把這個數字加入 WATTS 變數中。

最後將每千瓦的成本加入 COSTPERKWH 變數。 您可能需要請一位成年人為您找到這個數字,或者找出為您提供能源的單位並且在線上查詢他們的單位成本。

將此程式燒錄到 micro:bit 並接上電池組。 把這個計時器放在光源附近,micro:bit 會利用您給它的光照強度、燈泡瓦數和您的電費資訊,結合它內建的光照感測器及處理器的計時器讀數,來監測一段時間內的用電成本。

您可以在每天或每周的同一時間按下按鍵 B 來讀取成本。按下 micro:bit 背面的重設按鍵來重新設定,並再次按下按鍵 B 來檢查它是否已歸零。

記住這只是一顆燈泡,所以要考慮整棟大樓一整年的成本。
現在您有了能源使用的數據,您會如何去改變人們的行為,藉以節省能源和金錢並且幫助應對氣候變化?

運作方式

  • 該程式使用 micro:bit 的光感測器來計算一盞燈被打開的時間。
  • 您使用的能量是透過燈泡的功率乘以時間計算來獲得。 這是以每千瓦小時(kWh)為單位進行測量。 由於燈泡的功率通常是以瓦而不是千瓦來標記,因此程式會透過除以 1000 來完成從瓦到千瓦的單位換算:
    瓦 ÷ 1000 =千瓦
    舉例來說,一個 60 瓦的燈泡功率是 0.06 千瓦:
    60 瓦 ÷ 1000 = 0.06千瓦
  • 程式也會轉換時間單位。 將時間除以 60,從分鐘變成小時數。 因此:
    600 分鐘 ÷ 60 = 10 小時
  • 為了計算出某特定時期的能源成本,該程式將能源使用量(千瓦)乘以每千瓦的單位成本。
  • 如果我的能量成本為 £0.16 每千瓦時,那麼 60 瓦燈泡點亮 10 個小時將花費:
    0.6kWh × 16p = 9.6p

你需要的東西

  • micro:bit
  • MakeCode 或, Python 編輯器
  • 電池組(推薦)

步驟2:編碼

1from microbit import *
2display.show('L')
3
4LIGHT = 114  # <<< Enter your 'measured' reading here
5WATTS = 1000  # <<< Enter your bulb wattage here
6COSTPERKWH = 0.18  # <<< Enter unit electricity cost here
7
8HYSTERESIS = 8
9LIGHT -= (HYSTERESIS/2)
10DARK = LIGHT - HYSTERESIS
11ON_IMAGE = Image('99999:99999:99999:99999:99999')
12OFF_IMAGE = Image('00000:00000:00900:00000:00000')
13timing = False
14start_time = 0
15total_time = 0
16reading = display.read_light_level()
17sleep(1000)
18
19def calc_cost(m):
20    # Calculate cost of electricity for this number of mins
21    kw = WATTS / 1000.0  # answer as a decimal
22    hours = m / 60.0  # answer as a decimal
23    kwh = kw * hours
24    cost = kwh * COSTPERKWH
25    return cost  # as pounds and pence
26    
27def show_number(n):
28    # Scroll number as 3 decimal places
29    display.scroll("%.3f" % n)
30
31while True:
32    reading = display.read_light_level()
33    if reading < DARK:
34        if timing:
35            # it has just gone dark, update timer for 'on' time
36            end_time = running_time()
37            total_time += (end_time - start_time)
38            timing = False
39        
40    elif reading >= LIGHT:
41        if not timing:
42            # it has just gone light, start the timer
43            start_time = running_time()
44            timing = True
45        
46    if button_b.was_pressed():
47        # calculate and display cumulative cost in pounds and pence
48        minutes = total_time / 60000
49        if timing:
50            # adjust live for current ON time
51            minutes += (running_time() - start_time) / 60000
52        display.clear()
53        show_number(calc_cost(minutes))
54        sleep(500)
55
56    # update the display with the ON/OFF state
57    if timing:
58        display.show(ON_IMAGE)
59    else:
60        display.show(OFF_IMAGE)
61    sleep(1000)
62
63        

步驟3:進階

  • 使用多個 micro:bit 來測量不同地方的照明成本。
  • 使用無線電將成本數據傳到另一個 micro:bit 並遠端重設計時器。