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.
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 “digitalWrite” permet 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”:
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”:
L’Aduino IDE affiche le message “Compilation du croquis” et une barre de progression indique qu’il est occupé à compiler votre code source:
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.
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:
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:
Brancher votre câble USB à la carte de développement ESP8285 …
… et 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.
Vous pouvez maintenant lancer le transfert de ce programme dans la carte Arduino par le menu “Croquis”, en cliquant sur “Téléverser”:
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é”:
Ç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