Commencer avec l’ESP32-C3 Super Mini

Commencer avec l'ESP32-C3 Super Mini

Le super mini ESP32-C3 est un tableau de développement compact basé sur la puce ESPRESSIF ESP32-C3, qui fait partie de la famille ESP32. Ses principaux avantages par rapport aux autres cartes ESP32 sont sa petite taille et sa faible consommation d’énergie en mode de sommeil profond. Dans ce guide, nous présenterons le super mini ESP32-C3, explorer ses fonctionnalités et son épingle, vous montrer comment le programmer à l’aide de l’Arduino IDE et exécuter quelques exemples pour tester la carte.

Début avec l'ESP32-C3 Supermini

Table des matières

Dans ce guide, nous couvrirons les sujets suivants:

Présentation du super mini ESP32-C3

L’ESP32-C3 Super Mini est une carte de développement compacte avec la puce ESP32-C3 avec Wi-Fi intégrée et Bluetooth. Contrairement à d’autres modèles de cartes ESP32, celui-ci est une puce monocœur. Il a une très petite empreinte et est optimisé pour une faible consommation d’énergie, ne dessinant qu’environ 43 µA en mode de sommeil profond, selon la fiche technique. La carte a 16 broches, avec 11 GPIO programmables qui prennent en charge ADC, PWM, UART, I2C et SPI.

ESP32-C3 Super Mini

Il comprend à la fois les boutons RST (réinitialisation) et de démarrage. Le bouton de démarrage est utilisé pour mettre la carte en mode Bootloader pour télécharger le code, tandis que le premier bouton réinitialise la carte – utile pour redémarrer et exécuter le code nouvellement téléchargé.

Interface USB-C supermini ESP32 C3

La carte dispose également d’une interface USB-C, qui peut être utilisée pour alimenter la carte, le téléchargement de code ou la communication série. Alternativement, vous pouvez alimenter la carte en utilisant une source 5V externe via les broches 5V et GND, mais notez que le port USB-C ne doit pas être utilisé en même temps qu’une source d’alimentation externe.

Comme de nombreux autres modèles de carte ESP32, il est livré avec une LED embarquée. Mais, dans ce cas, il est connecté à GPIO 8 (au lieu de GPIO 2 dans la plupart des planches).

ESP32-C3 Super Mini Technical Spécifications

Voici un résumé des spécifications techniques ESP32-C3:

  • Processeur: CPU RISC-V 32 bits fonctionnant jusqu’à 160 MHz
  • IEEE 802.11b / g / n WiFi et Bluetooth 5 (LE) Protocoles
  • 400KB SRAM, ROM 384KB et Flash 4M intégré
  • Antenne externe
  • 11 GPIOS qui prennent en charge les interfaces suivantes:
    • 4 broches ADC
    • PWM
    • Uart
    • I2C
    • Spice
  • LED à bord sur GPIO 8
  • Boutons de réinitialisation et de démarrage
  • Consommation de puissance ultra faible: aussi faible que 43UA en mode de sommeil profond
  • Petit facteur de forme

Vous pouvez également jeter un œil au tableau suivant:

Microcontrôleur (processeur) ESPRESSIF ESP32-C3 (32-RISC-V monocore, jusqu’à 160 MHz)
Mémoire de la mémoire 4 Mb (Flash SPI à bord)
Sram 400 Ko
Roman 384 kb
Wi-Fi 802.11 b / g / n, 2,4 GHz, jusqu’à 150 Mbps
Bluetooth Bluetooth 5.0 LE
Broches GPIO 11 GPIO accessibles
Entrées analogiques (ADC) ADC SAR 2 × 12 bits, jusqu’à 6 canaux
Canaux PWM 6 canaux
Spice Interfaces 3 × SPI (SPI0, SPI1 Réservé)
I2C Interface 1 × i2c
Uart Interfaces 2 × UART
I2 Interface 1 × I2S
Interface USB USB-C, prend en charge les CDC USB
Alimentation électrique 5V via USB-C ou 3,3 V – 6V via la broche VIN (5V); régulateur à bord 3,3 V (jusqu’à 500 mA)
Tension de fonctionnement 3.3V (niveau logique pour GPIOS)
Mode de sommeil profond 43UA
Boutons Bouton 1 × réinitialisation, 1 × bouton de démarrage (GPIO9)
DIRIGÉ 1 × LED embarquée (sur GPIO8, actif bas)
Programmation Arduino IDE, ESP-IDF, Micropython, Platformoo / Pioarduino

