Ignorer et passer au contenu

Livraison offerte à partir de 50€ d'achats, livrée sous 48h !

Livraison à partir de seulement 2.50€ !

Contents Menu Expand Light mode Dark mode Auto light/dark mode

Programmer l’ESP32 directement depuis l’Arduino IDE

(Mis à jour le 05/01/2023)

Ce tutoriel va vous guider dans l’installation des outils nécessaires à la programmation de l’ESP32 via l’Arduino IDE. Vous écrirez à l’issue votre premier programme pour l’ESP32 via du code Arduino.

logiciel arduino pour programmer les cartes ESP32

Aperçu du logiciel Arduino IDE

Avant d’installer les outils spécifiques à l’ESP32, il faut d’abord avoir le logiciel Arduino IDE.

Note

Si vous avez déjà Arduino IDE d’installé, vérifiez qu’il s’agit d’une version récente (> 1.8)

Installation du logiciel Arduino IDE

Pour installer Arduino IDE sur Windows , suivez les étapes suivantes :

  • Télécharger la dernière version du logiciel  sur le site d’Arduino, en cliquant sur le premier lien « Windows Installer, for Windows XP and up »

  • Lancer le fichier d’installation .exe , puis remplissez les cases suivantes :

    etape installation arduino ide

    Sélectionnez toutes les cases

  • Dans la fenêtre suivante, laisser l’endroit de l’installation par défaut

    dossier d’installation arduino ide

    Choix du dossier d’installation

  • Ensuite autoriser l’installation des drivers :

    installer driver Adafruit pour arduino IDE

    Installation des 3 drivers

    installer driver Arduino sur IDE

    Installation des 3 drivers

    installer driver USB Arduino sur IDE

    Installation des 3 drivers

  • L’installation est maintenant terminée. Une fenêtre de ce type devrait apparaître :

    Apercu d’Arduino IDE lors du premier lancement

    Apercu d’Arduino IDE lors du premier démarrage

Avertissement

Il se peut qu’une fenêtre du pare-feu Windows vous demande d’autoriser l’application d’accéder à Internet. Accepter l’autorisation pour pouvoir télécharger des librairies, des mises à jour, des cartes et les outils pour ESP32 .

Vous pouvez pour l’instant programmer uniquement des cartes Arduino . C’est pour cela que nous allons installer les outils spécifiques de l’ESP32 pour pouvoir l’utiliser au sein de l’Arduino IDE.

Ajouter le support des ESP32 dans l’Arduino IDE

Maintenant que l’Arduino IDE est prêt, il faut installer les outils de développement spécifiques aux cartes ESP32 (Ils sont différents de ceux de l’ESP8266). Pour installer les outils nécessaires, il faut :

  • Aller dans Fichier → Préférences

    paramètres du logiciel Arduino IDE

    Apercu des préférences d’Arduino IDE

  • Cliquer sur URL de gestionnaires de cartes supplémentaires et ajouter l’URL :

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
gestionnaire de carte supplémentaire

Gestionnaire de cartes supplémentaires d’Arduino IDE

Avertissement

Il se peut qu’il y ait déjà des urls ajoutées si vous avez déjà installé des cartes supplémentaires (par exemple les ESP8266). Si c’est le cas, ne les supprimez pas.

Note

