Différences entre les versions de « ESP8266 : ENVIRONNEMENT »
(24 versions intermédiaires par un autre utilisateur non affichées) | |||
Ligne 19 : | Ligne 19 : | ||
Aujourd'hui, l'ESP-32 a succédé à l'ESP8266, offrant plus de connectivité (avec le bluetooth par exemple) et plus de puissance. | 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 | Pour en savoir plus sur les déclinaisons du module, vous pouvez consulter cette page : | ||
[http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family ESP8266 module Familly] | [http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family 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 | 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. | NodeMCU est un terme qui désigne également le firmware embarqué sur le module, permettant une programmation en LUA. | ||
Ligne 29 : | Ligne 29 : | ||
Nous choisirons la version LoLin (V3) du module NodeMCU. Cette version présente une amélioration à ne pas manquer. | 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 programmer facilement | 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) | 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++). | La programmation peut être effectuée avec Lua-Script ou Arduino IDE (C++). | ||
Ligne 41 : | Ligne 41 : | ||
::[[Fichier:LoLin_double.PNG]] [[Fichier:LoLin_Layout.png|650px]] | ::[[Fichier:LoLin_double.PNG]] [[Fichier:LoLin_Layout.png|650px]] | ||
==Installation du pilote USB CH340G== | ==Installation de l'environnement de programmation== | ||
Difficulté de mise en oeuvre : <span style="font-size:110%;color:green;">★★☆☆☆</span> | |||
===Installation du pilote USB CH340G=== | |||
Le Pilote CH340G peut être trouvé sur le site '''arduined.eu''' | Le Pilote CH340G peut être trouvé sur le site '''arduined.eu''' | ||
http://www.arduined.eu/ch340g-converter-windows-7-driver-download/ | 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 [https://projetsdiy.fr/installer-le-drivers-ch340x-sur-macos-pour-wemos-d1-mini/ 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==== | |||
::[[Fichier:ESP8266_CH340G.png|border]] | ::[[Fichier:ESP8266_CH340G.png|border]] | ||
Ligne 57 : | Ligne 69 : | ||
::[[Fichier:ESP8266_CH340G3.png|border]] | ::[[Fichier:ESP8266_CH340G3.png|border]] | ||
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é. | 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). | ||
::[[Fichier:ESP8266_CH340G4.png|border]] | ::[[Fichier:ESP8266_CH340G4.png|border]] | ||
== Installation de l'outil Arduino IDE== | === Installation de l'outil Arduino IDE=== | ||
===Téléchargement et Installation=== | ====Téléchargement et Installation==== | ||
Sur le site http://www.arduino.cc | 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. | |||
::[[Fichier:ESP8266_IDE1.png|border]] | ::[[Fichier:ESP8266_IDE1.png|border]] | ||
Ligne 74 : | Ligne 90 : | ||
::[[Fichier:ESP8266_IDE2.png|border]] | ::[[Fichier:ESP8266_IDE2.png|border]] | ||
=== Ajout de la carte ESP8266 === | ==== 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. | Arduino IDE ne reconnaît pas l'ESP8266 par défaut. Nous allons devoir ajouter les bibliothèques nécessaires. | ||
Ligne 100 : | Ligne 116 : | ||
Je n'ai pas cherché plus loin, peut-être fallait-t'il adapter le code. | Je n'ai pas cherché plus loin, peut-être fallait-t'il adapter le code. | ||
=== Paramétrage de l'IDE pour ESP8266=== | ==== 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. | Nous devons sélectionner le type de carte pour que le compilateur génère un code correct. | ||
Ligne 110 : | Ligne 126 : | ||
::[[Fichier:ESP8266_IDE6.png|border]] | ::[[Fichier:ESP8266_IDE6.png|border]] | ||
=== Paramétrage du Port COM=== | ==== 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. | 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 | * Dans le menu '''Outils / Port'''<br> | ||
::Réglez le '''Port COM''' relevé précédemment dans le Gestionnaire de Périphériques | |||
::[[Fichier:ESP8266_IDE7.png|border]] | |||
* Connectez l’Esp8266 sur le '''port USB''' du PC | |||
La Led embarquée sur le module s’allume puis s’éteint immédiatement. | :'''La Led embarquée sur le module s’allume puis s’éteint immédiatement.''' | ||
L’ESP8266 esp prêt à recevoir votre programme. | :'''L’ESP8266 esp prêt à recevoir votre programme.''' | ||
::[[Fichier:LoLin_Led.PNG|border]] | ::[[Fichier:LoLin_Led.PNG|border]] | ||
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 <code>Flash</code> et maintenez appuyé | |||
* appuyez le bouton <code>Reset</code> puis relâchez | |||
* relâchez le bouton <code>Flash</code> | |||
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 <code>Vcc</code>, tantôt <code>Gnd</code>. | |||
===Présentation de l'interface=== | |||
l'espace de travail en détail : | |||
[[Fichier:ArduinoIDE_Interface.png|500px]] | |||
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 :''' | |||
[[Fichier:ArduinoIDE_Menu.png|500px]] | |||
==L'environnement de programmation : Easycoding== | |||
[[Fichier: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é '''[http://easycoding.tn Easycoding]''', qui permet une écriture simplifiée et graphique du code. | |||
Easycoding a été développé avec '''[https://developers.google.com/blockly/ Google Blockly]''' <br> | |||
''(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'''. | |||
===<nowiki>http://Easycoding.tn</nowiki>=== | |||
Pour accéder à l'interface de développement, rendez-vous sur le site '''[http://easycoding.tn 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. | |||
::[[Fichier:easycoding.tn.png|border|600px]] | |||
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 | |||
::[[Fichier:Easycoding_interface2.png|600px]] | |||
1 : Menu permettant la sélection du mode | |||
:* '''<code>Blocs</code>''' : mode permettant la saisie du programme par glisser/déposer des blocs. | |||
:* '''<code>CODE </code>''' : mode permettant la consultation du code C++ généré en temps réel. Lecture seule. | |||
:* '''<code>XML </code>''' : mode permettant la consultation du code XML généré automatiquement. | |||
2 : Menu principal de gestion du projet | |||
:* [[Fichier:Easycoding_clipboard.png|50px]] copie du code C++ dans le presse-papier | |||
:* [[Fichier:Easycoding_tutoriaux.png|50px]] accès à des tutoraux vidéos (en français) | |||
:* [[Fichier:Easycoding_vidage.png|50px]] vidage de la surface de travail et du code | |||
:* [[Fichier:Easycoding_arduinoIDE.png|50px]] Lancer le programme (bascule dans Arduino IDE pour compilation et téléversement) | |||
:* [[Fichier:Easycoding_modeles.png|50px]] chargement de modèles de code. | |||
:* [[Fichier:Easycoding_save.png|50px]] sauvegarde du projet au format EasyCoding (XML) | |||
:* [[Fichier:Easycoding_load.png|50px]] 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. |
Version actuelle datée du 19 août 2022 à 07:34
| |||
---|---|---|---|
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 :
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.
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
Téléchargez et décompressez l'archive.
Dans le sous-dossier CH341SER, lancez le programme setup.exe
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).
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.
Installez et exécutez Arduino IDE
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.
validez par OK
Dans le menu Outils / Type de carte / Gestionnaire de Cartes
Recherchez le type esp8266 et installez les bibliothèques.
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.
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
- 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.
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 :
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 :
L'environnement de programmation : Easycoding
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.
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
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
- copie du code C++ dans le presse-papier
- accès à des tutoraux vidéos (en français)
- vidage de la surface de travail et du code
- Lancer le programme (bascule dans Arduino IDE pour compilation et téléversement)
- chargement de modèles de code.
- sauvegarde du projet au format EasyCoding (XML)
- 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.