La prise en main de l’ESP8266 consiste à installer le support des cartes ESP8266 dans l’IDE Arduino, à reconnaître la carte (une NodeMCU pour l’exemple), et à téléverser un premier programme. L’ESP8266 se programmant dans le cadre Arduino, l’essentiel des gestes est déjà connu. Une étape s’ajoute (installer le core ESP8266), et un petit piège attend au premier blink : la LED intégrée est active à l’état bas. Le programme cible reste le Blink, l’équivalent embarqué du « Hello World ».
À quoi ça sert ?
La prise en main valide d’un coup toute la chaîne : éditeur, compilateur, support ESP8266, USB-série, téléversement, liaison. Si un maillon est cassé, le Blink ne clignote pas, et on le sait tout de suite, sur du code trivial.
Au-delà du premier programme, l’étape sert à ancrer les gestes (sélection de carte, port, vitesse, téléversement, moniteur série) et à rencontrer les particularités de l’ESP8266 dès le départ : le pilote USB-série à installer, la LED active à l’état bas, le réflexe 3,3 V.
Procédure pas à pas
Cinq étapes : installer l’IDE Arduino, ajouter le support ESP8266, le pilote USB-série, sélectionner la carte, charger le Blink.
1. Installer l’IDE Arduino
Téléchargez l’IDE Arduino 2.x depuis arduino.cc (rubrique Software). Le support ESP8266 s’y ajoute via le gestionnaire de cartes (étape 2).
2. Ajouter le support ESP8266
Ouvrez Fichier → Préférences, et dans URL de gestionnaire de cartes supplémentaires, ajoutez :
Ouvrez le gestionnaire de cartes, cherchez esp8266, et installez le paquet « esp8266 » par ESP8266 Community. Prenez la dernière version 3.x proposée par le menu déroulant, qui est la branche stable actuelle du cœur. Les tutoriels de ce module s’y réfèrent.
3. Installer le pilote USB-série
Contrairement à beaucoup de cartes récentes, les NodeMCU / D1 mini utilisent une puce USB-série (souvent CH340, parfois CP2102) qui demande un pilote sur Windows si la carte n’est pas reconnue. Installez le pilote correspondant à votre carte, puis rebranchez-la.
4. Brancher la carte et sélectionner carte + port
Branchez la carte avec un câble USB de données. Deux chemins mènent ensuite à la sélection, selon que l’IDE reconnaît votre carte ou non.
Cas courant — le sélecteur de la barre d’outils. Déroulez le sélecteur en haut de la fenêtre : la carte détectée y apparaît avec son port.
Sur une NodeMCU, dont le pont USB-série est une puce tierce, la carte s’affiche Unknown tant qu’elle n’a jamais été associée, et c’est normal (voir Pièges). Passez alors par Select other board and port…, choisissez la carte à gauche et votre port à droite : l’association est mémorisée.
Chemin manuel — les menus Outils. Il fonctionne dans tous les cas. Outils → Type de carte → esp8266, puis « Generic ESP8266 Module » : cette définition convient à n’importe quelle carte ESP8266 et c’est celle qu’utilisent les captures de cette fiche. Si la vôtre a sa propre entrée dans la liste (NodeMCU 1.0 (ESP-12E Module), LOLIN(WEMOS) D1 mini…), vous pouvez la choisir : elle prérègle la taille de flash et ajoute les étiquettes D0–D8 de la sérigraphie, au prix d’un code qui ne se transpose plus tel quel d’une carte à l’autre.
Puis Outils → Port, en laissant la vitesse de téléversement par défaut : COMx sous Windows, /dev/ttyUSB0 sous Linux, /dev/cu.usbserial-... sous macOS.
Reste à savoir lequel de ces ports est le vôtre. Sous Windows, le gestionnaire de périphériques le nomme explicitement : à la rubrique Ports (COM et LPT), la carte apparaît sous le nom de sa puce d’interface, ici Silicon Labs CP210x USB to UART Bridge (COM10). Les autres entrées sont le plus souvent des liaisons série Bluetooth, sans rapport avec la carte : ce sont elles qui remplissent le sélecteur de ports « Unknown ».
5. Charger le Blink — attention à la LED active à l’état bas
Saisissez ce sketch. Particularité ESP8266 : la LED intégrée est active à l’état bas. Elle s’allume à LOW et s’éteint à HIGH, l’inverse du réflexe Arduino :
void setup() { pinMode(LED_BUILTIN, OUTPUT);}void loop() { digitalWrite(LED_BUILTIN, LOW); // LED active à l'état BAS : LOW = ALLUMÉE delay(1000); digitalWrite(LED_BUILTIN, HIGH); // HIGH = éteinte delay(1000);}
Cliquez sur Téléverser (icône flèche). Sur NodeMCU / D1 mini, l’auto-reset (lignes DTR/RTS) fait entrer la carte en mode programmation sans appui. La console affiche la progression, puis la carte redémarre et la LED clignote.
Tip
Si la LED semble « inversée ». C’est normal et attendu : sur l’ESP8266, LOW allume. Si vous vouliez l’éteindre, écrivez HIGH. Beaucoup de débutants croient à un bug ici. C’est juste la logique inversée de la LED intégrée.
Exemple — Blink modifié
Modifiez les temporisations pour vérifier que vous contrôlez le comportement :
Téléversez à nouveau : un éclair court toutes les secondes. Ce petit pas — modifier, téléverser, observer — est le geste de base des tutoriels suivants.
Pièges
Support ESP8266 non installé. Sans l’étape 2, aucune carte ESP8266 dans Outils → Type de carte. L’oubli le plus fréquent.
Étiquettes D0–D8 inconnues du compilateur. Elles sont sérigraphiées sur la carte, mais elles ne sont définies que par les définitions de carte spécifiques du gestionnaire (NodeMCU 1.0, D1 mini…). Sous « Generic ESP8266 Module », const int LED = D5; échoue à la compilation sur 'D5' was not declared in this scope. Écrire le numéro de GPIO (14 pour la broche sérigraphiée D5), qui fonctionne dans tous les cas.
Pilote USB-série manquant. Carte non détectée (pas de port) : installer le pilote CH340 / CP2102 correspondant (étape 3).
Port marqué Unknown. Sur une carte à pont USB-série tiers — CH340 comme CP2102 — l’IDE affiche Unknown en face du port : le pont annonce son propre identifiant USB, pas celui d’une carte, et l’IDE n’a donc rien à quoi rattacher le port. Ce n’est pas un défaut de pilote. Windows, lui, affiche bien la puce sous Ports (COM et LPT), par exemple Silicon Labs CP210x USB to UART Bridge (COMx). Associer la carte au port une fois par Select other board and port… : l’association est mémorisée.
LED « à l’envers ». La LED intégrée est active à l’état bas : LOW = allumée. Ce n’est pas un bug.
Câble « charge seule ». Carte alimentée mais aucun port : changer pour un câble de données.
Réflexe 5 V de l’Arduino. L’ESP8266 est en 3,3 V, non tolérant 5 V : ne pas appliquer 5 V sur une broche (voir niveaux de tension).
Exercices
Exercice 1 — Éteindre, puis clignoter
Écrivez un programme qui laisse la LED éteinte 3 secondes, puis la fait clignoter 5 fois rapidement (100 ms allumée / 100 ms éteinte), avant de recommencer. Attention à la logique inversée.
Le piège est la logique inversée : HIGH éteint, LOW allume. La boucle for factorise les cinq éclairs.
Exercice 2 — LED externe
Câblez une LED externe (avec sa résistance ~220 Ω) sur la broche sérigraphiée D5, c’est-à-dire le GPIO 14, et faites-la clignoter de façon « normale » (HIGH = allumée). Pourquoi la logique n’est-elle pas inversée cette fois ?
Corrigé
const int LED = 14; // GPIO14, sérigraphié « D5 » sur la cartevoid setup() { pinMode(LED, OUTPUT);}void loop() { digitalWrite(LED, HIGH); // anode vers la broche : HIGH = allumée delay(500); digitalWrite(LED, LOW); delay(500);}
La logique inversée ne concernait que la LED intégrée (câblée entre l’alimentation et la broche). Une LED externe câblée anode→broche s’allume normalement à HIGH. La broche est désignée par son numéro de GPIO et non par l’étiquette D5 : celle-ci n’existe que sous les définitions de carte spécifiques (voir Pièges), alors que 14 compile partout. Ce décalage entre sérigraphie et numérotation est détaillé dans l’Arduino-core.
Cas particulier — ESP-01, NodeMCU Lua, PlatformIO
ESP-01 — pas d’USB ni d’auto-reset : il faut un adaptateur USB-série et forcer le mode programmation (GPIO0 à la masse pendant le reset) avant de téléverser.
NodeMCU (Lua) / MicroPython — d’autres firmwares existent pour l’ESP8266. Ce wiki s’en tient à l’Arduino core.
PlatformIO — gère l’ESP8266 avec versionnage et multi-fichiers, pratique dès que le projet grossit.
Raccrochage projet
Étape 4 de la phase de preuve de concept — la première compilation et le premier téléversement sur la cible sont l’acte fondateur de la PoC logicielle. Tant que le Blink ne clignote pas, rien en aval n’est crédible.
Tous les tutoriels ESP8266 aval — faites le Blink au moins une fois, sur le matériel cible, le plus tôt possible.