Aller au contenu

ESP32 vs STM32

Quand utiliser l'un et quand utiliser l'autre dans un projet embarqué

Si vous vous êtes lancé dans l’univers des systèmes embarqués et de l’IoT, vous avez tôt ou tard été confronté à ce dilemme : ESP32 ou STM32?

Ces deux microcontrôleurs puissants et largement utilisés bénéficient du soutien de communautés très actives. Ils sont très différents et conçus pour des contextes distincts. Choisir le mauvais ne signifie pas nécessairement que votre projet échouera, mais cela implique deux fois plus d’efforts — et souvent, vous ne vous en rendrez compte que trop tard.

Dans cet article, nous allons vous présenter leurs principales différences, avec des critères pratiques pour vous aider à faire le bon choix.

Tout d'abord : de quoi parlons-nous ?

L’ESP32 est un système sur puce (SoC) fabriqué par Espressif Systems. La connectivité fait partie intégrante de son ADN : le Wi-Fi et le Bluetooth sont intégrés directement sur la puce, et non ajoutés après coup. Il est abordable, bénéficie d’une vaste communauté et est facile à programmer à l’aide de l’IDE Arduino ou de MicroPython. Pour beaucoup, il constitue la porte d’entrée vers l’univers de l’IoT.

Le STM32, quant à lui, est une famille de microcontrôleurs produite par STMicroelectronics, une entreprise européenne dont le siège social se trouve en Italie. Il ne s’agit pas d’une seule puce, mais d’une gamme complète de variantes (STM32F, STM32L, STM32H, STM32G…) couvrant un large éventail de performances, de consommation d’énergie et de périphériques. C’est la référence dans le secteur des systèmes embarqués industriels et professionnels.

Les principales différences

Connectivité

L’ESP32 l’emporte haut la main. Le Wi-Fi 802.11 b/g/n et le Bluetooth 4.2/5.0 sont intégrés à la puce. Pour un nœud IoT devant communiquer sans fil sans matériel supplémentaire, il est imbattable en termes de rapport coût/fonctionnalité.

Le STM32 de base ne dispose pas de connectivité sans fil. Il est possible de l’ajouter via des modules externes (ES-WiFi, modules LoRa, GSM), mais cela augmente la complexité du projet et la nomenclature (BOM). En revanche, cette séparation est souvent un avantage dans les contextes industriels, où la connectivité est gérée par une couche dédiée.

Consommation d’énergie

Ici, les rôles s’inversent. Le STM32, en particulier les variantes de la famille STM32L (le « L » signifie justement Low Power), est conçu pour consommer très peu. En mode Stop ou Standby, la consommation descend facilement en dessous de 10 µA. Pour un appareil alimenté par batterie qui doit durer des années, cela fait une énorme différence.

L’ESP32 dispose de modes de veille profonde qui consomment environ 10 à 150 µA selon la configuration, mais le réveil et la reconnexion Wi-Fi entraînent des pics de courant importants (jusqu’à 250–500 mA). Sur une petite batterie, ces pics se font sentir.

Règle pratique: si l’appareil se réveille rarement et transmet peu (LoRa, capteurs environnementaux), le STM32L est souvent le choix le plus efficace. En revanche, s’il transmet fréquemment via Wi-Fi, l’ESP32 gère mieux le cycle global.

Puissance de calcul

L’ESP32 est équipé d’un processeur double cœur Xtensa LX6 cadencé à 240 MHz avec FPU (unité à virgule flottante). Il est puissant, gère les tâches parallèles et peut effectuer des traitements locaux complexes — encodage JPEG, petits réseaux neuronaux avec TensorFlow Lite, flux audio.

La gamme STM32 est très variée : elle va des cœurs Cortex-M0+ à quelques MHz jusqu’aux Cortex-M7 à 480 MHz avec DSP et FPU avancée (famille STM32H7). La puissance est là, mais il faut choisir la variante adaptée à la tâche.

Temps réel et déterminisme

C’est là que le STM32 prend un net avantage. Les Cortex-M de ST sont conçus pour les systèmes temps réel stricts : timers précis, interruptions à latence garantie, compatibilité avec des RTOS tels que FreeRTOS ou Zephyr dans des environnements industriels certifiés.

L’ESP32, bien qu’il prenne en charge FreeRTOS, dispose d’un cœur non déterministe en raison de la pile Wi-Fi qui s’exécute en arrière-plan et peut introduire de la gigue. Pour les applications où le timing est critique (contrôle de moteurs, acquisition de données à haute fréquence, sécurité fonctionnelle), il s’agit d’une véritable limite.

