Skip to Content

Premiers pas avec XIAO ESP32-S3-Plus et Arduino IDE

Premiers pas avec XIAO ESP32-S3-Plus et Arduino IDE

Le XIAO ESP32-S3-Plus est une carte microcontrôleur compacte et puissante conçue pour des projets embarqués avancés et IoT. Elle est basée sur le processeur dual-core ESP32-S3 fonctionnant jusqu’à 240 MHz. La carte intègre une connectivité Wi-Fi et Bluetooth Low Energy pour les applications sans fil.

Par rapport au XIAO ESP32-S3, il conserve un facteur de forme réduit tout en ajoutant plus de mémoire et de capacités d’E/S. La version Plus dispose de 16 Mo de flash, 8 Mo de PSRAM et 20 broches GPIO.

La carte prend en charge plusieurs interfaces telles que UART, I2C, SPI et I2S. Elle inclut également la charge de batterie intégrée et des modes basse consommation pour une utilisation économe en énergie.

Dans ce tutoriel, vous apprendrez comment programmer le XIAO ESP32-S3-Plus avec l’IDE Arduino.

Où acheter

Vous pouvez vous procurer le XIAO ESP32-S3-Plus chez Seeed Studio. Vous aurez également besoin d’un câble USB-C, si vous n’en possédez pas déjà un. Un petit dissipateur thermique peut aussi être nécessaire si vous effectuez des calculs intensifs sur la carte.

XIAO ESP32-S3-Plus

Câble USB C

Petit dissipateur thermique 9×9 mm

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Caractéristiques de la carte XIAO ESP32-S3 Plus

Le XIAO ESP32-S3-Plus est basé sur le microcontrôleur ESP32-S3R8. Il utilise un CPU dual-core Xtensa LX7 cadencé jusqu’à 240 MHz. L’image ci-dessous montre le recto et le verso de la carte.

Front and Back of XIAO ESP32-S3-Plus board
Recto et verso de la carte XIAO ESP32-S3-Plus

Le processeur est 32 bits et conçu pour les charges embarquées et IoT. Il supporte les instructions vectorielles qui améliorent les performances pour le traitement du signal et les tâches d’IA.

La carte est compatible avec les frameworks de développement courants. Elle supporte Arduino, MicroPython et ESP-IDF.

Configuration mémoire

La version Plus offre une configuration mémoire plus importante que le modèle standard. Elle inclut 16 Mo de mémoire flash externe et 8 Mo de PSRAM pour la gestion dynamique des données.

Cette combinaison permet des applications plus complexes, notamment la mise en tampon, le traitement d’images et les charges d’IA en périphérie.

Connectivité sans fil

La carte intègre un sous-système Wi-Fi complet en 2,4 GHz. Elle supporte aussi Bluetooth Low Energy 5.0 et Bluetooth Mesh. Une antenne externe peut être connectée via une interface U.FL, améliorant la portée et la stabilité du signal dans les designs embarqués. La photo ci-dessous montre l’antenne à côté de la carte XIAO ESP32-S3-Plus :

XIAO ESP32-S3-Plus with external Antenna
XIAO ESP32-S3-Plus avec antenne externe

GPIO et interfaces

Le XIAO ESP32-S3-Plus offre un ensemble étendu de broches GPIO, jusqu’à 20 GPIO. Des broches supplémentaires sont disponibles via des pastilles castellated au dos de la carte. L’image suivante montre le brochage du XIAO ESP32-S3-Plus :

Brochage du XIAO ESP32-S3-Plus (source)

La carte supporte plusieurs interfaces de communication : deux UART, un I2C, un I2S et deux SPI. Elle fournit aussi des entrées analogiques via des canaux ADC.

Un connecteur B2B est inclus pour les cartes d’extension. Notez que le connecteur B2B du XIAO ESP32-S3-Plus est compatible avec la Wio-SX1262 carte d’extension mais pas avec la carte capteur caméra Plug-in.

B2B connector of XIAO ESP32-S3-Plus
Connecteur B2B du XIAO ESP32-S3-Plus

Gestion de l’alimentation

La carte supporte une alimentation USB Type-C en 5 V. Elle accepte aussi une alimentation directe par batterie Li-ion ou LiPo. Un circuit de charge intégré est inclus, avec un courant de charge pouvant atteindre 100 mA. La batterie doit être connectée via des pastilles de soudure au dos de la carte :

Battery solder pads of XIAO ESP32-S3-Plus
Pastilles de soudure batterie du XIAO ESP32-S3-Plus

Le XIAO ESP32-S3-Plus propose plusieurs modes d’alimentation : actif, modem sleep, light sleep et deep sleep. Le courant en deep sleep peut descendre dans la gamme des microampères, permettant des conceptions basse consommation.