N’oubliez pas de cliquer sur le bouton OK pour sauvegarder les paramètres

  • Ensuite il faut aller dans le gestionnaire de cartes : Outils → Type de carte → Gestionnaire de carte

    sélectionner le gestionnaire de carte

    Accéder au gestionnaire de carte

  • Descendre tout en bas jusqu’à trouver esp32, et cliquer sur installer . Une fois que le téléchargement et l’installation sont terminés, les outils sont prêts à être utilisés.

    Note

    La version la plus récente (à l’écriture de ce tutoriel) est la 2.0.4 : elle intègre les cartes ESP32 classiques, mais également les nouveaux modèles : ESP32S2, ESP32C3 et ESP32S3.

    gestionnaire de cartes supplémentaires

    Listes des cartes supplémentaires compatibles Arduino

  • Les cartes ESP32 ont été rajoutées dans le gestionnaire de carte :

    ajout des nouvelles cartes dans Arduino IDE

    Les cartes ESP32 ont été ajoutées

  • Si vous avez la carte uPesy ESP32 Wroom DevKit ou la version “low power”, vous choisirez comme type de carte uPesy ESP32 Wroom DevKit  située à la fin de la liste. Par contre, pour pouvoir utiliser la RAM supplémentaire de la carte uPesy ESP32 Wrover Devkit , il faudra prendre la uPesy ESP32 Wrover DevKit .

    selectionner la bonne carte ESP32

    Choisir le bon type de carte

  • Si vous avez une carte ESP32 générique, vous pouvez choisir ESP32 Dev Module comme type de carte.

  • L’installation est maintenant terminée, vous pouvez maintenant programmer votre carte ESP32 comme une carte Arduino classique. Des exemples sont disponibles entre autres pour le Wi-Fi et le Bluetooth dans Fichier → Exemples  .

Téléverser son premier programme sur l’ESP32

Maintenant que tous les outils sont installés, on va pouvoir créer notre premier programme et l’envoyer sur la carte ESP32. Mais avant de faire notre premier programme, il faut s’assurer que l’on puisse dialoguer avec la carte.

Détection de la carte

Note

Normalement, les cartes ESP32 sont automatiquement détectées, il n’y a donc pas besoin d’installer de drivers supplémentaires.

Branchez votre carte ESP32 à votre ordinateur via USB (avec un câble USB Micro-B). Sur Windows, lorsque l’on branche la carte, on doit entendre le même bruit qu’une clé USB et par contre c’est normal de ne pas l’apercevoir dans l’explorateur de fichiers. La LED rouge s’allume dès la mise sous tension de la carte ESP32.

Avertissement

Il faut s’assurer de prendre un câble USB qui transmet les données et non pas un câble USB qui permet uniquement de charger une batterie d’un appareil.

Une fois la carte branchée, vous devriez voir sur Arduino IDE un numéro COM (ici COM8).

Detection de la carte ESP32 dans Arduino IDE

Détection de la carte ESP32

Pour recevoir des messages de la carte, il faut ouvrir le moniteur série.

Le paramètre que l’on peut modifier dans le moniteur série est la vitesse de transmission des données . En général, la vitesse classique du port série avec une carte Arduino est de 9600 bauds (bit/s). Mais avec l’ESP32, la vitesse communément utilisée est 115200 bauds . La raison est que l’ESP32 envoie à cette vitesse des messages de debug lors de son démarrage.

Note

La vitesse du port série peut être différente de 115200 bauds mais dans ce cas, les messages lors du boot de l’ESP32 ne seront pas visibles et apparaîtront avec des caractères incompréhensibles.

Une fois que la vitesse est changée, vous pouvez dialoguer avec l’ESP32.

Toutes les cartes ESP32 d’uPesy arrivent déjà flashées avec un programme qui fait clignoter la led bleue présente sur la carte et qui détecte les box Wi-Fi des alentours. Avec la carte ESP32 WROOM DevKit, on obtient alors dans le moniteur série :

Communication avec l’ESP32 depuis le moniteur série de l’Arduino IDE

Messages envoyés par l’ESP32 dans le moniteur série

Avertissement

Pour les Linuxiens , il se peut que tous les paquets pythons nécessaires ne soient pas installés par défaut (Par exemple sur Ubuntu 20.04). Si vous avez cette erreur : exec: « python »: executable file not found in $PATH  , il faut installer le paquet python-is-python3 pour faire un lien symbolique entre la commande python  et python3  .

sudo apt install python-is-python3