Où acheter ESP32-C3 Super Mini?

La carte Super Mini ESP32-C3 est largement disponible dans de nombreux magasins différents. Vérifiez le lien suivant pour comparer son prix sur les différents magasins:

Interface périphérique ESP32-C3 Super Mini

Le super mini ESP32-C3 est livré avec 16 broches, dont 11 sont des GPIO programmables que vous pouvez utiliser pour contrôler les périphériques et lire les capteurs. Il prend en charge les interfaces périphériques suivantes:

  • E / S numérique
  • PWM
  • ADC
  • PWM
  • Uart
  • I2C
  • Spice

ESP32-C3 Super Mini Pinout

L’image suivante montre l’épinglage de la carte Super Mini ESP32-C3. Veuillez noter que le Pinout peut changer légèrement en fonction du fabricant. Donc, vérifiez le pinout avec la cartographie des broches sur l’écran à soigneux de votre planche.

ESP32-C3 Supermini Pinout

Le tableau suivant décrit le mappage de broches et ses fonctions.

Épingle Fonction
3V3 3,3 V Sortie / entrée (sorties 3,3 V du régulateur intégré, ou il s’agit d’une entrée pour l’alimentation externe 3,3 V)
5V Entrée / sortie 5V (se connecte à l’alimentation USB-C 5V ou 5V externe)
GND Broche
Gpio 0 E / S à usage général, ADC1, PWM
Gpio 1 E / S à usage général, ADC1, PWM
GPIO 2 E / S-usure générale ADC1, broche de cerclage (mode de démarrage) (éviter pour une utilisation générale)
GPIO 3 E / S à usage général, PWM
GPIO 4 E / S à usage général, PWM, broche SPI par défaut
GPIO 5 E / S à usage général, PWM, broche Miso SCK par défaut
GPIO 6 E / S à usage général, PWM, broche Spi Mosi par défaut
GPIO 7 E / S à usage général, PWM, broche SPI SS par défaut
GPIO 8 Connecté à la LED embarquée (actif bas); Pin de cerclage (éviter pour une utilisation générale);
PIN I2C SDA par défaut
GPIO 9 Connecté sur le bouton de démarrage (bas pour entrer le chargeur de démarrage), Broche de cerclage (éviter pour une utilisation générale)
PIN I2C SCL par défaut
GPIO 10 E / S à usage général, PWM
GPIO 20 E / S-usage général, PWM, broche UART RX par défaut
GPIO 21 E / S-usage général, PWM, broche UART par défaut

Épingles

  • GPIO 2: Un cerclage pour entrer le mode de chargeur de démarrage – Évitez pour une utilisation générale.
  • GPIO 8: connecté à la LED bleue intégrée (logique inversée / bas actif); C’est aussi une épingle à attaque;
  • GPIO 9: connecté au bouton de démarrage – éviter pour une utilisation générale;

Vous pouvez toujours utiliser les épingles de cerclage dans vos projets, cependant, vous devez prendre en compte la fluctuation de l’état de ces GPIO lorsque l’ESP32 réinitialise ou entre en mode Bootloader.

Broches

En ce qui concerne les épingles d’alimentation, vous avez un 5V, un 3v3 et une broche GND.

La broche 3v3 fournit 3,3 V du régulateur intégré ou accepte 3,3 V à partir d’une source d’alimentation externe. De même, la broche 5V peut être utilisée pour l’entrée pour alimenter la carte, ou elle sortira 5 V à partir de l’alimentation USB.

PWM

Tous les GPIO à usage général peuvent produire des signaux PWM.

Broches analogiques (ADC)

