第 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并远程重置计时器。
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.