ESP8266

ESP8266 / ESP32


Voilà la création d'un société chinoise : "Espressif". En 2014 cette entreprise avait proposé au marché l'ESP01 qui permettait de connecter (par exemple) un Arduino "à internet" en utilisant les commandes Hayes. Cela permettait aux pionniers de fabriquer leurs premiers objets connectés pour moins de 10€. Initialement la documentation était en chinois et des traductions partielles autour d'une petite communauté et c'était un petit tour de force de parvenir à ses fins. Depuis beaucoup de chemin a été parcouru et l'ESP8266 permet de se passer d'un Arduino parce qu'il propose les entrés / sorties de son vénérable ancêtre. Chez les makers / hackers / "brycolers" tout est une question de coût : un Arduino et un ESP01 coûtait moins de 10€. Aujourd'hui une carte ESP8266 coûte moins de 5€... La messe est dite !

L'ESP8266 est un micro contrôleur cadencé à 80 MHz et offrant 64 Kb de RAM pour les instructions et 96 Kb RAM de data, ainsi que le WIFI en IEEE 802.11 b/g/n . La version suivante ESP32 est une version plus puissante qui roule à 240 MHz et plus, avec deux coeurs et 520Kb de RAM + le Bluetooth bi-mode (le mode normal et le BLE = low energy). L'ESP32 se défend bien en Wifi en proposant les modes IEEE 802.11 b/g/n/e/i !

Initialement (tout) se programme en langage C potentiellement avec l'IDE de l'Arduino (émoticône vomi en cours de téléchargement) ou alors avec un dérivé du langage Python nommé MicroPython : c'est ce qui nous intéresse !

Le langage Python est très facile à apprendre, très puissant, gratuit et fonctionne partout (Linux, Mac, Windows, X86, ARM...) et sert à tout ! En plus de cela, il permet d'atteindre plus facilement des niveaux de complexités que les autres langages et en étant plus facile à lire et à comprendre, il laisse moins de code pourri et non maintenable derrière lui.

Cette partie du site est consacrée (pour l'instant) à une première prise en main.

Flasher l'ESP8266

Il faut récupérer le .bin sur cette page.

1 - Sur la ligne de commande il faut télécharger la bibliothèque pour python esptool :

pip install esptool

2 - Ensuite il faut supprimer la mémoire flash contenue dans l'ESP :

esptool.py --port COM4 erase_flash 

3 - Lorsque c'est fait, il faut flasher le zinzin avec le firmware (dans gestion des périphériques le port est indiqué), les parties en gras sont à adapter :

esptool.py --port COM4 --baud 460800 write_flash --flash_size=detect 0 C:\Users\renaud\Downloads\esp8266-20190529-v1.11.bin

Note: pour flasher l'ESP32 il faut appuyer sur le bouton boot sur la carte !

Ci-dessus une copie du gestionnaire de périphérique qui a installé l'ESP sur le port de communication COM4.

Amazon ou Aliexpress ? En choisissant la Chine les tarifs sont meilleurs mais il faut attendre plusieurs semaines. l'ESP32 à moins de 5€ est une sacrée affaire.

Utiliser Visual Studio Code

Il faut installer le plugin Pymkr qui s'appuie sur nodejs, donc :

  • installer nodejs
  • puis installer Pymakr pour avoir la console dans Visual Studio Code
  • Dans la mini console (Ctrl Shift P) apparaissent les menus du plugin, il faut modifier les Global Settings

En sélectionnant Global Settings un fichier json de configuration apparaît.

Il faudra modifier quelques paramètres tels que :

  • l'adresse, par exemple "COM4"
  • le paramètre auto_connect qu'il faut passer à false.

Et voilà, la première fonction "print hello" exécutée sur l'ESP8266 !