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éristiqueValeur typique
Processeur2 × Xtensa LX7 @ 240 MHz
RAM interne (SRAM)512 Ko
Flash externe (SPI)16 Mo
PSRAM8 Mo
Wi-Fi802.11 b/g/n (2,4 GHz)
BluetoothLE 5.0 (BLE + Bluetooth Mesh)
Ethernet100Mb Full Duplex (W5500)
PortsSPI, I²C, I²S, UART, PWM, ADC, DAC, USB, etc.
AI/ML AccelerationSupport pour instructions vectorielles SIMD et moteur AI
Stockage externeSlot pour carte MicroSD (TF card) pour stockage local de données
T-ETH-LITE ESP32-S3

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.

FTDI232

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.
# NameTypeSubTypeOffsetSizeFlags
nvsdatanvs0x90000x5000
otadatadataota0xe0000x2000
app0appota_00x100000x660000
app1appota_10x6700000x660000
spiffsdataspiffs0xCD00000x200000
corredumpdatacoredump64K

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.

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...