Catégories
Liens
Ceci est une ancienne révision du document !
L'ESP8266 n'est pas un arduino comme les autre : il n'utilise pas de processeur atmel. Il est donc nécessaire de télécharger les bibliothèques ESP pour pouvoir l'utiliser avec l'IDE d'arduino.
Dans outils → type de carte de nouveaux modèles de cartes à base d'ESP8266 sont maintenant disponible. Pour le Lolin D1 mini utilisé dans cet INIT, choisir LOLIN(WEMOS) D1 R2 & mini Vérifier que l'ensemble de la chaîne fonctionne en ouvrant l'exemple Blink qui fait clignoter la LED intégrée : fichier → exemples → 01.Basics → Blink puis cliquer sur la petite flèche → pour téléverser.
Ouvrir l'exemple HelloServer dans fichier → exemples → ESP8266WebServer → HelloServer Cet exemple contient tout le code nécessaire pour se connecter à un réseau WIFI, servir une page sommaire et afficher un GIF à l'arrière plan aléatoire. Pour qu'il puisse se connecter au réseau wifi, modifier les lignes 7 et 8 en remplaçant your-ssid par le nom du réseau wifi auquel vous êtes connectés et your-password par son mot de passe. Les deux sont sensibles à la casse. Téléverser ensuite le programme et ouvrir le moniteur série. Une fois l'ESP8266 connecté, il y affiche son addresse IP.
Dans un navigateur web, taper cette même adresse (ici http://10.0.120.43) et vous devriez voir s'afficher une page contenant le texte hello from esp8266!. L'adresse http://10.0.120.43/gif affichera un tout petit GIF représentant un smiley.
On peut voir dans le code qu'à chaque adresse définie dans le setup correspond une fonction :
server.on("/", handleRoot);
exécutera la fonction handleRoot lorsqu'un tentera de se connecter à l'adresse/ qui correspond à la racine du serveur : c'est ce qu'on appelle une route. Les routes doivent toutes être déclarées dans le setup et ne peuvent être ajoutées dynamiquement.
Les fonctions appelées par les routes contiennent toutes un
server.send(CODE, MIME, VALEUR)
permettant au serveur de répondre. En effet, lorsqu'on tente d'accéder à une page web notre navigateur envoie une requête GET au serveur qui lui réponds en lui renvoyant la page html désirée. Dans ce cas, le CODE de la réponse est 200 (success), le type MIME des données sera text/html et sa VALEUR contiendra tout le code HTML nécessaire pour afficher la page. En l'absence de réponse au bout d'un certain temps, le navigateur considérera que le serveur est hors ligne et affichera une page d'erreur.
On cherche à présent à allumer la LED intégrée à l'ESP8266 en se connectant à l'adresse /on puis à l'éteindre en visitant /off Il nous suffit donc de créer deux fonctions, une pour l'allumer et une pour l'éteindre, que l'on insérera au début du code, avant le setup :
void handleLedON() { digitalWrite(led, LOW); // allumage de la led embarquée sur l'ESP8266 server.send(200, "text/plain", "led allumee"); // le serveur doit toujours répondre quelque chose (ici requête 200=success) } void handleLedOFF() { digitalWrite(led, HIGH);// extinction de la led server.send(200, "text/plain", "led eteinte"); }
Ces fonctions doivent être à présent attachées aux URL souhaitées, il nous faudra donc ajouter deux routes dans le setup :
server.on("/on", handleLedON); server.on("/off", handleLedOFF);
et le tour est joué.