Accéder au contenu principal

ESP8266 avec le firmware Nodemcu Lua

J'ai acquis il y a quelques temps le module ESP8266 chez HackSpark (www.hackspark.fr) pour 10€. On en trouve maintenant assez facilement à 5€ sur d'autres sites car ce module est en train de provoquer un vrai chamboulement dans le monde des micro-contrôleurs. Ce module est normalement prévu pour être associé à un micro-contrôleur, mais il a l'avantage d'être en lui même un micro-contrôleur assez simple. Il peut être utilisé pour point d'accès Wifi ou comment client Wifi rattaché à un routeur par exemple et peut recevoir des commandes AT pour initialiser le mode souhaité.
L'utilisation que j'ai choisi d'en faire est une utilisation "standalone", c'est à dire en fonctionnement seul, non rattaché à un micro-contrôleur. Pour cela, il faut absolument disposer d'un adaptateur USB/Série 3,3V. N'utilisez surtout pas de port 5V qui risquerait d'endommager définitivement le module. Cet adaptateur servira à la fois à flasher le nouveau firmware et à passer des commandes. J'ai choisi d'installer le firmware NodeLua qui permet de passer des commandes dans un langage évolué Lua directement à l'ESP.

Préparation pour l'installation d'un nouveau firmware

Avant d'installer le nouveau firmware, préparez toutes les connections avec un maximum de minutie sous peine de griller définitivement le module.
Si vous avez une version récente du module, le schéma est probablement le suivant.
1. Pour simplifier le travail, j'ai ensuite confectionné un câble femelle/mâle de type nappe IDE  avec un connecteur IDC femelle 2x5 (seules 4 seront utilisées) et un connecteur IDC pour un breakout board 2x5. Les deux connecteurs sont auto-perforants, ce qui fait qu'il n'est pas nécessaire de disposer d'une pince à sertir.


2. Utilisez 4 câbles femelles/mâles pour brancher l’adaptateur usb/série sur la planche d'essai.
3. Connectez l'adaptateur à la place en respectant le schéma suivant (réalisé avec http://www.robotgear.com.au/Hosted/PEBBLE/Current/PEBBLE/PEBBLE%20for%20FF.html). Dans le schéma suivant, le port GPIO0 est connecté à la masse, ce qui met le module en mode Flash. Il doit être déconnecté pour un démarrage normal. La LED sur le port GPIO2 ne sert que pour des tests pour le moment.

3. Branchez l'adaptateur USB sur le PC et vérifiez que les leds s'allument correctement. S'il n'y a pas de fumée, c'est déjà bon signe. Vérifiez cependant plusieurs fois la connectique afin d'être sûr de ne pas vous tromper. ATTENTION : en fonction de votre adaptateur, il peut être nécessaire de connecter le TX au RX et inversement.

4. Installez les drivers, si ce n'est pas déjà fait.

Installation d'un nouveau firmware

L'installation d'un nouveau firmware se fait à l'aide de l'outil ESP8266Flasher qui peut être téléchargé à l'adresse suivante : https://github.com/nodemcu/nodemcu-flasher. Choisissez ensuite la version 32 ou 64 bits.
Le firmware Nodemcu Lua qui nous intéresse est télécharger à l'adresse https://github.com/nodemcu/nodemcu-firmware/tree/master/pre_build/latest.
1. Connectez l'adapteur USB/Série au PC.
2. Sélectionnez le port série de votre adaptateur.

3. Cliquez sur le menu "Config" et sélectionnez le firmware à charger.
4. Dé-sélectionnez les fichiers commençant par INTERNAL et ne gardez que le fichier nodemcu_latest. 5. Revenez sur le menu "Operation" et cliquez sur le bouton Flash. Si votre module est correctement raccordé, vous verrez un QR Code et l'adresse MAC du point d'accès.

6. Laissez l'opération se terminer correctement et ne débranchez surtout pas votre module jusqu'à la fin. L'opération complète prend environ 2 minutes.

Premiers tests sous Lua

Une fois le firmware nodemcu Lua chargé, vous pouvez commencer à exécuter vos premiers programmes. Pour cela, débranchez votre module et débranchez le câble de connexion du GPIO0 pour sortir du mode flash. Rebranchez la connexion série pour retrouver le mode console.
Vous pouvez vous connecter directement sur la console série avec Putty ou tout autre logiciel série. La vitesse par défaut est de 9600, ce qui est suffisant pour des commandes saisies à la main, mais plutôt lent pour des transferts de fichiers.
Un autre outil graphique LuaLoader simplifie grandement la connexion au module. Il peut être téléchargé sur http://benlo.com/esp8266/ .  Le logiciel est en anglais mais très simple d'utilisation. Une fois téléchargé et dézippé (aucune installation n'est nécessaire), connectez vous au port série. Par défaut, seuls les port COM2 et COM4 sont listés. Si votre adaptateur utilise un autre port, lancez LuaLoader en mode Administrateur pour obtenir la liste de tous les ports. Une fois connecté, vous verrez le signal ">".


