Commandez votre cafetière avec le Micro:Bit

Nous avons déjà utilisé un Arduino pour contrôler une cafetière avec des boutons, une télécommande infrarouge, un smartphone Android et même un Minitel. Maintenant, il est temps d’utiliser le MicroBit.

Une cafetière pilotée par Microbit

Matériel nécessaire

Schéma de branchement

Le schéma ressemble beaucoup à celui de l’Arduino. Mais pour faciliter les branchements, j’ai décidé d’utiliser seulement les 3 sorties principales du Micro:bit (P0, P1 et P2). L’alimentation électrique de la cafetière ne sera donc pas gérée par le module relais.

Schéma de branchement de la cafetière contrôlée par Microbit avec 2 alimentations différentes.

Attention : le Microbit fonctionne en 3,3V alors que le module relais demande une alimentation de 5V pour fonctionner. Vous devez donc utiliser 2 alimentations séparées. Ça ne pose pas vraiment de soucis à condition de relier ensembles les bornes (-), comme sur le schéma.

Vous pouvez aussi utiliser ce type de module qui se connecte directement à la breadboard et peut fournir simultanément 2 tensions différentes (3,3 et 5V), en déplaçant les cavaliers.

Module d'alimentation 3,3 V ou 5V pour breadboard (platine d'essai).

Le schéma légèrement différent.

Schéma de branchement de la cafetière contrôlée par Microbit avec un module d'alimentation de breadboard.

Code

Le programme est très simple à utiliser. Vous mettez tous les éléments sous tension et vous appuyez sur le bouton A pour faire un café simple ou sur le bouton B si vous souhaitez un café double.

Code Makecode pour contrôler la cafetière avec un MicroBit.
# Appel de la bibliothèque "microbit"
from microbit import *
# Les boutons ne sont pas appuyes
pin0.write_digital(1)
pin1.write_digital(1)
pin2.write_digital(1)
# Définition des temps de chauffe (en sec)
# Ajustez ces valeurs suivant votre cafetiere
CHAUFF_CAFFETIERE = 90
SIMPLE_TASSE = 70
DOUBLE_TASSE = 100

# Fonctions
def SimpleTasse():
    # Affichage de la taille de la tasse
    display.show("1")
    # Allumage de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    # Chauffage de l'eau dans la cuve
    sleep(CHAUFF_CAFFETIERE * 1000)
    # Simple tasse (appui et relachement du bouton)
    pin1.write_digital(0)
    sleep(500)
    pin1.write_digital(1)
    # Préparation du cafe
    sleep(SIMPLE_TASSE * 1000)
    # Extinction de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    display.clear()
def DoubleTasse():
    # Affichage de la taille de la tasse
    display.show("2")
    # Allumage de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    # Chauffage de l'eau dans la cuve
    sleep(CHAUFF_CAFFETIERE * 1000)
    # Double tasse (appui et relachement du bouton)
    pin2.write_digital(0)
    sleep(500)
    pin2.write_digital(1)
    # Préparation du cafe
    sleep(DOUBLE_TASSE * 1000)
    # Extinction de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    display.clear()

# Boucle infinie
while True:
    if button_a.was_pressed():
        # Café simple
        SimpleTasse()
    elif button_b.was_pressed():
        # Café double
        DoubleTasse()

Si vous possédez un autre Microbit, vous pouvez l’utiliser pour télécommander la cafetière à distance.

Télécommande

Le programme est très court, il envoie simplement le message « 1 » ou « 2 » pour indiquer que l’on a appuyé sur le bouton A ou sur le bouton B.

Code Makecode pour télécommander la cafetière (avec un MicroBit).
# Appel de la bibliothèque "microbit"
from microbit import *
import radio
radio.config(group=1)
radio.on()
# Boucle infinie
while True:
    if button_a.was_pressed():
        # Café simple
        radio.send('1')
    elif button_b.was_pressed():
        # Café double
        radio.send('2')

Contrôle de la cafetière

Le code est presque identique à la 1ère version. Les boutons fonctionnent toujours, mais si le récepteur reçoit le message « 1 » ou « 2« , il réagit comme si vous aviez appuyé sur l’un des boutons.

Code Makecode du récepteur qui contrôle la cafetière (avec un MicroBit).
# Appel de la bibliothèque "microbit"
from microbit import *
import radio
# Les boutons ne sont pas appuyes
pin0.write_digital(1)
pin1.write_digital(1)
pin2.write_digital(1)
# Définition des temps de chauffe (en sec)
# Ajustez ces valeurs suivant votre cafetiere
CHAUFF_CAFFETIERE = 90
SIMPLE_TASSE = 70
DOUBLE_TASSE = 100

# Fonctions
def SimpleTasse():
    # Affichage de la taille de la tasse
    display.show("1")
    # Allumage de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    # Chauffage de l'eau dans la cuve
    sleep(CHAUFF_CAFFETIERE * 1000)
    # Simple tasse (appui et relachement du bouton)
    pin1.write_digital(0)
    sleep(500)
    pin1.write_digital(1)
    # Préparation du cafe
    sleep(SIMPLE_TASSE * 1000)
    # Extinction de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    display.clear()
def DoubleTasse():
    # Affichage de la taille de la tasse
    display.show("2")
    # Allumage de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    # Chauffage de l'eau dans la cuve
    sleep(CHAUFF_CAFFETIERE * 1000)
    # Double tasse (appui et relachement du bouton)
    pin2.write_digital(0)
    sleep(500)
    pin2.write_digital(1)
    # Préparation du cafe
    sleep(DOUBLE_TASSE * 1000)
    # Extinction de la cafetiere
    # (appui et relachement du bouton)
    pin0.write_digital(0)
    sleep(500)
    pin0.write_digital(1)
    display.clear()
# Programme
radio.config(group=1)
radio.on()
# Boucle infinie
while True:
    # Réception des messages
    message = radio.receive()
    # interpretation du message
    if message == '1':
        # Café simple
        SimpleTasse()
    elif message == '2':
        # Café double
        DoubleTasse()
    # Boutons
    if button_a.was_pressed():
        # Café simple
        SimpleTasse()
    elif button_b.was_pressed():
        # Café double
        DoubleTasse()
La cafetière pilotée par Microbit prépare un café.

Laisser un commentaire