GPIOS 0, 1, 2, 3, 4 et 5 Support la lecture analogique:

  • GPIO 0: ADC1_CH0
  • GPIO 1: ADC1_CH1
  • GPIO 2: ADC1_CH2
  • GPIO 3: ADC1_CH3
  • GPIO 4: ADC1_CH4
  • GPIO 5: ADC1_CH5

UART, I2C et PWM

En raison de la fonction de multiplexage ESP32, les interfaces UART, SPI et I2C peuvent être affectées à presque n’importe quel GPIO.

Cependant, lorsque vous utilisez Arduino IDE, et en supposant que vous sélectionnez la carte ESP32 C3 dans le menu des cartes, il supposera les broches suivantes comme par défaut:

  • UART: par défaut à GPIO 20 (RX) et GPIO21 (TX)
  • SPI: par défaut à GPIO6 (MISO), GPIO7 (MOSI), GPIO10 (SCK) et GPIO 5 (SS)
  • I2C: par défaut GPIO 8 (SDA) et GPIO 9 (SCL)

Fiche technique du conseil d’administration

Pour plus d’informations sur la carte, vous pouvez vérifier sa fiche technique dans le lien ci-dessous:

Programmation de l’ESP32 C3 Super Mini avec Arduino IDE

Vous pouvez programmer le super mini ESP32-C3 en utilisant Arduino IDE comme tout autre module ESP32. Pour ce faire, suivez les étapes suivantes.

1) Installation d’Arduino IDE

Tout d’abord, installez Arduino IDE et les planches ESP32.

Accédez au site Web Arduino et téléchargez la version de votre système d’exploitation.

Téléchargement d'installation du logiciel Arduino IDE 2
  • Windows: Exécutez le fichier téléchargé et suivez les instructions du guide d’installation (pour Windows, nous recommandons la première option).
  • Mac OS X: Copiez le fichier téléchargé dans votre dossier d’application.
  • Linux: extraire le fichier téléchargé et ouvrez le fichier arduino-ide qui lancera l’IDE.
Arduino IDE 2.0 Installation réussie Windows Mac OS X Linux

Si vous avez des doutes, vous pouvez accéder au guide d’installation d’Arduino.

Avez-vous besoin d’un mini-mini tableau ESP32-C3? Vous pouvez l’acheter ici.

Lecture recommandée: Test et comparaison des conseils de développement ESP32

2) Installez les planches ESP32 dans Arduino IDE

Pour installer les planches ESP32 dans votre IDE Arduino, suivez ces instructions.

Ouvrez le responsable des conseils d’administration. Vous pouvez accéder à des outils> Board> Boards Manager… ou vous pouvez simplement cliquer sur l’icône du gestionnaire de cartes dans le coin gauche.

Arduino Ide 2 - Gestionnaire des conseils d'administration

Recherchez ESP32 et appuyez sur le bouton Installer pour ESP32 par ESPRESSIF Systems version 3.x.

Installer ESP32 Arduino Ide 2 Board Add-on Version 3

C’est ça. Il doit être installé après quelques secondes.

3) Mettre le mode MINI ESP32 C3 en mode chargeur de démarrage

Connectez le super mini ESP32-C3 à votre ordinateur en mode Bootloader (prêt pour le téléchargement du code via USB). Vous devrez peut-être le faire la première fois que vous connectez votre carte à votre ordinateur.

Dans mon cas, je n’avais besoin de faire cette procédure qu’une seule fois, mais j’ai lu que certaines personnes rapportant qu’ils devaient le faire chaque fois qu’ils voulaient télécharger un nouveau code.

Suivez ces étapes:

  1. Maintenez le bouton de démarrage.
  2. Appuyez et relâchez le bouton RESET (tout en maintenant le démarrage).
  3. Remettez ensuite le bouton de démarrage.

4) Téléchargement du code sur le super mini ESP32-C3

Copiez le code suivant sur votre IDE Arduino. Ce code clignote simplement la LED embarquée (connectée à GPIO 8) et imprime dans le moniteur en série à l’état actuel du GPIO.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/getting-started-esp32-c3-super-mini/
*********/