Pour un premier test, commencez par récupérer le ChipId. La commande exécutée s'affiche sur l'écran de gauche. Essayez ensuite de renseigner le SSID et le mot de passe Wifi. La connexion est assez rapide et vous pouvez afficher l'adresse IP.
Pour positionner GPIO0 à 0 ou à 1, sélectionnez le port dans GPIO, puis appuyez sur le bouton "Set". Cliquez ensuite sur 0 ou 1 pour changer l'état.

Conclusion

Le module ESP8266 permet de disposer pour un prix modique d'un micro-contrôleur et d'une interface Wifi. Il dispose d'assez peu de mémoire, donc il ne faut pas lui en demander trop, mais le portage de Lua sur ce module ouvre des portes assez inattendues. De nouvelles versions avez 2 Mo de mémoire Flash est disponible chez Olimex et une version au format XBee est également disponible chez IteadStudio. Un forum est disponible à l'adresse http://www.esp8266.com.
Une utilisation assez simple permet de la piloter directement depuis un PC en ligne de commande ou depuis une application Java, la logique étant codée en Java et en n'envoyant que les commandes de base, un peu comme le fait Firmata par exemple.

A suivre.

Commentaires

Posts les plus consultés de ce blog

Supprimer les partitions Raspberry sur une carte SD sous Windows 7 avec Diskpart

Si vous souhaitez récupérer une ancienne carte SD utilisée pour démarrer un Raspberry pour un autre usage (appareil photo, etc), il vous faudra supprimer les deux partitions créées au moment de l'écriture de l'image sur la carte SD. Vous pouvez voir les partition en sélectionnant Menu Windows/Ordinateur/bouton droit "Gérer". Voici un exemple du résultat final. Vous pouvez supprimer la partition Unix de 7 Gb (ou 4Gb en fonction de la taille de votre carte) en sélectionnant la partition puis en faisant "bouton droit Supprimer". Laissez juste une partition pour pouvoir faire les autres manipulations avec DISKPART. Démarrez l'outil DISKPART en ligne de commande. Une nouvelle fenêtre s'ouvrira. Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. Sur l'ordinateur : FRVILN0H305806 DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   D

Comment lire son écran de téléphone Android sur PC (2)

Voici une nouvelle manière d'accéder à votre téléphone depuis votre PC. Cette méthode utilise le câble USB et Google Chrome. Elle fonctionne donc sur Windows, Mac et Linux. Les pré-requis sont les mêmes que ceux du billet précédent : Téléphone configuré en mode Développement Drivers USB installés sur le PC Google Chrome installé L'application Vysor s'installe comme une extension de Google Chrome. Cherchez dans le Webstore et lancez l'installation. Une fois installée, l'application apparaît dans les extensions. Vous pouvez la lancer de différentes manières. La manière la plus simple est d'ouvrir la fenêtre des applications : chrome://apps/ Une autre manière est de créer un raccourci en cliquant sur « Détails ». Ensuite créez un raccourci sur le bureau, le menu démarrer et/ou la barre de tâche. Vous pouvez également cliquer sur afficher dans la boutique et lancer l'application depuis la boutique. Une fois

Serveur d'impression CUPS sur Raspberry Pi

Je possède une très vieille imprimante laser HP Laserjet 6L noir et blanc de 12 ans d'age qui a survécu à plusieurs imprimantes jet d'encre couleurs tombées en désuétude pour obsolescence programmée. J'envisage tout de même sérieusement de les démanteler pour les recycler en CNC, graveur ou autre.   Je continue donc a utiliser cette bonne petite imprimante parallèle qui me rend bien des services (en 12 ans, j'ai changé le toner 3 fois pour un coût de 20 € la cartouche). J'ai donc dû m'équiper d'une adaptateur USB/Parallèle pour pouvoir la connecter sur un PC récent. Le problème principal est que le driver de cette imprimate n'est reconnu que par un seul de mes PC sous Windows 7. Les autres PC sous Windows 8 ou Windows 10 reconnaissent bien l'imprimante, mais sortent des feuilles avec le code Postscript. L'impression depuis une tablette ou un téléphone Androïd est également tout simplement impossible. Pour remédier à ce problème, j'ai don