Accueil / esp8266 / ESP8266 : guide de choix avant achat

ESP8266 : guide de choix avant achat

L’ESP8266 est sorti en 2014. Il est passé en quelques années d’un simple module WiFi permettant de créer pour quelques euros de transformer un projet Arduino en objet connecté (IoT) à une carte de développement. ESP8266 est un véritable Arduino Killer. Il possède plusieurs entrées/sorties (GPIO), une liaison WiFi, un mode économie d’énergie (Sleep Mode) et peut se programmer indifféremment à l’aide de l’IDE Arduino ou en Lua (firmware NodeMCU).

Dans cet article vous trouverez toutes les ressources pratiques dont vous pourrez avoir besoin dans vos projets DIY à base d’ESP8266.

La grande famille ESP8266

L’ESP8266 est développé par la société Chinoise Espressif. Sorti en octobre 2014, l’ESP8266 a tout de suite suscité un très grand engouement de la communauté. Le projet est soutenu par une large communauté que vous pouvez suivre ici. Ce module ne ce contente pas d’offrir une connexion Wifi aux projets Arduino, il dispose de ses propres entrées/sorties (GPIO) dont le nombre dépend du modèle.

Il existe déjà 18 versions de l’ESP8266 (au moment de la rédaction de cet article) dont voici les principales caractéristiques.

Attention. Les modules ESP8266 fonctionnent avec une tension de 3.3 Volts qu’il est dangereux de dépasser. Certaines cartes qui embarquent un régulateur de tension qui protège le module ESP8266 et permet d’utiliser une alimentation 5Volts (généralement entre 3.3 et 6.2 Volts).

Modèle Photo Certifications Antenne interne

Antenne externe

Dimensions

(mm)

Broches (GPIO) Fiche technique
ESP-01 esp8266 esp-01  Non approuvée FCC et CE Gravée sur le PCB

Non

14.3 x 24.8 8
ESP-02 esp8266 esp-02  ? Non

Oui

14.2 x 14.2 8
ESP-03 esp8266 esp-03 ? Céramique

Non

17.3 x 12.1 14
ESP-04 esp8266 esp-04 ?  ?

?

14.7 x 12.1 14
ESP-05 esp8266 esp-05  ? Non

Oui

14.2 x 14.2 5
ESP-06 esp8266 esp-06  Non approuvée FCC et CE ?

?

? 12+GND
ESP-07 esp8266 esp-07 Non approuvée FCC et CE Céramique

Oui

20.0 x 16.0 16
ESP-08 esp8266 esp-08 Non approuvée FCC et CE Non

Non

17.0 x 16.0 14
ESP-08 New  ? Non

Non

18.0 x 16.0 16
ESP-09 esp8266 esp-09 ? Non

Non

 10.0 x 10.0 12+GND
ESP-10 esp8266 esp-10 ? Non

Non

 14.2 x 10.0 5
ESP-11 esp8266 esp-11  ? Céramique

Non

 17.3 x 12.1 8
ESP-12 esp8266 esp-12 Certifié CE (n°BCTC-141212468)

Certifié FCC (n°2ADUIESP-12)

Gravée sur le PCB

Non

 24.0 x 16.0 16
ESP-12-E/Q esp8266 esp-12-eq Probablement les mêmes certifications que l’ESP-12 Gravée sur le PCB

Non

 24.0 x 16.0 22
ESP-13 esp8266 esp-13 ? Gravée sur le PCB

Non

 ? 18
ESP-14 esp8266 esp-14 Gravée sur le PCB

Non

 24.3 x 16.2 22
WROOM-02 esp8266 WROOM-02 CE

FCC

Gravée sur le PCB

Non

 20 x 18 x 3 18  Consulter
WT8266-S1 esp8266 WT8266-S1 Certifié CE (n°BCTC-150809775)

Certifié FCC (n°2AFOSWT8266)

Gravée sur le PCB

Non

 15.0 x 18.6 18 Consulter

Retrouvez tous les modèles disponibles à cette adresse (en anglais). Sources des images : esp8266.com.

Quel modèle choisir pour vos projets DIY

