IHM et objets connectés
Introduction
Un système embarqué qui se contenterait de prendre des décisions tout seul, sans jamais informer ni recevoir d'ordre d'un humain, serait souvent frustrant. C'est pourquoi presque tous les objets embarqués proposent une interface homme-machine (IHM — en anglais HMI). C'est la fenêtre de dialogue entre l'utilisateur et l'objet : l'utilisateur lui donne des ordres, l'objet lui retourne des informations. Avec les objets connectés, cette fenêtre s'élargit au réseau, à d'autres machines et au monde entier.
Qu'est-ce qu'une IHM ?
Une IHM rassemble tous les éléments physiques et logiciels par lesquels un utilisateur interagit avec un objet. Côté utilisateur :
- des entrées : boutons, écran tactile, molette, télécommande, reconnaissance vocale, gestes…
- des sorties : écran, voyants LED, haut-parleurs, vibration, retour de force…
| Objet | Entrées de l'IHM | Sorties de l'IHM |
|---|---|---|
| Micro-ondes | clavier, molette de minuteur | afficheur 7 segments, bip, voyant |
| Thermostat | molette, écran tactile, appli smartphone | écran, voyant |
| Distributeur de boissons | boutons, lecteur de pièces | écran, voyant, son |
| Montre connectée | écran tactile, couronne, voix | écran couleur, vibration |
| Voiture | volant, pédales, boutons, écran central | tableau de bord, alertes sonores |
La boucle élargie
Le chapitre précédent décrivait la boucle perception-décision-action. Avec une IHM, cette boucle s'élargit : l'utilisateur intervient à plusieurs endroits.
┌─────────────┐
│ Utilisateur │
└──┬───────▲──┘
│ │
entrée │ │ sortie (écran, son)
▼ │
┌─────────┐ ┌──────────┴────┐ ┌────────────┐
│ capteur │───▶│ programme │───▶│ actionneur │
└─────────┘ │ (décision) │ └────────────┘
└───────────────┘
L'utilisateur peut :
- régler des paramètres : la température cible du thermostat, le seuil de luminosité d'une lampe, le programme du lave-linge.
- déclencher une action : appuyer sur un bouton, choisir un mode, mettre en pause.
- lire l'état : la température mesurée, le temps restant, le niveau de batterie.
Sur un four à micro-ondes, l'écran affichant le temps restant fait partie de :
Un exemple : thermostat avec IHM
Reprenons le ventilateur thermostaté du chapitre précédent. Avec une IHM minimale, vous permettez à l'utilisateur de régler la température cible via un bouton « + », un bouton « − » et un écran :
# Thermostat avec IHM
temperature_cible = 20 # valeur par défaut au démarrage
while True:
# Entrée IHM : l'utilisateur peut régler la cible
if bouton_plus_appuye():
temperature_cible = temperature_cible + 1
if bouton_moins_appuye():
temperature_cible = temperature_cible - 1
# Mesure et décision
temperature = lire_capteur_temperature()
if temperature > temperature_cible:
activer_ventilateur()
else:
arreter_ventilateur()
# Sortie IHM : afficher l'état pour l'utilisateur
afficher_ecran(f"{temperature}°C / cible {temperature_cible}°C")
f
placé devant les guillemets autorise à insérer la valeur d'une variable
directement entre accolades. Ainsi f"Température : {t}°C" affichera la
valeur de t au bon endroit. C'est l'équivalent moderne de
print("Température :", t, "°C") que vous reverrez en NSI Première.Lecture pas à pas :
- Au démarrage, la température cible est fixée à 20 °C.
- À chaque tour de boucle, le programme regarde si l'utilisateur appuie sur l'un des boutons : il ajuste alors la cible. C'est l'entrée de l'IHM.
- Le programme lit ensuite la température et active ou non le ventilateur : c'est la boucle perception-décision-action habituelle.
- Enfin, la température et la cible s'affichent sur l'écran : c'est la sortie de l'IHM.
Dans le programme du thermostat, quelle ligne représente la décision du système ?
L'objet connecté : élargir au réseau
Un objet connecté est un système embarqué relié à un réseau (Wi-Fi, Bluetooth, 4G, ou un réseau dit « bas-débit » dédié à l'IoT). Cette connexion lui permet :
- d'envoyer ses mesures vers un serveur distant — votre montre transmet vos pas du jour à votre compte santé.
- de recevoir des commandes — votre thermostat reçoit la consigne que vous tapez sur votre smartphone.
- de communiquer avec d'autres objets connectés — votre serrure intelligente s'ouvre quand votre téléphone est à proximité.
| Sans connexion | Avec connexion |
|---|---|
| Montre qui affiche l'heure | Montre qui envoie vos pas dans le cloud |
| Thermostat manuel | Thermostat pilotable depuis le smartphone |
| Caméra qui enregistre sur carte SD | Caméra qui vous prévient sur le téléphone |
| Frigo classique | Frigo qui vous envoie un message si la porte est restée ouverte |
Les enjeux : sécurité et vie privée
Connecter un objet à Internet ouvre de nouvelles possibilités… et de nouveaux risques.
- Sécurité : une serrure connectée mal protégée peut être piratée à distance. En 2016, le botnet Mirai a infecté des centaines de milliers de caméras et de routeurs domestiques mal sécurisés pour lancer des attaques massives.
- Vie privée : un assistant vocal écoute en permanence pour détecter le mot d'activation. Une montre connectée connaît votre position, votre fréquence cardiaque, votre sommeil. Ces données partent ensuite chez le fabricant.
- Dépendance : si le serveur du fabricant ferme, l'objet peut devenir inutilisable. Des ampoules connectées ont déjà cessé de fonctionner suite à l'arrêt d'un service en ligne.
Pièges courants
- Connecté ≠ intelligent. Un objet connecté reste un système embarqué qui exécute le programme prévu par son fabricant. Il n'invente rien.
- Tout n'a pas besoin d'être connecté. Une brosse à dents connectée n'apporte pas grand-chose. Le mot « connecté » est aussi un argument marketing.
- L'IHM existe même sans écran. Un voyant LED qui clignote, un bip, une vibration : tout cela est une IHM (très minimaliste, mais une IHM).
Pour aller plus loin
Le design d'interaction est devenu une discipline à part entière : il ne suffit pas d'avoir des capteurs et des actionneurs performants pour faire un bon objet, encore faut-il que l'utilisateur le comprenne. C'est pour cela que vous retrouverez le sujet de l'IHM dans le programme de NSI Première sous l'angle du Web, où vous étudierez les formulaires, les événements et les interactions utilisateur d'une page web.