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 :
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 :
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
Entrez dans « URL de gestionnaire de cartes supplémentaires » l’adresse « http://arduino.esp8266.com/stable/package_esp8266com_index.json »
Validez en cliquant OK puis allez dans Outils -> type de carte -> Gestionnaire de cartes
Cherchez le paragraphe concernant l’ESP8266 puis cliquer sur « Installer », ça va prendre un peu de temps…
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.
D’autres câbles ou adaptateurs comme le suivant possèdent une sortie 3,3V :
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 :
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 :
Et un autre exemple en utilisant un adaptateur et la carte de la manette du robot energyvore développé par le Quai-Lab :
É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 :
Vous pouvez maintenant ouvrir un code d’exemple fourni avec les bibliothèques de l’ESP8266 :
Dans la prochaine partie, nous verrons comment utiliser l’ESP-201 pour communiquer en wi-fi avec un ordinateur.