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

ESP Easy Mega. Installation facile avec PlatformIO sur ESP8266 (R120 obsolète)

Il est facile de pré-configurer ou personnaliser le code source du firmware ESP Easy Mega (version 2) à l’aide de PlatformIO. C’est aussi une solution alternative pour installer ESP Easy Mega lorsque vous rencontrez des problèmes de compilation ou de librairies manquantes avec l’IDE Arduino.

 

Dernière mise à jour le 14 mai 2020

Le projet ESP Easy est disponible sous la forme d’une archive ZIP contenant les binaires pour les ESP8266 qui disposent de 512ko, 1024ko et 4096ko de mémoire flash ainsi qu’un script d’installation. Ce script ne fonctionne malheureusement que sur Windows. Si vous rencontrez des problèmes ou que vous devez (ou voulez) apporter des modifications au code source, l’autre solution consiste à utiliser PlatformIO déjà présenté à plusieurs reprises.

Cette solution n’est malheureusement plus applicable à ESP Easy R120 (version stable). En effet, le code source est trop ancien et génère de nombreuses erreurs durant la compilation.

Installer Visual Studio Code et le plugin PlatformIO

PlatformIO est disponible sous la forme d’un plugin pour de nombreux éditeur 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. J’ai opté pour Visual Studio Code de Microsoft, un éditeur rapide, gratuit et multi-plateforme. A vous de choisir !

Installer ESP Easy Mega v2 avec PlatformIO

Pour récupérer la dernière version en cours de développement d’ESP Easy Mega, allez sur GitHub.

Ce tutoriel a été réalisé avec la version 20200410.

Les binaires (image pré-compilée que l’on peut directement téléverser) et le code source (qui nécessite d’être compilé mais que l’on pourra modifier) sont livrés dans deux archives séparées.

1Allez jusqu’à la fin de la liste des nouveautés et corrections apportées à la release et déplié les assets (ressources). Trois archives sont disponibles :

2L’archive ESPEasy_mega-XXXXXXXX.zip contient les binaires pré-compilés pour de nombreuses cartes et configurations ainsi que le code source du projet. Conseillé

3Code source uniquement zippé

4Code source uniquement dans une archive compressée au format tar.gz (linux, macOS)

 

Les utilisateurs de Windows disposent de l’utilitaire ESP.Easy.Flasher permettant de pré-configurer et téléverser le binaire pour les cartes les plus courantes

Pour ouvrir le projet sous Visual Studio Code, ouvrez l’écran d’accueil de PlatformIO puis choisissez Open Project.

Naviguez dans les dossiers et placez-vous à la racine du projet dans le répertoire source. Le fichier platformio.ini doit être visible. Cliquez sur Select. PlatformIO ouvre le projet et l’affiche dans la barre latérale à gauche de l’écran.

Le code source n’est pas fondamentalement différent de la version R120. L’interface graphique a été repensée comme nous l’avons vu dans l’article précédent sur une ESP32.

Pré-configurer ESP Easy Mega : réseau WiFi, adresse IP fixe, utilisateur, mot de passe…

Puisque nous allons compiler le code source, il est possible de pré-configurer de nombreux paramètres pour ne pas avoir à le faire au premier démarrage du MCU.

Ouvrez le fichier ESPEasyDefaults.h qui se trouve dans le dossier src/src.

Voici les principales clés que vous pouvez personnaliser :

D’autres paramètres utiles peuvent être modifiés :

0 : Module autonome
1 = Domoticz HTTP
2 = Domoticz MQTT
3 = Nodo Telnet
4 = ThingSpeak
5 = Home Assistant (openHAB) MQTT
6 = PiDome MQTT
7 = EmonCMS
8 = Generic HTTP
9 = FHEM HTTP

Configurer le fichier platformio.ini pour la carte ESP32 / ESP8266

Le projet est livré avec plusieurs environnements (carte de développements) pré-configurés. Les environnements (cartes) sont regroupés dans 2 fichiers distincts :

Il est possible d’indiquer au compilateur l’environnement à utiliser par défaut directement dans le fichier platformio.ini en ajoutant la clé default_envs. Pour les cartes anciennes (ou en cas de problème), il est possible de fixer la vitesse de transfert. Voici un exemple de configuration pour un LoLin WeMos d1 mini à ajouter juste après la clé extra_configs

extra_configs =
  platformio_core_defs.ini
  platformio_esp82xx_base.ini
  platformio_esp82xx_envs.ini
  platformio_esp32_envs.ini
  platformio_special_envs.ini
default_envs = normal_ESP8266_4M1M
upload_speed = 115200
monitor_speed = 115200
upload_port = COM3

Compiler et téléverser ESP Easy Mega sur l’ESP8266

Connectez la carte ESP8266 sur un port USB de l’ordinateur.

Il existe plusieurs méthodes pour compiler et téléverser le projet

Depuis le menu PIO, lancer la compilation depuis l’option Upload. Le compilateur compile le projet pour la carte indiquée par défaut dans le fichier platformio.ini puis téléverse le binaire du firmware sur la carte.

