Catégories
Liens
L’ESP8266 est un micro-contrôleur pas cher (entre 4 et 10€) avec connexion WiFi intégrée, produit par les fabricants Espressif et AI-Thinker. Depuis 2014, une communauté s'est créée pour le documenter et le rendre accessible, notamment en rendant possible la programmation du micro-contrôleur via le logiciel open source Arduino.
On peut se servir du module pour :
L'ESP8266 est composé d'un micro-contrôleur 32 bits (Tensilica Xtensa LX106) cadencé à 80MHz avec une mémoire Flash de 16 MO et une mémoire RAM de 32K + 80K. Il intégre la norme Wi-Fi IEEE 802.11 b/g/n avec possibilité d'authentification par mot de passe WEP ou WPA/WPA2. Il possède 16 entrées/sorties (GPIO), dont une entrée analogique 10 bits.
Pour comparaison, l'Arduino Mega, une des plus puissantes cartes Arduino ne propose qu'un micro-contrôleur 8 bits cadencé à 16MHz avec une mémoire Flash de 256KO et 8KO de RAM. En revanche, il y a beaucoup plus d'entrées analogiques.
L'ESP8266 est disponible en plusieurs versions, il faut donc veiller à prendre celle qui convient le mieux.
Pour débuter, nous vous conseiller deux cartes prêtes à être programmée, c'est-à-dire avec un composant de communication série qui communiquera avec l'ordinateur et le logiciel Arduino :
Le module seule, c'est-à-dire non intégrée à une carte de développement, doit être alimenté en entre 3.0V et 3.6V. La consommation peut être très basse en sleep mode mais peut atteindre les 500 mA avec la transmission de données Wi-Fi. Il est donc impératif d'utiliser une alimentation régulée. Neil Kolban suggère d'ajouter un condensateur de 10 uF entre le +3.3 et la masse (GND) pour lisser le signal.
Vous aurez sans doute moins de problème avec les cartes de développement puisqu'elles intègrent un régulateur de tension. Ce qui n'enlève pas l'idée d'avoir une alimentation dédiée pour le module.
On peut programmer l'ESP8266 avec plusieurs langages : commandes AT, ESP8266 SDK, Lua (NodeMCU), C/C++ (Arduino), microPython, Javascript. Nous retiendrons ici la méthode la plus familière en utilisant Arduino. Pour les autres méthodes, suivez ces liens : getting-started-with-the-esp8266, adafruit-esp8266-breakout.
Sur les cartes, il y a un composant qui permet de communiquer en USB à la puce ESP8266, donc de la programmer. Parfois il s'agit du circuit intégré CH340. Il faut donc installer son driver : wemos.cc ou sparkfun pour MacOS 10.9, 10.10, 10.11, 10.12.
Veillez à vérifier que les câbles micro-USB sont corrects, c'est-à-dire qu'ils permettent la communication série et pas uniquement l'alimentation électrique. Parfois il sont vendus uniquement pour alimenter un téléphone mobile et pas pour transmettre les données, ce qui économise deux fils pour le producteur !
Voir si besoin cette page d'Adafruit.
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Soyez patient, la vitesse de transfert de votre programme dans la puce de l'ESP8266 met autour de 30 secondes.
Le microgiciel de l'ESSP8266 peut également être mis à jour par le wifi, directement depuis l'interface d'arduino. Cette fonctionnalité est décrite étape par étape dans ce tutoriel.
Si la vitesse de transfert est souvent plus rapide que par USB, il peut arriver dans le cas d'une boucle principale ne contenant pas de delay() ou yield() que l'IDE d'arduino échoue à contacter l'ESP8266. L'ajout d'un delay(20) suffit souvent à rétablir cette fonctionnalité.
Vous pouvez aussi utiliser ces modules pour ajouter une connexion Wi-Fi à un projet utilisant déjà une Arduino.
Sur d'autres cartes, pour téléverser le code, il faut appuyer sur deux boutons suivant un ordre. Par exemple sur la carte d'Adafruit HUZZAH : appuyer sur le bouton GPIO, puis RESET, relâcher ensuite RESET, puis GPIO.
Tous les codes des exemples ici : esp8266_codes.zip