Une petite puce du nom d’Esp8266

Posted on Wed 15 November 2017 in Maker

Au détour de mes diverses lecture sur le oueb des Internets, je suis tombé (ne vous inquiétez pas, j’ai pas eu bien mal) sur ce billet d’Idleman : Créer une multi sonde wifi pour 11€.

L’idée était intéressante (elle l’est toujours d’ailleurs), et c’est à cette occasion que j’ai découvert les petites bêtes qu‘on appelle Esp-8266. Ni une ni deux, j’en commande quelques unes et me voilà avec la bête dans les mains. C’est assez petit comme bestiole (du moins dans la version ESP-12F ou Witty de son petit nom) et a priori ça fait pas mal de chose… Je vous passe le descriptif complet, d’autres ont fait ça bien mieux que moi (comme par exemple ici)

Histoire de prendre en main cette puce, j’ai fait un petit programme qui va utiliser les IO basique présent sur la carte : la DEL RGB, le bouton et le capteur de luminosité. Ce programme est disponible à cette adresse : https://gitlab.yapbreak.fr/iot/esp8266witty_basic

Le contenu

Le programme ne fait pas grand chose en lui même. Lorsqu’on appuie sur le bouton, la DEL change de couleur, et une mesure de luminosité est faite. Rien d’exceptionnel donc, et niveau utilité, on ne doit pas être loin du néant. Mais c’est un début.

Comme cet ESP est compatible avec le framework Arduino, on ne va pas s’en priver. Ce qu’il vaut savoir avant de commencer, c’est l’agencement des pins. Le minimum vitale est le suivant :

  • la DEL RGB se contrôle via les pins D8, D6 et D7 (15, 12 et 13 pour les amoureux des chiffres) pour respectivement les composantes rouge, verte et bleu
  • le bouton est câblé sur le pin D2 (ou encore 4…)
  • le capteur de luminosité est câblé lui sur l’entrée analogique A0 (ou bien le assez logique 0)

Le contenant

Un mot sur le framework que j’ai utilisé pour développer tout ça. Beaucoup de personne vont vous parler de Arduino IDE, mais comme je ne fait jamais comme tout le monde, je préfère vous montrer platformio. C’est un moyen plutôt simple de gérer un projet IoT avec gestion de dépendance et de librairie, en ligne de commande ou avec IDE. Le partie ligne de commande est un plus en ce qui me concerne. Bref, c’est développé en Python et compatible à peu prêt tout OS.

L’IDE quant à lui est un « simple » plugin pour Atom ou VSCode, à vous de choisir.

Le type de carte du projet et ses dépendances sont simplement listées dans un fichier platformio.ini et les quelques commandes suivantes suffisent à effectuer les tâches les plus basiques :

  • platformio init pour initialiser un nouveau projet
  • platformio run pour compiler le firmware
  • et platformio run -t upload pour envoyer le firmware sur la carte

Sur ce, je retourne à mes petits essais et je reviendrais un peu plus tard avec du plus concret.