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.

Module d’affichage 4-digits 7-segments TM1651.

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

Installation

Les composants nécessaires sont :

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) :

Schéma de câblage du TM1651 avec un WEMOS D1 Mini

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.

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.

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.