140. Exercice : bouton et filtre anti-rebond¶
140.1 Travail demandé¶
À partir du circuit DEL du cours précédent, ajoutez un bouton poussoir et configurez son entrée dans ESPHome.
- Hors tension, brancher un côté du bouton à GPIO4 (D2) et l'autre à GND.
- Déclarer le bouton comme
binary_sensorGPIO avec la résistance de rappel interne ("pullup") et l'inversion logique appropriée. - Configurer
on_presspour allumer la DEL et consigner un message dans les journaux; configureron_releasepour l'éteindre et consigner un autre message. - Tester le bouton et vérifier son état dans les journaux ESPHome et dans Home Assistant.
- Dans Home Assistant, créer un capteur texte virtuel nommé « Dernier appui du bouton ».
- Créer une automatisation qui se déclenche lorsque l'entité du bouton passe à
on, puis met à jour le capteur texte avec l'heure de l'appui. - Ajouter l'entité du bouton et le helper texte au tableau de bord. Appuyer sur le bouton et vérifier que le message « Bouton appuyé à HH:MM:SS » est mis à jour.
- Regarder si la transition de l'état du bouton est stable ou si elle change plusieurs fois rapidement.
- Ajouter les filtres
delayed_onetdelayed_offavec une durée initiale de 20 ms. Compiler et installer la mise à jour. - Comparer les journaux et le comportement avant et après filtrage en appuyant plusieurs fois rapidement. Expliquer pourquoi le filtre réduit les transitions parasites; le rebond peut être difficile à observer sur un bouton particulier.
- Vérifier que la DEL reste allumée pendant que le bouton est maintenu et s'éteint au relâchement, sans messages répétés dus au rebond.