adaptateur adaptor esp8266 esp-07 esp-12 esp-12eIl existe de très nombreuses versions de l’ESP8266 (18 au moment de l’écriture de cet article). Cependant, parmi tous ces modèles, il y en a très peu qui sont adaptés à un usage pour des projets DIY (sans bricoler les brochages), c’est le cas de l’ESP-01 et de l’ESP-05.

Tous les autres modèles sont assemblés sous la forme d’un PCB à souder (SMD). Vous les trouverez le plus souvent déjà intégrés à une carte Arduino mais il existe également des platines d’adaptation au pas 2.54mm pour breadboard sur laquelle on viendra souder un module ESP8266 (ESP-07, ESP-08 ou ESP-12). Le modèle le plus populaire est l’ESP-12E (ou E/Q).

ESP-01

esp8266 esp-01L’ESP-01 est probablement le module le plus connu (et le plus vendu).Ce module très compact, pas plus grand qu’une pièce de 2€ (14,3 x 24,8mm), dispose de 512ko de mémoire flash, d’une antenne imprimée sur le PCB ainsi que 2 broches GPIO. C’est le module est idéal pour ajouter une connexion WiFi à un projet Arduino pour moins de 3€.

L’ESP-01 n’est pas directement utilisable sur une breadboard. Second point négatif, il n’est pas certifié CE ou FCC. J’ai constaté quelques perturbations du WiFi des appareils voisins lors de la mise sous tension. C’est peut être du à mon matériel.

ESP-05

esp8266 esp-05Contrairement à l’ESP-01, l’ESP-05 ne possède aucune broche GPIO. Très compact (14 x 14 mm). L’ESP-05 possède 4 broches au pas de 2.54mm (donc compatible avec une breadboard) 3.3V, GND, RX et TX. Vous pourrez également trouver certains modèles avec une 5ème broche de Reset. Il sera parfait pour ajouter une connexion WiFi à un projet Arduino pour 3,25€ environ.

Faites attention au moment de l’achat car tous les modèles vendus ne semblent pas être livrés avec le même firmware.

ESP-12E

Adafruit Huzzah ESP8266 FTDI module nodemcu luaL’ESP-12E est une version améliorée de l’ESP-12. L’ESP-12E possède 11 broches GPIO ainsi qu’un convertisseur analogique/numérique (ADC) avec une résolution de 10 bits.

C’est le module employé par presque toutes les cartes NodeMCU. Compacte et polyvalente, c’est la carte idéale pour réaliser des projets d’objets connectés.

 

Comment alimenter un module ESP8266

Certains modules ESP8266 doivent être alimentés en 3.3 Volts et aucune protection n’existe. Voici plusieurs solutions pour alimenter vos modules.

Autre point important à connaitre. Si vous devez réinstaller le firmware (NodeMCU ou ESPEasy par exemple), l’alimentation électrique doit pouvoir délivrer 300mA durant le flashage du firmware. Certains câbles FTDI ne peuvent pas délivrer une puissance suffisante. Dans ce cas, une alimentation externe sera nécessaire.

Boitier 2 piles AA ou batterie LiPo

L’ESP est idéal pour développer des projets d’objets connectés. Le plus simple pour l’alimenter et d’utiliser un boitier de 2 piles AA ou une batterie LiPo. Certains modules ESP sont équipés d’un connecteur JST permettant de brancher directement une batterie LiPo. C’est par exemple le cas de l’Olimexino-85S.

Alimentation pour breadboard 3.3V ou 5V

Si vous avez de nombreux projets, acheter une alimentation pour breadboard (moins de 2€) pouvant délivrer 3.3V ou 5V n’est pas une dépense inutile.

3.3V 5V arduino power supply breadboard alimentation électrique

Alimentation 3.3V à l’aide d’un régulateur de tension LD1117V33