// ESP32 C3 Super Mini on-board LED (works with inverted logic)
const int ledPin = 8; 

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  Serial.begin(115200);
  digitalWrite(ledPin, HIGH); 
  Serial.println("LED OFF");
  delay(1000);                     
  digitalWrite(ledPin, LOW); 
  Serial.println("LED ON");  
  delay(5000);                     
}

Afficher le code brut

Maintenant, sélectionnez la carte et le port com. Cliquez sur le menu déroulant en haut et sélectionnez le module Dev ESP32C3. Ensuite, sélectionnez le port com correspondant.

Arduino IDE - Sélection de supermini ESP32-C3

Ensuite, activez l’option suivante dans le menu des outils> CDC USB sur le démarrage.

Enfin, cliquez sur le bouton Télécharger pour télécharger le code.

Bouton Arduino Ide 2 Télécharger

Appuyez sur le bouton de la carte pour qu’il commence à exécuter le code nouvellement téléchargé.

La LED embarquée clignote chaque seconde.

ESP32 C3 Supermini clignotant à bord de LED
ESP32 C3 Supermini clignotant à bord de LED

Dans le même temps, vous pouvez ouvrir le moniteur en série à un taux en bauds de 115200. Il imprimera l’état LED actuel sur la fenêtre.

ESP32-C3 Super Mini - clignoter un LED - Moniteur en série

Test Wi-Fi sur le super mini ESP32-C3 (serveur Web)

Pour tester le Wi-Fi du super mini ESP32-C3, nous avons préparé un serveur Web qui contrôle la LED embarquée.

1) Copiez le code suivant sur votre IDE Arduino.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/getting-started-esp32-c3-super-mini/
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files.
  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*********/

#include 
#include 

// Replace with your network credentials
const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// Assign output variable to GPIO pin
const int output = 8;
String outputState = "OFF";

// Create a web server object
WebServer server(80);

// Function to handle turning GPIO on
void handleGPIOOn() {
  outputState = "ON";
  digitalWrite(output, LOW);
  handleRoot();
}

// Function to handle turning GPIO off
void handleGPIOOff() {
  outputState = "OFF";
  digitalWrite(output, HIGH);
  handleRoot();
}

// Function to handle the root URL and show the current state
void handleRoot() {
  String html = "";
  html += "";
  html += "";
  html += "";

  // Display GPIO controls
  html += "

GPIO - State " + outputState + "

"; if (outputState == "ON") { html += "

OFF

"; } else { html += "

ON

"; } html += ""; server.send(200, "text/html", html); } void setup() { Serial.begin(115200); // Initialize the output variable as output pinMode(output, OUTPUT); // Set the onboard LED to LOW (inverted logic) digitalWrite(output, HIGH); // Connect to Wi-Fi network Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); // Set up the web server to handle different routes server.on("/", handleRoot); server.on("/on", handleGPIOOn); server.on("/off", handleGPIOOff); // Start the web server server.begin(); Serial.println("HTTP server started"); } void loop() { // Handle incoming client requests server.handleClient(); }

Afficher le code brut

2) Insérez vos informations d’identification de réseau Wi-Fi dans les lignes suivantes.

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

3) Téléchargez le code sur votre carte.

Bouton Arduino Ide 2 Télécharger

4) Ouvrez le moniteur en série à un taux en bauds de 11500.

5) Appuyez sur le bouton de la carte.

6) Son adresse IP sera imprimée dans le moniteur série.

ESP32C3 Supermini - Obtenir un moniteur de série d'adresse IP

7) Ouvrez un navigateur Web sur votre réseau local et collez l’adresse IP. Vous devriez avoir accès au serveur Web. Cliquez sur le bouton pour contrôler la LED intégrée.

ESP32 C3 Contrôle du serveur Web Supermini LED à bord
ESP32 C3 Contrôle du serveur Web Supermini LED à bord

Modes de sommeil avec le super mini ESP32-C3

L’un des plus grands avantages du super mini ESP32-C3, en plus de son petit facteur de forme, est sa consommation plus faible en mode veille.

Il prend en charge les modes de sommeil profond et de sommeil léger. Plus d’informations sur les fonctions de sommeil peuvent être trouvées dans la documentation ici.

