Site : tvaira.free.fr
PlatformIO est un écosystème open source dédié au développement IoT. PlatformIO IDE est l’environnement de développement C/C++ pour les systèmes embarqués supportés. Il est multi-plateformes (Windows, Mac et GNU/Linux) et il fournit une extension à un éditeur de texte existant : soit Atom soit VSCode.
PlatformIO va faciliter le développement embarqué professionnel. En novembre 2018, il prend en charge plus de 500 cartes de développement des principaux micro-contrôleurs (Atmel, ESP8266 et ESP32, STM32, etc …) et regroupe plus de 5000 bibliothèques.
Liens :
Liens :
Installer Atom :
$ curl -sL https://packagecloud.io/AtomEditor/atom/gpgkey | sudo apt-key add -
$ sudo sh -c 'echo "deb [arch=amd64] https://packagecloud.io/AtomEditor/atom/any/ any main" > /etc/apt/sources.list.d/atom.list'
$ sudo apt-get update
$ sudo apt-get install atom
$ sudo apt-get install clang
Démarrer Atom : aller dans Menu Edit → Preferences → Install. Puis rechercher le package platformio-ide
et l’installer (avec platformio-ide-terminal
).
Une fois installé, on accède à la page d’accueil de PlaformIO :
Un nouveau menu est maintenant accessible dans Atom :
Liens :
Installer VSCode :
$ curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
$ sudo install -o root -g root -m 644 microsoft.gpg /etc/apt/trusted.gpg.d/
$ sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'
$ sudo apt-get install apt-transport-https
$ sudo apt-get update
$ sudo apt-get install code
Démarrer VSCode : aller dans File → Preferences → Extensions. Puis rechercher le package platformio-ide
et l’installer.
On accède à la fabrication (build), au téléversage (upload) et au moniteur série par la barre bleue en bas de l’IDE :
On commence par créer un nouveau projet :
On donne un nom au projet et on choisit sa carte (ici une carte ESP32 LoRa de chez Heltec) :
En fonction de la carte choisie, il peut y avoir plusieurs plateformes de développement.
L’architecture d’un projet PlaformIO est la suivante :
Le code source de l’application se situe dans le dossier src
avec le fichier main.cpp
suivant (par défaut pour un framework Arduino) :
#include <Arduino.h>
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Il est possible d’ajouter ses fichiers d’en-tête (header) .h
dans le dossier include
et ses bibliothèques dans le dossier lib
. Tout ceci sera automatiquement pris en charge par PlatformIO.
Le fichier platformio.ini
contient la configuration du projet :
[env:heltec_wifi_lora_32]
platform = espressif32
board = heltec_wifi_lora_32
framework = arduino
lib_deps =
LoRa
ESP8266_SSD1306
Adafruit Unified Sensor
DHT sensor library
upload_port = /dev/ttyUSB0
upload_speed = 115200
;monitor_speed = 115200
Les options du fichier platformio.ini
sont décrites dans la documentation.
Pour ajouter des bibliothèques de la communauté au projet, il suffit d’ajouter leur nom (ou leur ID) dans la variable lib_deps
. PlatformIO fournit un outil de recherche de bibliothèques bien pratique :
On choisit sa bibliothèque et on accède à l’ensemble de ces informations :
Il est aussi possible d’indiquer la version de la bibliothèque désirée en respectant les règles syntaxique définies ici.
On obtient l’environnement de développement ci-dessous :
PlatformIO facilite le développement car il est possible maintenant de fabriquer son application et la téléverser sur sa carte sans rien faire de plus !
Après avoir choisi le port et le débit, on obtient :
Les options disponibles sont :
$ platformio device monitor --help
Usage: platformio device monitor [OPTIONS]
Options:
-p, --port TEXT Port, a number or a device name
-b, --baud INTEGER Set baud rate, default=9600
--parity [N|E|O|S|M] Set parity, default=N
--rtscts Enable RTS/CTS flow control, default=Off
--xonxoff Enable software flow control, default=Off
--rts [0|1] Set initial RTS line state, default=0
--dtr [0|1] Set initial DTR line state, default=0
--echo Enable local echo, default=Off
--encoding TEXT Set the encoding for the serial port (e.g. hexlify,
Latin1, UTF-8), default: UTF-8
-f, --filter TEXT Add filters / text transformation
--eol [CR|LF|CRLF] End of line mode, default=CRLF
--raw Do not apply any encodings/transformations
--exit-char INTEGER ASCII code of special character that is used to exit
the application, default=29 (DEC)
--menu-char INTEGER ASCII code of special character that is used to
control miniterm (menu), default=20 (DEC)
--quiet Diagnostics: suppress non-error messages, default=Off
-h, --help Show this message and exit.
Liens :
Les options peuvent être placées directement dans le fichier plaftform.ini
, par exemple :
...
upload_port = /dev/ttyUSB0
upload_speed = 115200
monitor_speed = 115200
monitor_filters = colorize, debug
monitor_flags =
--encoding
hexlify