Sélectionner une page

Qu’est-ce que l’ESP-WROOM ?

ESP32-WROOM-32 est un puissant module MCU générique Wi-Fi+Bluetooth+BLE qui s’adresse à une grande variété d’applications, allant des réseaux de capteurs à faible puissance aux tâches les plus exigeantes, telles que le codage de la voix, la diffusion de musique en continu et le décodage de MP3.

ESP32 1 - ESP32, módulo ESP32-WROOM GPIO Pinout

Au cœur de ce module se trouve la puce ESP32-D0WDQ6*. La puce intégrée est conçue pour être évolutive et adaptable. Il y a deux cœurs de CPU qui peuvent être contrôlés individuellement, et la fréquence d’horloge du CPU est réglable de 80 MHz à 240 MHz. L’utilisateur peut également éteindre l’unité centrale et utiliser le coprocesseur à faible puissance pour surveiller en permanence les périphériques afin de détecter les changements ou les dépassements de seuil. L’ESP32 intègre un riche ensemble de périphériques, allant des capteurs tactiles capacitifs aux capteurs à effet Hall, en passant par l’interface de carte SD, l’Ethernet, le SPI haute vitesse, l’UART, l’I2S et l’I2C.

Pour plus de détails, voir la fiche technique ESP32-WROOM32

L’intégration de Bluetooth, Bluetooth LE et Wi-Fi permet de cibler un large éventail d’applications et de pérenniser le module : l’utilisation du Wi-Fi permet une longue portée physique et une connexion directe à Internet via un routeur Wi-Fi, tandis que l’utilisation de Bluetooth permet à l’utilisateur de se connecter facilement au téléphone ou d’émettre des balises à faible énergie pour la détection. Le courant de veille de la puce ESP32 est inférieur à 5 μA, ce qui la rend adaptée aux applications de batteries électroniques et de vêtements. L’ESP32 supporte un débit de données allant jusqu’à 150 Mbps, et une puissance de sortie de 20,5 dBm à l’antenne pour assurer la plus grande portée physique. En tant que telle, la puce offre des spécifications de pointe et les meilleures performances en matière d’intégration électronique, de portée, de consommation d’énergie et de connectivité. Le système d’exploitation choisi pour l’ESP32 est freeRTOS avec LwIP ; TLS 1.2 avec accélération matérielle est également intégré. La mise à jour sécurisée (cryptée) en direct (OTA) est également prise en charge, de sorte que les développeurs peuvent continuellement mettre à jour leurs produits, même après le lancement.

ESP32 WROOM32 DevKit Pinout

ESP32 pinout - ESP32, módulo ESP32-WROOM GPIO Pinout

ESP32 Caractéristiques périphériques

  • 18 canaux de conversion analogique-numérique (ADC)
  • 10 Détection capacitive GPIO
  • 3 interfaces UART
  • 3 interfaces SPI
  • 2 interfaces I2C
  • 16 canaux de sortie PWM
  • 2 convertisseurs numérique-analogique (DAC)
  • 2 interfaces I2S

Épingles GPIO

Le DevKit ESP32 Wroom32 a un total de 25 GPIO, dont quelques broches ne sont que des broches d’entrée,

Broches d’entrée uniquement

  • GPIO 34
  • GPIO 35
  • GPIO 36
  • GPIO 39

Toutes les broches n’ont pas de pullup d’entrée, un pullup externe est nécessaire sur ces broches lorsqu’elles sont utilisées comme pullup d’entrée.

Broches avec tirette interne INPUT_PULLUP

  • GPIO14
  • GPIO16
  • GPIO17
  • GPIO18
  • GPIO19
  • GPIO21
  • GPIO22
  • GPIO23

Epingles sans lien interne

  • GPIO13
  • GPIO25
  • GPIO26
  • GPIO27
  • GPIO32
  • GPIO33

Avec Arduino pour utiliser ces broches, vous pouvez simplement utiliser les commandes courantes

Exemple : faire du GPIO22 en entrée et du GPIO23 en sortie

pinMode(22,INPUT_PULLUP) ;

pinMode(23,OUTPUT) ;

digitalWrite(23,HIGH) ;

Broches d’entrée analogique

Notez que seul un sous-ensemble de broches et de fonctions ADC est exposé. Tout d’abord, les pilotes fournis n’exposent que l’ADC1. La disposition du tableau de l’ESP32-DevKitC n’expose qu’une partie des broches. Plus précisément, les éléments suivants sont exposés : ADC1_CH0 , ADC1_CH3 , ADC1_CH4 , ADC1_CH5 , ADC1_CH6 et ADC1_CH7 .

