Vous êtes sur la page 1sur 16

IOT_TP1_tutorial_1

2023

ESP32: premier proramme

Introduction
L’ESP32 développé par la société Espressif , est une carte de développement à faible coût dédié à
l’internet des objets (IoT) et les applications embarquées. C’est un (SoC) system on a chip doté de
communications sans fil Wifi et Bluetooth.

Spécifications:
Comparatif des spécifications de ESP32 Vs Microbit Vs Arduino uno :

Spéc/carte ESP32 Microbit Arduino uno

Nbre de coeurs 2 1 1

Architecture 32 bit 32 bit 8 bit

µcontrôleur ESP32 devkit V1 nRF51822 ATmega 328P

fréquence 240MHz 16 MHz 16 MHz

RAM 320 Ko 16 ko 2 Ko

flash 16 Mo 256 ko 32 Ko

WiFi OUI NON NON

Bluetooth OUI OUI NON

GPIO pins 36 25 14

Alimentation 2.7 ~ 3.6V 3V 5V

1
IOT_TP1_tutorial_1
2023

Description :

2
IOT_TP1_tutorial_1
2023

Hardware et software
• DOIT

– Concepteur de la carte microcontrôleur ESP32 Devkit.

• Espressif

– Fabriquant du module de microcontrôleur ESP-WROOM-32.

• Silicon Labs CP2102

– USB-to-UART bridge.

• LuaNode software

– Interpréteur Lua qui est préinstallé sur la carte lors de l'achat.

Les pins de la carte ESP32


Pin ou GPIO(Les ports GPIO (anglais : General Purpose Input/Output, littéralement Entrée-sortie
à usage général) sont des ports d'entrées-sorties très utilisés dans le monde des microcontrôleurs)

On peut assigner plusieurs fonctions au même pin, grâce au circuit de multiplexage de la carte
ESP32
On peut choisir le rôle d'un pin (UART, I2C, SPI) par programmation
La carte ESP32 est composée de :

3
IOT_TP1_tutorial_1
2023

• EN Enable : broche du régulateur 3.3 V

On peut utiliser cette broche connectée à un bouton poussoir et au GND pour redémarrer
la carte ESP32.

• 15 ADC (Analog-to-Digital Converter) convertisseur analogique-numérique )pour lire les


entrées analogiques
• 4 interfaces SPI: SPI0 et SPI1 (réservés) , HSPI et VSPI(peuvent être utilisés).
• GPIO 34,35,36 et 39 à utiliser comme entrée seulement
• 9 capteurs tactiles capacitifs internes(TOUCH) (GPIO 2,4,15,12,13,14,27,32 et 33).
Ceux-ci peuvent détecter des variations dans tout ce qui contient une charge électrique,
comme la peau humaine. Ils peuvent ainsi détecter les variations induites lors du contact
du GPIO avec le doigt. Ces broches peuvent remplacer les boutons mécaniques.

Programmation de la carte :
Pour programmer la carte on peut utiliser les environnements de développement suivants:

• Arduino IDE

4
IOT_TP1_tutorial_1
2023

• Thonny IDE
• uPyCraft
• Espressif IDF (IoT Development Framework)
• Micropython
• JavaScript
• LUA
• Zerynth studio


Dans les projets à réaliser on va utiliser essentiellement Thonny IDE et Arduino IDE pour
programmer la carte ESP32.
Thonny IDE permet de programmer la carte ESP32 avec le Micro-python.

Annexe :
Il existe aussi la carte esp32 NodeMCU. NodeMCU est une plate-forme open source IoT,
matérielle et logicielle, basée sur un SoC Wi-Fi ESP8266 ou ESP32 . Le terme « NodeMCU » se
réfère par défaut au firmware plutôt qu'aux kits de développement.

5
IOT_TP1_tutorial_1
2023

Les pins de la carte ESP32-NodeMCU

6
IOT_TP1_tutorial_1
2023

Installation pilotes (Driver) ESP32


Après branchement de la carte au port usb, Windows détecte " CP2102 USB To UART Bridge

Controller".
Il faut télécharger le pilote au lien suivant: Lien
Liens direct drivers: windows 7 windows 10 & windows 11
Décompresser le fichier CP210x_Windows_Drivers.zip puis exécuter le fichier correspondant à
votre architecture 32 bit ou 64 bit :CP210xVCPinstaller.exe

Suivre les étapes d'installation:

7
IOT_TP1_tutorial_1
2023

Terminer l'installation

Laisser installer le pilote:

8
IOT_TP1_tutorial_1
2023

Installation du pilote terminé sur le COM7 dans notre cas:

Vous pouvez vérifier que le pilote est installé dans le gestionnaire de périphériques:

9
IOT_TP1_tutorial_1
2023

Préparation de l'IDE Arduino


Si l'IDE Arduino n'est pas déjà installé sur votre ordinateur, la première étape consiste à
l'installer!
Il faut ensuite ajouter des fichiers supplémentaires qui permettent d'utiliser l'IDE Arduino afin
de programmer l'ESP32. Pour ce faire, on accède d'abord au dialogue de préférences de l'IDE,
grâce au menu Fichier / Préférences.