Depuis la palette d’outil. Le compilateur cible également la carte indiquée dans default_envs

Build : génère le binaire

Upload : génère et téléverse le binaire

Depuis le menu PIO ➀, cliquez sur l’environnement qui vous intéresse ➁ pour afficher les fonctions de PIO. Cliquez sur Build pour compiler ou sur Upload pour compiler et téléverser

Depuis le Terminal, exécutez la commande suivante en remplaçant <version> par la version désirée

platformio run --target upload --environment <version>

PlatformIO va tout d’abord compiler le fichier binaire avant de le télécharger sur la carte de développement. Il n’est pas nécessaire d’indiquer le port COM, la détection est automatique. A la fin de l’installation, vous devez obtenir un message de [success]

 

Ouvrir le moniteur série et récupérer l’adresse IP de l’ESP8266

Si vous n’avez pas attribué une adresse IP fixe au MCU, le plus simple est d’ouvrir le moniteur série depuis le menu PIO.

Attention, par défaut la vitesse de transmission du port série est de 9600 bauds sous PIO alors que ESPEasyMega communique à 115200. Modifiez la vitesse du moniteur série en ajoutant la clé monitor_speed = 115200 au fichier platformio.ini

Pour les fans du Terminal, exécuter platformio device monitor -b 115200

Quoi faire en cas d’échec de compilation ?

Contrairement à l’IDE Arduino, il est très facile de supprimer les fichiers temporaires. Si vous rencontrez des erreurs de compilation (et que votre code source ne retourne pas d’erreur), il suffit de supprimer le dossier de travail de PlatformIO à l’aide de l’option Clean. Tous les builds et les fichiers temporaires sont supprimés d’un clic de souris !

Installer ESP Easy R120 avec PlatformIO (obsolète)

La compilation du code du projet ESP Easy R120 génère malheureusement de nombreuses erreurs rendant la personnalisation impossible (pré-configuration du réseau WiFi, ajout de plugin…). Maintenant, il faut obligatoirement utiliser la version Mega (ou V2) du projet. Cette version est encore en cours de développement mais est parfaitement utilisable (et stable).
Je laisse cette partie du tutoriel pour ceux qui disposent encore d’une version antérieure en production.

Téléchargez le code source du firmware ESP Easy R120 en allant sur cette page ou en cliquant sur ce lien. C’est la dernière version stable de la version 1. Décompressez l’archive. Lancez Visual Studio Code et cliquez sur Import Arduino Project

Dans la boite de dialogue qui s’affiche, sélectionnez une carte. Pour la Wemos d1 mini utilisée pour ce tutoriel, choisissez ESP8266 ESP-12E. Allez dans le dossier source du projet ESP Easy. Terminez en cliquant sur Import.

PlatformIO importe le projet dans son répertoire de travail (workspace). Il se situe en général dans le dossier Documents de l’utilisateur connecté. Dans mon cas, PlatformIO a donné un identifiant unique comme nom de projet. Ce n’est pas très pratique. Pour le renommer, quittez Visual Studio Code et allez dans le dossier Projects de PlatformIO.

Maintenant, il faut copier manuellement les librairies Arduino qui se trouvent dans le dossier Librairies du code source. Depuis l’explorateur de fichier, sélectionnez les dossiers puis CTRL + C. Ouvrez le dossier lib du projet PlatformIO puis CTRL + V. Sur Visual Studio, placez le curseur de la souris sur le nom du projet pour faire apparaître la barre d’icônes. Cliquez sur l’icône refresh pour actualiser le contenu du projet.

Un fois le projet ouvert, on trouve les deux dossiers src et lib ainsi que le fichier de configuration platformio.ini

[env:esp12e]
platform = espressif8266
board = esp12e
framework = arduino

Vous pouvez pré-configurer les paramètres réseau en ouvrant le fichier espeasy.ino qui se trouve dans le dossier src. N’oubliez pas de passer à true la clé DEFAULT_USE_STATIC_IP pour fixer l’adresse IP du module.

Ouvrez ensuite un Terminal depuis la barre d’icône située dans le bas de l’écran.

Branchez l’ESP8266 et exécutez la commande suivante pour compiler et téléverser le firmware. Comme il n’y a qu’une seule configuration, il n’est a aucun ‘environment’ à indiquer.

platformio run --target upload

Si tout s’est bien déroulé, vous devez obtenir un message de succès.

Pour récupérer l’adresse IP (si elle n’a pas été fixée dans le code source), exécutez la commande suivante pour ouvrir le moniteur série de PlatformIO. Il existe un raccourcis dans la barre d’icône vers le moniteur série mais il est configuré à 9600 bauds.

platformio device monitor -b 115200

Mises à jour

14/05/2020 Etapes d’installation de la version R120 retirée. Actualisation des étapes de configuration de la version Mega pour refléter les évolutions du code source.

20/04/2020 Correction des liens vers la page de téléchargement du code source

Avez-vous aimé cet article ?
[Total: 1 Moyenne: 4]
Exit mobile version