FEATHER-WEBREPL-ACCESS
Activer WebREPL
La première étape pour utiliser WebREPL est de vous assurer qu'il est activé sur votre carte ESP8266. La façon la plus simple d'activer WebREPL est de charger le "Build Officiel de Firmware MicroPython ESP8266" sur votre carte. Le build officiel dispose de WebREPL activé par défaut. Les builds officiels sont disponibles sur la page de téléchargement de MicroPython. Sélectionnez une version stable disposant proposant un numéro comme 1.8.3 (laissez de côté les builds journaliers qui portent un numéro comme 1.8.3-52-gb0e2106).
Voyez notre guide décrivant comment flasher le Firmware MicroPython sur une carte si vous ne savez pas encore comment faire.
Si vous utilisez un build journalier ou build de développement vous devez activer manuellement WebREPL comme mentionné dans la documentation (micropython.org). Connectez vous à votre carte en REPL via une connexion série et exécutez les commandes suivantes:
import webrepl
webrepl.start()
Crédit: AdaFruit Industries www.adafruit.com
Vous devriez-vous voir le WebREPL démarrer et afficher une adresse IP affichée dans le terminal. Vous pourrez utiliser cette adresse IP pour vous connecter sur WebREPL. Vous ne pouvez pas accéder à WebREPL directement depuis votre navigateur Internet. A la place, vous devez charger une page "WebREPL.html" dans votre navigateur Internet, cette page vous permettra alors d'accéder à la console WebREPL de votre ESP8266.
La procédure est décrite dans ce tuto.
La configuration du mot de passe
Depuis peu, il n'est plus possible de configurer le mot de passe lors de la première connexion WebRepl. Cela présentait un trou de sécurité en cas de mauvaise manipulation.
L'activation de WebRepl se fait maintenant depuis une console REPL via port série.
La procédure de configuration démarre en faisant un import de "webrepl_setup". Dans l'exemple ci-dessous nous avons utilisé une session REPL démarré l'outil RShell.
Entering REPL. Use Control-X to exit.
>
MicroPython v1.9.1-8-g7213e78d on 2017-06-12; ESP module with ESP8266
Type "help()" for more information.
>>>
>>> import webrepl
>>> webrepl.start()
WebREPL is not configured, run 'import webrepl_setup'
>>> import webrepl_setup
WebREPL daemon auto-start status: enabled
Would you like to (E)nable or (D)isable it running on boot?
(Empty line to quit)
> E
To enable WebREPL, you must set password for it
New password: pswdxxx
Confirm password: pswdxxx
No further action required
>>>
Le fait d'importer webrepl_setup permet:
- d'activer/désactiver le service au boot et
- de fixer le mot de passe WEBREPL.
Une fois le mot de passe initialisé, souvenez vous en car vous en aurez besoin pour vos futurs accès à WebREPL.
Une fois le mot de passe initialisé, la carte se déconnectera de WebREPL et se réinitialisera.
Réinitialiser le mot de passe WebREPL
Si vous oubliez votre mot de passe (ou si vous avez besoin de le modifier) vous avez deux possibilités:
- Utiliser une session REPL via la connexion série et refaire un import webrepl_setup
- Accéder à votre ESP8266 via une connexion série (USB-Série) et utiliser un outil pour modifier le contenu du fichier webrepl_cfg.py
Accéder à WebREPL
Une fois que WebREPL s'exécuter, vous pourrez vous connecter dessus via l'interface WiFi de votre ESP8266. Si la carte n'est pas déjà connectée sur un point d'accès WiFi alors WebREPL en créera un sur lequel vous pourrez vous connecter depuis votre ordinateur.
Pour vous connecter sur le Réseau WiFi créé par la carte cherchez après un réseau WiFi qui s'annonce avec le préfix MicroPython-*:
Crédit: AdaFruit Industries www.adafruit.com
Où le caractère * est une suite de numéro et lettre unique pour chaque carte ESP8266 (basé sur son adresse MAC).
Vous aurez besoin de saisir le mot de passe micropythoN pour vous connecter sur le point d'accès de la carte (le N est en capital!). Si vous rencontrez des problèmes, vous pouvez trouver plus de détails sur la page "connecting to the board's WiFi network" de la documentation officielle.
Ensuite, vous aurez besoin d'un client web REPL actif sur votre ordinateur (dans un navigateur Internet). Vous pouvez soit utiliser la page WebREPL client depuis micropython.org (assurez-vous, dans ce cas, que votre ordinateur est connecté à la fois sur Internet et votre réseau local) ou en téléchargeant le client WebREPL depuis GitHub en cliquant sur le bouton suivant et faisant une extraction des fichiers contenu dans l'archive:
Si vous avez téléchargé le client WebREPL, vous disposerez d'un fichier webrepl.html que vous pourrez ouvrir dans votre navigateur (Firefox et Chrome sont officiellement supportés).
Note: Vous ne pouvez pas accéder à la page WebREPL client directement depuis la carte ESP8266. Cela permet d'économiser de la mémoire flash sur l'ESP8266. Seul l'interface websocket WebREPL est disponible sur L'ESP8266. Vous aurez besoin de télécharger le client WebREPL séparément sur votre ordinateur ou de l'utiliser depuis Internet.
Une fois la page client de WebREPL chargée, vous devriez voir une interface similaire à celle ci-dessous (comme connu en Août 2016, notez que WebREPL reste activement en développement et pourrait changer d'apparence avec le temps!):
Crédit: AdaFruit Industries www.adafruit.com
Assurez-vous maintenant que votre ordinateur est bien connecté sur le réseau WiFi de l'ESP8266, cliquez ensuite sur le bouton Connect (en utilisant l'adresse par défaut de l'ESP8266 ws://192.168.4.1:8266/ juste à côté du bouton).
Une fois la connexion acceptée, vous verrez une invite vous demandant de saisir le mot de passe (Password) qui protège l'accès à l'ESP8266.
Toutes les connexions WebRepl seront refusées si le mot de passe n'a pas été configuré! |
Saisissez le mot de passe et vous devriez être connecté à WebREPL!
Crédit: AdaFruit Industries www.adafruit.com
Essayez ensuite de saisir du code sur l'invite de commande WebREPL et voyez les résultats retournées. WebREPL devrait fonctionner exactement comme une session REPL série (celle établie via la connexion USB-Série). Vous pourrez tester MicroPython, exécuter du code chargé sur la carte et plus:
Crédit: AdaFruit Industries www.adafruit.com
C'est fini en ce qui concerne l'accès au WebRepl de l'ESP8266 via le réseau WiFi!
Accéder WebREPL depuis d'autres réseaux WiFi
Accéder à WebREPL de l'ESP8266 via le réseau WiFi de l'ESP8266 est bien pratique pour un premier contact (ou phase de configuration)!
Par contre, ce qui serait vraiment-vraiment cool, c'est de connecter l'ESP8266 sur le réseau WiFi domestique (celui de votre routeur/box Internet). Cette section se de la page se penche sur ce point.
Une fois connecté sur votre réseau WiFi domestique, vous pourrez accéder à WebREPL en utilisant l'adresse IP de votre ESP8266 (cette attribuée par votre routeur/box) sans pour autant perdre votre connexion Internet sur votre PC (en effet, votre PC reste également connecté sur votre routeur/box... cette fois, plus besoin de connecter le PC sur le réseau WiFi de l'ESP8266).
Pour pouvoir utiliser WebREPL sur un autre réseau WiFi (votre réseau WiFi domestique), il faudra indiquer à votre ESP8266 comment se connecter sur ce réseau. La documentation officielle MicroPython ESP8266 propose quelques commandes simples pour se connecter sur un réseau.
Saisissez les commandes suivantes depuis une connexion REPL série (n'utilisez pas WebREPL car vous perdrez la connexion durant le changement de réseau WiFi):
import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('ssid-du-WiFi', 'mot-de-passe')
Crédit: AdaFruit Industries www.adafruit.com
Où ssid-du-WiFi est le nom SSID du point d'accès (celui de votre réseau domestique) et mot-de-passe le mot de passe requit pour accéder au point d'accès (essayez une chaine de caractère vide "" s'il n'y a pas de mot de passe).
L'ESP8266 devrait se connecter sur le réseau WiFi après quelques instants. Vous pouvez utiliser la fonction ifconfig pour vérifier si votre ESP reçu une adresse IP et s'il s'est connecté sur le réseau:
wlan.ifconfig()
Crédit: AdaFruit Industries www.adafruit.com
Le premier résultat retourné par l'appel ifconfig est l'adresse IP assignée au module ESP8266 (192.168.1.207 dans cet exemple mais cela peut changer d'un réseau WiFi à l'autre). Si vous ne voyez pas d'adresse IP c'est que quelque-chose s'est mal passé avec la configuration ou la connexion sur le réseau WiFi. Vérifiez si votre SSID et mot de passe sont bien correct et réessayez encore.
Une chose importante à noter l'ESP8266, c'est que lors d'un redémarrage/reboot, il se souviendra de la dernière connexion WiFi utilisée et réessayera de se connecter automatiquement sur ce réseau. C'est très pratique puisque lorsque un ESP8266 boot, il se reconnecte automatiquement sur le dernier réseau WiFi sans nécessiter la ressaisie des commandes de configuration. NB: la carte ne se souvient que du dernier réseau, elle ne maintient pas un historique des précédents réseaux connectés.
Une fois la carte connectée sur le réseau WiFi vous pouvez réactiver WebREPL (comme décrit dans la section précédente) où vous pouvez noter les deux adresses IP sur lesquels WebREPL est à l'écoute:
Crédit: AdaFruit Industries www.adafruit.com
Dans le cas présent, WebREPL écoute sur l'adresse 192.168.4.1 (celle du point d'accès ESP8266) et 192.168.1.207 qui est l'adresse IP de l'ESP8266 sur le réseau WiFi domestique.
Ouvrez maintenant WebREPL et utilisez l'adresse IP de votre réseau (192.168.1.207) au lieu de l'adresse IP 192.168.4.1 que vous pouvez utiliser lorsque vous vous connectez sur le réseau WiFi MicroPython-* créé par l'ESP8266:
Crédit: AdaFruit Industries www.adafruit.com
Une fois connecté sur votre réseau WiFi domestique, vous pouvez utiliser WebREPL comme vous le faisiez avant!
Si vous connecter votre carte sur un réseau WiFi domestique, ce serait également une bonne idée de désactiver la sortie de débogage puisque se connecter et se déconnecter d'un réseau WiFi peut générer de messages de débogage sur le REPL Série. Si la carte ne peut pas se connecter sur le réseau WiFi, comme lorsque vous déplacez votre ESP8266 à l'écart du réseau, vous verrez un flux constant d'information de débogage lorsque la carte fera ses différents essais de reconnexion/erreur sur le réseau WiFi.
Cette sortie de débogage peut causer des problèmes avec des outils comme ampy (qui essayent d'utiliser la connexion REPL série mais ne s'attendent pas à ce type de message de débogage).
Adresse IP ou Nom de machine
En tout début de tutoriel, nous avons listé les réseau WiFi disponibles, dans lesquels nous avons retrouvé notre ESP8266 sous MicroPython.
Crédit: AdaFruit Industries www.adafruit.com
Le 1216CB visible à la fin du nom du réseau est le fin de l'adresse MAC de l'ESP8266.
Cette information peut également être utilisé en lieu et place de l'adresse IP pour contacter votre ESP8266 puisqu'il sert aussi à composer le "hostname" de votre ESP sur le réseau.
Vous pourrez donc également utiliser l'URL ws://ESP_1216CB:8266/, ce qui est bien pratique.
Source: MicroPython Basics: ESP8266 WebREPL
Créé par Tony DiCola pour AdaFruit Industries.
Traduit par Meurisse D. pour MCHobby
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.
Traduit avec l'autorisation d'AdaFruit Industries - Translated with the permission from Adafruit Industries - www.adafruit.com