ESP8266 : une carte wifi dans le monde Arduino – Partie 1 : présentation et premiers pas

Les cartes basées sur le micro contrôleur ESP8266 sont programmables comme les cartes Arduino et peuvent communiquer en wifi avec d’autres appareils (ordinateurs, smartphones, etc.). Il existe plusieurs modèles, l’ESP-01, l’ESP-03, l’ESP-12 … et l’ESP-201 que nous allons utiliser :

esp201

L’ESP-201 fonctionne à 3.3V et ne possède pas de régulateur de tension, il faudra donc bien veiller à toujours l’alimenter en 3.3V et non en 5V ou depuis un pack de piles. Le processeur est cadencé à 80MHz (contre 16MHz pour carte Arduino UNO) et possède 80KB de RAM (contre 2,5 KB pour une carte Arduino UNO). Cette carte intègre une mémoire flash externe d’environ 400KB (contre 32KB pour une carte Arduino UNO).

Cette carte possède plusieurs entrées-sorties comme le montre le shéma ci-dessous :

ESP8266-ESP-201-pin-reference-v01

Mais attention, on ne peut pas toutes les utiliser sans impacter une fonctionnalité nécessaire au bon fonctionnement de l’ensemble. Voici les  entrées-sorties avec l’utilisation que nous pouvons en faire :

patte utilisation
IO0 Flash select : au 3,3V en fonctionnement et au GND lors de la programmation
IO2 Flash select : toujours au 3.3V
D2 Réservé pour la communication avec la mémoire flash
CMD Réservé pour la communication avec la mémoire flash
D0 Réservé pour la communication avec la mémoire flash
D1 Réservé pour la communication avec la mémoire flash
D3 Réservé pour la communication avec la mémoire flash
IO4 Entrée-sortie digitale
3,3V alimentation. Déjà connecté aux autres pattes 3,3V sur la carte
3,3V alimentation. Déjà connecté aux autres pattes 3,3V sur la carte
GND Masse. Déjà connecté aux autres pattes GND sur la carte
GND Masse. Déjà connecté aux autres pattes GND sur la carte
IO5 Entrée-sortie digitale
T_OUT Entrée digitale
RST Normalement relié au 3,3V. Relier à GND pour réinitialiser la carte
CHP_EK Carte activée. Toujours relié au 3,3V
XPD Entrée-sortie digitale
IO14 Entrée-sortie digitale
IO12 Entrée-sortie digitale
IO13 Entrée-sortie digitale
IO15 Flash select : toujours à la masse
GND Masse. Déjà connecté aux autres pattes GND sur la carte
TX Communication série. Également utilisé lors de la programmation
RX Communication série. Également utilisé lors de la programmation
3,3V alimentation. Déjà connecté aux autres pattes 3,3V sur la carte

Programmation

Pour mettre notre propre programme communicant en wifi dans l’ESP-201, nous allons utiliser le logiciel Arduino et de quoi relier la carte à l’ordinateur.

 Partie logicielle : l’IDE Arduino

Il faut avoir l’IDE Arduino avec une version supérieur ou égale à la 1.6.4 que vous pouvez télécharger et installer depuis le site officiel d’Arduino.

Pour que cet IDE puisse gérer l’ESP-201, il faut ajouter cette carte dans la configuration du logiciel. Pour cela, lancez l’IDE Arduino puis dans FIchier -> préférence

file_preference

Entrez dans “URL de gestionnaire de cartes supplémentaires” l’adresse “http://arduino.esp8266.com/stable/package_esp8266com_index.json”

boards_manager_url

Validez en cliquant OK puis allez dans Outils -> type de carte -> Gestionnaire de cartes

boards_manager

Cherchez le paragraphe concernant l’ESP8266 puis cliquer sur “Installer”, ça va prendre un peu de temps…

esp_install

Nous allons maintenant regarder la partie électronique avant de revenir sur ce logiciel pour envoyer un programme sur l’ESP-201.

Partie électronique

Il faut faire deux choses pour que l’ESP-201 soit prêt à recevoir un programme :

  • Connecter l’ESP-201 à l’ordinateur
  • Connecter certaines pattes de l’ESP-201 à une tension particulière (GND ou 3,3V)

Pour connecter l’ESP-201 à l’ordinateur, nous allons utiliser un câble qui se branche en USB sur l’ordinateur et qui fournit les connexions suivantes à l’ESP-201 :

  • GND : la masse
  • +Vcc : la tension positive pour alimenter le module
  • Rx : les données transitent de l’ESP-201 vers l’ordinateur sur cette connexion
  • Tx : les données transitent de l’ordinateur vers l’ESP-201 sur cette connexion

Attention : Selon le câble, cette tension est de 5V ou de 3,3V. Pour un câble FTDI, même s’il est marqué 3,3V, +Vcc vaut 5V, il faudra convertir cette tension pour alimenter l’ESP-201 en 3,3V.

ftdi

D’autres câbles ou adaptateurs comme le suivant possèdent une sortie 3,3V :

usb_ttl

Pour mettre l’ESP-201 en mode “prêt à être programmé”, reprenons le tableau des entrées-sorties donné plus haut, nous voyons qu’il faut connecter :

  • IO2 au 3,3V
  • IO15 au GND
  • IO0 doit être relié au GND pour être en mode programmation. SI au contraire, nous voulons juste utiliser le module que nous avos déjà programmé, nous devons connecter IO15 au 3,3V.

Cela nous donne le schéma suivant :

schema_prog2

Toutes les connexions notées “+3.3V” doivent être connectées ensemble. Tous les symboles GND (le triangle qui pointe vers le bas) doivent être connectés ensemble.

Si vous utilisez un câble qui fournit 3,3V, vous n’avez pas besoin du bloc en rouge, connectez directement le Vcc du connecteur USB au 3,3V de l’ESP-201. Sinon, vous devez utiliser un régulateur qui accepte 5V en entrée et qui fournit 3,3V en sortie (deux diodes comme des 1N4007 en série font aussi l’affaire).

Si vous souhaitez uniquement utiliser ce branchement pour programmer l’ESP-201 mais que vous utiliserez l’ESP-201 dans un autre circuit, vous pouvez connecter IO0 au GND et supprimer le bloc bleu.

Voici un exemple de platine de programmation utilisant un câble FTDI et une carte à trous :

ftdi_board1 ftdi_board2

Et un autre exemple en utilisant un adaptateur et la carte de la manette du robot energyvore développé par le Quai-Lab :

usb_ttl_board

Étape finale

Maintenant que tout est prêt, branchez l’ESP-201 et vérifiez que les paramètres sont bons dans le menu Outils, vous devriez avoir la même chose que dans l’image ci-dessous sauf le port qui doit être le port auquel est branché votre carte :

tools_parameters

Vous pouvez maintenant ouvrir un code d’exemple fourni avec les bibliothèques de l’ESP8266 :

example_blink

Et téléverser televerser le programme !

Dans la prochaine partie, nous verrons comment utiliser l’ESP-201 pour communiquer en wi-fi avec un ordinateur.

Laisser un commentaire