Allumer une LED depuis une page web

Principe du Projet

Contrôler une LED depuis une page web avec le microcontrôleur ESP8266.

Outils utilisés

LED

ESP 8266

Principe de fonctionnement

 

 La carte NodeMCU ESP8266 contient un module ESP-12E contenant un microprocesseur 32bits. Il intègre un émetteur-récepteur WiFi ce qui lui permet de se connecter à des réseaux existants ou bien de mettre en place son propre réseau.
Le réseau WiFi est un réseau Radio qui travaille sur les fréquences 2,45 GHz et 5 GHz.

Schéma

 
Branchez la led sur l’esp8266

Anode —-(D0)

Cathode—-(GND) {une résistance entre le GND et le cathode pour la protection }

 

 

 

 

Pour communiquer sur le réseau, il nous faut utiliser un protocole particulier. Ce protocole est intégré dans toutes les librairies relatives à la communication Wifi.

 

  • Il faut connecter le module WiFi au réseau
  • définir un serveur server
  • définir un client client                                                                                                                                                                                                                                                                                  La librairie qui va nous permettre de gérer l’émetteur-récepteur Wifi est la librairie ESP8266WiFi.h. Pour charger le code Arduino dans la carte, vous devez sélectionner la bonne carte et le bon port.

Dans notre cas, la carte est NodeMCU 1.0 (ESP-12E Module). Nous allons ensuite créer l’interface web de l’ESP8266 dans la fonction web page en HTML.

 

Utilisez une interface web pour piloter des moteurs ou gérer des capteurs branchés à votre microcontrôleur ESP8266

 

Juste écrivez le nom et le mot de passe de votre connexion réseau : 

 

  • const char* ssid = « …………. »;
  • const char* password = « …………………….. »;
  •  

A la fin :

 

 Copiez l’adresse IP sur Navigator(edge,chrome……) soit sur votre ordinateur ou téléphone et je vous laisse contrôler la LED (allumer/éteindre)

 

#include <ESP8266WiFi.h>

const char* ssid = « ………… »;
const char* password = « …………. »;

int ledPin = 16;
WiFiServer server(80);



void setup()

Serial.begin(115200);
delay(100);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.println();
Serial.print(« Connecting to « );
Serial.println(ssid);
WiFi.begin(ssid, password);

// connection en cours …
while (WiFi.status() != WL_CONNECTED)
      {
       delay(500);
       Serial.print(« . »);
         }
Serial.println(« WiFi connecter »); // Wifi connecter
server.begin();
Serial.println(« Serveur demarrer ! »);
Serial.print(« Utiliser cette adresse URL pour la connexion : »); // Affichage de l’adresse IP
Serial.print(« http:// »);
Serial.print(WiFi.localIP());
Serial.println(« / »);


}

 
void loop()

 
{
WiFiClient client;
client = server.available();// Vérification si le client est connecter.
if (!client)
         { 

          return;
         }
Serial.println(« nouveau client »); // Attendre si le client envoie des données …
while(!client.available())
         {
         delay(1);
         }
String request = client.readStringUntil(‘\r’);
Serial.println(request);
client.flush();

int value = LOW;
if (request.indexOf(« /LED=ON ») != -1)

         {
         digitalWrite(ledPin, HIGH); // allumer la led
         value = HIGH;
         }
if (request.indexOf(« /LED=OFF ») != -1)

         {
        digitalWrite(ledPin, LOW); // éteindre la led
       value = LOW;
        }

// Réponse
client.println(« HTTP/1.1 200 OK »);
client.println(« Content-Type: text/html »);
client.println(«  »);
client.println(« <!DOCTYPE HTML> »);
client.println(« <html> »);
client.print(« Etat de la led : « );
if(value == HIGH)

       {
        client.print(« On »);
        } 

       else 

       {
       client.print(« Off »);
       }
client.println(« <br><br> »);
client.println(« <a href=\ »/LED=ON\ »\ »><button>Allumer </button></a> »);
client.println(« <a href=\ »/LED=OFF\ »\ »><button>Eteindre </button></a><br /> »);
client.println(« </html> »);
delay(1);
Serial.println(« Client deconnecter »);
Serial.println(«  »);


}

Ce que vous visualisez sur le monitor serial:

Vous avez qu’à copier l’adresse l’URL dans un navigateur pour pouvoir afficher la page Web et contrôler la LED