ESP8266 - LED - Clignotement sans délai
Imaginons que l'ESP8266 ait deux tâches à accomplir : faire clignoter une LED et surveiller l'état d'un bouton qui peut être pressé à tout moment. Si nous utilisons la fonction delay() (comme expliqué dans un tutoriel précédent), l'ESP8266 pourrait manquer certaines pressions sur le bouton. En d'autres termes, l'ESP8266 ne serait pas capable d'exécuter pleinement la seconde tâche.
Ce tutoriel vous explique comment faire clignoter une LED avec un ESP8266 et surveiller l'état d'un bouton sans manquer aucune de ses pressions.
Nous allons examiner trois exemples et comparer les distinctions entre eux :
- ESP8266 faisant clignoter une LED avec la fonction delay()
- ESP8266 faisant clignoter une LED avec la fonction millis()
- ESP8266 faisant clignoter une LED avec la bibliothèque ezLED
Cette méthode ne se limite pas seulement à faire clignoter une LED et à vérifier l'état d'un bouton. Elle permet généralement à l'ESP8266 d'effectuer plusieurs tâches simultanément sans se bloquer mutuellement.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos des LED et des boutons
Si vous n'êtes pas familier avec les LED et les boutons (brochage, fonctionnalité, programmation...), les tutoriels suivants peuvent vous aider :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.
Code ESP8266 - Avec Délai
Étapes rapides
Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :
- Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
- Câblez les composants comme indiqué sur le schéma.
- Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez Arduino IDE sur votre ordinateur.
- Choisissez la bonne carte ESP8266, comme (par exemple, NodeMCU 1.0 (Module ESP-12E)), et le port COM correspondant.
- Branchez le câble USB dans l'ESP8266 et le PC.
- Lancez Arduino IDE, sélectionnez la carte et le port corrects.
- Copiez le code et ouvrez-le dans Arduino IDE.
- Cliquez sur le bouton Upload dans Arduino IDE pour compiler et téléverser le code sur l'ESP8266.
- Ouvrez le moniteur série.
- Appuyez sur le bouton quatre fois.
- Regardez la LED ; elle alternera entre être allumée et éteinte toutes les secondes.
- Vérifiez la sortie dans le moniteur série.
- Sur le moniteur série, certains temps de pression n'ont pas été enregistrés. Cela est dû au fait que, pendant le délai, l'ESP8266 est incapable d'effectuer des tâches. Par conséquent, il n'est pas capable de détecter l'événement de pression.
Code ESP8266 - Sans Délai
Étapes rapides
- Câblez les composants comme indiqué sur le schéma.
- Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
- Ouvrez l'Arduino IDE sur votre ordinateur.
- Sélectionnez la bonne carte ESP8266, telle que (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
- Exécutez le code et appuyez sur le bouton 4 fois.
- Observez la LED, qui alternera entre ON et OFF à des intervalles réguliers d'une seconde.
- Vérifiez la sortie dans le moniteur série.
- Toutes les occurrences de cas urgents ont été identifiées.
Explication du code
Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !
Ajout de plus de tâches
Le code ESP8266 ci-dessous fait
- Fait clignoter deux LED à des intervalles différents.
- Vérifie l'état du bouton.
Vidéo
Extensibilité
Cette méthode permet à l'ESP8266 d'effectuer plusieurs tâches simultanément, sans qu'une tâche n'en bloque une autre. Par exemple, envoyer une requête sur Internet et attendre la réponse, tout en faisant clignoter les indicateurs LED et en surveillant le bouton d'annulation.