Skip to content

活动

能源成本计算器

高级 | MakeCode, Python | LED显示器, 光传感器, 按钮 | 13 气候, 乘法, 传感器, 变量, 布尔逻辑, 测量, 输入/输出, 金钱, 除法

第 1 步:制作

它是什么?

这是帮助你收集能源使用数据的三个项目中的第三个。 学习如何计算能源成本,制作计时器来测量电灯运行的成本。

本项目是一系列项目的一部分,旨在提供问题解决和原型设计活动,探索全球可持续发展目标的技术解决方案。

介绍

编程指南

学习目标

  • 如何使用数学进行单位换算:瓦转换到千瓦,分钟转换到小时
  • 如何将测量到的以瓦 (W) 和时间计量的功率,转换成以千瓦每小时 (kWh) 计量的能源功率。
  • 如何使用变量来存储用户在使用系统前对其参数进行设置。

使用方法

在上一个项目“能源灯计时器”中,测量了一盏灯保持开启的时间。 这一项目是上一项目的延续,以类似的方式工作,只是这次计算和显示的是灯泡所使用的能量成本,而非时间。
要使用它,你需要知道3个数字:

  • 灯被打开时的读数。 这是你在第一个项目、能源灯计数器项目中找到并使用的数字
  • 你的灯是几瓦的。 这通常印在灯泡上。
  • 以及你的电费价格,即每千瓦时的单位成本

程序将这三个数字存储在变量中,你需要在开始本项目前先编辑这些数字。

像以前一样使用灯光计项目来获得一个数字,存入LIGHT变量。

看看灯泡来找出它的瓦数。 记住灯泡可能变得很烫,一般也通着电,请找一个成年人帮你做这件事。将瓦数赋值给WATTS变量。

最后将每千瓦时的成本赋值给COSTPERKWH变量。 你可能需要问一个成年人来为你找到电力成本, 或找到你的电力提供商并在线查看他们的单位价格。

将此程序下载到micro:bit并连上一个电池盒。 将此计时器放在光源附近,micro:bit将使用你提供的关于光强度的信息、 灯泡瓦数和你的电费成本,与内置光线传感器和处理器的计时器(时钟)读数相结合,用于监测一段时间内使用的电费。

你可以每天或每周在同一时间按下按键B来读取电费值。通过按下micro:bit背面的Reset(重置)按键可重置电费,再次按下按键B可将读数清零。

记住这只测算了一个灯泡的电力成本,可以考虑整栋房子一年的耗电成本。
现在你得到了一些关于能源使用的数据,你将如何帮助改变人们的行为以节省能源和资金,进而帮助应对气候变化?

工作原理

  • 此程序使用micro:bit的光线传感器来对灯保持开启的时间进行计时。
  • 你使用的能量通过灯泡的功率乘以时间计算获得。 这是以千瓦每小时 (kWh) 为单位进行测量。 由于灯泡的功率通常以瓦而不是千瓦来标记, 程序通过除以1000来完成从瓦到千瓦的单位换算:
    瓦÷ 1000=千瓦
    举例来说,一个60 瓦的灯泡功率是0.0 6千瓦:
    60 W ÷ 1000 = 0.06千瓦
  • 程序也转换时间单位。 将时间除以60, 从分钟变成小时数。 因此:
    600分钟÷ 60 = 10小时
  • 确定特定时间内所用能源的成本, 程序将以千瓦时为单位的能量使用量乘以每千瓦时的单位成本。
  • 如果我的能量成本为 £0.16(0.16 英镑,16便士)每千瓦时,那么60瓦灯泡点亮10个小时将花费:
    0.6 kWh × 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并远程重置计时器。