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

Utilisez votre tablette Android comme second écran pour Linux (Raspberry Pi, MK908II)

Les tablettes Android atteignent désormais des prix qui défient toute concurrence. On trouve désormais des modèles à 39 € TTC en super marché, soit à peine plus cher que le Raspberry PI, mais avec un écran. Ces modèles souvent mono-core 1Ghz ou 1,4 Ghz avec 512 ou 1Go de mémoire ne sont très probablement pas utilisables pour une utilisation régulière sur Internet et ne sont en aucun point comparables à leur équivalent de marque (Samsung, Sony, LG, HTC, Lenovo, etc). Plusieurs tutoriels indiquent comment connecter utiliser une tablette Android comme second écran ( http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Use-an-Android-Device-as-Screen-and-Input-for-Raspberry-Pi ). Ces méthodes utilisent généralement l'USB Tethering qui n'est malheureusement disponible que sur les téléphones ou tablettes avec un accès mobile (3G ou 4G) inclus. Dans ce billet, je vais vous montrer comment se connecter à une tablette en utilisant le mode Debug adb (Android Debug Bridge

Supprimer les partitions Raspberry sur une carte SD sous Windows 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. DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   Disque 0    En ligne        238 G octe

Emulateur Raspberry Pi sous Windows

Si vous souhaitez développer ou tester des applications pour Raspberry Pi, vous pouvez, soit compiler directement l'application sur Raspberry, soit la développer sous Linux ou Windows et la compiler pour Raspberry. La seconde solution est souvent plus simple car elle permet de disposer d'un environnement de compilation complet tel qu'Eclipse pour le développement. Une fois l'application développée, il faut la tester sur Raspberry. Là, il faut copier l'application en utilisant un client FTP ou SCP, puis se connecter en SSH et lancer l'exécutable. Il existe un autre moyen de tester une application Raspberry sans avoir à l'allumer. Il suffit de passer par un émulateur tel que QEMU qui permet de lancer un OS pour processeur ARM sous Linux ou Windows. L'émulateur sous Windows 1. Récupérez l'émulateur à l'adresse suivante : http://sourceforge.net/projects/rpi-emulator-win32/ . 2. Dézippés le contenu de l'image Rpi-Occidentalis-v02-qemu.7z av