Débuter avec l’ESP32 et IDE PlatformIO. Programmation C++ d’objets connectés

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

PlatformIO (PIO) est un éditeur de code alternatif à l’IDE Arduino que l’on installe sous la forme d’un plugin pour de nombreux éditeurs de code à usage plus général. PlatformIO permet de développer pour la plupart des micro-contrôleurs du marché et en particulier l’ESP32 d’Espressif.

 

Avant commencer

Avant de commencer, vous devez disposer installer le plugin  PlatformIO pour l’éditeur de code favori. Ici, nous utiliserons VSCode. Le processus d’installation est les outils proposés sont similaires d’un éditeur à l’autre.

Importer un projet arduino existant sur platformio pio

Si vous débutez avec PlatformIO, commencez par lire cet article qui explique étape par étape l’installation ainsi que les bases de fonctionnement de l’environnement.

A LIRE AUSSI :
Débuter avec PlatformIO IDE sur VSCode (Windows, macOS, Raspbian, Linux)

Créer un nouveau projet ESP32

PIO est très souple. Il est possible d’ajouter une carte de développement à un projet actuel, c’est la grande force de PlatformIO, ou tout simplement créer un projet vierge. C’est la même option qui sert à tout. Sélectionnez l’option Initialize or Update PlatformIO Project depuis le menu ou depuis la barre d’icône latérale.

platformio esp32 init project

Sélectionnez votre carte de développement. Si vous utilisez une carte générique (par exemple la Doit de Geekcreit), choisissez Espressif ESP32 Dev Module dans la liste. Pour ajouter cette carte à une configuration existante, sélectionnez celle-ci dans la liste. Sinon, cliquez sur Other puis indiquez le dossier dans lequel PIO doit créer l’arborescence du projet.

platformio esp32 2 choose board

Attention. Par rapport à l’IDE Arduino, il faut créer le dossier racine. Sinon, l’arborescence et les fichiers seront ajoutés au niveau indiqué.

Cliquez enfin sur Process. PlatformIO s’occupe de récupérer et d’installer le SDL d’Espressif pour les modules ESP32. C’est la magie de PlatformIO. Si vous avez débutez la programmation avec l’IDE Arduino, vous devez me comprendre, sinon lisez cet article.

platformio esp32 3 install espressif sdk

Une fois que le SDK est installé, PIO créé la structure du projet ainsi que le fichier platformio.ini

platformio esp32 4 project structure ini file

Premier exemple : faire clignoter une Led

PIO créé l’arborescence du projet et créé automatiquement le fichier de configuration platformio.ini. Par contre c’est à nous de créer le premier fichier Arduino. Pour cela, faites un clic droit sur le dossier scr et choisissez New File.

platformIO 9 new cpp file

Donnez un nom au fichier en lui donnant l’extension .cpp

platformIO 10 new cpp file path

Pour que le programme puisse fonctionner, il faut inclure la librairie Arduino.h en début de programme ! Et oui, il faut bien indiquer à PIO que la cible doit exécuter du code Arduino.

Ensuite, la programmation est parfaitement identique à l’IDE Arduino. Voici un petit programme qui fait clignoter une Led branchée sur la broche 15 de l’ESP32. Il est parfaitement identique au code de l’ESP8266 présenté dans le tutoriel précédent. La seule différence réside dans le numéro de la broche. La broche n°15 n’existe pas sur l’ESP8266. C’est cool d’avoir autant d’E/S !

/*
 * Demo PlatformIO - ESP32 - ESP8266 - Blink a Led
 * Turns on an LED on for one second, then off for one second, repeatedly.
 * projetsdiy.fr - diyprojects.io
 */

#include <Arduino.h>

#define LED_BUILTIN 15

