Afficheur 7-segments TM1651 pour Niveau de Batterie
Introduction
Parfois, un simple chiffre vaut mieux qu’un long discours. C’est exactement ce que propose le module d’affichage 4 digits 7-segments basé sur le contrôleur TM1651. Souvent vendu comme “indicateur de niveau de batterie”, ce petit afficheur est en réalité très polyvalent.
Dans cet article, nous allons voir comment piloter ce module avec ESPHome pour afficher des informations numériques envoyées depuis Home Assistant. C’est une solution parfaite pour un retour visuel simple, lisible et à très faible coût.
Le module TM1651
Ce module est composé de quatre afficheurs 7-segments (permettant d’écrire des chiffres de 0 à 9 et quelques lettres) et d’une LED centrale, le tout piloté par la puce TM1651. Il communique via une interface à deux fils similaire à l’I2C, ce qui rend le câblage très simple.

Sa principale caractéristique est d’afficher des chiffres avec une grande luminosité, ce qui le rend lisible de loin, contrairement à un écran LCD.
Caractéristiques techniques
- Contrôleur : TM1651
- Affichage : 4 x Afficheurs 7-segments + 1 LED centrale
- Tension d’alimentation : 3.3V à 5.0V.
- Interface de communication : Bus à 2 fils (CLK - horloge, DIO - données)
Installation
Les composants nécessaires sont :
- 🛒 Un module afficheur TM1651 ~1-2€
- 🛒 Un WEMOS D1 Mini ou autre ESP32/ESP8266 ~2-3€
- 🛒 Quelques câbles Dupont
1. Câblage
L’interface à 2 fils est facile à connecter. Attention à ne pas inverser les broches d’horloge (CLK) et de données (DIO).
Sur un WEMOS D1 Mini (ESP8266) :
- VCC de l’afficheur -> 3.3V du WEMOS
- GND de l’afficheur -> GND du WEMOS
- CLK de l’afficheur -> D1 (GPIO5) du WEMOS
- DIO de l’afficheur -> D2 (GPIO4) du WEMOS

2. Le code
Grâce au composant tm1651
d’ESPHome, le code est très simple. Nous allons exposer un service à Home Assistant pour pouvoir lui envoyer le nombre à afficher.
esphome:
name: seven_segment_display
friendly_name: seven_segment_display
esp8266:
board: d1_mini
# ... (votre configuration wifi, api, etc.)
# Configuration de l'afficheur
tm1651:
clk_pin: D1
dio_pin: D2
id: my_display
# L'API pour exposer les services à Home Assistant
api:
services:
- service: show_number
variables:
number: int
then:
- lambda: id(my_display).display(number);
- service: show_text
variables:
text: string
then:
- lambda: id(my_display).display(text.c_str());
- service: clear_display
then:
- lambda: id(my_display).clear();
Pour plus de détails sur les options disponibles, consultez la documentation officielle de ESPHome pour le TM1651.
3. Intégration
Une fois le code téléversé, l’ESP se connectera à Home Assistant. Vous aurez alors de nouveaux services disponibles, comme esphome.seven_segment_display_show_number
, que vous pourrez appeler depuis vos scripts et automatisations pour afficher ce que vous voulez.
Cas d’usage (Use Cases)
Use Case 1 : Indicateur de Niveau de Batterie (ou autre)
Le besoin : Visualiser rapidement le niveau d’une batterie d’un appareil nomade, ou toute autre valeur numérique importante.
La solution : C’est l’usage le plus évident. Créez une automatisation qui se déclenche lorsque l’état d’un capteur de batterie change.
- Déclencheur : État du
sensor.telephone_de_maman_battery_level
. - Action : Appeler le service
esphome.seven_segment_display_show_number
avec la nouvelle valeur.
Vous pouvez l’adapter pour afficher n’importe quoi : le pourcentage d’utilisation du CPU de votre serveur, le nombre de lumières allumées dans la maison, la température extérieure, etc.
Use Case 2 : Minuteur ou Compteur de Productivité
Le besoin : Avoir un retour visuel pour un décompte ou pour suivre un objectif.
La solution : Transformez l’afficheur en un minuteur Pomodoro ou en un compteur de tâches.
-
Scénario Minuteur : Créez un script dans Home Assistant qui lance un minuteur (par exemple, 25 minutes). Le script met à jour l’afficheur toutes les minutes pour montrer le temps restant. C’est beaucoup plus motivant qu’un simple minuteur sur un écran de téléphone !
-
Scénario Compteur : Utilisez-le comme un mini tableau de bord de motivation. Créez une automatisation qui, chaque fois que vous cochez une tâche dans votre liste de choses à faire (ex: via l’intégration Todoist ou Microsoft To-Do), incrémente un compteur et l’affiche. Par exemple, l’afficheur montre “4” pour 4 tâches accomplies aujourd’hui. C’est un excellent moyen de visualiser sa productivité.
Conclusion
Le module TM1651 est un moyen simple, économique et très efficace d’ajouter un retour visuel à vos projets de domotique. Que ce soit pour afficher des données brutes, un état, ou pour servir de motivation, sa lisibilité et sa simplicité d’intégration avec ESPHome en font un composant de choix pour de nombreuses applications.