Accueil / esp8266 / ESP Easy / ESP Easy : installation OTA, Firmware personnalisé, Playground

ESP Easy : installation OTA, Firmware personnalisé, Playground

ESP Easy étant un projet Open Source, il nous est possible d’apporter des modifications ou d’ajouter des modules en cours de développement. ESP Easy dispose d’un dépôt dédié (Playground) à l’expérimentation de modules sur GitHub sur cette page. Dans le précédent article, nous avons vu comment installer le firmware sur un ESP8266 à l’aide de utilitaire flashtool. Dans ce tutoriel, nous allons voir comment personnaliser le firmware, exporter le binaire compilé et mettre à jour le firmware ESP Easy dans les airs en WiFi (OTA).

Récupérer les sources d’ESP Easy

Récupérez le code source et l’utilitaire d’installation d’ESP Easy sur cette page. Installez ESP Easy en suivant ce guide.

 

Préparer le firmware ESP Easy

Dans le répertoire d’ESP Easy, allez dans le dossier sources et ouvrez le fichier espeasy.ino dans l’IDE Arduino.

espeasy source espeasy

Avant d’aller plus loin, il faut installer manuellement les librairies nécessaires au firmware. Elles sont disponibles dans le répertoire Libraries. Depuis l’IDE, installez les librairies suivantes :

  • ArduinoJson
  • IRremoteESP8266
  • LiquidCrystal_I2C
  • pubsubclient

espeasy firmware libraries

Personnaliser le firmware avec des modules du Playground

Récupérez les modules du playground et décompressez l’archive : https://github.com/ESP8266nu/ESPEasyPluginPlayground

Une page du forum esp8266.nu est dédiée au playground : http://www.esp8266.nu/forum/viewtopic.php?t=718

Attention. Les modules du playground sont en cours de développement, donc sans aucune garantie de fonctionnement. Ils sont susceptibles d’être modifiés sans préavis pour les développeurs.

Les contrôleurs sont préfixés par _C. Les plugins sont préfixés _P et sont numérotés entre 100 et 199.

Le playground contient les contrôleurs et plugins suivants actuellement

Nom Contrôleur Plugin
_C022 Pimatic RestApi X
_C025 Protocole HTTP générique X
_P100_SRF01 Mesure de distance par ultrason – SRF01 X
Montre à partir de NeoPixel Adafruit X
Pont vers Nodo X
_P103_Event Action sur événement : boot, timer, action utilisateur, heure, tâche X
_P104_SRF02 Mesure de distance par ultrason – SRF02 X
_P105_RGBW Piloter des ampoules MiLight X
_P107_Email_Demo Envoi d’un email (démo, n’est pas relié à un GPIO) X
_P108_WOL Wake On Lan. Utilité limitée car le module WiFi est inactif en mode deepsleep X
_P109_RESOL_DeltaSol_Pro Communication avec le régulateur solaire RESOL DeltaSol Pro X
_P110_P1WifiGateway Pour sheild P1 WiFi X
_P111_SenseAir Pour récupérer les mesures des capteurs de CO2 S8 et K30 (en cours) SenseAir X
_P112_Power Calculateur de puissance électrique X
_P113_SI1145 Pour capteur SI1145 Adafruit UV, IR, Visible X
_P114_DSM501 Pour détecteur de poussières DMS501A X
_P115_HeatpumpIR Piloter une climatisation ou (pompe à chaleur) par IR. D’après la librairie originale de ToniA. Commandes prises en charge : marche/arrêt, mode, vitesse ventilateur, température, inclinaison verticale et horizontale du flux d’air. Principaux modèles supportés : Panasonic ( E9/E12-CKP, E9/E12-DKE, E9/E12-JKE  E9/E12-NKE), Midea (MSR1-12HRN1-QC2, MOA1-12HN1-QC2), Carrier (42NQV035G, 38NYV035H2), Fujitsu Nocria (AWYZ14, MSZ FD-25), Sharp AY-ZP40KR, Daikin (RXS25G2V1B, FVXS25FV1B), Mitsubishi Heavy (SRKxxZJ-S, SRKxxZM-S) X
_P120_Thermocouple Pour utiliser des thermocouples d type K (-200°C à +1350°C) MAX6675 ou MAX31855 X
_P199_RF443_KaKu Pour émetteur / récepteur RF Kaku 433 Mhz pour piloter des appareils domotiques Klik-Aan-Klik-Uit X
_P205_FrameOLED Affichage animé pour écran OLED 0.96 » SSD1306 monochrome X
_P209_IFTTTMaker En cours de développement X
_P210_MQTTImport Souscription à un broker MQTT X

Pour certains plugins, vous aurez peut être besoin de chercher sur GitHub des librairies supplémentaires.

Remarque. La mémoire de l’ESP8266 reste limitée, il faudra donc se limiter aux modules nécessaires à votre application.

