ESP8266-01 : Serveur WEB de commande d’une LED

Introduction

Dans cet article nous allons voir comment allumer ou éteindre une LED connectée au port GPIO2 d’un ESP8266-01 à distance l’aide d’un simple browser WEB.

Montage

On utilise le même montage de base que celui décrit dans l’article sur la programmation de l’ESP8266 https://phmarduino.wordpress.com/2016/06/04/esp8266-programmation/

esp_usb_serial_ftz

Pour la programmation (téléversement code serveur WEB via l’IDE Arduino) de l’ESP, GPIO0 devra temporairement être relié à la masse.

Ensuite, une fois la programmation terminée, pour l’exécution du programme serveur WEB précédemment téléversé dans l’ESP, la connexion de GPIO0 à la masse devra être retirée et la LED devra être connectée sur GPIO2 en série avec une résistance.

Code

Le programme utilisé est décrit ci-dessous. Il s’inspire des exemples présents dans l’IDE Arduino. Il faut l’adapter pour indiquer votre nom de réseau WIFI et votre mot de passe WIFI à la place de ceux présents ci-dessous.


/*
Date : 16/01/2016
Description : Pilotage LED avec un browser WEB
Source : Exemple IDE Arduino
 */

#include <ESP8266WiFi.h>

// Nom et mot de passe du réseau WIFI
const char* ssid = "freeboxLM";
const char* password = "Mon mot de passe d acces a ma freebox ... ";

// Creation d un serveur qui ecoute sur le port 80
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  // Declaration port GPIO2 en sortie
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
  
  // Connection au réseau WiFi
  Serial.println();
  Serial.println();
  Serial.print("Connection a ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi OK");
  
  // demarrage du serveur
  server.begin();
  Serial.println("Server OK");

  // Adresse IP locale attribuee
  Serial.println(WiFi.localIP());
}

void loop() {
  // Un client est-il connecte ?
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Attente donnees envoyees par un client
  Serial.println("Nouveau client");
  while(!client.available()){
    delay(1);
  }
  
  // Lecture premiere ligne de la requete
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  // Decodage de la requete recue
  int val;
  if (req.indexOf("/gpio/0") != -1){
    val = 0;
    Serial.println("Demande extinction LED");}
  else if (req.indexOf("/gpio/1") != -1){
    val = 1;
    Serial.println("Demande allumage LED");}
  else {
    Serial.println("Requete invalide");
    client.stop();
    return;
  }

  // Positionnement port GPIO2
  digitalWrite(2, val);
  
  client.flush();

  // Prepararation de la reponse au client WEB
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO est maintenant ";
  s += (val)?"allumee":"eteinte";
  s += "</html>\n";

  // Envoi de la reponse au client
  client.print(s);
  delay(1);
  Serial.println("Client deconnecte");


}


Résultats

Une fois la programmation effectuée, débrancher le fil reliant le GPIO0 à la masse, redémarrez l’ESP puis brancher la LED en série avec une résistance de 220 Ohms sur le GPIO2 et redémarrer l’ESP.

Récupérer ensuite dans le moniteur série l’adresse locale IP allouée à votre ESP.

Puis, pour allumer la LED, lancer un browser et saisir l’URL suivante en remplaçant l’adresse IP ci-dessous par votre adresse IP locale :

esp web led allumee

Pour éteindre la LED, saisir l’URL suivante en remplaçant comme précédemment l’adresse IP ci-dessous par votre adresse IP locale :

esp_web led eteint

Les messages suivants doivent apparaître dans votre moniteur série avec les indications d’allumage et d’extinction de la LED :

esp web led moniteur serie

 

 

 

 

 

 

Publicités

3 réflexions au sujet de « ESP8266-01 : Serveur WEB de commande d’une LED »

  1. Super merci beaucoup. Pour un retraité comme moi qui à connu l’électronique analogique ça m’aide énormément. Très bien expliqué, merci pour le partage et félicitations.

    J'aime

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l'aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s