ESP32
Description
L'ESP32 est un SoC de chez Espressif intégrant un processeur 32 bits et des fonctionnalités Bluetooth et Wifi.
Des modules existent et sont très bien adaptés pour la création de systèmes Iot, avec une consommation réduite par rapport à une Raspberry Pi.
Le développement est plus bas niveau mais il existe des SDK compatibles Arduino.
Programmation de l'ESP32
Il y a 2 méthodes de programmation des ESP32.
Soit en passant par un l'ESP-IDF de Espressif, soit en passant par la surcouche Arduino.
Dans les 2 cas les méthodes sont documentées.
Utilisation de ESP-IDF
L'installation se fait en suivant la documentation officielle. Il est possible de développer soit depuis un terminal et un éditeur de texte soit depuis un IDE comme VSCode.
Lancement de l'environnement depuis un terminal
L'utilisation depuis le terminal permet de vérifier si les outils sont bien installés et si la communication avec le module ESP32 se fait correctement.
Se rendre dans le dossier workspace de l'application
Lancer la commande permettant de lancer l'environnement : . /opt/esp/esp-idf/export.sh
Configurer le projet pour un ESP32 : idf.py set-target esp32
Entrer dans le menu de configuration des options : idf.py menuconfig
Développement sous VSCode
Il est possible d'utiliser VSCode afin de créer des applications ESP32.
Pour cela il faut l'extension officielle Espressif IDF. Il faut préalable ment que l eframework soit installé sur l'ordinateur de développement.
Il faut modifier les options dans les settings afin de définir le dossier dans lequel le framework est installé.
Firmware de l'ESP32
Il est possible de mettre le Firmware ESP-AT afin de communiquer avec l'ESP32 via une communication série et des commandes AT.
Equipements macro utilisant l'ESP32
Des projets existent avec intégration de Linux embarqués sur l'ESP32
Il existe un module caméra, ESP32-CAM qui peut être utilisé avec le Firmware TASMOTA. C'est idéal pour faire caméra de vidéo surveillance sur batterie avec un serveur web intégré.
Il est possible de le connecter à un système de domotique. (voir la vidéo des frères Poulain.
Le flasher se trouve à l'adresse sur le dépôt https://github.com/Jason2866/ESP_Flasher/releases
Partie développement C
Si on souhaite rajouter des configurations spécifiques au projet, il est possible de créer un fichier ./main/kconfig.projbuild.
Par exemple pour le clignotement de la LED, on peut ajouter
menu "Project Specific Configuration"
orsource "$IDF_PATH/examples/common_components/env_caps/$IDF_TARGET/Kconfig.env_caps"
choice BLINK_LED
prompt "Blink LED type"
default BLINK_LED_GPIO if IDF_TARGET_ESP32 || !SOC_RMT_SUPPORTED
default BLINK_LED_RMT
help
Defines the default peripheral for blink example
config BLINK_LED_GPIO
bool "GPIO"
config BLINK_LED_RMT
bool "RMT - Addressable LED"
endchoice
config BLINK_GPIO
int "Blink GPIO number"
range ENV_GPIO_RANGE_MIN ENV_GPIO_OUT_RANGE_MAX
default 5 if IDF_TARGET_ESP32
default 18 if IDF_TARGET_ESP32S2
default 48 if IDF_TARGET_ESP32S3
default 8
help
GPIO number (IOxx) to blink on and off or the RMT signal for the addressable LED.
Some GPIOs are used for other purposes (flash connections, etc.) and cannot be used to blink.
config BLINK_PERIOD
int "Blink period in ms"
range 10 3600000
default 1000
help
Define the blinking period in milliseconds.
endmenu
Bibliographie
- https://docs.espressif.com/
- https://github.com/espressif/
- Tommy Desrochers : YouTuber expliquant l'utilisation de l'ESP32 avec l'environnement Arduino.
- https://randomnerdtutorials.com/