La conversion analogique-numérique est la capacité de lire un niveau de tension sur une broche entre 0 et une certaine valeur maximale et de convertir cette valeur analogique en une représentation numérique. Le fait de varier la tension appliquée à la broche modifie la valeur lue. L’ESP32 possède un convertisseur analogique-numérique intégré avec une résolution allant jusqu’à 12 bits, ce qui équivaut à 4096 valeurs différentes. Cela signifie que 0 volt produira une valeur numérique de 0 tandis que la tension maximale produira une valeur numérique de 4095 et que les plages de tension entre celles-ci produiront une valeur numérique proportionnellement échelonnée.
L’une des propriétés des canaux de conversion analogique-numérique est l’atténuation. Il s’agit d’un facteur d’échelle de tension. Normalement, la plage d’entrée est de 0-1V, mais avec différentes atténuations, nous pouvons échelonner la tension d’entrée dans cette plage. Les échelles disponibles au-delà de 0-1V comprennent 0-1,34V, 0-2V et 0-3,6V.

GPIOs à impulsion capacitive

L’ESP32 possède 10 capteurs tactiles capacitifs internes. Ils peuvent détecter les variations de tout ce qui contient une charge électrique, comme la peau humaine. Ils peuvent donc détecter les variations induites en touchant les GPIO avec un doigt. Ces broches peuvent être facilement intégrées dans les pads capacitifs, et remplacer les boutons mécaniques. Les broches de contact capacitives peuvent également être utilisées pour réveiller l’ESP32 du sommeil profond.

Ces capteurs tactiles internes sont connectés à ces GPIO :

  • T0 (GPIO 4)
  • T1 (GPIO 0)
  • T2 (GPIO 2)
  • T3 (GPIO 15)
  • T4 (GPIO 13)
  • T5 (GPIO 12)
  • T6 (GPIO 14)
  • T7 (GPIO 27)
  • T8 (GPIO 33)
  • T9 (GPIO 32)

Convertisseur numérique-analogique (DAC)

L’ESP32 dispose de deux canaux CNA de 8 bits pour convertir les signaux numériques en signaux de tension analogiques. Ce sont les canaux du CAD :

  • DAC1 (GPIO25)
  • DAC2 (GPIO26)

RTC GPIOs

Le GPIO RTC apporte son soutien à l’ESP32. Les GPIO acheminés vers le sous-système de faible puissance du RTC peuvent être utilisés lorsque l’ESP32 est en sommeil profond. Ces GPIO RTC peuvent être utilisés pour réveiller l’ESP32 du sommeil profond lorsque le coprocesseur à ultra faible puissance (ULP) est en marche. Les GPIO suivants peuvent être utilisés comme source de réveil externe

  • RTC_GPIO0 (GPIO36)
  • RTC_GPIO3 (GPIO39)
  • RTC_GPIO4 (GPIO34)
  • RTC_GPIO5 (GPIO35)
  • RTC_GPIO6 (GPIO25)
  • RTC_GPIO7 (GPIO26)
  • RTC_GPIO8 (GPIO33)
  • RTC_GPIO9 (GPIO32)
  • RTC_GPIO10 (GPIO4)
  • RTC_GPIO11 (GPIO0)
  • RTC_GPIO12 (GPIO2)
  • RTC_GPIO13 (GPIO15)
  • RTC_GPIO14 (GPIO13)
  • RTC_GPIO15 (GPIO12)
  • RTC_GPIO16 (GPIO14)
  • RTC_GPIO17 (GPIO27)

PWM

Le contrôleur PWM pour LED ESP32 possède 16 canaux indépendants qui peuvent être configurés pour générer des signaux PWM avec différentes propriétés. Toutes les broches qui peuvent servir de sorties peuvent être utilisées comme broches PWM (en entrée, seules les broches GPIO 34 à 39 ne peuvent pas générer de PWM).

Pour configurer un signal PWM, il est nécessaire de définir ces paramètres dans le code :

  • La fréquence du signal ;
  • Cycle d’utilisation ;
  • La chaîne PWM ;
  • GPIO dans lequel vous voulez diffuser le signal.

Série

L’ESP32 a trois ports série

La première série RX0, TX0 est utilisée pour la programmation,

  • GPIO3 (U0RXD)
  • GPIO1(U0TXD)

Un autre port série est disponible à l’adresse suivante

  • GPIO16 (U2RXD).
  • GIIO17 (U2TXD).

Lorsqu’il est programmé, il est appelé Serial2.

I2C

Lorsque vous utilisez l’ESP32 avec l’EDI Arduino, les broches par défaut de l’ESP32 I2C (supportées par la bibliothèque Wire) doivent être utilisées :

  • GPIO 21 (SDA)
  • GPIO 22 (SCL)

CPS

Par défaut, l’affectation des broches pour le CPS est

CPS MOSI MISO CLK CS
VSPI GPIO 23 GPIO 19 GPIO 18 GPIO 5
HSPI GPIO 13 GPIO 12 GPIO 14 GPIO 15

Interruptions

Tous les GPIO peuvent être configurés comme des interruptions.

Activer

Enable (EN) est la broche d’activation du contrôleur 3,3V. Il est surélevé, donc il faut le mettre à la terre pour désactiver le régulateur 3,3V. Cela signifie que vous pouvez utiliser cette broche connectée à un bouton pour réinitialiser votre ESP32.

Extrait du courant GPIO

Le courant absolu maximum tiré par GPIO est de 40mA source et 28mA puits selon la section « Conditions de fonctionnement recommandées » de la fiche technique ESP32.