tutoriel – premiers pas avec Arduino – ESP8266 – NodeMCU

Mieux cerner les sigles ESP 8266, NodeMCU sous Arduino

Objectif

L’objectif de cet article est de parcourir avec vous les premières étapes pour la conception d’un capteur multifonctions qui pourra se révéler utile pour surveiller à distance votre jardin ou votre piscine. L’enjeu est de maîtriser  la conception à partir d’un coeur Arduino / NodeMCU / ESP8266. Dans de prochains articles, on verra comment mutualiser l’exploitation d’un jeu de capteurs, et remonter les valeurs de mesures prélevées sur le terrain vers un portail Domoticz.

Ce tutoriel vous conduira à savoir charger un programme simple sur votre carte de développement, à partir du connecteur microUSB, et à connecter la carte à votre réseau WiFi domestique. L’enjeu n’est donc pas immense, mais quelques incitations à bien maîtriser votre socle de développement vous seront peut-être utiles par la suite.

Les  membres et visiteurs de www.philoc.fr sont invités apporter leurs propres idées et  pierres à l’édifice. C’est en partageant qu’on progresse le mieux.

Etape 1 : disposer d’un atelier de développement Arduino pour l’ESP 8266

Je conseille, pour les premiers pas, de suivre une page officielle :

https://arduino-esp8266.readthedocs.io

Au menu, vous trouverez les recettes de base pour installer votre atelier Arduino, sur votre PC, qui je l’espère fonctionne sous Linux, mais ça ne me regarde pas …

Vous arrivez vite alors au point où disposant d’un atelier Arduino, on vous propose d’installer une extension du gestionnaire de cartes pour la technologie ESP 8266. Ca se passe à partir de l’onglet « préférences », et ensuite vous aurez à choisir un type de carte dans une liste proposée par le gestionnaire de cartes. Qui correspond à celle que vous avez achetée …

Arduino, ESP8266, NodeMCU, on commence à y voir plus clair

Pour éviter de trop paraphraser, et de nous égarer au risque de nous tromper dans les détails, je vous invite à consulter les wiki …

Nous avons seulement besoin de retenir que l’ESP 8266 est au départ un circuit intégré doté d’une fonction microcontrôleur, et développé par la société chinoise Espressif. Il a ensuite fait l’objet de facilités développées par des sociétés tierces ayant pour cadre l’intégration matérielle et logicielle. La société Espressif propose un environnement de développment matériel et logiciel  pour ESP 8266   qui a évolué vers la plateforme ESP32, que nous utilisons sur la rubrique audio de notre site.

Mais suite à nos essais, nous pensons que pour développer un capteur ou  un actionneur, l’ESP32 ne dispose pas d’avantage essentiel par rapport à ESP 8266. Et par ailleurs, l’atelier Espressif est bien plus difficile d’accès que l’atelier Arduino …

Et quand Arduino adapte sa plateforme de développement pour gérer encore plus facilement un ESP 8266, la chrysalide devient un papillon et s’appelle un ModeMCU. Toujours à bas prix, entre   1€ et 5€ pour faire large, mais pour déjà mieux comprendre le succès rencontré.

Etape 2 : choisir une carte de développement

Pour employer une métaphore, bienvenue au royaume des poupées russes.

Au coeur de ce que vous allez acheter, il y a l’ESP 8266, un circuit intégré doté de la connectivité WiFi. Juste au dessus, on dispose d’un « module », c’est un tout petit circuit imprimé hybride, identifiable sous une référence ESPxx, où « xx »représente une version.

Pour les capteurs Philoc, on utilise  des cartes équipées du module ESP12E .

Mais un module, c’est trop fin de gravure pour être manipulé par un amateur. Alors, l’amateur, comme vous – comme moi – achète une « carte de développement », c’est plus gros qu’un « module » et ça dispose de deux rangées de broches Dual in Line, plus un connecteur microUSB, un bouton de reset, une LED, et un régulateur de tension, entre autres. Bref, c’est ce qu’il nous faut.