Sélectionnez la carte ESP8266 sur laquelle vous voulez installer le firmware.

espeasy-choix-esp8266-destination

Une fois que vous avez ajouté les modules, faites une vérification du code pour vérifier s’il ne manque pas des librairies supplémentaires. Une fois que le firmware est prêt, allez dans le menu croquis et lancez la préparation du fichier binaire à l’aide de l’option Exporter les binaires compilés.

1 espeasy playground firmware personnalise exporter les binaires

Le binaire est créé dans le dossier source du firmware. Pour la WeMos, le binaire est nommé ESPEasy.ino.d1-mini.bin

playground chemin fichier binaire cree

Mise à jour OTA (Over The Air) du firmware

Le firmware ESP Easy supporte la mise à jour sans fil ce qui est très pratique si votre projet est déjà en service.

Sauvegarder la configuration

Même si la mise à jour ne supprime pas la configuration, il est préférable de faire une sauvegarde de votre configuration avant de faire une mise à jour. Le fichier de configuration est téléchargé automatiquement sur votre ordinateur.

espeasy sauvegarde settings

Installation du nouveau firmware

De retour sur la page Tools, cliquez sur Load à coté de Firmware.

http://www.projetsdiy.fr/wp-content/uploads/2016/10/espeasy load firmware.png

Indiquez le chemin vers le fichier binaire créé précédemment puis upload.

playground-selection-fichier-binaire

Après installation, l’ESP8266 redémarre.

playground-firmware-update-terminee

C’est terminé !

Test : Affichage animé sur écran OLED SSD1306 (_P205_FrameOLED)

Dans l’article précédent nous avons vu comment utilisé un écran OLED SSD1306. L’affichage est basique (mais efficace). Si vous voulez un affichage plus sympa, je vous propose de tester le plugin _P205_FrameOLED qui permet d’animer les pages d’info. Si vous voulez afficher des graphismes, c’est aussi une bonne base de développement.

Commencez par ajouter le plugin _P205_FrameOLED en le déposant dans le projet ESPEasy.ino. Ajoutez la librairie esp8266-oled-ssd1306.zip qui se trouve dans le même répertoire que le plugin.

Compilez et mettez à jour le firmware comme précédemment.

Ajoutez un nouveau Device. Dans la liste choisissez Display – OLED SSD1306 Framed. On retrouve une page presque identique au module officiel. Une nouvelle liste de choix permet de choisir la vitesse d’affichage de chaque page :

  • Très lent (very slow)
  • Lent (slow)
  • Rapide (Fast)
  • Très rapide (Vey fast)
  • Sans scrolling (Instant)

On a 12 lignes disponibles. Chaque ligne correspond à une page. Le plugin saute les pages (ligne) vides. J’ai repris le petit projets de l’article précédent qui affiche la température et l’humidité mesurée par un DHT22 et la pression atmosphérique d’un BMP180.

On peut regrouper plusieurs lignes (entre 1 et 4) par page (frame). Avec une ligne par page, on sera limité à 10 caractères (pas de quoi en écrire un romain, mais au moins c’est gros). Choisissez le nombre de ligne par page dans la liste de choix Lines per Frame (1 à 4).

playground espeasy ssd1306 framed oled

Et voici ce que ça donne en image. Sur la partie supérieure de l’écran on trouve l’heure affichée, le nom du Device et le niveau de réception du WiFi. Su la partie centrale, la page (la ligne de texte). En bas de l’écran, un point symbolise la position de la page dans la liste.

espeasy playground _P205_FrameOLED

Avec 2 lignes par page

espeasy oled frame playground 2 lignes

Et 4 lignes par page

espeasy-oled-frame-4-lignes-frame

espeasy oled frame playground 4 lignes

 

Le playground recèle bien des surprises, à vous de tester et d’aller plus loin pour vos futurs projets DIY.

  • papoo

    Bonjour,
    je souhaitais tester easyESP sur un wemos D1 min avec un thermocouple de type MAX6675 et j’ai donc suivi pas à pas vos explications mais je bloque à : « il faut installer manuellement les librairies nécessaires au firmware »
    pourriez vous explique la méthodologie pour faire cela?
    Merci d’avance
    papoo

    • Bonjour Papoo. Le plus facile est de compresser chaque répertoire (ArduinoJson, IRremoteESP8266, Liquicrystal_I2C, pubsubclient). Puis dans l’IDE Arduino, il faut aller dans Croquis -> Inclure des bibliothèques -> Ajouter la bibliothèque .ZIP. On indique successivement le chemin vers les librairies pour les inclure à l’environnement de développement. Tout devrait fonctionner après. A très bientôt.

  • qcvictor

    Extrement interessent tes sujets, comment fait tu pour faire afficher l’heure et la force du signal wifi ?