void setup()
{
  // initialize LED digital pin as an output.
  Serial.begin(115200);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop()
{
  // turn the LED on (HIGH is the voltage level)
  digitalWrite(LED_BUILTIN, HIGH);
  // wait for a second
  delay(1000);
  // turn the LED off by making the voltage LOW
  digitalWrite(LED_BUILTIN, LOW);
  Serial.println("Blink");
   // wait for a second
  delay(1000);
}

Adaptez le code à vos besoins puis enregistrez le CTRL + S. Ensuite dans le menu choisissez Build (ou utilisez l’icône dédiée).

platformio esp32 build

Vous pouvez suivre l’avancement de la compilation en survolant la roue crantée dans le coin inférieur droit de VSC.

platformio esp32 6 building

Une fois la compilation terminée, téléversez le programme avec upload.

platformIO 12 upload project

Ouvrez maintenant le moniteur série. Directement depuis le menu, via le raccourci clavier Alt + Shift + M ou depuis la barre d’icône.

platformIO 13 open serial monitor

Sélectionnez le port COM sur lequel est branché la carte et la vitesse

platformio esp32 7 serial monitor

Et voilà, on trace le déroulement du programme pour pour n’importe quelle autre carte comme sur l’IDE Arduino.

platformio esp32 8 serial monitor

Installer, mettre à jour manuellement le SDK Espressif 32

Normalement, PIO s’occupe d’installer lui même le SDK ESP-IDF pour les cartes de développement ESP32. En cas de problème, il est possible de l’installer manuellement depuis le gestionnaire de cartes

Menu PIO -> Platforms -> Espressif 32

install esp-idf espressif esp32 platformio manually

PIO conserve les versions majeures successives

Pour mettre à jour le SDK manuellement, allez dans Menu PIO -> Platforms -> Updates

Cliquer sur update to xxx pour mettre à jour le framework manuellement.

update espressif 32 esp idf platformio

D’autres projets réalisés à l’aide de PlatformIO

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

5 Commentaires
  1. bonjour, j’ai actuellement un programme arduino qui tourne bien sur mega 2560. connaitriez vous quelqu’un qui puisse le modifier pour le faire fonctionner sur esp32 avec une page weeb qui m’affiche tous les resultats. ( 2 sdm120 en rs485 sur un port serie + rs232 pour mon onduleur pip sur un autre port serie ) et pour quel tarif, merci pour votre aide
    marc

  2. Bonjour,
    Je débute un nouveau projet sur base d’ESP32 avec pas mal d’interaction serveur (page web embarquée, envoi de donnée sur serveur distant, etc.). Quel est le meilleur environnement de développement selon vous, Platformio, Arduino (ou autre ) ?
    J’ai aussi vu Mongoose OS, connaissez vous ? Y a t il une différence de performance à utiliser l’un ou l’autre système ?

    • Bonjour Julien. Je trouve que l’IDE Arduino reste le plus facile pour le moment. PlatformIO est très bien pour les entreprises qui développent des flottes d’objets connectés. PlatformIO permet de déployer les mises à jour à distance sur des microcontrôleurs hétérogènes. Beaucoup d’opérations se font encore en ligne de commande, ce qui demande une utilisation régulière pour être productif. Coté performance, je n’ai pas fait de benchmark mais à mon avis il ne devrait pas y avoir de différence significative. PlatformIO et MangooseOS génèrent du code C/C++ qui devrait être quasi identique à celui de l’IDE Arduino. Oui, j’ai testé Mangoose OS. On s’éloigne encore un peu plus du DIY par aller vers les projets d’entreprises. MangooseOS est avant tout destiné à fonctionner avec des services en ligne tels que Amazon AWS ( https://projetsdiy.fr/sdk-amazon-aws-greengrass-disponible-raspberrypi-linux/ ), Google IO, Microsoft Azure… A vérifier, mais il ne me semble pas possible de développer d’interface HTML. A très bientôt.

      • Merci pour votre réponse.
        Lorsque je créé un nouveau projet sous PIO, on me demande de choisir entre le framework “Arduino” et “ESP-IDF”. Quels sont les différences majeures entre ces 2 frameworks ? Sont ils tous les deux aussi complet ? Est ce que ce choix peut jouer sur les performances sur de “gros” programmes ?

        • Bonjour Julien. PlatformIO permettant de cibler plusieurs cartes pour un même projet, on peut lui indiquer de compiler le code pour un Arduino ou un ESP8266 (le framwork ESP-IDF : https://github.com/espressif/esp-idf ). Il n’y a pas d’impact au niveau performance. Ce sont juste les librairies qui sont adaptées pour fonctionner sur la plateforme utilisée(ESP32, Arduino, ESP8266, STM32….). C’est ce qui st génial avec PlatformIO. Bon weekend.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Derniers Sujets
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment. 

Shopping cart