Minuteur

Matériel & connexion

Matériel nécessaire :

Carte Wemos D1 Mini (ESP8266)

Écran OLED SSD1306

Trois boutons poussoirs

3 Résistances (10k ohms pour les pull-down des boutons)

 

Connexion  écran OLED SSD1306 :

VCC -> 3.3V

GND -> GND

SCL -> D1 (GPIO5)

SDA -> D2 (GPIO4)

Schéma câblage (a verifier)

Le projet en détail

Ce projet utilise un Wemos D1 Mini pour créer un minuteur affichant le temps sur un écran OLED SSD1306 et une page web via Wi-Fi.
Trois boutons permettent de démarrer/arrêter le minuteur, d’ajouter ou de soustraire des minutes.
Le Wi-Fi fonctionne en mode asynchrone pour fournir une interface web en temps réel.
Après une minute de fin de décompte ou d’inactivité, le dispositif entre en mode sommeil profond pour économiser la batterie.
Le code gère les interactions des boutons et met à jour l’affichage à la fois sur l’écran et sur le serveur web.

Paramètres platform.ini

[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
upload_speed = 921600
monitor_speed = 115200

lib_deps =
    adafruit/Adafruit GFX Library @ ^1.10.10
    adafruit/Adafruit SSD1306 @ ^2.5.7
    me-no-dev/ESP Async WebServer @ ^1.2.3
    me-no-dev/ESPAsyncTCP @ ^1.2.3

Le projet

Ce projet consiste à créer un minuteur intelligent en utilisant un microcontrôleur Wemos D1 Mini. Le minuteur affiche le temps restant sur un écran OLED SSD1306 et permet également de consulter ce temps via une interface web accessible en Wi-Fi.
Trois boutons poussoirs sont utilisés pour interagir avec le minuteur :

  1. Bouton 1 (D3) : Un appui court démarre ou arrête le minuteur. Un appui long met le Wemos en mode sommeil (sleep mode) et il s’arrête également après une minute d’inactivité après la fin du décompte.
  2. Bouton 2 (D4) : Ajoute une minute au décompte.
  3. Bouton 3 (D5) : Soustrait une minute au décompte.

Le Wi-Fi est configuré en mode asynchrone en utilisant la bibliothèque ESPAsyncWebServer, permettant au serveur web de fonctionner sans bloquer l’exécution des autres tâches. La connexion Wi-Fi est configurée pour permettre au Wemos de se connecter à un réseau spécifié et de servir une page web affichant le temps restant du minuteur.

L’affichage sur l’écran OLED est géré par les bibliothèques Adafruit GFX et Adafruit SSD1306. L’écran affiche le temps sous le format « hh:mm », mettant à jour chaque seconde lorsque le minuteur est en marche. Lorsque le minuteur est arrêté, l’affichage se fige jusqu’à la prochaine interaction de l’utilisateur.

Pour économiser l’énergie, particulièrement important dans les applications alimentées par batterie, le Wemos entre en mode sommeil profond (deep sleep) après une minute de fin de décompte ou si le minuteur est arrêté manuellement. Cela permet de réduire considérablement la consommation d’énergie. La fonction ESP.deepSleep(0) est utilisée pour mettre le microcontrôleur en mode sommeil profond, où il consomme très peu de courant.

Le code est structuré pour gérer les rebonds des boutons (debouncing), s’assurer que les boutons poussoirs sont correctement détectés sans déclenchements multiples. Une fonction de ticker est utilisée pour gérer le décompte du minuteur, ce qui permet de mettre à jour le temps restant sans bloquer l’exécution du programme.

Le fichier platformio.ini configure l’environnement PlatformIO pour ce projet, spécifiant la carte d1_mini, les dépendances de bibliothèque nécessaires (Adafruit GFX Library, Adafruit SSD1306, ESP Async WebServer, et ESPAsyncTCP), et les paramètres de téléchargement et de surveillance série.

 

Résumé

Ce projet combine l’utilisation du Wemos D1 Mini, de l’écran OLED, de la connectivité Wi-Fi et de la gestion efficace de l’énergie pour créer un minuteur interactif et intelligent, pouvant être contrôlé et consulté localement via des boutons physiques ou à distance via une interface web.

Domotique – informatique – électronique – dictionnaire – projets

Copyright 2024