Brochage ESP8266
L'ESP8266 offre l'avantage de disposer d'un nombre considérable de broches GPIO à votre besoin. Cependant, il est crucial de prêter une attention particulière aux détails du brochage. Toutes les broches GPIO de l'ESP8266 ne sont pas sûres à utiliser.
Il est important de mentionner que la référence de brochage fournie ci-dessous concerne la carte de développement ESP8266 NodeMCU à 30 broches, largement utilisée.
Périphériques et entrées/sorties de l'ESP8266
Le NodeMCU ESP8266 dispose au total de 17 broches GPIO réparties des deux côtés de la carte de développement via des connecteurs à broches. Ces broches sont polyvalentes et peuvent se voir attribuer diverses fonctions périphériques, notamment :
- 9 broches d'entrée/sortie numériques :
- 1 canal ADC : Fournissant un canal unique avec un ADC SAR de précision 10 bits.
- 2 interfaces UART : Comportant deux interfaces UART avec support pour le contrôle de flux.
- 4 sorties PWM : Offrant quatre broches PWM pour réguler des aspects tels que la vitesse du moteur ou la luminosité des LED.
- 2 x SPI : Équipé de deux interfaces SPI pour connecter divers capteurs et périphériques.
- 1 x I2C : Incorporant une interface I2C pour la liaison avec une variété de capteurs et de périphériques.
- 1 x I2S : Incluant une interface I2S pour intégrer du son dans votre projet.
Brochage de l'ESP8266
Le NodeMCU ESP8266 possède au total 30 broches, organisées pour des fonctionnalités conviviales. Consultez le schéma de brochage ci-dessous pour explorer la disposition :
Maintenant, plongeons dans les broches individuelles de l'ESP8266 et détaillons leurs fonctions spécifiques.
Broches d'entrée/sortie numériques
Parmi les 30 broches de la carte ESP8266 NodeMCU, vous pouvez utiliser 9 broches pour l'entrée/sortie numérique. Parmi ces 9 broches, 5 sont sûres à utiliser, les 4 autres peuvent également être utilisées comme entrées/sorties numériques mais avec prudence.
Parmi les 30 broches de la carte ESP8266 NodeMCU, 9 broches peuvent être utilisées à des fins d'entrée/sortie numériques. En détail :
- 5 broches sont sûres pour être utilisées comme broches d'entrée/sortie numériques.
- 4 broches peuvent également être utilisées comme broches d'entrée/sortie numériques, mais nécessitent une manipulation soigneuse.
- Les 9 broches peuvent être configurées avec des résistances de tirage internes (sur la puce) vers le haut ou vers le bas, ou être réglées en haute impédance.
Le tableau ci-dessous indique quels broches sont sûres à utiliser et quelles broches doivent être utilisées avec prudence.
GPIO | Pin Label | Safe to use? | Reason |
---|---|---|---|
GPIO16 | D0 | HIGH at boot, used to wake up from deep sleep | |
GPIO5 | D1 | ||
GPIO4 | D2 | ||
GPIO0 | D3 | connected to FLASH button, boot fails if pulled LOW. On-board 10k external pull-up resistor | |
GPIO2 | D4 | HIGH at boot, boot fails if pulled LOW. On-board 10k external pull-up resistor | |
GPIO14 | D5 | ||
GPIO12 | D6 | ||
GPIO13 | D7 | ||
GPIO15 | D8 | Required for boot, boot fails if pulled HIGH. On-board 10k external pull-down resistor | |
GPIO3 | RX | RX pin, used for flashing and debugging | |
GPIO1 | TX | TX pin, used for flashing and debugging | |
GPIO6 | CLK | Connected to Flash memory | |
GPIO7 | SDO | Connected to Flash memory | |
GPIO11 | CMD | Connected to Flash memory | |
GPIO8 | SD1 | Connected to Flash memory | |
GPIO9 | SD2 | Connected to Flash memory | |
GPIO10 | SD3 | Connected to Flash memory | |
ADC0 | A0 | Can be used as the analog input pin only. |
Legend | |
---|---|
These are your top-priority pins, absolutely safe for use. No concerns here. | |
Pay close attention because their behavior, particularly during boot, can be unpredictable. Also pay attention to their on-board external pull-up/pull-down resistors. Use them only when absolutely necessary. | |
These pins should NOT be used as digital input/output pins. |
L'image ci-dessous montre quels broches GPIO peuvent être utilisées comme broches d'entrée/sortie numériques.
Comment programmer les broches d'entrée/sortie numériques de l'ESP8266.
Vous pouvez utiliser les fonctions suivantes pour manipuler les broches d'entrée/sortie numériques de l'ESP8266.
Veuillez noter que vous devez utiliser l'étiquette de la broche dans le code. Par exemple, broche GPIO5 (D1) :
Exemples d'utilisation de la broche d'entrée numérique de l'ESP8266 :
Exemples d'utilisation de la broche de sortie numérique de l'ESP8266 :
Broches ADC
L'ESP8266 est équipé d'un convertisseur analogique-numérique (CAN) de précision 10 bits, lui permettant de distinguer 1024 (2^10) niveaux analogiques distincts. Essentiellement, il convertit les tensions d'entrée dans la gamme de 0 à 3,3V (tension de fonctionnement) en valeurs entières allant de 0 à 1024. En conséquence, cette configuration donne une résolution de 3,3 volts divisés par 1024 unités, soit 0,0032 volts (3,2 mV) par unité.
Exemple de code pour utiliser l'ADC sur ESP8266 :
Exemples de capteurs analogiques utilisant la broche A0 de l'ESP8266 :
Broches SPI
L'ESP8266 possède deux SPI (SPI et HSPI) en modes esclave et maître. Ces SPI prennent également en charge les fonctionnalités SPI polyvalentes énumérées ci-dessous :
- 4 modes de temporisation du transfert de format SPI
- Jusqu'à 80 MHz et les horloges divisées de 80 MHz
- Jusqu'à FIFO de 64 octets
Exemples d'utilisation des broches SPI de l'ESP8266 :
Broches I2C
L'ESP8266 n'a pas de broches I2C intégrées, mais vous pouvez quand même le faire fonctionner par le « bitbanging ». Il fonctionne bien, et l'ESP8266 est suffisamment rapide pour suivre les performances attendues d'un Arduino.
Par défaut, les broches GPIO4 (SDA) et GPIO5 (SCL) sont configurées comme broches I2C pour simplifier les choses pour ceux qui utilisent des codes, bibliothèques et croquis Arduino existants.
Toutefois, vous avez la liberté de choisir n'importe quels autres deux broches GPIO pour l'I2C en utilisant wire.begin(SDA, SCL) dans l'IDE Arduino.
Exemples d'utilisation des broches I2C de l'ESP8266 :
Broches UART
L'ESP8266 dispose de deux interfaces UART, UART0 et UART2, qui permettent une communication asynchrone (RS232 et RS485) à des vitesses impressionnantes allant jusqu'à 4,5 Mbps. Cette capacité les rend bien adaptés pour des applications de transfert de données à haute vitesse.
- UART0 (broches TXD0, RXD0, RST0 et CTS0) est utilisé pour la communication.
- UART1 (broche TXD1) ne comporte qu'un signal de transmission de données et est généralement utilisé pour l'impression de journaux.
RXD0 et TXD0 servent de broches de contrôle série et de chargement initial pour le module ESP, jouant un rôle crucial dans la communication avec le module. Ils sont particulièrement importants pendant le processus de chargement initial. Par conséquent, vous devriez faire preuve de prudence lors de l'utilisation de ceux-ci puisqu'ils sont connectés via le convertisseur USB-série et recevront donc le trafic USB.
Broches PWM
Chaque broche GPIO sur l'ESP8266, allant de GPIO0 à GPIO15, est programmable pour générer des sorties modulées en largeur d'impulsion (PWM).
Le signal PWM sur l'ESP8266 offre une résolution de 10 bits, permettant un contrôle précis de la sortie. De plus, la plage de fréquences PWM est personnalisable, allant de 1000 μs à 10000 μs, ce qui équivaut à une plage de fréquences flexible entre 100 Hz et 1 kHz. Cette adaptabilité le rend approprié pour une large gamme d'applications nécessitant différents réglages PWM.
Broches de puissance
- La broche VIN offre une option pratique pour alimenter directement l'ESP8266 et ses périphériques lorsqu'elle est alimentée par une source d'énergie régulée de 5V.
- La broche 3V3 sert de sortie pour le régulateur de tension embarqué, capable de fournir un substantiel 600mA. Cela en fait une source fiable pour alimenter les dispositifs connectés et les composants.
- La fonction GND agit comme la broche de masse, établissant le point de référence électrique pour l'ESP8266 et les dispositifs connectés. Elle assure une mise à la terre commune pour le système, maintenant des connexions électriques stables et appropriées.
Broches d'interruption
Chaque GPIO (Entrée/Sortie à Usage Général) sur l'ESP8266, à l'exception du GPIO16, peut être configuré comme une interruption.
Cela signifie que chaque GPIO, de GPIO0 à GPIO15, peut être configuré pour déclencher une interruption, permettant à l'ESP8266 de répondre à des événements spécifiques ou à des changements d'états d'entrée. Toutefois, le GPIO16 ne prend pas en charge cette configuration d'interruption. Cette flexibilité dans l'utilisation des interruptions augmente la polyvalence de l'ESP8266 dans la gestion des événements en temps réel et des interactions avec les dispositifs externes.
Broches SDIO
L'ESP8266 est équipé d'une seule interface SDIO (Secure Digital Input/Output) esclave conçue pour la connexion de cartes SD. Il prend en charge à la fois le SDIO v1.1 à 4 bits 25 MHz et le SDIO v2.0 à 4 bits 50 MHz.
Cette fonctionnalité permet une intégration transparente des cartes SD avec l'ESP8266, offrant des capacités de transfert de données à haute vitesse et une compatibilité avec différentes versions de SDIO. Que vous utilisiez SDIO v1.1 ou v2.0, l'ESP8266 offre une polyvalence pour connecter et accéder aux données des cartes SD de manière efficace.
Broches de contrôle
- La broche EN (également connue sous le nom de CH_PD ou Chip Power Down) sert de broche d'activation pour l'ESP8266 et est tirée vers le haut par défaut. Lorsqu'elle est réglée sur HIGH, la puce est activée, permettant un fonctionnement normal. Inversement, lorsqu'elle est tirée vers le bas (LOW), la puce est désactivée, ce qui permet de l'éteindre efficacement.
- La broche RST fonctionne comme la broche de réinitialisation pour l'ESP8266, et elle est tirée vers le haut par défaut. Lorsqu'elle est brièvement tirée vers le sol, elle déclenche une réinitialisation pour l'ESP8266, similaire à l'appui sur le bouton RST à bord.
- La broche FLASH est utilisée par l'ESP8266 pour déterminer s'il faut démarrer dans le chargeur de démarrage. Maintenir la broche en position basse lors de la mise sous tension initie le processus de chargement de démarrage, semblable à l'appui sur le bouton FLASH à bord.
- La broche WAKE est utilisée pour réveiller l'ESP8266 du mode veille profonde, permettant à l'appareil de reprendre un fonctionnement normal après avoir été dans un état de faible consommation.