Savez vous que vous pouvez tout à fait utiliser le Raspberry Pi pour programmer vos ESP8266 ? Ce tutoriel vous explique comment utiliser l’IDE Arduino sur le Raspberry Pi avec les ESP.
Au sommaire :
NodeMcu ESP-12E ESP8266 utilisé sur le Raspberry Pi
L’ESP8266
L’ESP8266 est un circuit intégré à microcontrôleur avec connexion Wi-Fi développé par le fabricant chinois Espressif.
En août 2014, les passionnés d’électronique découvrent la version ESP-01, de taille réduite, qui permet de connecter un microcontrôleur à un réseau Wi-Fi et d’établir des connexions TCP/IP avec des commandes Hayes. La traduction progressive de la documentation (à l’origine uniquement en chinois) ainsi que le prix réduit du circuit ont permis le développement d’une communauté de développeurs et de passionnés de l’ESP8266. Depuis le circuit ESP8266 a été décliné dans de nombreuses versions.
Les variantes ont toutes des spécificités. Certaines auront plus de broches de GPIO accessibles (2 seulement pour l’ESP8266 de base, 11 pour un ESP12), d’autres auront plus de mémoire flash disponible (entre 512K, 1MB or 4MB suivant les versions choisies). (Source Wikipedia)
L’IDE Arduino
L’IDE Arduino s’installe aisément sur Raspbian. Naviguez sur la page arduino.cc et téléchargez depuis la page Download la version arduino-1.8.12-linuxarm.tar.xz.
1 2 3 |
tar xvf arduino-1.8.12-linuxarm.tar.xz cd arduino-1.8.12/ sudo ./install.sh |
Vous avez un nouvel icône dans le menu Programmation : Arduino IDE. Dans les types de cartes (Outils => Type de carte) l’ESP ne figure pas, nous allons l’ajouter.
Nota : Lors de l’installation j’ai eu un message d’erreur, je n’ai pas trop cherché, je l’ai contourné en créant le fichier manquant manuellement.
Le message :
1 2 3 4 5 |
pi@raspberrypi:~/Downloads/arduino-1.8.12 $ sudo ./install.sh Adding desktop shortcut, menu item and file associations for Arduino IDE... touch: impossible de faire un touch '/root/.config/mimeapps.list': Aucun fichier ou dossier de ce type /usr/bin/xdg-mime: 848: /usr/bin/xdg-mime: cannot create /root/.config/mimeapps.list.new: Directory nonexistent done! |
Le contournement :
1 2 |
pi@raspberrypi:~/Downloads/arduino-1.8.12 $ sudo mkdir /root/.config pi@raspberrypi:~/Downloads/arduino-1.8.12 $ sudo touch /root/.config/mimeapps.list |
Puis relancez l’installation.
Ajouter l’ESP8266 à l’IDE Arduino
Rendez vous sur la page web https://github.com/esp8266/Arduino#installing-with-boards-manager
récupérez le lien .json encadré ci-dessus (https://arduino.esp8266.com/stable/package_esp8266com_index.json).
Dans l’IDE Arduino, ouvrez la fenêtre Fichier => Préférences
Collez le lien .json dans la zone indiquée par la flèche.
Ouvrez Outils => Type de Carte => Gestionnaire de carte
Cherchez la bibliothèque ESP8266 by ESP8266 Community et Cliquez sur InstallerL’installation commence. Attendez la fin de l’installation, fermez la fenêtre et redémarrez l’IDE Arduino.Vous avez maintenant accès aux ESP8266 dans la liste des cartes. Choisissez celui qui correspond à votre modèle. Pour moi c’est NodeMCU 1.0 (ESP-12E Module).
Vous récupérez également un certain nombre d’informations sur la carte.
Vérifiez que le port USB est bien indiqué. Si vous ne voyez pas d’USB0, laissez l’ESP connecté au port USB et redémarrez l’IDE.
Sélectionnez le port /dev/ttyUSB0 pour communiquer avec l’ESP-12E.
Test avec l’exemple Blink
Comme toujours c’est le clignotement d’une LED qui va permettre de tester la liaison et le fonctionnement de l’ESP.
Chargez l’exemple en passant par le menu Fichiers => ESP8266 => Blink
Le fichier exemple apparait dans la fenêtre.
Cliquez sur le bouton Téléverser. Cela lance la compilation du croquis (programme) et lance ensuite son transfert vers l’ESP8266. Pendant le transfert la LED bleue de l’ESP clignote rapidement de manière irrégulière (au rythme du transfert de données).
A la fin du transfert il ne doit pas y avoir de message d’erreur et « Téléversement terminé » s’affiche. Si tout s’est bien passé, la LED bleue de l’ESP clignote au rythme
- Allumée : 1 seconde
- Éteinte : 2 secondes
On va modifier le rythme pour s’assurer que le programme est bien transféré :
1 2 3 4 5 6 7 |
void loop() { digitalWrite(LED_BUILTIN, LOW); // Turn the LED on (Note that LOW is the voltage level // but actually the LED is on; this is because // it is active low on the ESP-01) delay(1000); // Wait for a second digitalWrite(LED_BUILTIN, HIGH); // Turn the LED off by making the voltage HIGH delay(2000); // Wait for two seconds (to demonstrate the active low LED) |
modifiez le pour avoir
1 2 3 4 5 6 7 8 9 |
void loop() { digitalWrite(LED_BUILTIN, LOW); // Allumer la LED delay(100); // pendant 100 milli seconde digitalWrite(LED_BUILTIN, HIGH); // Eteindre la LED delay(150); // pendant 150 ms digitalWrite(LED_BUILTIN, LOW); // Allumer la LED delay(100); // pendant 100 milli seconde digitalWrite(LED_BUILTIN, HIGH); // Eteindre la LED delay(500); // pendant 500 ms |
puis renvoyez le croquis vers l’ESP. Si la fréquence de clignotement de la LED a changé (2 flash brefs, une pause…), c’est bon, vous pouvez commencer à vous amuser 🙂
Un exemple
A titre d’exemple, voici une réalisation que m’a fait parvenir Thimotée :
L’ESP interroge l’API SNCF pour afficher les horaires des trains en gare. C’est un écran e-ink et les led clignotent en cas de retard.
Sources
Installer l’IDE Arduino pour Linux ARM (Raspberry Pi, Orange Pi, Odroid…)
https://www.instructables.com/id/Programming-ESP8266-ESP-12E-NodeMCU-Using-Arduino-/
esp8266 + micropython
J’utilise la carte esp8266 doit avec micropython installé dans la puce. En terme de puissance, cette carte se situe à mi-chemin entre un arduino-uno et un raspberrypi. Elle est parfaite à tout point de vue: prix (3 à 5e), puissance, capacité mémoire flash. Il suffit alors d’un éditeur très dépouillé comme mu-editor et vous pourrez l’utiliser avec des novices comme les élèves.
Pour ma part, je vais l’utiliser avec mes élèves de 2de et de 1ere en enseignement scientifique sur des mini-projets (acquisition d’une grandeur physique via une page web).
Ph.D
bonjour Philippe
merci pour ce retour
j’ai du micropython ici mais sur une carte d’origine
pas encore testé sur ESP
cdt
françois
Salut M. François Mocq.
Nous sommes au cœur même de l’électronique pour débutant via l’arduino ou la raspberry.
J’adore !
@+
merci 🙂
Bonjour François, merci beaucoup pour ce tuto bien complet.
Là, je commence à avoir un PC PI4 d’atelier bien achalandé avec Freecad, Cura, Kicad et Arduino IDE.
De quoi s’éclater des soirées entières !!
Merci encore 🙂 🙂
Gilles
Ping : Piloter un ESP8266 via une page WEB - Framboise 314, le Raspberry Pi à la sauce française....
Ping : Apprendre à programmer Arduino avec ArduBlockly - Framboise 314, le Raspberry Pi à la sauce française....
Ping : Installer MicroPython sur ESP8266 ESP12 NodeMCU - Framboise 314, le Raspberry Pi à la sauce française....