You are currently viewing Comment programmer l’ESP8285 avec l’Arduino IDE ?

Faire clignoter la LED embarquée

La LED embarquée sur  notre carte de développement NodeMCU-M est routée sur l’entrée/sortie numérique 16 de l’ESP8285.

Emplacement de la LED embarquée sur la carte de développement de l'ESP8285

Comme dans les programmes Arduino précédents, partons de l’ossature du code Arduino suivante:

// Fonction de démarrage, s'exécute une seule fois:
void setup()
{

}

// Fonction principale du programme, s'exécute en boucle:
void loop()
{

}

Nous commençons par signaler au microcontrôleur que nous utiliserons la broche d’entrée/sortie correspondante à la LED (n°16) en mode sortie (“OUTPUT”). L’instruction dédiée est l’instruction “pinmode” qu’il n’est nécessaire d’exécuter qu’une seule fois avant toute utilisation de cette sortie. Nous l’insérons dans la fonction “setup”:

  pinMode(16, OUTPUT);

L’allumage de la LED s’effectue par une demande de positionnement de la sortie 16 à l’état allumé (“HIGH”) et son extinction par une demande de positionnement de la sortie 16 à l’état éteint (“LOW”). La fonction digitalWritepermet d’effectuer ce changement d’état d’une sortie physique du microcontrôleur.

Les lignes de codes ci-dessous vous permettent d’effectuer ce changement d’état. En les écrivant dans la fonction “loop”, vous obtiendrez l’effet répétitif:

  digitalWrite(16, HIGH);
  digitalWrite(16, LOW);

Il manque encore une chose dans le programme que nous venons d’écrire: marquer une pause… En effet si vous compilez le programme Arduino que nous venons d’écrire et le le transférez tel quel dans l’ESP8285, le clignotement de la LED sera tellement rapide que vous n’aurez pas le temps de la voir !

Pour demander au microcontrôleur de marquer une pause après avoir modifié l’état allumé/éteint de la LED, nous utilisons la fonction delay“.  Cette fonction demande au microcontrôleur d’attendre une durée exprimée en millisecondes. Pour attendre 1 seconde après chaque extinction ou allumage de la LED, vous ajoutez la ligne de code suivante:

  delay(1000);

En suivant les étapes précédentes, votre programme doit maintenant ressembler à ça:

// Fonction de démarrage, s'exécute une seule fois:
void setup()
{
  pinMode(16, OUTPUT);
}
// Fonction principale du programme, s'exécute en boucle:
void loop()
{
  digitalWrite(16, HIGH);
  delay(1000);
  digitalWrite(16, LOW);
  delay(1000);
}

Compilation du code logiciel

Avant de transférer le code logiciel que nous venons d’écrire dans notre carte ESP8285, nous demandons à l’Arduino IDE de le “compiler” c’est à dire le transformer en un fichier binaire (suite de 1 et de 0) compréhensible par le microcontrôleur. Commençons par indiquer à l’Arduino IDE le type de microcontrôleur auquel est destiné ce code logiciel. Dans le menu “Outils”, choisissez l’élément commençant par “Type de carte” puis “Generic ESP8285 Module”:

Dans le menu "Outils", choisissez l'élément commençant par "Type de carte" puis "Generic ESP8285 Module"

Lorsqu’on demande à l’Arduino IDE de “compiler” un programme, celui ci vérifie préalablement la syntaxe du code logiciel qui lui est fourni. Cette opération se lance par le menu “Croquis”, en cliquant sur “Vérifier/Compiler”:

Menu de l'Arduino pour vérifier/compiler le code logiciel

L’Aduino IDE affiche le message “Compilation du croquis” et une barre de progression indique qu’il est occupé à compiler votre code source:

Compilation du code logiciel en cours

Si une erreur a été rencontrée au cours de la compilation, un bandeau orange s’affiche sous la zone d’écriture du programme avec un bouton “Recopier les messages d’erreur”. En exemple, la copie d’écran ci-dessous affiche le message d’erreur produit par un “;”  oublié en fin de la ligne 12.

La vérification/compilation du code logiciel a échouée

Si vous rencontrez un message d’erreur, il est nécessaire de modifier le code logiciel que vous venez d’écrire pour corriger votre code avant de relancer la compilation  (menu “Croquis”, puis “Vérifier/Compiler”).

Une fois la compilation terminée, si tout s’est bien déroulé vous avez le message “Compilation terminée” qui s’affiche sous la zone d’écriture du programme:

La vérification/compilation du code logiciel a réussie

Transfert du programme dans la carte ESP8285

Pour le transfert du programme que vous venez de compiler, la première chose à faire est de lister les ports USB visibles par l’Arduino IDE avant même le branchement de votre carte ESP8285.
Dans le menu “Outils”, cliquez sur “Port” puis notez les ports listés:

Liste des ports USB avant le branchement de la carte de l'ESP8285

Brancher votre câble USB à la carte de développement ESP8285 …

Branchement du cable micro USB Type B à la carte de développement ESP8285

… et au PC.

Branchement du cable USB au PC

Maintenant si vous allez dans le menu “Outils”, puis cliquez sur “Port” vous voyez un nouveau port référencé. C’est celui qui correspond à notre carte de développement ESP8285. Sélectionnez le pour indiquer à l’Arduino IDE d’utiliser ce port USB pour le transfert du programme.

Nouveau ports USB après le branchement de la carte de l'ESP8285

Vous pouvez maintenant lancer le transfert de ce programme dans la carte Arduino par le menu “Croquis”, en cliquant sur “Téléverser”:

Transférer le programme compilé sur la carte de développement ESP8285

Comme lors de l’étape de compilation, l’Aduino IDE affiche le message “Compilation du croquis” et une barre de progression. Une fois ce transfert terminé, si tout s’est bien déroulé, il va afficher le message “Téléversement terminé”:

Le transfert du programme dans la carte de développement ESP8285 est terminé

Ça y est, le programme est chargé sur votre carte ! Vous pouvez maintenant observer le clignotement de la LED embarquée:

Pour continuer:

Si vous souhaitez découvrir un exemple d’utilisation de l’interface Wi-Fi de l’ESP8285 en Arduino,  je vous invite à vous reporter à l’article suivant: Horloge connectée avec Arduino

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires