Cet article est un guide pour les GPIO de l’ESP8266 : schémas de brochage, leurs fonctions et comment les utiliser.
La puce ESP8266 12-E est livrée avec 17 broches GPIO. Toutes les GPIO ne sont pas exposées dans toutes les cartes de développement ESP8266, certaines GPIO ne sont pas recommandées à utiliser, et d’autres ont des fonctions très spécifiques.
Avec ce guide, vous apprendrez à utiliser correctement les GPIO de l’ESP8266 et vous éviterez des heures de frustration en utilisant les broches les plus adaptées à vos projets.
Nous avons également un guide pour les GPIO de l’ESP32 : ESP32 Pinout Reference : Quelles broches GPIO devriez-vous utiliser?
Pinning de la puce ESP8266 12-E
Le schéma suivant illustre le pinout de la puce ESP8266 12-E. Utilisez ce schéma si vous utilisez une puce ESP8266 nue dans vos projets.
Note : toutes les GPIO ne sont pas accessibles dans toutes les cartes de développement, mais chaque GPIO spécifique fonctionne de la même manière quelle que soit la carte de développement que vous utilisez. Si vous débutez avec l’ESP8266, nous vous recommandons de lire notre guide : Getting Started with the ESP8266.
À l’heure actuelle, il existe une grande variété de cartes de développement avec la puce ESP8266 qui diffèrent par le nombre de GPIO accessibles, la taille, le facteur de forme, etc…
Les cartes ESP8266 les plus utilisées sont l’ESP-01, l’ESP8266-12E NodeMCU Kit, et la Wemos D1 Mini. Pour une comparaison de ces cartes, vous pouvez lire ce guide : Comparaison des cartes de développement Wi-Fi ESP8266.
Pinout ESP8266-01
Si vous utilisez une carte ESP8266-01, vous pouvez utiliser le diagramme GPIO suivant comme référence.
Kit NodeMCU ESP8266 12-E
Le diagramme de brochage du kit NodeMCU ESP8266 12-E est présenté ci-dessous.
Pincement du WeMos D1 Mini
La figure suivante présente le pincement du WeMos D1 Mini.
Télécharger le PDF avec les schémas de brochage de l’ESP8266
Nous avons mis au point un PDF pratique que vous pouvez télécharger et imprimer, afin d’avoir toujours les schémas de l’ESP8266 à côté de vous :
Télécharger le PDF des schémas de brochage »
Périphériques de l’ESP8266
Les périphériques de l’ESP8266 comprennent :
- 17 GPIOs
- SPI
- I2C (implémenté sur le logiciel)
- I2S interfaces avec DMA
- UART
- 10-.bit ADC
Meilleurs broches à utiliser – ESP8266
Une chose importante à noter sur l’ESP8266 est que le numéro GPIO ne correspond pas à l’étiquette sur la sérigraphie de la carte. Par exemple, D0 correspond au GPIO16 et D1 correspond au GPIO5.
Le tableau suivant montre la correspondance entre les étiquettes sur le silkscreen et le numéro GPIO ainsi que les broches qui sont les meilleures à utiliser dans vos projets, et celles dont vous devez être prudent.
Les broches surlignées en vert sont OK à utiliser. Celles surlignées en jaune sont OK à utiliser, mais vous devez faire attention car elles peuvent avoir un comportement inattendu principalement au démarrage. Les broches surlignées en rouge ne sont pas recommandées pour être utilisées comme entrées ou sorties.
Label | GPIO | Input | Output | Notes |
D0 | GPIO16 | pas d’interruption | pas de support PWM ou I2C | HAUT au démarrage utilisé pour sortir d’un sommeil profond |
D1 | GPIO5 | OK | OK | souvent utilisé comme SCL (I2C) |
D2 | GPIO4 | OK | OK | Souvent utilisé comme SDA (I2C) |
D3 | GPIO0 | tiré vers le haut | OK | connecté au bouton FLASH, le démarrage échoue si tiré vers le BAS |
D4 | GPIO2 | pulsé vers le haut | OK | HAUT au démarrage connecté à la LED embarquée, le démarrage échoue si elle est tirée vers le BAS |
D5 | GPIO14 | OK | SPI (SCLK) | |
D6 | GPIO12 | OK | OK | SPI (MISO) |
D7 | GPIO13 | OK | OK | SPI (MOSI) |
D8 | GPIO15 | Tiré vers GND | OK | SPI (CS) Boot échoue s’il est tiré vers le haut |
RX | GPIO3 | OK | Pince RX | Haut au démarrage |
TX | GPIO1 | Pince TX | OK | Haut au démarrage Sortie de débogage au démarrage, le boot échoue si elle est tirée vers le BAS |
A0 | ADC0 | Entrée analogique | X |
Continuez votre lecture pour une analyse plus détaillée et approfondie des GPIO de l’ESP8266 et de ses fonctions.
GPIOs connectés à la puce flash
GPIO6 à GPIO11 sont généralement connectés à la puce flash dans les cartes ESP8266. Il n’est donc pas recommandé d’utiliser ces broches.
Pins utilisés pendant le démarrage
L’ESP8266 peut être empêché de démarrer si certaines broches sont tirées vers le BAS ou le HAUT. La liste suivante indique l’état des broches suivantes lors du BOOT:
- GPIO16 : la broche est haute au BOOT
- GPIO0 : échec du boot si tirée LOW
- GPIO2 : la broche est haute au BOOT, échec du boot si tirée LOW
- GPIO15 : échec du boot si tirée HIGH
- GPIO3 : La broche est haute au BOOT
- GPIO1 : La broche est haute au BOOT, échec du boot si tirée LOW
- GPIO10 : La broche est haute au BOOT
- GPIO9 : La broche est haute au BOOT
Pins HIGH at Boot
Il y a certaines broches qui sortent un signal 3.3V lorsque l’ESP8266 démarre. Cela peut être problématique si vous avez des relais ou d’autres périphériques connectés à ces GPIO. Les GPIO suivantes émettent un signal HIGH au démarrage :
- GPIO16
- GPIO3
- GPIO1
- GPIO10
- GPIO9
En outre, les autres GPIO, à l’exception de GPIO5 et GPIO4, peuvent émettre un signal basse tension au démarrage, ce qui peut être problématique si ceux-ci sont connectés à des transistors ou des relais. Vous pouvez lire cet article qui étudie l’état et le comportement de chaque GPIO au démarrage.
GPIO4 et GPIO5 sont les GPIO les plus sûrs à utiliser si vous voulez faire fonctionner des relais.
Entrée analogique
L’ESP8266 ne supporte la lecture analogique que dans un seul GPIO. Cette GPIO est appelée ADC0 et elle est généralement marquée sur la sérigraphie comme A0.
La tension d’entrée maximale de la broche ADC0 est de 0 à 1V si vous utilisez la puce nue ESP8266. Si vous utilisez une carte de développement comme le kit NodeMCU ESP8266 12-E, la plage de tension d’entrée est de 0 à 3,3V car ces cartes contiennent un diviseur de tension interne.
Vous pouvez apprendre à utiliser la lecture analogique avec l’ESP8266 grâce au guide suivant :
- ESP8266 ADC – Lire des valeurs analogiques avec Arduino IDE, MicroPython et Lua
La LED embarquée
La plupart des cartes de développement ESP8266 ont une LED intégrée. Cette LED est généralement connectée à GPIO2.
La LED fonctionne avec une logique inversée. Envoyez un signal HIGH pour l’éteindre, et un signal LOW pour l’allumer.
Pince RST
Lorsque la broche RST est tirée LOW, l’ESP8266 se réinitialise. C’est la même chose que d’appuyer sur le bouton RESET embarqué.
GPIO0
Lorsque GPIO0 est tiré vers le BAS, cela place l’ESP8266 en mode bootloader. C’est la même chose que d’appuyer sur le bouton FLASH/BOOT intégré.
GPIO16
GPIO16 peut être utilisé pour réveiller l’ESP8266 d’un sommeil profond. Pour réveiller l’ESP8266 de son sommeil profond, GPIO16 doit être connecté à la broche RST. Apprenez à mettre l’ESP8266 en mode de sommeil profond:
- ESP8266 Deep Sleep with Arduino IDE
- ESP8266 Deep Sleep with MicroPython
I2C
L’ESP8266 n’a pas de broches I2C matérielles, mais il peut être mis en œuvre dans le logiciel. Vous pouvez donc utiliser n’importe quel GPIO comme I2C. Habituellement, les GPIOs suivants sont utilisés comme broches I2C:
- GPIO5 : SCL
- GPIO4 : SDA
SPI
Les broches utilisées comme SPI dans l’ESP8266 sont :
- GPIO12 : MISO
- GPIO13 : MOSI
- GPIO14 : SCLK
- GPIO15 : CS
Pins PWM
L’ESP8266 permet le PWM logiciel dans toutes les broches d’entrée/sortie : GPIO0 à GPIO16. Les signaux PWM de l’ESP8266 ont une résolution de 10 bits. Apprenez à utiliser les broches PWM de l’ESP8266 :
- ESP8266 PWM avec Arduino IDE
- ESP8266 PWM avec MicroPython
Pins d’interruption
L’ESP8266 prend en charge les interruptions dans toutes les GPIO, à l’exception de la GPIO16.
- Interruptions et temporisations de l’ESP8266 avec Arduino IDE
Wrapping Up
Nous espérons que vous avez trouvé ce guide pour les GPIO de l’ESP8266 utile. Si vous avez des conseils sur la façon d’utiliser correctement les GPIO de l’ESP8266, vous pouvez écrire un commentaire ci-dessous.
Nous avons également un guide similaire pour les GPIO de l’ESP32 que vous pouvez lire.
Si vous commencez à utiliser l’ESP8266, nous avons un excellent contenu qui pourrait vous intéresser :
- La domotique à l’aide de l’ESP8266 (cours)
- Débuter avec l’ESP8266
- 30+ projets et tutoriels ESP8266
- Tutoriel du serveur Web de l’ESP8266
- ESP32 vs ESP8266 – Avantages et inconvénients
Merci de votre lecture.