Ajoutez du wifi sur votre projet arduino simplement.

Catégorie: Arduino (Mis à jour le 03-03-2016 21:13:00)

Pour mon projet de voiture controlée par arduino, il me fallait un moyen de connexion sans fil simple à mettre en place. J'ai donc cherché une puce wifi à la fois basse consommation, performante et simple à prendre en main et à monter sur un arduino.

On commence à beaucoup parler de la puce ESP8266 sur le forum arduino depuis quelques semaines, j'ai donc décidé de tester cette solution par moi-même et de partager mon expérience. A la fin de cet article, vous saurez comment ce module fonctionne et surtout comment l'utiliser avec votre arduino !

Le matériel.

Dés le déballage, on se rend compte que la puce est vraiment minuscule. Elle n'est pas spécialement fragile mais il faut quand même faire attention à la manipuler avec soin.

Voici la liste du matériel utilisé dans la suite de cet article. Si vous n'avez pas ce matériel, chaque lien enméne vers la page ou je l'ai acheté sur ebay.

N'hésitez pas à adapter suivant le matériel que vous avez déjà. Si vous êtes en train de passer commande, je vous invite à lire la suite avant de vous lancer. L'esp8266 à quelques spécificités qu'il faut prendre en compte si vous ne voulez pas perdre trop de temps.

Pour les détenteurs d'une carte Uno, cela va être plus compliqué. En effet, si vous voulez programmer votre arduino, et garder l'esp branché, il faudra au minimum deux serials hardware: un pour le pc, et un pour l'ESP. Comme la Uno n'en propose qu'un, je vous conseille soit d'opter pour une Arduino Leonardo soit pour une Arduino Méga.

Hello world!

L'ESP8266 est vraiment une carte minuscule mais très performante. Pour la programmer nous allons donc commencer par le classique Hello World. NE sautez pas cette partie, contrairement a l'arduino, l'esp n'est pas facile a prendre en main au premier abord.

La puce dispose de 8 broches mais dans notre cas on va travailler avec seulement 6. La disposition de ces broches n'est pas pratique car la puce ne s'emboite pas sur une breadboard standard (Vive les fils volants!)

Le schéma des pins vu depuis le coté puce est le suivant:

--------------------------------
| TX    GND |      ____    ___ |
| CHPD  GP1 |     |    |   ___||
| RST   GP2 |     |____|  |___ |
| 3V     RX |              ___||
--------------------------------
  • Les pins GP1 et GP2 resterons libres.
  • Les pins RST et CHPD seront brochés sur des pins 8 et 9 de l'arduino.
  • Le pin 3V est branché sur le Pin +3V de l'arduino.
  • Le pin GND est commun avec celui de l'arduino.
  • Les pins TX/RX seront branchés sur une liaison série. Dans mon cas se sera les pins 0 et 1 de la Léonardo.

Un fois les branchements faits, connectez l'arduino. La led rouge de l'esp doit s'allumer.

Photo du montage final avec un esp8266 et l'arduino léonardo Vue du montage final de l'ESP8266 sur une Arduino Léonardo.

Chargez le programme suivant dans votre arduino:

Une fois le programme chargé, la led bleue de l'ESP doit clignotter un trés bref instant lorsque l'arduino s'initialise. Si tout est bon on peux donc, via le terminal série, envoyer des commandes à l'ESP8266 à travers notre arduino.

Réglez votre terminal pour envoyer CR et LF en caractére de fin de ligne. Puis envoyez la commande AT (suivie d'un retour à la ligne). Si l'ESP répond OK, c'est tout bon. Essayez ensuite la commande AT+RST pour enclencher un reset soft.

En cas de problème, vérrifiez que la LED bleue s'allume quand vous envoyez une commande. Si ce n'est pas le cas, vérrifiez les lignes TX/RX qui sont peut-êtres inversées (essayez dans les deux sens, au pire il n'y a aucun risque). Il est possible aussi que le baud rate de l'arduino vers l'ESP ne soit pas le bon. Le mien fonctionne en 115600, mais il parait que certains fonctionnent en 9600 bauds.

Pour la suite ?

Les commandes AT fonctionnement très bien pour des usages simple et peu critique mais ont de grosses limites. Par exemple si l'arduino ne lis pas la liaison série assez vite, il est possible que des messages soient perdus ou coupés car le buffer de la liaison se remplit trés vite à 115600 bauds.

Une fois que vous maitriserez la base de l'ESP avec les commandes AT, je vous conseille mon article pour changer le firmware de l'ESP8266 pour quelque chose de plus évolué et libérer la vrai puissance de la puce!

A lire aussi:

Comment utiliser un capteur a ultrasons HCSR04 avec Arduino.

[Arduino] Aujourd'hui j'ai reçu un lot de capteurs à ultrasons HCSR04 pour mon prochain projet. Du coup, voici un article sur la prise en main et le fonctionnement de ces capteurs.
Suite...

Programmation modulaire et multitaches avec arduino.

[Arduino] Cet article montre comment on peux simplement faire executer plusieurs taches a un arduino tout en gardant un code simple et clair.
Suite...