Serveur Web Asynchrone sur un ESP32-S3 en Ethernet ou Wifi
Ci-après, je vous propose de découvrir une carte équipée d’un microcontrôleur ESP32-S3, qui présente de nombreux atouts. Elle intègre bien sûr le processeur ESP32-S3, bien plus performant que l’ESP32 classique, avec ses capacités de communication en Wi-Fi et en Bluetooth. Mais cette carte se distingue par la présence d’un connecteur RJ45, permettant une communication Ethernet.
Carte T-ETH-LITE ESP32-S3 en configuration N16R8
Caractéristiques techniques
- Processeur : ESP32-S3 (biprocesseur).
- Mémoire interne : Comme l’ESP32 classique, elle dispose d’environ 500 Ko de mémoire flash, mais ici, elle est bien plus intéressante, avec 16 Mo dédiés à la mémoire du programme, soit quatre fois plus que les ESP32 classiques.
- PSRAM : Une mémoire RAM externe complémentaire de 8 Mo, idéale pour stocker de gros volumes de données, comme des tableaux ou des variables.
- Connectivité : Wi-Fi, Bluetooth et Ethernet 100 Mbit/s.
- Entrées/sorties : De nombreuses broches analogiques, numériques, série, PWM, etc.
- Traitement parallèle : Une capacité rarement exploitée, appelée mode SIMD (Single Instruction, Multiple Data).
- Stockage : Possibilité d’ajouter une carte microSD grâce à un connecteur dédié.
Caractéristique | Valeur typique |
---|---|
Processeur | 2 × Xtensa LX7 @ 240 MHz |
RAM interne (SRAM) | 512 Ko |
Flash externe (SPI) | 16 Mo |
PSRAM | 8 Mo |
Wi-Fi | 802.11 b/g/n (2,4 GHz) |
Bluetooth | LE 5.0 (BLE + Bluetooth Mesh) |
Ethernet | 100Mb Full Duplex (W5500) |
Ports | SPI, I²C, I²S, UART, PWM, ADC, DAC, USB, etc. |
AI/ML Acceleration | Support pour instructions vectorielles SIMD et moteur AI |
Stockage externe | Slot pour carte MicroSD (TF card) pour stockage local de données |

Alimentation et programmation
La carte peut être alimentée via un système PoE (Power Over Ethernet), à condition d’ajouter un module complémentaire. Elle dispose également d’une broche 5 Vin pour une alimentation externe.
Pour la programmer, notez qu’elle ne possède pas de connecteur USB intégré. Il est donc nécessaire d’utiliser un module FTDI 232 pour établir la liaison entre votre PC et les broches TX/RX de la carte. Attention : avant de connecter le module, assurez-vous que le jumper soit positionné sur 3,3 V et non sur 5 V, car l’ESP32-S3 fonctionne en 3,3 V. Pour l’alimentation, branchez une source externe de 5 V.

Après compilation d’un programme, pour lancer le transfert depuis le PC sur la carte ESP32 il faut en séquence :
– appuyer sur boot
– un appui bref sur reset
– relacher boot
Application : Serveur web asynchrone
Sur le dépôt GitHub F1ATB, je vous propose une application de serveur web asynchrone. Vous pourrez communiquer via Internet (module W5500) ou en Wi-Fi. Le développement a été réalisé sur la plateforme PlatformIO, mais il est facilement adaptable à l’IDE Arduino, car il repose sur un seul fichier principal.
La petite démo proposée ici offre les fonctionnalités suivantes :
- Serveur Web Asynchrone
- Gestion réseau via Ethernet (W5500) et/ou Wi-Fi
- Compatible PlatformIO / VSCode mais adaptable Arduino IDE
- Exemple minimal dans
src/main.cpp
- Extension de la partition mémoire sur 16Mo
La difficulté,autour de cette carte, fut de trouver une librairie qui fourni un serveur web asynchrone compatible du module W5500 et permettant la liaison Wifi et/ou Ethernet. Le choix s’est porté sur : AsyncWebServer_ESP32_SC_W5500.h disponible sur PlatformIO et Arduino IDE. La définition des GPIOs d’interface avec le W5500 est adaptée au lancement du programme à la disposition physique de la carte T-ETH-LITE ESP32-S3.
J’ai également préparé un fichier de partition pour la mémoire flash de 16 Mo, avec :
- Deux zones de 6,5 Mo dédiées aux applications.
- Une zone OTA (Over-The-Air) pour les mises à jour à distance, évitant ainsi l’utilisation de la liaison série.
- Une zone de 2 Mo pour stocker des fichiers selon le protocole SPIFFS.
# Name | Type | SubType | Offset | Size | Flags |
nvs | data | nvs | 0x9000 | 0x5000 | |
otadata | data | ota | 0xe000 | 0x2000 | |
app0 | app | ota_0 | 0x10000 | 0x660000 | |
app1 | app | ota_1 | 0x670000 | 0x660000 | |
spiffs | data | spiffs | 0xCD0000 | 0x200000 | |
corredump | data | coredump | 64K |
Pour plus d’informations sur cette application, consultez mon site f1atb.fr ou ma chaîne YouTube F1ATB, où vous trouverez plusieurs vidéos explicatives. En cas de difficulté, n’hésitez pas à visiter le forum du site f1atb.fr : une communauté est là pour vous aider.
⚠️Particularités
- On ne peux pas utiliser simultanément Ethernet (W5500) et la carte SD si tous deux demandent le même bus SPI, sauf à réaffecter les SPI (utiliser SPI2 pour l’un, etc.).
- L’antenne WiFi est de type PCB (intégrée) .
- Le contrôle Ethernet se fait via SPI, ce qui ajoute de la latence comparée à une interface MAC/PHY interne. Cela reste très utilisable selon le projet.
Commentaires récents