Écosystème et facilité de développement

L’ESP32 dispose d’un écosystème de développement extrêmement accessible : Arduino IDE, PlatformIO, ESP-IDF, MicroPython, ESPHome. La courbe d’apprentissage est faible et le délai de prototypage est très rapide.

Le STM32 nécessite un investissement initial plus important. L’IDE officiel est STM32CubeIDE, le code est généré avec STM32CubeMX, et la couche d’abstraction matérielle (HAL) de ST présente une courbe d’apprentissage plus raide. En contrepartie, on bénéficie d’un contrôle beaucoup plus fin sur le matériel et d’une évolutivité industrielle.

Coût

L’ESP32 coûte moins de 2 € pour des volumes moyens. Difficile de faire mieux.

Le prix du STM32 varie considérablement : de ~1 € pour les Cortex-M0 d’entrée de gamme jusqu’à 10–15 € pour les variantes H7 hautes performances. Pour des volumes industriels, le prix est négociable avec STMicro, mais reste généralement plus élevé que celui de l’ESP32.

Quand choisir l'ESP32

  • Prototypage rapide de nœuds IoT connectés via Wi-Fi ou Bluetooth;
  • Appareils grand public ou semi-grand public nécessitant une connectivité;
  • Budget réduit et délai de mise sur le marché prioritaire;
  • Projets éducatifs, projets « maker », démonstrations de faisabilité;
  • Edge computing léger (par exemple, reconnaissance vocale de base, traitement d’images).

    Exemple concret: un module de surveillance environnementale d’intérieur qui envoie des données toutes les 5 minutes à un broker MQTT via Wi-Fi. L’ESP32 est idéal : économique, connecté, facile à mettre à jour par OTA.

Quand choisir STM32

  • Appareils fonctionnant sur batterie avec une autonomie de plusieurs années;
  • Nœuds LoRa ou autres protocoles radio gérés par un module extern;
  • Produits industriels ou médicaux pour lesquels une certification est requise;
  • Des environnements où la robustesse et la fiabilité à long terme sont prioritaires.


Exemple concret: un capteur de température et d’humidité alimenté par deux piles AA, avec transmission LoRa toutes les 15 minutes, installé dans un site isolé pendant 3 ans sans entretien. Le STM32L s’impose comme le choix naturel.

Et si tu les utilises ensemble?

Ce n’est pas une réponse facile : dans de nombreux projets embarqués professionnels, l’ESP32 et le STM32 coexistent.

Une architecture courante consiste à confier au STM32 la gestion de l’acquisition en temps réel des données des capteurs et le contrôle précis des périphériques, tandis que l’ESP32 se charge de la connectivité Wi-Fi et de l’interface cloud. Les deux communiquent via UART ou SPI. Chacun fait ce qu’il sait faire le mieux.

Tableau récapitulatif

Critère

ESP32

STM32

Wi-Fi/Bluetooth intégré

✅ Oui

❌ No (module externe)

Très faible consommation d’énergie

⚠️ Discret

✅ Excellent (série L)

Temps réel/déterminisme

⚠️ Limité

✅ Excellent

Facilité de développement

✅ Haute

⚠️ Moyen-élevé

Coût

✅ Très faible

⚠️ Variable

Évolutivité industrielle

⚠️ Réservé

✅ Élevé

Fondateur de la communauté

✅ Énorme

✅ Vaste

Certifications (CEI, ISO)

❌ Rare

✅ Disponibles

Conclusion

Il n’y a pas de réponse universelle, mais il existe une réponse adaptée à votre projet spécifique.

L’ESP32 est le compagnon idéal pour ceux qui souhaitent se connecter, prototyper et commercialiser rapidement. Le STM32 est la référence lorsque le projet prend de l’ampleur, lorsque l’autonomie de la batterie doit être longue, lorsque le timing est crucial ou lorsque le client appartient au secteur industriel.

Chez Omnetica, nous utilisons les deux, souvent dans la même solution. Le choix du microcontrôleur est l’une des premières décisions architecturales que nous prenons avec le client — car se tromper sur ce point signifie tout refaire.

Vous avez un projet embarqué en tête et vous ne savez pas par où commencer? Contactez-nous : nous vous aiderons à choisir la bonne technologie dès la première étape.