ESP8266 : ENVIRONNEMENT

De GCE Electronics
Aller à la navigation Aller à la recherche

NodeMCU LoLin (V3)

LoLin Presentation.png
Nom NodeMCU LoLin (V3)
Famille Objets connectés
Wiki créé le 22/05/2018
Wiki mis à jour le 22/05/2018
Auteur fgtoul

Présentation de l’ESP8266

L'ESP8266 a été créé en 2014 par la société chinoise Espressif, d'où son nom.

Il était à l'origine un module permettant d'implémenter les connexions Wifi dans les réalisations à base d'Arduino. Mais devant son franc succès, il a évolué, passant d'une version ESP-01 présentant 6 broches, à la version ESP-14 avec 22 broches comportant ainsi beaucoup plus d'entrées/sorties et devenant une réelle alternative à l'Arduino pour ceux qui voulaient une connectivité en wifi.

Une version spéciale de l'ESP8266 est équipée de 1MB de mémoire Flash, c'est l'ESP8285.

Aujourd'hui, l'ESP-32 a succédé à l'ESP8266, offrant plus de connectivité (avec le bluetooth par exemple) et plus de puissance.

Pour en savoir plus sur les déclinaisons du module, vous pouvez consulter cette page :

ESP8266 module Familly

Pour la série d'articles qui va suivre, nous nous intéresserons plus particulièrement à la version ESP-12E, dans son intégration NodeMCU, module plus petit mais offrant suffisamment de fonctionnalités pour nos besoins.

NodeMCU est un terme qui désigne également le firmware embarqué sur le module, permettant une programmation en LUA.

Nous choisirons la version LoLin (V3) du module NodeMCU. Cette version présente une amélioration à ne pas manquer.

Il embarque effectivement un contrôleur USB CH340G compatible avec un nombre plus grand de plateformes, permettant à la fois de le programmer facilement sans avoir recours à un module supplémentaire (FTDI) et de l'alimenter (5V).

Une autre nouveauté - les broches inutilisées sur les versions précédentes (Réserves) permettent le report de la tension aux bornes du port USB VU = 5V & G = GND).

La programmation peut être effectuée avec Lua-Script ou Arduino IDE (C++).

Le module dispose de 4MB de mémoire flash disponible, le processeur est cadencé à 80-160 MHZ.

Le module est équipé d'une antenne wifi 25 dbm, compatible avec avec les normes 802.11 b/g/n.

LoLin double.PNG LoLin Layout.png

Installation de l'environnement de programmation

Difficulté de mise en oeuvre : ★★☆☆☆

Installation du pilote USB CH340G

Le Pilote CH340G peut être trouvé sur le site arduined.eu

http://www.arduined.eu/ch340g-converter-windows-7-driver-download/

Il existe une version spécifique pour Win 8.1.

Pour Windows 10, vous pouvez utiliser le lien ci-dessus.

Pour macOS, vous pouvez le trouver sur cette page

Attention : Sous MacOS Mojave (10.14), il est nécessaire de supprimer les anciens drivers afin d'éviter des conflits de ports. Dans le tutoriel cité au dessus, vous trouverez les 2 commandes à exécuter. Il suffira ensuite de redémarrer l'ordinateur pour que tout fonctionne correctement. 

Installation sous windows

ESP8266 CH340G.png

Téléchargez et décompressez l'archive.

ESP8266 CH340G2.png

Dans le sous-dossier CH341SER, lancez le programme setup.exe

ESP8266 CH340G3.png