Au bas du dialogue de Préférences, dans le champ intitulé "URL de gestionnaire de cartes


supplémentaires", vous écrivez cette adresse:

https://dl.espressif.com/dl/package_esp32_index.json
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-
pages/package_esp32_index.json

S'il y a déjà d'autres adresses dans ce champ, vous pouvez les séparer par des virgules.
On clique évidemment sur le bouton "OK" pour enregistrer les changements.
10
IOT_TP1_tutorial_1
2023

On se dirige ensuite vers le gestionnaire de carte, en passant par le menu "Outils / Type de
carte / Gestionnaire de cartes"

À l'intérieur du gestionnaire de carte, on localise "esp32 by Espressif Systems". Un clic dans


cette zone fait apparaître le bouton "Installer", sur lequel nous allons évidemment cliquer.

Le message "Téléchargement des définitions de cartes" devrait s'afficher dans le bas de la


fenêtre. Lorsque c'est terminé, la mention "INSTALLED" apparaît à gauche de "esp32 by
Espressif Systems". Vous pouvez maintenant fermer le gestionnaire de carte.

Téléversement d'un premier sketch dans l'ESP32


11
IOT_TP1_tutorial_1
2023

Le temps est venu de brancher le module ESP32 à un port USB de l'ordinateur. Sur ma carte,
une LED rouge s'allume pour indiquer qu'elle est alimentée.
Le menu "Outils / Type de carte" nous donne maintenant accès à une rubrique "ESP32
Arduino" qui comporte près d'une soixantaine de cartes ESP32 différentes! Si vous
reconnaissez le nom spécifique de votre carte dans la liste, sélectionnez-le, bien sûr, mais si
votre carte vous a simplement été vendue sous le nom de ESP32, le premier choix du menu,
intitulé "ESP32 Dev Module", fera parfaitement l'affaire.

Si vous êtes curieux de savoir ce qu'implique le choix d'un modèle de carte plutôt qu'un autre,
vous pouvez aller jeter un oeil sur le gitHub d'Arduino core for ESP32. Le
fichier boards.txt décrit le contenu du menu "Outils" pour chaque carte: certaines cartes
offrent plus d'options avancées que d'autres. De plus, le répertoire "variants" comporte les
définitions de broches pour chaque carte.

Par exemple, la plupart des cartes définissent la constante "LED_BUILTIN", qui contient le
numéro de la broche permettant de contrôler la LED intégrée à la carte. Puisque cette LED
n'est pas nécessairement associée à la même broche pour toutes les cartes, notre choix
générique "ESP32 Dev Module" ne définit pas cette constante.

Ensuite, c'est la routine habituelle (en supposant que vous êtes déjà familier avec la
programmation d'un Arduino): on sélectionne le port série correspondant à notre carte. Dans

12
IOT_TP1_tutorial_1
2023

mon cas, j'ai dû appuyer sur le bouton "BOOT" de ma carte pour que le port devienne
disponible dans le menu. J'ai aussi diminué un peu la vitesse de téléversement ("Upload
Speed"), car la valeur par défaut de 921600 bauds semble trop optimiste pour la qualité
douteuse de mon câble USB.

L'exemple "WiFiScan" (accessible par le menu "Fichier / Exemples / WiFi / WiFiScan" est un
bon moyen de vérifier le fonctionnement correct de votre module ESP32, puisqu'aucune
modification à ce sketch n'est nécessaire.

13
IOT_TP1_tutorial_1
2023

Pas de panique: ce problème très fréquent indique que le dispositif qui permettrait à ma carte
de se mettre en mode programmable ne fonctionne pas correctement. Le remède consiste à
appuyer sur le bouton "BOOT" de la carte ESP32 au moment où le messsage "Connecting....."
apparaît au bas de la fenêtre, et de maintenir ce bouton enfoncé jusqu'à ce que d'autres
messages soient affichés ("Chip is ESP32D0WDQ6 (revision 1)").

Cette fois, ça fonctionne...

Le moniteur série affiche la liste des réseaux WiFi détectés.

Essai d'une broche GPIO

Le premier essai d'un microcontrôleur ne pourrait pas être complet sans le clignotement d'une
LED grâce à l'exemple Blink (menu "Fichier / Exemples / 01.Basics / Blink ).
Puisque cet exemple utilise la constante "LED_BUILTIN" qui n'est pas définie pour la carte
générique "ESP32 Dev Module" que j'ai sélectionnée, j'ai remplacé dans le sketch l'expression

14
IOT_TP1_tutorial_1
2023

"LED_BUILTIN" par le nombre 2 puisque la LED intégrée à ma carte est branchée à la


broche GPIO 2.

Résultat: la LED bleue se met à clignoter sur la carte.

J'ai ensuite branché une LED à une broche choisie au hasard (celle portant l'identification
"D21" sur la carte) et je l'ai fait clignoter avec succès en écrivant "digitalWrite(21, HIGH);"
dans le sketch.

15
IOT_TP1_tutorial_1
2023

16

Vous aimerez peut-être aussi