Cet article vous donnera toutes les informations nécessaires sur le brochage et les différences entre les cartes NodeMCU ESP8266 et Arduino UNO.
J’ai inclus un schéma détaillé des broches du NodeMCU ESP8266 et de l’Arduino UNO.
Après avoir lu cet article, vous saurez comment utiliser les cartes Arduino UNO et ESP8266 avec l’Arduino IDE, ainsi que les différences techniques entre ces deux cartes.
Matériel nécessaire
Composants matériels
Logiciel
| Arduino IDE | Arduino IDE |
Makerguides.com participe au programme Amazon Services LLC Associates, un programme d’affiliation conçu pour permettre aux sites de percevoir une rémunération grâce à la publicité et aux liens vers Amazon.com.
Quelle est la différence entre NodeMCU et ESP8266 ?
Le NodeMCU ESP8266 est un microcontrôleur 32 bits basse consommation, équipé d’un processeur RISC Tensilica 32 bits cadencé à 160 MHz et d’un module WiFi intégré.
L’Arduino UNO est la carte la plus populaire auprès des débutants. Elle est basée sur le microcontrôleur 8 bits ATmega328P, fonctionnant à une fréquence de 16 MHz.
Le microcontrôleur de l’Arduino UNO fonctionne en logique 5V, et toutes ses broches supportent le 5V.
Elle dispose de 2 Ko de RAM, 32 Ko de mémoire flash pour stocker les programmes, et 1 Ko d’EEPROM pour les paramètres.
Caractéristiques du NodeMCU ESP8266 et de l’Arduino UNO
| Fonction | Description (NodeMCU ESP8266) | Description (Arduino UNO) |
| Microcontrôleur | Tensilica 32-bit Xtensa LX106 | ATmega328P |
| Mémoire Flash | 4 MB | 32 KB (0,5 KB utilisés pour le Bootloader) |
| SRAM | 128 KB | 2 KB |
| EEPROM | Non disponible512 bytes (logiciel) | 1 KB |
| Fréquence d’horloge | 80 MHz ou 160 MHz | 16 MHz |
| Tension de fonctionnement | 3,3V DC | 5V DC |
| Tension d’entrée | 7-12 DC | 6V-20V DC |
| Consommation de courant | 15 µA – 400 mA | 45 mA – 80 mA |
| Courant DC par broche I/O | 12 mA | 40 mA |
| Broches d’E/S numériques | 17 | 14 |
| Broches d’entrée analogique | 1 | 6 |
| UARTs | 2 | 1 |
| SPI | 2 | 1 |
| I2C | 1 | 1 |
| PWM | 4 | 6 |
| WiFi | Oui | Non |
| Bluetooth | Non | Non |
Comparaison des broches du NodeMCU ESP8266 et de l’Arduino UNO
Vous pouvez consulter le NodeMCU ESP8266 Schematic schéma pour plus de détails sur les composants présents sur la carte ESP8266.
Le schéma des broches de l’ESP8266 est présenté ci-dessous.

Vous pouvez également consulter le Arduino Uno Schematic schéma pour plus de détails sur les composants présents sur la carte Arduino UNO.
Le schéma des broches de l’Arduino UNO est présenté ci-dessous.

Alimentation
Vous pouvez alimenter l’ESP8266 avec une tension régulée de 5V DC. Les circuits de régulation internes convertiront ce 5V en 3,3V DC car le NodeMCU ESP8266 fonctionne en logique 3,3V.
La broche VIN peut alimenter directement le NodeMCU ESP8266 et ses périphériques avec une source de 5V régulée.
Les broches 3.3V sont la sortie du régulateur de tension intégré.
Ces broches peuvent être utilisées pour alimenter des composants externes.

De même, pour l’Arduino UNO, la tension d’entrée (VIN) est utilisée pour fournir une alimentation externe de 5V à 9V DC.
3.3V et 5V broches sont la sortie du régulateur de tension intégré.
Le courant maximal est de 50mA. GND représente la masse du NodeMCU ESP8266 et de l’Arduino UNO.

Broche d’entrée/sortie numérique (GPIO)
Le NodeMCU ESP8266 possède 17 broches GPIO pouvant être configurées en entrée ou sortie numérique. Elles peuvent aussi être utilisées pour différentes fonctions comme I2C, SPI, UART, PWM par programmation.
Chaque GPIO numérique peut être configurée en pull-up ou pull-down interne, ou en haute impédance.
Lorsqu’elle est configurée en entrée, elle peut aussi être réglée en déclenchement sur front ou niveau pour générer des interruptions CPU.

L’Arduino Uno dispose de 14 broches d’entrée/sortie numériques, dont six peuvent être utilisées en sortie PWM, et six broches d’entrée analogique.
Dans le code Arduino, vous pouvez utiliser la fonction pinMode(pin, direction) pour définir la direction de la broche, digitalRead(pin, value) pour lire la valeur sur la broche numérique, et digitalWrite(pin, value) pour écrire une valeur numérique sur la broche.