Sur votre PC, dans le gestionnaire de Périphériques : développez la catégorie Ports COM/LPT et relevez le numéro du port série émulé (COM6 dans l'exemple).

ESP8266 CH340G4.png

Installation de l'outil Arduino IDE

Téléchargement et Installation

Sur le site http://www.arduino.cc

téléchargez la dernière version de l'application Arduino IDE.

Vous pourrez trouver le logiciel en fonction de votre système d'exploitation.

Il existe pour Windows, mac OS et Linux.

ESP8266 IDE1.png

Installez et exécutez Arduino IDE

ESP8266 IDE2.png

Ajout de la carte ESP8266

Arduino IDE ne reconnaît pas l'ESP8266 par défaut. Nous allons devoir ajouter les bibliothèques nécessaires.

Dans le menu Fichier/Préférences , ajoutez l’URL pour la carte ESP8266

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Vous pouvez faire un copier/coller de l'URL.

ESP8266 IDE3.png

validez par OK

Dans le menu Outils / Type de carte / Gestionnaire de Cartes

ESP8266 IDE4.png

Recherchez le type esp8266 et installez les bibliothèques.

ESP8266 IDE5.png

A l'heure de la rédaction de cet article, la dernière version disponible est la 2.4.1. Ayant rencontré des dysfonctionnements et une forte instabilité du module avec cette version, j'ai downgradé en version 2.4.0. Avec cette version, les performances et la stabilité du module sont tout à fait correctes. Je n'ai pas cherché plus loin, peut-être fallait-t'il adapter le code.

Paramétrage de l'IDE pour ESP8266

Nous devons sélectionner le type de carte pour que le compilateur génère un code correct.

Dans le menu Outils / Type de carte,

Recherchez NodeMCU 1.0 (ESP-12E Module) et sélectionnez.

ESP8266 IDE6.png

Paramétrage du Port COM

Afin que l'application Arduino IDE puisse téléverser le code compilé dans le module NodeMCU, nous devons lui indiquer le numéro du port série relevé précédemment lors de l'installation du pilote CH340G.

  • Dans le menu Outils / Port
Réglez le Port COM relevé précédemment dans le Gestionnaire de Périphériques
ESP8266 IDE7.png
  • Connectez l’Esp8266 sur le port USB du PC


La Led embarquée sur le module s’allume puis s’éteint immédiatement.
L’ESP8266 esp prêt à recevoir votre programme.
LoLin Led.PNG

Normalement, le module NodeMCU se met en mode flashage automatiquement, aucune manipulation à faire pour téléverser le programme.

Cependant, si le flashage échoue, il faut repasser la carte en mode apprentissage en suivant la procédure :

  • appuyez sur le bouton Flash et maintenez appuyé
  • appuyez le bouton Reset puis relâchez
  • relâchez le bouton Flash

Les connaisseurs pourront constater que la carte NodeMCU simplifie grandement la programmation. Les autres cartes nécessitent souvent des connexions spécifiques entre les broches, tantôt Vcc, tantôt Gnd.

Présentation de l'interface

l'espace de travail en détail :

ArduinoIDE Interface.png

1 : Barre d'outils

2 : espace programmation

3 : console

4 : Sélection en cours (type de carte et port COM)


La barre d'outil en détail :

ArduinoIDE Menu.png

L'environnement de programmation : Easycoding

Logo googleblockly.png

La programmation du module NodeMCU se fait soit en script LUA, soit en langage C++ via Arduino IDE.

Pour cette réalisation, nous écrirons un programme en langage C++ (vous n'allez pas vous en rendre compte ...)

Afin de ne pas effrayer les débutants, nous utiliserons un générateur de code nommé Easycoding, qui permet une écriture simplifiée et graphique du code.

Easycoding a été développé avec Google Blockly
(bibliothèque logicielle javascript, Open Source, créée par Google en 2012).

Cet outil permettra aux débutants de configurer l'application, sans avoir à se préoccuper du langage. Cependant le système blocly ne permet d'écrire que des commandes simples, qui qui allonge considérablement le code, notamment pour la gestion des chaînes de caractères (concaténations).

Les lecteurs plus férus de programmation, pourront intervenir dans le code C++, après l'avoir injecté dans Arduino IDE.

http://Easycoding.tn

Pour accéder à l'interface de développement, rendez-vous sur le site Easycoding.tn

Dans le sous-menu TUNIOT FOR ESP8266, cliquez sur le drapeau de votre choix, afin d'accéder à l'interface dans votre langue préférée.

Easycoding.tn.png

L'outil prend un peu de temps pour s'ouvrir, mais devient très performant par la suite. Ne vous impatientez pas.


Premiers pas

Easycoding présente une interface comportant 5 zones

Easycoding interface2.png

1 : Menu permettant la sélection du mode

  • Blocs : mode permettant la saisie du programme par glisser/déposer des blocs.
  • CODE  : mode permettant la consultation du code C++ généré en temps réel. Lecture seule.
  • XML   : mode permettant la consultation du code XML généré automatiquement.

2 : Menu principal de gestion du projet

  • Easycoding clipboard.png copie du code C++ dans le presse-papier
  • Easycoding tutoriaux.png accès à des tutoraux vidéos (en français)
  • Easycoding vidage.png vidage de la surface de travail et du code
  • Easycoding arduinoIDE.png Lancer le programme (bascule dans Arduino IDE pour compilation et téléversement)
  • Easycoding modeles.png chargement de modèles de code.
  • Easycoding save.png sauvegarde du projet au format EasyCoding (XML)
  • Easycoding load.png chargement d'un projet au format EasyCoding (XML)

3 : Menu d'accès aux blocs de programmation, positionnables par Glisser/Déposer

4 : Zone de travail.

5 : Menu d'affichage.

  • Recentrer
  • Zoomer +
  • Zoomer -
  • Corbeille (suppression de blocs par glisser/déposer)

Easycoding est fait pour des applications simples.

Nous l'utiliserons souvent pour générer le code de nos différents projets.