Nous avons plusieurs tutoriels expliquant comment utiliser le sommeil profond et le sommeil léger avec l’ESP32 (cependant, gardez à l’esprit que certaines fonctions de réveil externes sont différentes pour le super mini ESP32-C3).

* En cas de réveil externe avec le super mini ESP32-C3, vous devez utiliser la fonction ESP_DEEP_SLOEEP_ENABLE_GPIO_WAKEUP ().

ESP32-C3 Super Mini – sommeil profond avec le réveil de la minuterie

L’exemple suivant est un code simplifié qui place l’ESP32 en mode de sommeil profond pendant une minute. Après chaque minute, il se réveille et clignote la LED connectée à GPIO 4.

/*********
  Rui Santos & Sara Santos - Raspberryme.com
  Complete project details at https://Raspberryme.com/getting-started-esp32-c3-super-mini/
*********/

#define uS_TO_S_FACTOR 1000000ULL   // Microseconds to seconds
#define TIME_TO_SLEEP 60            // Deep sleep duration in seconds
#define LED_PIN 4                   // LED connected to GPIO4

void setup() {
  delay(100);
  pinMode(LED_PIN, OUTPUT);

  // Blink LED
  digitalWrite(LED_PIN, HIGH);
  delay(500);
  digitalWrite(LED_PIN, LOW);

  // Set deep sleep timer
  esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);

  // Enter deep sleep
  esp_deep_sleep_start();
}

void loop() {}

Afficher le code brut

Pour mettre l’ESP32 en mode de sommeil profond et le réveiller avec une minuterie, appelez la fonction ESP_SLEEP_ENABLE_TIMER_WAKEUP () et transmettez le nombre de microsecondes à dormir comme argument.

esp_sleep_enable_timer_wakeup(TIME_TO_SLEEP * uS_TO_S_FACTOR);

Après avoir configuré la source de réveil, vous pouvez mettre l’ESP32 en mode de sommeil profond en utilisant ESP_DEEP_SLOEPL_START ().

esp_deep_sleep_start();

Pour tester ce code, assurez-vous de connecter une LED à GPIO 4.

Remarque: Je n’ai pas pu utiliser le moniteur série avec le super mini ESP32-C3 en mode de sommeil profond car il ne se connecterait pas automatiquement au moniteur en série après le réveil.

IMPORTANT: Après avoir téléchargé un code de sommeil profond sur la carte, pour le programmer à nouveau, vous devez faire la séquence de bouton pour le mettre en mode Bootloader.

  1. Maintenez le bouton de démarrage.
  2. Appuyez et relâchez le bouton RESET (tout en maintenant le démarrage).
  3. Remettez ensuite le bouton de démarrage.

Consommation d’énergie

En utilisant l’exemple précédent sur le super mini ESP32-C3, j’ai mesuré une consommation de puissance profonde d’environ 600 µA. Ceci est plus élevé que les 40 UA spécifiés de la fiche technique. Cela est probablement dû à des configurations non optimisées, telles que les GPIO flottants; Ou vous devez utiliser ESP-IDF pour utiliser des fonctions plus efficaces.

ESP32-C3 Super mini-consommation d'énergie Mode de sommeil profond
Consommation d’énergie du super mini ESP32-C3 en mode de sommeil profond
ESP32 DOIT Board - consommation d'énergie en mode de sommeil profond
ESP32 DOIT Board – consommation d’énergie en mode de sommeil profond

Pourtant, par rapport à un ESP32 régulier, qui consomme environ 10 mA en sommeil profond, les 600 µA mesurés de l’ESP32-C3 sont encore plus efficaces et une grande amélioration sans aucune modification du code.

Emballage

Nous espérons que vous avez trouvé ce guide de démarrage super mini ESP32-C3 utile. Une fois que vous vous êtes familiarisé avec le tableau et son épingle, vous pouvez utiliser nos autres projets ESP32 avec cette carte particulière – assurez-vous de réorganiser la mission de la broche si nécessaire.

Si vous souhaitez en savoir plus sur l’ESP32, assurez-vous de consulter nos ressources:

Cette vidéo vous emmène dans l’histoire de Raspberry Pi :

YouTube video