Broche analogique
Le NodeMCU ESP8266 possède une broche analogique (A0). L’Arduino UNO en possède six (A0 – A5).
Elles servent à fournir une entrée analogique dans la plage de 0 à 5V.
Les deux cartes disposent d’un ADC 10 bits, ce qui signifie que vous obtiendrez des valeurs comprises entre 0 et 1023.
Dans le code Arduino, vous pouvez utiliser la fonction analogRead() pour lire les valeurs des broches analogiques et analogWrite() pour écrire sur les broches analogiques.
Broches Serial Peripheral Interface (SPI)
Le NodeMCU ESP8266 dispose de deux interfaces SPI (SPI et HSPI). Les deux prennent en charge les modes maître et esclave.
En mode maître, l’horloge peut être configurée jusqu’à 80 MHz, tandis qu’en mode esclave, elle va jusqu’à 20 MHz. Seul le maître peut générer un cycle d’horloge.
HSPI_CLK – GPIO14, HSPI_MISO – GPIO12, HSPI_MOSI – GPIO13, HSPI_CS – GPIO15 Les broches GPIO sont utilisées pour la communication SPI.
SCLK–GPIO6, MISO–GPIO7, MOSI – GPIO8, CS – GPIO11 ne sont pas disponibles sur la carte pour l’utilisateur.

L’Arduino Uno dispose d’une interface de communication SPI. Les broches 10 (SS), 11 (MOSI), 12 (MISO) et 13 (SCK).

Vous pouvez consulter le SPI library pour des exemples de communication SPI.
Broche I2C
Sur le NodeMCU ESP8266, GPIO4 et GPIO5 peuvent être utilisés comme SDA et SCL pour l’interface I2C.
La fréquence d’horloge est de 100 kHz maximum. Il n’y a pas de fonctions alternatives.
L’Arduino UNO dispose d’une interface de communication I2C. Les broches A4 (SDA) et A5 (SCL) sont utilisées pour l’I2C.
Vous pouvez consulter le wire library pour des exemples de communication I2C.
Broche Universal Asynchronous Receiver Transmitter (UART)
Le NodeMCU ESP8266 possède deux UART matériels (UART0 et UART1) avec des débits allant jusqu’à 115200 et peut communiquer jusqu’à 4,5 Mbps.
- UART0 TX – GPIO1, UART0 RX – GPIO3
- UART1 TX – GPIO15, UART1 RX – GPIO13
- UART2 TX – GPIO2, UART2 RX – GPIO8 (Non disponible).
L’Arduino Uno possède un UART pour la communication série, et vous pouvez utiliser les broches 0 (RX) et 1 (TX) avec un débit spécifié.
Vous pouvez utiliser le serial library pour l’UART. Vous pouvez aussi utiliser la bibliothèque Software Serial pour définir n’importe quelle broche GPIO comme Tx et Rx pour la communication UART.
Broches d’interruption
Toutes les broches GPIO sauf GPIO16 prennent en charge les interruptions sur le NodeMCU ESP8266.
Les broches 2 et 3 de l’Arduino Uno peuvent être configurées pour déclencher une interruption sur une valeur basse, un front montant ou descendant, ou un changement d’état.
Utilisez attach interrupt pour attacher une interruption aux broches mentionnées.
Broches de modulation de largeur d’impulsion (PWM)
La carte NodeMCU ESP8266 dispose de quatre canaux PWM.
La sortie PWM peut être générée par programmation et utilisée pour piloter des moteurs ou des LED. La fréquence PWM est réglable de 1000 μs à 10000 μs.
Les broches 3, 5, 6, 9, 10 et 11 de l’Arduino UNO fournissent une sortie PWM via les broches analogiques, chacune offrant une résolution de 10 bits, soit 0 à 1023 valeurs différentes.
Broches SDIO
Le NodeMCU ESP8266 dispose d’une interface SDIO (Secure Digital Input/Output), permettant de connecter directement des cartes SD.
Le SDIO 4 bits 25 MHz v1.1 et 4 bits 50 MHz v2.0 sont également pris en charge.
La broche SDIO n’est pas disponible sur l’Arduino UNO.
Broches de contrôle
Broche EN – La puce NodeMCU ESP8266 est activée lorsque la broche EN est à l’état HAUT. Lorsqu’elle est à l’état BAS, la puce fonctionne en consommation minimale.
Broche WAKE – Une broche WAKE sert à sortir la puce du mode deep sleep. Les broches EN et WAKE ne sont pas disponibles sur l’Arduino UNO.
Broche RST – La broche RST sert à réinitialiser la puce ESP8266 et le microcontrôleur Arduino UNO.
Connecteur ICSP
L’Arduino Uno possède un connecteur femelle ICSP. L’ICSP (In-Circuit Serial Programming) permet de programmer l’Arduino UNO sans le déconnecter du circuit.
L’Arduino UNO a développé ses propres connecteurs ICSP.
Il y a six broches ICSP (MISO, MOSI, SCK, VCC, GND, Reset) disponibles sur la carte Arduino Uno, qui peuvent être reliées à un programmateur via un câble de programmation.

