1- Introduction
Qui n’a jamais rêvé de pouvoir utiliser la communication sans-fil, et notamment, wifi avec son Arduino ? Il y a quelques mois, nous vous aurions dit que cela coutait chère, que le shield officiel Arduino n’était pas forcément la meilleure solution, mais aujourd’hui c’est différent.
En effet, le monde de l’électronique évolue rapidement, la miniaturisation et la réduction des coûts a notamment joué un rôle essentiel puisque aujourd’hui, relier un système quelconque à un réseau wifi pour 3,50€ et ce, grâce aux fameux modules ESP8266.
Si vous vous êtes récemment intéressé à la domotique ou à d’autres formes d’objets connectés, vous n’avez certainement pas pu passer à côté de ces petits modules. Les modules ESP8266 utilisent des commandes AT via le port série pour recevoir des ordres qui sont ensuite interprétés.
L’essentiel pour nous, c’est de savoir que ces modules ont deux fonctions extrêmement intéressantes. La première, c’est la possibilité de mettre en place dessus un mini serveur de données. La seconde, c’est celle de relier le module à un réseau existant (celui de votre box par exemple) et donc, de lier votre système à internet en moins de 30 secondes. De plus, votre module peut suivre deux comportements différents selon votre souhait, soit il agira comme un périphérique supplémentaire connecté à un réseau, soit comme un « Access Point », point d’accès, sans forcément être un serveur pour autant.
2- Spécifications techniques
Avant de débuter dans l’utilisation de votre module ESP8266, nous devons aborder ensemble certains points clés des spécifications techniques de ces modules.
Ce que vous devez savoir en tout premier lieu, c’est que les modules ESP8266 fonctionnent en 3.3V. Là, vous devez instantanément faire le lien avec les niveaux logiques 5V de l’Arduino, et donc vous occuper de ce premier problème. En effet, même si les chipset des ESP8266 tolèrent du 5V en niveau logique, il est toujours préférable d’adapter le niveau logique de votre port série grâce un adaptateur spécifique. Pour ma part, j’utilise des adaptateurs achetés sur E-bay semblables à ceux-ci:
https://www.sparkfun.com/products/12009
Nous vous conseillons très fortement d’utiliser des adaptateurs de niveaux logiques avec votre module wifi.
Autre spécification qui a son importance, de base, lors de la réception, le débit série par défaut sera définie, dans la plupart des cas, sur 115200 bauds. Si la version du firmware présente dans le module le permet, vous pourrez modifier ce débit. Dans le cas inverse, nous verrons bien plus tard comment mettre à jour le firmware de votre module.
Pour résumer, notre ESP8266 fonctionne en niveau logique 3.3V avec un débit série de 115200 bauds. Il nécessite donc un adaptateur de niveau logique 3.3V –> 5V pour être utilisé avec l’Arduino ainsi qu’une bonne configuration de notre terminal série.
La liste du matériel nécessaire à ce tutoriel se résume donc à:
– Un Arduino
– Un ESP8266
– Un convertisseur de niveau logique bidirectionnel
– Quelques fils
– Une plaque de connexion sans soudure (breadboard)
3- Mise en œuvre
D’un point de vue montage pur, l’ensemble reste relativement simple et ce, malgré le nombre important de fils utilisés et les composants que vous ne connaissez pas forcément. Nous vous proposons ainsi le montage détaillé autour du convertisseur de niveau logique ainsi qu’un vue générale de l’ensemble des laisons entre le module wifi, le convertisseur de niveau logique et l’Arduino.
Nous avons symbolisé les broches du module ESP8266 au moyen « d’étiquettes », vous retrouvez la position de chaque broche sur cette image (Notez que le module est vu de dessus):
Désormais, vous devez donc avoir connecté l’ensemble des composants entre eux et donc, à l’Arduino aussi. De notre côté, nous arrivons à ce résultat:
Voilà pour la mise en œuvre du tutoriel, nous allons désormais passer à l’utilisation du circuit que nous venons de concevoir. C’est la dernière étape de notre tutoriel avant de conclure.
4- Application et utilisation du système conçu
Désormais, nous sommes en mesure d’utiliser notre module wifi esp8266 avec notre Arduino. Vous pouvez tout d’abord uploader le script « blink » sur votre Arduino et ouvrir une console série. L’intérêt, c’est que vous allez pouvoir utiliser votre Arduino comme un simple adaptateur série USB grâce à la console série intégrée à l’IDE Arduino. Lorsque vous aurez ouvert cette console, vous pouvez la paramétrez sur 115200 bauds avec CR et NR:
Ensuite, vous pourrez, en théorie, écrire « AT » dans la console et envoyez cette chaine de caractère. Vous devriez alors obtenir un retour « OK ». Là, je vous propose de tester la version de votre firmware, simplement comme information en envoyant la commande suivante au module: « AT+GMR ». Vous devriez obtenir un retour semblable à celui-ci:
En regardant dans la liste de vos réseaux wifi disponibles sur votre ordinateur, vous devriez détecter le module ESP8266. Je vous propose dès à présent de modifier le nom du réseau ainsi que son mot de passe de sécurité en exécutant la commande suivante: « AT+CWSAP= »nom_du_reseau », »mot_de_passe »,1,2″
Le mot de passe doit impérativement être composé de chiffres et de lettres. Après avoir exécuté cette commande, vous devriez obtenir le retour suivant:
Désormais, nous pouvons enfin créer notre mini serveur sur notre module wifi. Pour cela, nous devons tout d’abord autoriser la gestion des connexions multiples sur le module à l’aide de la commande « AT+CIPMUX=1 » (« AT+CIPMUX=0 » pour désactiver cette fonctionnalité). Le retour obtenu sera donc le suivant:
Enfin, nous pouvons finalement ouvrir notre serveur en tant que tel grâce à la commande « AT+CIPSERVER=1,port » (« AT+CIPSERVER=0 » pour éteindre le serveur) Dans mon cas, le port sera 80. Vous devriez avoir le retour suivant:
Ajoutons une commande qui peut se révéler bien utile, celle qui permet d’effectuer un reset du module: « AT+RST ». Le retour obtenu est ici bien plus long et devrait ressembler à ceci:
5- Conclusion
Voilà tout pour aujourd’hui. Vous êtes désormais capable de connecter un système quelconque à internet grâce à des modules wifi low-cost de types ESP8266. De plus, vous avez désormais la possibilité de créer des mini-serveurs à l’aide de ces modules, ce qui vous permettra de découvrir de nouveaux moyens d’interagir avec vos systèmes. N’oubliez pas que les modules ESP8266 constituent une solution fiable et low-cost lorsque la nécessité d’ajouter une connexion wifi à votre circuit est omniprésente.
Merci d’avoir suivi ce tutoriel, bon bidouillage à tous !
Fabien A.