Skip to content

Activité

Minuteur d'énergie lumineuse

Avancé | MakeCode, Python | Boutons, Capteur de luminosité, Écran LED | 13 Climat, Capteurs, Entrée / Sortie, Logique booléenne, Variables

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Chronométrez combien de temps les lampes sont allumées pour suivre votre consommation d'énergie. Vous pourriez également utiliser ce projet pour suivre les heures de lever et de coucher du soleil dans un projet de station météorologique.

Ce projet s’inscrit dans une série de projets visant à proposer des activités de résolution de problèmes et de prototypage conçues pour explorer la technologie, par exemple des solutions aux défis des Objectifs mondiaux pour le développement durable.

Ce que vous apprendrez

  • comment utiliser des capteurs et du code pour surveiller les événements du monde réel
  • placez un enregistreur de données pour enregistrer des données fiables
  • collectez et assemblez des données au fil du temps pour repérer les modèles d'utilisation de l'énergie
  • interprétez et analysez les données afin d’effectuer des changements de comportement
  • comment les variables peuvent être modifiées par un utilisateur pour configurer un système avant de l'utiliser

Comment l’utiliser 

  • D'abord utilisez le projet de compteur d'énergie lumineuse pour prendre des mesures lorsque vos lumières sont allumées et éteintes. Assurez-vous de le faire au même endroit et dans les mêmes conditions d'éclairage que là où vous placerez votre micro:bit de surveillance, et assurez-vous que la lumière du jour ne déclenche pas une fausse lecture comme si vos lumières étaient allumées.
  • Mettez votre mesure de la lumière dans le code où la variable LIGHT est définie. Nous vous avons donné le numéro 100, mais vous devrez probablement le modifier avant de téléverser le code sur votre micro:bit.
  • Attachez un pack de piles et placez votre micro:bit sous la lampe que vous voulez surveiller. Vous devriez voir un point sur l'écran lorsque la lampe est éteinte, et l'écran s'allume lorsque votre lampe est allumée. Si cela ne fonctionne pas, envisagez d'utiliser à nouveau le projet de compteur de lumière pour mesurer le niveau de lumière lorsque la lampe est allumée, ou déplacez la micro:bit.
  • La micro:bit chronomètre et quand vous appuyez sur le bouton B, elle montrera combien de temps la lampe a été allumée, en minutes.

Comment ça marche

  • Le programme utilise une variable booléenne appelée timing pour piloter le programme. Les variables booléennes ne peuvent avoir que deux valeurs : vrai ou faux.
  • Si la lecture du capteur de lumière est supérieure au niveau que vous avez défini, elle démarre le minuteur et allume l'écran LED. S'il tombe en dessous de ce niveau, il arrête le minuteur et affiche un point sur l'écran.
  • Ce projet utilise l'hystérésis pour s'assurer que le minuteur ne s'allume et ne s'éteint pas trop souvent lorsque le niveau de lumière change légèrement autour du seuil pour déclencher le minuteur. Il crée une plus grande bande autour du seuil qui doit être franchie avant que le minuteur ne soit allumé ou éteint.
  • L'hystérésis est une caractéristique courante dans les systèmes de contrôle qui utilisent des capteurs, par exemple dans les systèmes de chauffage qui ont un thermostat. Si vous réglez votre thermostat à une certaine température, vous ne voulez pas que le chauffage s'allume et s'éteigne à plusieurs reprises très rapidement lorsque la température se situe autour du nombre que vous avez défini. L'hystérésis empêche que cela se produise.

Ce dont vous aurez besoin

  • micro:bit
  • MakeCode ou éditeur Python
  • pack de piles (recommandé)

Étape 2 : Programme-le

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        

Étape 3 : Améliore-le

  • Modifiez les motifs affichés sur l'écran LED pour prolonger la durée de vie des piles, ou assombrissez l'écran.
  • Utilisez le temps enregistré pour déterminer combien d'électricité vous avez utilisé et combien cela peut coûter. Les détails se trouvent dans notre projet de calculatrice de coût d'énergie
  • Utilisez le même code pour mesurer les heures de soleil. Utilisez le projet de compteur de lumière pour calculer la mesure de lumière lorsque le soleil brille sur le micro:bit et quand il fait nuageux. Vous devrez peut-être créer un boîtier pour votre micro:bit avec un couvercle translucide pour laisser passer la lumière et protéger la micro:bit de la pluie, par exemple un vieux récipient en plastique.