Caractéristiques physiques

La carte suit le facteur de forme standard XIAO. Elle mesure 21 x 17,8 x 5 mm. Elle utilise un espacement de 2,54 mm pour la plupart des broches GPIO, compatible avec les breadboards. Mais elle dispose aussi de 9 broches GPIO supplémentaires en pastilles SMD à pas de 1,27 mm et le verso inclut des pastilles de débogage.

Dimensions of XIAO ESP32-S3-Plus
Dimensions du XIAO ESP32-S3-Plus

Le layout comprend un bouton reset et un bouton boot. Il comporte aussi des LEDs de statut pour le contrôle utilisateur et l’indication de charge de batterie.

Spécifications techniques

Le tableau suivant résume les caractéristiques techniques du XIAO ESP32-S3-Plus :

Paramètre Spécification
Microcontrôleur ESP32-S3R8, Xtensa LX7 dual-core, 32 bits
Fréquence CPU Jusqu’à 240 MHz
Connectivité sans fil Wi-Fi 2,4 GHz, Bluetooth 5.0, Bluetooth Mesh
Mémoire Flash 16 Mo flash externe
PSRAM 8 Mo
GPIO Jusqu’à 20 GPIO (y compris pastilles arrière)
Entrées analogiques Jusqu’à 9 canaux ADC
Interfaces de communication 2× UART, 1× I2C, 1× I2S, 2× SPI
Interface USB USB Type-C pour alimentation et programmation
Tension de fonctionnement 5 V (USB), ~3,7–4,2 V (batterie)
Support batterie Li-ion / LiPo avec charge intégrée
Courant de charge Jusqu’à 100 mA
Consommation (Wi-Fi actif) ~81 mA
Consommation (Deep Sleep) ~33 µA
Modes d’alimentation Actif, modem sleep, light sleep, deep sleep
Dimensions 21 × 17,8 mm
Température de fonctionnement -40 °C à 65 °C
Fonctionnalités supplémentaires Connecteur B2B, bouton reset, bouton boot, LEDs de statut

Installer le Core ESP32

Si vous souhaitez utiliser l’IDE Arduino pour programmer la carte, vous devez d’abord installer le Core ESP32 pour activer le support des cartes ESP32 dans l’IDE Arduino. Ouvrez votre  Arduino IDE  et suivez les étapes ci-dessous. En cas de problème, vous pouvez consulter des instructions plus détaillées dans notre tutoriel Install ESP32 core in Arduino IDE.

URLs supplémentaires pour le gestionnaire de cartes

Commencez par ouvrir la boîte de dialogue Préférences en sélectionnant « Preferences… » dans le menu « File » :

Open Preferences Dialog
Ouvrir la boîte de dialogue Préférences

Cela ouvrira la boîte de dialogue Préférences ci-dessous. Sous l’onglet Settings, vous trouverez un champ d’édition en bas intitulé « Additional boards manager URLs » :

Dans ce champ, copiez l’URL suivante : « https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json« 

Cela permettra à l’IDE Arduino de savoir où trouver les bibliothèques du core ESP32. Ensuite, nous allons installer ces bibliothèques via le Boards Manager.

Gestionnaire de cartes

Ouvrez le BOARDS MANAGER en cliquant sur l’icône de la carte dans la barre latérale de l’IDE Arduino :

Board icon in Sidebar
Icône de carte dans la barre latérale

Le BOARDS MANAGER apparaîtra à droite de la barre latérale. Tapez « ESP32 » dans le champ de recherche en haut et vous verrez deux types de cartes ESP32 : « Arduino ESP32 Boards » et « esp32 by Espressif ». Nous voulons les bibliothèques esp32 par Espressif. Cliquez sur INSTALL et attendez la fin du téléchargement et de l’installation.

Install ESP32 Core libraries
Installer les bibliothèques Core ESP32

Une fois installé, votre Boards Manager devrait ressembler à ceci, bien que la version (ici 3.3.7) puisse être différente.

ESP32 core installed
Core ESP32 installé

À l’étape suivante, je vous montre comment sélectionner la carte ESP32 pour le XIAO ESP32-S3-Plus.

Sélectionner la carte XIAO_ESP32S3_PLUS

Vous pouvez sélectionner une carte dans le menu déroulant sous la barre de menu : dans l’exemple ci-dessous, c’est une Arduino Uno qui est sélectionnée :

Bord selector
Sélecteur de carte

Cliquer sur le nom de la carte sélectionnée (Arduino Uno) ouvrira la boîte de sélection de carte. Dans la zone de recherche, tapez « xiao s3 » et sélectionnez « XIAO_ESP32S3_PLUS » comme montré ci-dessous :

