Installer l’ESP32 directement depuis l’Arduino IDE

Voici la démarche à suivre pour installer l’Arduino IDE avec les outils de développement pour l’ESP32.

../../_images/arduino_ide_pres.png

Note

Si vous avez déjà Arduino IDE d’installé, vérifier qu’il est bien à jour (>1.8) car certains bugs avec l’ESP32 sont dus à une version trop ancienne.

Installation Arduino IDE

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

../../_images/arduinoIDE0.PNG
  • Dans la fenêtre suivante, laisser l’endroit de l’installation par défaut

../../_images/arduinoIDE1.PNG
  • Ensuite autoriser l’installation des drivers :

../../_images/arduinoIDE2.PNG ../../_images/arduinoIDE3.PNG ../../_images/arduinoIDE4.PNG
  • L’installation est maintenant terminée. Une fenêtre de ce type devrait apparaître

../../_images/arduinoIDE5.PNG

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. Il faut télécharger d’autres outils pour pouvoir programmer les cartes ESP32.

Pour installer les outils nécessaires, il faut :

  • Aller dans Fichier > Préférences

../../_images/arduinoIDE6.PNG
  • Cliquer sur URL de gestionnaires de cartes supplémentaires et ajouter l’URL :

https://dl.espressif.com/dl/package_esp32_index.json
../../_images/arduinoIDE7.PNG
  • Ensuite il faut aller dans le gestionnaire de cartes : Outils > Type de carte > Gestionnaire de carte

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

../../_images/arduinoIDE9.PNG
  • Les cartes ESP32 ont été rajoutées dans le gestionnaire de carte :

../../_images/arduinoIDE10.PNG
  • Si vous avez la carte uPesy ESP32 Wroom DevKit ou une autre carte ESP32, vous pouvez choisir comme carte « ESP32 Dev Module » ou « DOIT ESP32 DEVKIT V1 » . Par contre, pour pouvoir utiliser la RAM supplémentaire de la carte uPesy ESP32 Wrover Devkit , il faut choisir une carte compatible, comme la carte « ESP32 Wrover Module » .

../../_images/arduinoIDE11.jpg
  • L’installation est maintenant terminée, vous pouvez maintenant programmer votre carte ESP32 comme une carte Arduino classique. Des exemples sont disponibles entres autres pour le WiFi et le Bluetooth dans Fichier > Exemples .

Premier programme

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.

Brancher 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 c’est normal de ne pas l’apercevoir dans l’explorateur de fichiers.

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.

../../_images/arduinoIDE11.png

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

Le paramètre qu’il faut changer dans le moniteur série est la vitesse de transmission . 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 des messages lors du boot ou lors d’erreurs bas niveau à cette vitesse.

Indication

La vitesse du port série peut être différente de 115200 bauds mais dans ce cas les messages bas niveau de l’ESP32 ne seront pas visible 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 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 :

../../_images/arduinoIDE12.jpg

Le programme présent par défaut sur les cartes ESP32 uPesy est disponible sur Github

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-papier 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é 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 à coté 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.

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

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