Vous pouvez utiliser une ancienne alimentation d’un smartphone. Pour cela vous aurez besoin d’un adaptateur jack muni d’un bornier à vis et d’un régulateur de tension (LD1117V33 par exemple) permettant de délivrer les 3.3 Volts nécessaires à l’ESP8266. Attention à ne pas dépasser la tension d’alimentation préconisée (documentation technique). Enfin, tenez compte dans la conception de vos projets que le LD1117 chauffe (beaucoup). Vous pouvez également ajouter un condensateur 10µF pour obtenir une alimentation plus stable.

alimentation 3.3V breadboard arduino LD1117 jack

Comment programmer un module ESP8266

Matériel nécessaire

module ftdiLe modules ESP-12 (ou ESP-12E) sont généralement équipé d’un port USB. Un simple câble micro-usb sera suffisant. Certaines cartes doivent être programmées à l’aide d’un adaptateur Série/USB, appelé module FTDI que l’on peut se procurer pour 2.50€ environ.

Attention toutefois. Certains câble FTDI ne sont pas en mesure délivrer les 300mA nécessaires au téléversement.

ESP Easy : le plus simple

ESP Easy est un firmware qui permet de programmer, ou plutôt de configurer le module ESP sur lequel il est installé. Pour en savoir plus, lisez cet article de présentation qui explique comment installer le firmware et réaliser une petite sonde de température ensuite intégrée à Jeedom.

Comme un Arduino

Si vous débutez la programmation Arduino ou que vous découvrez les modules ESP8266, c’est sans doute la solution la plus simple pour débuter. La librairie ESP8266Wifi est maintenant très aboutie et simplifie grandement la programmation. C’est un argument qui penche également en faveur de l’IDE Arduino.

Correspondance des broches entre Arduino et ESP8266 (NodeMCU)

L’ESP8266 se programme exactement comme un Arduino, il faudra juste rechercher la correspondance des broches pour votre carte. Voici par exemple la correspondance des broches d’une Wemos D1 Mini.

Correspondance Pins GPIO WeMos D1 mini
Correspondance des broches de la Wemos D1 Mini. Source : http://www.wemos.cc

Librairies ESP8266Wifi

Le projet de la librairie ESP8266Wifi se trouve sur github ici. Elle propose les fonctions suivantes :

  • Connexion à un point d’accès
  • Connexion à un serveur (un Boker MQTT par exemple)
  • Envoi / réception de messages à un serveur
  • Re-connexion automatique

Messages d’erreurs et remèdes

Voici une liste d’erreurs et de remèdes (non exhaustive) que vous pouvez rencontrer lorsque vous programmer un ESP8266 à l’aide de l’IDE Arduino.

Message Causes possibles Remèdes possibles
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
L’ESP n’est pas en Flashing Mode

Impossible de communiquer via la liaison Série

Choisir ArduinoISP comme programmateur

Vérifier le branchement de la liaison Série (inverser TX/RX)

Le GPIO0 est-il bien au GND ?

Votre alimentation trop faible. Elle doit délivrer au moins 300mA lors du flashage du firmware

Ajoutez une résistance de rappel sur le GPIO0 ou relier le GND de l’alimentation 3.3V  au GND du module FTDI

Débranchez/remettez sous tension l’ESP8266

Débrancher/rebrancher sur un autre port USB votre module FTDI

Redémarrer l’ordinateur (si le module FTDI est toujours introuvable)

En Lua (NodeMCU)

NodeMCU est un firmware qui permet de programmer les modules ESP8266 dans un langage appelé Lua. Vous pouvez consulter le projet  open-source NodeMCU ici. Il existe deux versions de NodeMCU :

  • NodeMCU v0.9 pour les modules ESP-12
  • NodeMCU v1.0 pour les modules ESP-12E

Pour programmer en Lua, le plus simple est d’utiliser ESPlorer présenté (rapidement) dans cet article.

Installer un firmware

Il est très simple de changer le firmware d’un ESP8266. J’ai rédigé plusieurs articles sur le sujet. Sachez que le firmware (NodeMCU, ESP Easy) est effacé dès que l’on procède à un téléversement depuis l’IDE Arduino.

Articles et projets ESP8266 publiés sur Projets DIY

Si vous découvrez l’ESP8266, voici une liste d’articles qui peuvent aussi vous intéresser