Migrer un projet de l’IDE Arduino vers PlatformIO. ESP32, ESP8266 ou autre

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

PlatformIO semble moins accessible que l’IDE Arduino lorsqu’on débute mais c’est un éditeur de code infiniment plus puissant. Nous allons voir comment migrer (importer) un projet (ESP32, ESP8266 ou autre) existant ayant été développé avec l’IDE Arduino.

 

PlatformIO prend en charge le support de SPIFFS et LittleFS depuis la version 2.6.0 du SDK ESP8266. Pour utiliser LittleFS, il faudra simplement le spécifier à l’aide de l’option board_build.filesystem = littlefs au fichier de configuration platformio. Lisez ce tutoriel pour en savoir plus.

A LIRE AUSSI :
ESP8266. Téléverser le dossier data (SPIFFS ou LittleFS) depuis PlatformIO

Installer PlatformIO (PIO) sur VSCode

PlatformIO (PIO) n’est pas un éditeur de code. C’est un environnement de développement en ligne de commande (appelé aussi tool-chain) disponible sous la forme d’un plugin pour la grande majorité des éditeurs de code. Atom, CLion, CodeBlocks, Eclipse, Emacs, NetBeans, Qt Creator, Sublime Text, Vim, Visual Studio, VSCode. Les fonctionnalités sont identiques quelque soit l’éditeur que vous utilisez.

Je vous conseille d’installer le plugin PIO pour Visual Studio Code (VSCode) de Microsoft, un éditeur rapide, gratuit et multi-plateforme. A vous de choisir !

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

Importer manuellement un projet Arduino sur PlatformIO

1 Ouvrir la page d’accueil de PIO depuis la barre d’outil située à gauche de l’écran ou depuis l’icône en forme de maison depuis la barre d’outil située en bas de l’écran.

Ouvrir la page d'accueil (Home) de platformIO PIO

2 Cliquer sur Import Arduino Projects pour démarrer l’importation d’un projet existant.

Importer un projet arduino existant sur platformio pio

3 Sélectionner la carte de développement désirée

Ici on choisira une LoLin d1 mini. PIO prend en charge plus de 800 cartes de développement.

Il est possible d’ajouter (ou de modifier la carte) ultérieurement, c’est un avantage de PIO

4 Localiser et sélectionner le dossier du projet Arduino / ESP32 / ESP8266 à migrer vers PIO.

Importer projet ESP32 ESP8266 arduino sur PIO PlatformIO

5 Lancer l’importation / migration du projet vers PIO

Un nouveau dossier contenant le code source du projet est créé dans le dossier de travail de PlatformIO. Par défaut, le dossier de travail se trouve dans Mes Documents sur Windows et Documents sur macOS ou Linux.

Le dossier créé dans le répertoire Projects prend comme nom la date-heure-cible (nom de la carte de développement) et contient les éléments suivants :

  • lib les librairies privées sont déplacées dans le dossier lib
  • src contiendra tous les fichiers ino (code source du projet Arduino)
  • platformio.ini est le fichier de configuration qui permet de définir les environnements. Chaque environnement permet de préciser le type de carte de développement (Arduino, ESP32, ESP8266, STM32…), le framework à utiliser pour la compilation et de nombreux autres paramètres documentés ici.

platformio pio project structure import

Une fois que la copie des fichiers terminée, PIO génère le fichier de configuration du projet.

platformio pio platformio ini file import generate

Nouvelle structure du projet Arduino sous PIO

Avec l’IDE Arduino, les librairies sont stockées dans les Documents dans un sous-dossier Arduino -> Library.

Sous PIO, il est conseillé de gérer les librairies directement dans le dossier du projet. Cela permet de gérer les versions des libraries pour chaque projet. C’est aussi possible de le faire avec l’IDE Arduino, mais c’est moins pratique.

Lorsqu’on migre un projet existant, le fichier main.ino est automatiquement déplacé dans le dossier src.

Lorsqu’on créé un nouveau projet, PIO génère un fichier cpp et ajoute un appel vers la librairie Arduino.h 

#include <Arduino.h>

Il faudra déplacer manuellement le dossier data (s’il existe) au même niveau que le dossier src

Structure d’un projet Arduino Structure du projet PIO après migration
project_dir
├── data 
│   └── file.txt
├── main.ino
project_dir
├── data 
│   └── file.txt
├── lib
│   └── README
├── platformio.ini
├── src
│   └── main.ino
└── test
    └── ...

Déplacer le dossier data contenant des fichiers LittleFS ou SPIFFS (optionnel)

Si votre projet intègre des fichiers LittleFS ou SPIFFS dans un dossier data, il faudra le déplacer manuellement pour qu’il soit au même niveau que le dossier src comme ceci.

Structure d'un projet PlatformIO PIO ESP8266 avec un dossier data contenant des fichiers LittleFS SPIFFS

Par défaut, PIO utilise le système de fichier SPIFFS. Pour activer LittleFS, il faudra le spécifier en ajoutant l’option board_build.filesystem = littlefs au fichier platformio.ini

Pour spécifier la taille du File System (FS), il suffit d’ajouter l’option board_build.ldscript et spécifier la valeur sous la forme eagle.flash.***.ld

Toutes les configurations disponibles sont ici.

Voici un exemple pour un LoLin d1 mini équipée de 4Mo de mémoire Flash dont 3Mo sera attribué au système de fichier LittleFS.

[env:d1_mini_lite]
platform = espressif8266
board = d1_mini_lite
board_build.filesystem = littlefs
board_build.ldscript = eagle.flash.4m3m.ld

Ensuite, utilisez l’option Upload File System Image

upload file system image esp8266 littlefs spiffs pio platformio tool

Pour en savoir plus sur l’utilisation de LittleFS et SPIFFS avec PIO, lisez ce tutoriel

A LIRE AUSSI :
ESP8266. Téléverser le dossier data (SPIFFS ou LittleFS) depuis PlatformIO

Mises à jour

18/08/2020 Publication du tutoriel

 

 

 

 

Avez-vous aimé cet article ?
[Total: 1 Moyenne: 5]

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

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

Nous serions ravis de connaître votre avis

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.

Domotique et objets connectés à faire soi-même