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éthode : Premiè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 :
# Mini projet : alerte canicule# Olivier Lecluse 11/2019# Version 1from microbit import *
# Variables globalesseuil = 20
# Boucle principalewhile True:
if temperature() > seuil:
display.show(Image.SAD)
    else:display.show(Image.HAPPY)
Méthode : Seconde 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").
# Mini projet : alerte canicule# Olivier Lecluse 11/2019# Version 2from microbit import *
# Variables globalesseuil = 20
# Boucle principalewhile True:
temp = temperature()
if temp > seuil:
display.show(Image.SAD)
    else:display.show(Image.HAPPY)
    # Detection de la secousseif accelerometer.was_gesture("shake"):
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éthode : Troisiè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
# Mini projet : alerte canicule# Olivier Lecluse 11/2019# Version 3from microbit import *
# Variables globalesseuil = 20
# Boucle principalewhile True:
temp = temperature()
if temp > seuil:
display.show(Image.SAD)
    else:display.show(Image.HAPPY)
    # Detection de la secousseif accelerometer.was_gesture("shake"):
display.show(temp)
    # Reglage du seuilif button_a.was_pressed():
seuil += 1
display.show(seuil)
if button_b.was_pressed():
seuil -= 1
display.show(seuil)
Complément : Pour 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