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)
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.
[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 :
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.
Accès dépôt GitHub (Phil-Dav)
Domotique – informatique – électronique – dictionnaire – projets
Copyright 2024