Passo 1: Faz tu mesmo
O que é isto?
Calcula quanto tempo as tuas luzes ficam acesas para fazeres a monitorização do teu consumo de energia. Também podes usar este projeto para calcular as horas de exposição solar numa estação meteorológica.
Este projeto é parte de uma série que oferece atividades que procuram solucionar problemas e criar protótipos para explorar a tecnologia enquanto solução para os desafios dos Objetivos de Desenvolvimento Sustentável.
O que vais aprender
- como usar sensores e código para monitorizar eventos do mundo real
- colocar um registador de dados para gravar dados fiáveis
- Recolhe e compara dados ao longo de um período de tempo para identificar padrões de consumo energético
- interpreta e analiza os dados de maneira a criar mudanças de comportamento
- como é que as variáveis podem ser alteradas por um utilizador para configurar um sistema antes de este ser usado
Como usá-lo
- Primeiro usa o projeto medidor de energía luminosa para descobrir quando é que as luzes estão ligadas ou desligadas . Assegura-te de fazer isto no mesmo local, com as mesmas condições de luz onde vais colocar o micro:bit; e certifica-te de que a luz do dia não desencadeia uma leitura falsa como se as lâmpadas estivessem ligadas.
- Coloca a tua leitura de luz no código onde a variável LIGHT está definida. Definimos o número 100, mas é provavel que tenhas de alterar isso antes de descarregares o código no teu micro:bit.
- Liga as pilhas ao micro:bit e depois coloca-o debaixo da luz que queres monitorizar. Devias ver um ponto de luz no ecrã de LEDs quando as luzes estão apagadas e quando as luzes estão acesas, todo o ecrã devia acender. Se não estiver a funcionar, considera usar o projeto medidor de luz novamente para encontrar o nível da luz quando esta estiver acesa, ou muda o micro:bit de sítio.
- O micro:bit vai guardar o tempo de espera; e quando carregares no botão B vai aparecer escrito o tempo (em minutos) que a luz esteve acesa.
Como é que funciona
- O programa usa uma variável booleana chamada timing (temporizador) para controlar o programa. Variáveis booleanas só podem ter dois valores: true (verdadeiro) ou false (falso).
- Se a leitura do sensor de luz estiver acima do valor que tu definiste, a contagem de tempo vai iniciar e o LED acende. Se a leitura for abaixo do valor definido, o temporizador pára e aparece um ponto no ecrã.
- Este projeto usa a histerese para assegurar-se que o temporizador não se desliga e liga com muita frequência quando o nivel de luz muda ligeiramente perto do valor estabelecido para iniciar o temporizador. Assim é criada àrea maior perto do nivel que terá de ser ultrapassada antes do o temporizador se ligar ou desligar.
- A histerese é uma característica comum dos sistemas de controle que usam sensores; por exemplo, em sistemas de aquecimento que têm termostato. Se definires o teu termostato para uma certa temperatura, não vais querer que o aquecimento esteja sempre a ligar-se e a desligar-se repetidamente quando a temperatura está perto do número que definiste. A histeresse impede que isso aconteça.
Do que é que precisas
- micro:bit
- Editor MakeCode ou Python
- suporte de pilhas (recomendado)
Passo 2: Cria o teu código
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
Passo 3: Melhora-o
- Altera os padrões mostrados no ecrã de LEDs para fazer com que as pilhas durem mais tempo, ou então diminui o brilho do ecrã LED.
- Usa o tempo registado para descobrir quanta eletricidade usaste e quanto é que pode custar. Os detalhes estão no nosso projeto de calculadora de custo energético
- Usa o mesmo código para medir as horas da luz solar. Usa o projeto medidor de luz para calcular o valor da luz quando o sol bate no micro:bit ou quando o tempo está na nublado. Talvez seja necessário fazer uma caixa para o teu micro:bit com uma tampa translúcida para dissipar a luz e proteger o micro:bit da chuva. Uma caixa plástica reciclada, por exemplo.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.