Comment écrire du code pour le NodeMCU ESP8266 ?
Il existe plusieurs plateformes de développement pour programmer le NodeMCU ESP8266.
Vous pouvez développer le firmware du NodeMCU ESP8266 avec l’Arduino IDE.
Suivez les étapes ci-dessous pour configurer l’Arduino IDE pour le NodeMCU ESP8266.
Étape 1 : Téléchargez d’abord Arduino IDE Software
Étape 2 : Ouvrez Arduino IDE et allez dans Fichier > Préférences.

Étape 3 : Dans la fenêtre Préférences, copiez-collez le lien ci-dessous dans « URL de gestionnaire de cartes supplémentaires ».
Notez que si vous souhaitez ajouter un autre lien, vous pouvez mettre une virgule puis coller un autre lien. http://arduino.esp8266.com/stable/package_esp8266com_index.json

Étape 4 : Fermez la fenêtre Préférences et allez dans Outils > Type de carte > Gestionnaire de cartes

Étape 5 : Dans la fenêtre du Gestionnaire de cartes, tapez ESP8266 dans la barre de recherche. ESP8266 apparaîtra dans les résultats. Sélectionnez la dernière version de la carte et cliquez sur installer.

Étape 6 : Après l’installation de la carte, ouvrez Outils > Type de carte > et sélectionnez NodeMCU ESP8266 1.0 (ESP-12E Module).
Pour sélectionner le port, allez dans Outils > Port et choisissez le port COM de l’ESP8266.

Étape 7 : Dans le menu Fichier, allez dans Exemples puis ouvrez l’exemple Blink.

Étape 8 : Cliquez sur Vérifier le code puis téléversez-le sur votre carte.

Comment écrire du code pour l’Arduino Uno ?
Vous pouvez écrire le code firmware pour l’Arduino Uno avec le célèbre Arduino IDE.
Vous pouvez développer de nombreuses applications sur Arduino Uno en utilisant l’Arduino IDE en C++.
Étape 1 : D’abord, téléchargez Arduino IDE
Si vous ne comprenez pas les instructions, regardez aussi l’image et suivez les étapes.
Étape 2 : Ouvrez Arduino IDE et allez dans Outils > Type de carte > Arduino AVR Boards > Sélectionnez Arduino Uno.
Pour sélectionner le port, allez dans Outils > Port et choisissez le port COM de l’Arduino UNO.

Étape 3 : Dans le menu Fichier, allez dans Exemples puis ouvrez l’exemple Blink.

Étape 4 : Cliquez sur Vérifier le code puis téléversez-le sur votre carte.

Quels sont les avantages du NodeMCU ?
- Le NodeMCU ESP8266 est un appareil peu coûteux et basse consommation, idéal pour les applications embarquées.
- Il intègre un module WiFi, ce qui le rend parfait pour les applications Internet des Objets (IoT).
- Le NodeMCU ESP8266 prend aussi en charge FreeRTOS, ce qui permet de programmer des tâches parallèles sur la carte.
- Meilleure mémoire et puissance de calcul que l’Arduino UNO.
- La carte ESP8266 est compatible avec les breadboards et peut aussi être placée sur un circuit imprimé (PCB).
- Facile à programmer avec l’Arduino IDE et des logiciels open-source.
Quels sont les avantages de l’Arduino Uno ?
- L’Arduino UNO est une carte peu coûteuse et très populaire pour les débutants.
- Le matériel et le logiciel open-source offrent aussi un excellent support communautaire.
- L’Arduino UNO possède plus de broches analogiques que l’ESP8266.
L’ESP8266 est-il meilleur que l’Arduino UNO ?
Si vous comparez les performances, le coût, la consommation et les fonctionnalités, l’ESP8266 est bien supérieur à l’Arduino UNO.
Le NodeMCU ESP8266 prend en charge le WiFi pour les serveurs web, et il peut être configuré en mode STA ou AP.
Vous pouvez mettre à jour le firmware de l’ESP8266 à distance (OTA).
Grâce à FreeRTOS, vous pouvez exécuter des tâches parallèles sur l’ESP8266.
Le seul inconvénient de l’ESP8266 est qu’il ne possède qu’une seule broche analogique intégrée, donc vous ne pouvez pas connecter plus d’une interface analogique avec l’ESP8266 d’origine.
Conclusion
À mon avis, il n’y a que quelques cas où il ne faut pas choisir une carte basée sur le NodeMCU ESP8266.
Les cartes NodeMCU ESP8266 consomment peu d’énergie, disposent de beaucoup de mémoire et du Wi-Fi intégré.
Cependant, si vous débutez et souhaitez des exemples tout prêts, choisissez l’Arduino UNO. Il bénéficie d’un excellent support communautaire.
Si vous avez des questions, des suggestions ou si vous pensez qu’il manque des informations dans ce tutoriel, laissez un commentaire ci-dessous.


