L’ESP01 est un module ESP8266 installé sur une carte de développement miniature qui dispose de quatre connecteurs d’extension (GPIO). La différence entre les versions réside dans la quantité de mémoire flash embarquée par la carte, 512Ko (ESP01) ou 1Mo (ESP01S).
Initialement développé pour ajouter une connectivité WiFi à l’Arduino, c’est devenu un module autonome pour fabriquer des mini objets connectés. Relais, sonde diverses (température, humidité, consommation d’énergie…), affichage OLED…
Sommaire
ESP-01 vs ESP-01S, lequel choisir ?
L’ESP01 est tout simplement un module ESP8266 installé sur une carte de développement miniature (24,8 x 14,3mm). Il n’y a que 2 broches du module ESP8266EX qui sont exposées sur le GPIO GPIO0 et GPIO2 ainsi que les broches RX et TX pour la programmation et la mise au point via le port série.
La différence entre les versions réside uniquement dans la quantité de mémoire flash embarquée sur la carte : 512 Ko ou 1Mo.
Il y a quelques années, on pouvait se repérer à la couleur de la carte. Ce n’est plus le cas aujourd’hui même si quelques fabricants conservent cette différence marketing.
Le tableau ci-dessous récapitule les principales différences entre les deux versions.
Compte tenu de la très faible différence de prix (quelques dizaines de centimes) entre les deux modèles, il est préférable d’opter directement pour un module ESP-01S.
Repérage des broches (pinout)
Quelque soit la version, le connecteur d’entrées / sorties (GPIO) est parfaitement identique. Il n’a pas évolué depuis la première version du module ESP01.
Voici le repérage des broches pour les 2 modèles
Mettre le module ESP01 en Flash Mode
La majorité des cartes de développement ESP32 et ESP8266 intègrent la plupart du temps un convertisseur UART vers USB (CH340, CP212…). En plus de cela, le kit de développement ESP8266 s’occupe de mettre le module dans un mode particulier qui permet de téléverser le fichier binaire du programme sur la mémoire flash.
Cependant, pour être aussi compact, le module ESP01 n’embarquent pas de convertisseur UART vers USB.
Il faut mettre le module en Flash Mode soi-même à chaque fois que l’on souhaite téléverser un programme depuis l’IDE Arduino ou tout autre éditeur de code.
C’est assez simple, il faut que la broche GPIO2 soit reliée au GND à la mise sous tension du module.
Ensuite on pourra téléverser le programme à l’aide d’un module ou d’un câble USB vers TTL (UART). Il faut également que l’alimentation électrique sit suffisamment puissante pour éviter tout échec de transfert du programme.
Le schéma suivant utilise une alimentation externe (2 piles AA). Ce n’est pas nécessaire si le convertisseur USB vers TTL délivre suffisamment de puissance. On rencontre souvent des problèmes avec les câbles série.
Montage pour téléverser un programme depuis l’IDE Arduino ou PlatformIO sur un ESP-01 à l’aide d’un module USB/TTL.
C’est vite fastidieux !
Le mieux est d’acheter un programmeur (Programmer en anglais) qui embarque à la fois une alimentation et un convertisseur UART / USB.
Cet article explique tout en détail
Il existe peu de programmeur qui permettent d’activer le Flash Mode et au final ce n’est pas très utile car il faut à chaque fois déconnecter / reconnecter le module pour pouvoir l’utiliser normalement.
Il suffit de souder un contacteur (push button) et maintenir le bouton lorsqu’on insère le programmeur dans le port USB de l’ordinateur.
Comment téléverser un programme depuis l’IDE Arduino ?
Avant de pouvoir développer un programme pour le module WiFi ESP-01, vous devez installer le SDK ESP8266 officiel. Suivez les instructions détaillées dans ce tutoriel
Il n’y a pas de configuration dédiée aux modules ESP-01.
1 Ouvrez le menu Outils -> Carte de développement et sélectionner Generic ESP8266 Module.
2 Adapter la configuration à votre carte
La configuration par défaut convient la plupart du temps.
Upload speed 115200 par défaut mais les modules récents supportent très bien la vitesse maximale de 921600 bauds
Flash Mode DOUT
Flash Size Sélectionner 1MB ou 512KB. Il est possible de réserver une partie de la mémoire flash au système de fichier SPIFFS ou LittleFS.
Une série d’articles pour apprendre comment utiliser le système de fichier SPIFFS ou LittleFS (son successeur).
SPIFFS | LittleFS |
3 Connecter le programmeur
Ici le cas d’un programmeur modifié. Pour activer le Flash Mode, on maintient le bouton appuyé en même temps qu’on branche le programmeur sur le port USB de l’ordinateur.
4 Sélectionner le port COM sur lequel est connecté le programmeur
Si le programmeur n’apparaît pas, vérifiez que le drivers est correctement installé en suivant les instructions de ce tutoriel.
5 Téléverser le projet
6 Désactiver le Flash Mode.
Vous n’avez rien à faire si votre programmeur est modifié avec un bouton poussoir (Momentary Button). Sinon, suivez les instructions de ce tableau
Résistance | Cavalier | Bouton | Sélecteur intégré |
Retirer l’ESP01 du support
Retirer la résistance Remettre en place l’ESP01 |
Retirer le programmeur du port USB
Retirer le cavalier (jumper) Rebrancher le programmeur |
Il n’y a rien à faire ! | Retirer le programmeur du port USB
Remettre le sélecteur sur la position UART Rebrancher le programmeur |
7 Ouvrez éventuellement le moniteur série pour mettre au point le programme !
Comment téléverser un programme depuis PlatformIO ?
Il n’y a rien de particulier à faire sur PlatformIO.
1 Créer un nouveau projet.
Dans le champ board (carte de développement), faites une recherche avec le mot clé esp-01. Choisissez la version 512KB ou 1MB dans la liste.
Voici deux exemples de configuration que vous pouvez directement utiliser.
Version 512 Ko | Version 1 Mo |
|
|
2 Modifier les principaux paramètres
Fréquence du CPU par défaut la fréquence du processeur est de 80MHz. L’option board_build.f_cpu permet de modifier la fréquence du CPU à 160MHz.
80MHz | 160MHz |
board_build.f_cpu = 80000000L |
board_build.f_cpu = 160000000L |
Vitesse du port série Attribuer la vitesse du port série utilisée dans votre programme
monitor_speed = 115200
3 Téléverser
Lancer la compilation et le téléversement du programme depuis le menu PIO
Si la carte est en Flash Mode, le programme est directement téléversé
> Executing task: platformio run --target upload --target monitor --environment esp01_1m <
Processing esp01_1m (platform: espressif8266; board: esp01_1m; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
CONFIGURATION: https://docs.platformio.org/page/boards/espressif8266/esp01_1m.html
PLATFORM: Espressif 8266 (2.6.2) > Espressif Generic ESP8266 ESP-01 1M
HARDWARE: ESP8266 80MHz, 80KB RAM, 1MB Flash
PACKAGES:
- framework-arduinoespressif8266 3.20704.0 (2.7.4)
- tool-esptool 1.413.0 (4.13)
- tool-esptoolpy 1.20800.0 (2.8.0)
- tool-mklittlefs 1.203.200522 (2.3)
- tool-mkspiffs 1.200.0 (2.0)
- toolchain-xtensa 2.40802.200502 (4.8.2)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 41 compatible libraries
Scanning dependencies...
Dependency Graph
|-- 1.0
Building in release mode
Retrieving maximum program size .pio/build/esp01_1m/firmware.elf
Checking size .pio/build/esp01_1m/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [=== ] 33.4% (used 27392 bytes from 81920 bytes)
Flash: [==== ] 36.0% (used 274504 bytes from 761840 bytes)
Configuring upload protocol...
AVAILABLE: espota, esptool
CURRENT: upload_protocol = esptool
Looking for upload port...
Auto-detected: /dev/cu.usbserial-1410
Uploading .pio/build/esp01_1m/firmware.bin
esptool.py v2.8
Serial port /dev/cu.usbserial-1410
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 58:ge:34:e0:0h:0e
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 1MB
Compressed 278656 bytes to 204802...
Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 278656 bytes (204802 compressed) at 0x00000000 in 19.9 seconds (effective 112.1 kbit/s)...
Hash of data verified.
Leaving...
Soft resetting...
========================= [SUCCESS] Took 23.60 seconds ======================
--- Available filters and text transformations: colorize, debug, default, direct, esp8266_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at http://bit.ly/pio-monitor-filters
--- Miniterm on /dev/cu.usbserial-1410 115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Connecting to MON_RESEAU_WIFI
.....
WiFi connected
Server started
Use this URL to connect: https://192.168.1.47/
Problèmes pour téléverser un programme sur un ESP01 depuis PlatformIO
Si vous rencontrez des difficultés à téléverser le projet, vous pouvez essayer de diminuer la vitesse d’upload en ajoutant l’option upload_speed dans le fichier platformio.ini. Les modules récents supportent très bien le débit maximal par défaut.
upload_speed = 115200
Pour les anciens modèles, il peut s’avérer nécessaire de forcer le protocole et le flash mode.
upload_protocol = esptool
board_build.flash_mode = dout
Pour maitriser les options importantes du fichier platformio.ini, vous pouvez continuer par la lecture de cet article.
Avez-vous aimé cet article ?