Alerte canicule ! - niveau facile

Dans ce mini-projet, nous allons lire régulièrement la température grâce au capteur de température intégré à la carte microbit, et afficher une alerte à l'écran si la température atteint un niveau trop élevé.

Dans cet exemple simple nous mettrons en pratique l'utilisation de capteurs et d'actionneurs et interagirons avec l'utilisateur par le biais des boutons. Le projet commencera par une première version très simple puis évoluera petit à petit avec de nouvelles fonctionnalités.

MéthodePremière version

Nous allons commencer par interroger le capteur et afficher l'alerte si la température dépasse la valeur inscrite dans la variable seuil. Voici le code de cette première version :

1
# Mini projet : alerte canicule
2
# Olivier Lecluse 11/2019
3
# Version 1
4
5
from microbit import *
6
7
# Variables globales
8
seuil = 20
9
10
# Boucle principale
11
while True:
12
    if temperature() > seuil:
13
        display.show(Image.SAD)
14
    else:
15
        display.show(Image.HAPPY)

MéthodeSeconde version

Nous pouvons regretter de ne pas connaître la température. Dans cette seconde version, nous allons faire appel à l'accéléromètre intégré à la carte afin de détecter si la carte a été secouée. Si une secousse a été enregistrée, alors la température sera affichée à l'écran.

Indication : La détection de secousse de la carte est très simple à faire puis qu'il suffit de tester la condition accelerometer.was_gesture("shake").

1
# Mini projet : alerte canicule
2
# Olivier Lecluse 11/2019
3
# Version 2
4
5
from microbit import *
6
7
# Variables globales
8
seuil = 20
9
10
# Boucle principale
11
while True:
12
    temp = temperature()
13
    if temp > seuil:
14
        display.show(Image.SAD)
15
    else:
16
        display.show(Image.HAPPY)
17
18
    # Detection de la secousse
19
20
    if accelerometer.was_gesture("shake"):
21
        display.show(temp)

Complément

L'utilisation des gestes sur la carte micro:bit est très simple comme on vient de le voir. Elle est aussi très pratique car elle évite de devoir faire appel aux boutons (il n'y en a que 2 sur la carte). Les gestes détectables par la cartes sont en comparaison assez nombreux ce qui offre des opportunités intéressantes en termes d'Interface Homme-Machine.

Les gestes reconnus sont : up, down, left, right, face up, face down, freefall, 3g, 6g, 8g, shake

MéthodeTroisième version

A présent, nous allons vouloir modifier la valeur du seuil d'alerte afin de le régler au degré près. Puisque nous n'avons pas encore utilisé les boutons ceux-ci sont disponibles. Nous allons donc utiliser le bouton A pour diminuer le seuil d'un degré, et le bouton B pour augmenter le seuil d'un degré. Le nouveau seuil sera alors affiché.

Voici le code correspondant à cette 3ème version

1
# Mini projet : alerte canicule
2
# Olivier Lecluse 11/2019
3
# Version 3
4
5
from microbit import *
6
7
# Variables globales
8
seuil = 20
9
10
# Boucle principale
11
while True:
12
    temp = temperature()
13
    if temp > seuil:
14
        display.show(Image.SAD)
15
    else:
16
        display.show(Image.HAPPY)
17
18
    # Detection de la secousse
19
20
    if accelerometer.was_gesture("shake"):
21
        display.show(temp)
22
    
23
    # Reglage du seuil
24
    if button_a.was_pressed():
25
        seuil += 1
26
        display.show(seuil)
27
    if button_b.was_pressed():
28
        seuil -= 1
29
        display.show(seuil)

ComplémentPour aller plus loin

Nous avons donc vu 3 déclinaisons possibles autour de la problématique de détection d'un seuil de température, de la plus simple à la plus élaborée. Ce projet modeste est réalisable par des élèves de seconde dans le cadre de l'enseignement SNT.

Il est possible d'approfondir encore davantage la question pour des élèves désireux d'aller plus loin ou très à l'aise avec la programmation et les possibilités offertes par la carte. On peut citer quelques évolutions possibles :

  • Déclencher une alerte sonore en cas de dépassement de la température seuil. On pourra se référer à la page dédiée à la gestion du son sur micro:bit

  • Calculer la température moyenne sur une période (une heure, une journée)

  • Déclencher un ventilateur en cas de dépassement de seuil afin de réguler la température (par exemple en commandant un relais)

  • Envoyer une notification par radio à une seconde carte distante en cas de dépassement de seuil

  • Mettre en place plusieurs capteurs communiquant par radio et afficher les capteurs qui sont en surchauffe