Premiers pas

Ce tutoriel va vous permettre d’installer les outils nécessaires pour programmer l’ESP32 et d’écrire votre premier programme.

Avertissement

La carte ESP32 utilisée pour ce tutoriel est la carte uPesy ESP32 WROOM DevKit

Vue d’ensemble

Pour les débutants, la manière la plus simple et la plus classique pour programmer l’ESP32 est d’utiliser le logiciel Arduino IDE, utilisé pour programmer les cartes Arduino. Il peut aussi être utilisé pour programmer d’autres cartes en les ajoutant via son gestionnaire de cartes supplémentaires.

Pour les débutants, il existe aussi une alternative qui s’appelle MicroPython. Il est possible de programmer l’ESP32 en Python, moyennant de moins bonnes performances mais qui permet de bénéficier de tous les avantages de Python. Par exemple, l’exécution du code est instantanée, il n’y a pas à attendre 20s que la compilation et le téléversement du programme soit fini. Il y a cependant moins de tutoriels sur Internet.

Pour les plus avancés, l’utilisation de VS Code avec PlateformIO est conseillée pour pouvoir utiliser toutes les fonctionnalités de la carte et modifier les paramètres par défauts. Vous pourrez aussi programmer la carte avec le framework d’espressif ESP-IDF directement depuis PlatformIO.

A voir aussi

Un tutoriel est aussi disponible pour utiliser l’ESP32 avec Micro Python ou PlatformIO


Arduino IDE

../_images/arduino_ide_pres.png

Le logiciel Arduino IDE est un IDE spécialement conçu pour programmer facilement les cartes Arduino. Il possède une interface simple qui permet aux débutants de s’y retrouver. De nombreux exemples et de librairies sont inclus pour rendre la programmation simple et intuitive. Même si le logiciel a été conçu initialement pour les cartes Arduino, on peut rajouter des extensions pour programmer d’autres types de cartes comme les ESP32. De nombreux codes d’exemples pour l’ESP32 sont disponibles pour les capteurs classiques mais aussi le WiFi et le Bluetooth. Il est aussi très facile d’installer et d’utiliser des librairies toutes faites pour l’ESP32.

C’est le logiciel qui est recommandé pour les débutants, surtout pour ceux qui apprennent la programmation à travers les cartes Arduino et ESP32.

Framework

Ce qui a fait le succès des cartes ESP32, c’est qu’on puisse les programmer avec le même langage et les mêmes librairies que les cartes Arduino. On combine la puissance de l’ESP32 avec la simplicité du code Arduino.

On utilise le framework Arduino dans ce tutoriel.

Important

Il faut donc d’abord installer le logiciel Arduino IDE, puis installer depuis ce logiciel des outils spécifiques pour pouvoir programmer l’ESP32 avec le framework Arduino.

Installation

Voici la démarche à suivre pour installer l’Arduino IDE.

Note

Si vous avez déjà Arduino IDE d’installé, vérifiez 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 :

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

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

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

../_images/arduinoIDE1.PNG
  • Ensuite autorisez 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 à accéder à Internet. Acceptez l’autorisation pour pouvoir télécharger des librairies, des mises à jour, des cartes et les outils pour l’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.

Installation du module esp32 pour utiliser le framework Arduino

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 sont terminés, les outils sont prêts à être utilisés.

../_images/arduinoIDE9.PNG
  • Les cartes ESP32 ont été rajoutées avec les autres cartes :

../_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 programmer votre carte ESP32 comme une carte Arduino classique.

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 le 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.

Avertissement

Il faut s’assurer de prendre un câble USB qui transmet les données et non pas un câble USB qui peut 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).

../_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 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 lors du boot ou lors d’erreurs lié au hardware.

Indication

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 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 éteind 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’icone 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 correspondent 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 ESP32 uPesy ).

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.

Félicitations, vous avez réalisé votre premier programme sur l’ESP32 et terminé le guide de démarrage rapide.

Dans la section suivante, vous découvrirez plus d’informations sur le brochage et les fonctionnalités des cartes ESP32 d’uPesy Electronics.

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