Alors c’est là que je vous demande votre attention :

  1. Il y a plusieurs fabricants de cartes de développement, et leurs cartes ne sont pas compatibles, ni mécaniquement, ni électriquement.
  2. Quand vous commandez une carte sur les grands sites de e-commerce, vérifiez bien le type de fabricant et de référence.
  3. Commencez par essayer de ne pas acheter de contrefaçon, c’est difficile à vérifier, et les contrefaçons ont souvent des défauts par rapport à l’original.

Et ensuite comme vous aurez rarement une notice disponible sur le site vendeur, exploitez au maximum les photos :

  1. faîtes vous une idée de la qualité d’implantation et de marquage
  2. vérifiez le format mécanique, le brochage des pins, et l’implantation des composants.

Tout çà doit coller avec la référence que vous vous êtes choisie.

Pour ma part, j’utilise deux types de cartes de développement :

Les NodeMCU V2 :

Ces cartes développées par Amica disposent de l’avantage d’être compactes, et faciles à utiliser sur un breadboard

Les NodeMCU V3 :

Développées par Olimex, elles sont trop grosses pour un breadboard, mais disposent d’un complément utile, le « bouclier » …

Ces deux cartes utilisent toutes les deux la version de module « ESP-12 » développpée par Ai-Thinker.

Je vous conseille un lien officiel qui aide à y voir -un peu  plus clair dans toute cette jungle :

https://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Etape 3 : Un bouclier, c’est toujours utile

Un « bouclier », ça se traduit par « shield » en anglais. Et même si çà rajoute entre 1€ et 3€ sur le prix final, c’est utile, sous plusieurs raisons :

  1. disposer de plusieurs broches DIL pour  chacun des signaux, et d’avoir même des borniers étendus pour les alimentations
  2. aider à fixer mécaniquement l’électronique dans un boîtier, grâce aux trous pour entretoises, même si j’ai noté une trop forte proximité entre certaines pistes et les trous d’entretoises … qui a nécessité de réparer une carte au fer à souder …
  3. élargir la plage d’alimentation DC au delà des 9 volts maximum supportés par une carte de développement. Sur le bouclier disponible avec une carte NodeMCU V3, on dispose d’une tolérance de raccordement au delà de 12V – très utile pour les contrôleurs d’electrovannes Philoc – et en plus de l’embase Jack fort utile à la débrochabilité de l’alimentation.
  4. fournir des tensions stabilisées pour les périphériques, et notamment le 5V, non disponible sur une NodeMCU V2.

Notons l’offre technologique « grove », abordée sur notre site, qui robustifie significativement le câblage, mais à coût élevé.

Etape 4 : Devenir un familier du brochage des entrées-sorties

On pourra avec l’atelier Arduino affecter un signal interne à une des broches externes disponibles, et à configurer le mode de fonctionnement (entrée ou sortie, pull-up …) mais en pratique et carte par carte il faut tatonner pour vérifier qu’une affectation est possible. Sinon, on constate un déraillement du logiciel  à l’initialisation, jamais destructif pour mon cas propre.

Ayons en tête que les entrées-sorties de l’ESP 8266 sont compatibles 3.3V, et qu’il n’est pas toléré de piloter une entrée par un signal au delà de ce niveau sous peine de détruire le circuit.

Et s’il vous plaît, câblez toujours en mode hors tension, connecteurs d’alimentation déconnectés …

Etape 5 : Notre premier programme : une connection au WiFi domestique

Reprenons alors la configuration de l’atelier avec le type de carte. Dans notre cas :

« NodeMCU 1.0 – ESP12E module »

Pensons à renseigner le « port USB », et à rensigner le nom et le mot de passe de notre point d’accès WiFI, et sans aucun doute l’exemple de base, associé à la librairie ESP8266.h, et sur lequel nous avons ajouté quelques enjoliveurs, fonctionnera !

#include <ESP8266WiFi.h>

void setup()
{
delay (200);
Serial.begin(115200);
delay (200);
Serial.println();
Serial.println("USB initialised");

WiFi.begin("POINT-ACCES-WIFI","MOT-DE-PASSE");

Serial.println("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();

Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
}

void loop() {}

Avec pour résultat sur la fenêtre USB :

USB initialised
Connecting
.......
Connected, IP address: 192.168.0.31

Laisser un commentaire