Ensuite, si vous avez l’erreur ModuleNotFoundError: No module named "serial"  il faut installer le paquet pyserial avec pip3 . Si vous lancez l’Arduino IDE en root , pensez à rajouter sudo pour la commande avec pip3 .

sudo apt install python3-pip
pip3 install pyserial

Enfin si vous ne pouvez pas uploader de code sur l’esp32 avec une erreur de ce type : avrdude: ser_open(): can’t open device « /dev/ttyUSB0 »: Permission denied , il faut ajouter les permissions en lecture/écriture avec la commande chmod  :

sudo chmod a+rw /dev/ttyUSB0

Votre premier programme

Voici un exemple très simple qui permet de faire clignoter la led bleue située sur le pin GPIO2 de la carte ESP32 Wroom DevKit.

void setup() {
  Serial.begin(115200);
  Serial.println("Mon premier programme");
  pinMode(2,OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH); //On allume la led bleue
  delay(500); //On attend pendant 500 ms
  digitalWrite(2, LOW); //On eteinds la led bleue
  delay(500); //On attend pendant 500 ms
}

Astuce

Le code peut directement être copié dans le presse-papiers en cliquant sur l’icône en haut à droite.

Une fois que vous avez tapé ou copié le code d’exemple et enregistré le code, il va falloir compiler le programme.

La première compilation est assez longue car tous les fichiers sources pour l’ESP32, même ceux qui ne sont pas directement utilisés par le programme sont compilés. Heureusement seuls les fichiers modifiés seront compilés à la prochaine compilation.

Pour cela, il suffit d’appuyer sur le bouton “Vérifier”. Il faudra ensuite cliquer sur la flèche à côté pour téléverser le programme sur l’ESP32.

Astuce

Pour compiler et envoyer tout de suite après le programme, cliquer directement sur la flèche.

Voici les lignes dans la console qui correspond au téléversement du programme sur un ESP32 :

esptool.py v2.6
Serial port COM8
Connecting.....
Chip is ESP32D0WDQ5 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: 4c:11:ae:68:09:44
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Auto-detected Flash size: 8MB
Compressed 8192 bytes to 47...

Writing at 0x0000e000... (100 %)
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 4096.0 kbit/s)...
Hash of data verified.
Flash params set to 0x023f
Compressed 17392 bytes to 11185...

Writing at 0x00001000... (100 %)
Wrote 17392 bytes (11185 compressed) at 0x00001000 in 0.2 seconds (effective 804.3 kbit/s)...
Hash of data verified.
Compressed 261024 bytes to 123037...

Writing at 0x00010000... (12 %)
Writing at 0x00014000... (25 %)
Writing at 0x00018000... (37 %)
Writing at 0x0001c000... (50 %)
Writing at 0x00020000... (62 %)
Writing at 0x00024000... (75 %)
Writing at 0x00028000... (87 %)
Writing at 0x0002c000... (100 %)
Wrote 261024 bytes (123037 compressed) at 0x00010000 in 2.4 seconds (effective 866.8 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...

Writing at 0x00008000... (100 %)
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 4096.0 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

Une fois que le téléversement est fini, vous devriez voir la LED bleue clignoter plus vite qu’avant (sur les cartes uPesy ESP32)

Note

Une fois que le téléversement est terminé, l’ESP32 exécute directement le programme. C’est donc normal de ne pas voir le message « Mon premier programme » quand vous allez dans le moniteur série. Contrairement à l’Arduino, l’ESP32 ne redémarre pas lorsque l’on appuie sur la loupe pour aller dans le moniteur série. (Dans Arduino IDE mais pas sur PlatformIO).

Donc, pour voir le message depuis le moniteur sur Arduino IDE, il faut soit :

  • Rajouter un délai de quelques secondes avec delay() avant l’exécution du code

  • Avoir le moniteur série ouvert avant la fin du téléversement

  • Appuyer sur le bouton « EN » sur la carte ESP32 pour faire un reset manuel.