Sélectionner XIAO_ESP32S3_PLUS dans le Board Manager

Si la carte est connectée à votre PC via USB, vous pourrez aussi sélectionner le port COM. Sur la capture d’écran, c’est COM9, mais cela peut être un autre port sur votre machine.

Exemples de code

Dans cette section, je vous propose quelques exemples de code pour tester les principales fonctionnalités du XIAO ESP32-S3-Plus.

Faire clignoter la LED intégrée

Nous commençons par l’exemple classique Blink. Il allume et éteint la LED intégrée pendant une seconde. La LED intégrée du XIAO ESP32-S3-Plus est connectée à GPIO21 mais est inversée. LOW signifie que la LED est allumée et HIGH qu’elle est éteinte. Vous pouvez voir cela dans l’exemple de code ci-dessous :

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  Serial.println("Off");
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);     
  Serial.println("On");                 
  digitalWrite(LED_BUILTIN, LOW);   
  delay(1000);                      
}

Lire & écrire sur GPIO

Dans les exemples très courts suivants, nous lisons et écrivons sur les GPIO. Pour spécifier les broches dans le code, vous pouvez utiliser le numéro GPIO x ou le numéro Dx. Par exemple, selon le brochage, D3 ou GPIO4 identifient la même broche et dans votre code vous pouvez utiliser l’un ou l’autre. Les deux exemples de code suivants sont identiques en fonction et mettent GPIO4 à HIGH:

digitalWrite(D3, HIGH);  // D3 == GPIO4
digitalWrite(4, HIGH);  // D3 == GPIO4

Si vous souhaitez lire des signaux analogiques, vous pouvez utiliser les constantes prédéfinies Ax. Par exemple, le code suivant lit une entrée analogique sur A3, qui est la même broche que GPIO4:

int val = analogRead(A3);  // A3 == GPIO4
int val = analogRead(4);  // A3 == GPIO4

Les valeurs analogiques vont de 0 à 4095, ce qui correspond à une tension d’entrée entre 0 et 3,3 V.

Entrée tactile

Cet exemple montre comment utiliser les broches tactiles capacitives du XIAO ESP32-S3-Plus pour détecter un toucher. Si vous touchez la première broche (D0) de la carte, la LED intégrée s’allumera. Vous devrez peut-être ajuster le seuil de détection.

void setup() {
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  int value = touchRead(T1);
  Serial.println(value);

  if (value > 30000) { 
    digitalWrite(LED_BUILTIN, LOW);
  } else {
    digitalWrite(LED_BUILTIN, HIGH);
  }

  delay(200);
}

Wi-Fi

L’exemple suivant montre comment connecter le XIAO ESP32-S3-Plus à un réseau Wi-Fi. Cela fonctionnera sans antenne externe si vous êtes proche du routeur Wi-Fi. Mais pour une meilleure portée, il est conseillé d’installer l’antenne.

#include <WiFi.h>

const char* ssid = "YOUR_SSID";
const char* password = "YOUR_PASSWORD";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("\nConnected");
  Serial.println(WiFi.localIP());
}

void loop() {
}

Bluetooth

Ce dernier exemple montre comment créer un serveur Bluetooth Low Energy (BLE) simple.

#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>

void setup() {
  Serial.begin(115200);

  BLEDevice::init("XIAO-ESP32-S3");
  BLEServer *pServer = BLEDevice::createServer();
  BLEDevice::getAdvertising()->start();

  Serial.println("BLE server started");
}

void loop() {
}

Vous pouvez vérifier si le serveur est actif en utilisant un scanner BLE sur votre téléphone. Les options courantes sont nRF Connect ou LightBlue. En lançant un scan, vous verrez apparaître « XIAO-ESP32-S3 ».

Conclusions

Ce post vous a montré comment démarrer avec le XIAO ESP32-S3-Plus de Seeed Studio. Seeed Studio fournit des informations supplémentaires dans son Wiki.

Comparé au XIAO ESP32-S3, le XIAO ESP32-S3-Plus offre plus de Flash et de broches GPIO. Cependant, il ne possède pas le microphone du XIAO MG24 Sense ni la caméra (et microphone) du XIAO-ESP32-S3-Sense. Si vous souhaitez enregistrer de l’audio ou diffuser de la vidéo, ces cartes sont un meilleur choix. Mais si vous avez besoin de plus de mémoire ou d’E/S, optez pour le XIAO ESP32-S3-Plus.

Si vous avez des questions, n’hésitez pas à les poser dans la section commentaires.

Bon bricolage 😉