• Post category:NodeMcu v3 – ESP-12
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :décembre 23, 2022
  • Temps de lecture :11 min de lecture

NodeMCU ESP8266 Pilotez 4 relais Via Serveur à l’aide d’une interface Web ( Bootstrap )

Niveau APPRENTISSAGE :   ► Fort

 

    Prérequis :

Matériel :

  • 1 x NodeMCU Microcontroller Board
  • 1 x Led
  • 1 x Résistance 220KΩ
  • 1 x 4-Channel 5V Power Relay Module
  • Fils de connexion
  • 1 x Breadboard

 

Vidéo de démonstration :

 

Schéma de câblage :

 

 

Code :

#include <ESP8266WiFi.h>

const char* ssid = "xxxxxx"; // "Votre Nom_du_routeur"
const char* password = "xxxxxx"; // "Votre Mot_de_passe_du_routeur"
int ledPinVert = 16;
int PinRelay1 = 5;
int PinRelay2 = 4;
int PinRelay3 = 14;
int PinRelay4 = 12;
int valueRelay1 = HIGH;
int valueRelay2 = HIGH;
int valueRelay3 = HIGH;
int valueRelay4 = HIGH;

WiFiServer server(80);

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

pinMode(ledPinVert, OUTPUT);
digitalWrite(ledPinVert, LOW);
pinMode(PinRelay1, OUTPUT);
digitalWrite(PinRelay1, HIGH);
pinMode(PinRelay2, OUTPUT);
digitalWrite(PinRelay2, HIGH);
pinMode(PinRelay3, OUTPUT);
digitalWrite(PinRelay3, HIGH);
pinMode(PinRelay4, OUTPUT);
digitalWrite(PinRelay4, HIGH);

// Connect to WiFi network
Serial.println();
Serial.print("Connexion Wi-Fi à ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
digitalWrite( ledPinVert , LOW);
}
Serial.println("");
Serial.println("Wi-Fi Connecté avec Succès !");
digitalWrite( ledPinVert , HIGH);

// Start the server
server.begin();
Serial.println("Server started");

// Print the IP address
Serial.print("Utiliser cette URL pour vous connecter : ");
Serial.print(WiFi.localIP());
Serial.println("/");

}

void loop()
{
// Vérifie si un client s'est connecté.
WiFiClient client = server.available();
if (!client)
{
return;
}

// Attends que le client envoie des données.
while (!client.available())
{
delay(1);
}

// Lire la première ligne de la requête
String request = client.readStringUntil('\r');
Serial.println(request);
client.flush();


if (request.indexOf("/RELAY1=ON") != -1)
{
Serial.println("RELAY1=ON");
digitalWrite(PinRelay1, LOW);
valueRelay1 = LOW;
}
if (request.indexOf("/RELAY1=OFF") != -1)
{
Serial.println("RELAY1=OFF");
digitalWrite(PinRelay1, HIGH);
valueRelay1 = HIGH;
}

if (request.indexOf("/RELAY2=ON") != -1)
{
Serial.println("RELAY2=ON");
digitalWrite(PinRelay2, LOW);
valueRelay2 = LOW;
}
if (request.indexOf("/RELAY2=OFF") != -1)
{
Serial.println("RELAY2=OFF");
digitalWrite(PinRelay2, HIGH);
valueRelay2 = HIGH;
}

if (request.indexOf("/RELAY3=ON") != -1)
{
Serial.println("RELAY3=ON");
digitalWrite(PinRelay3, LOW);
valueRelay3 = LOW;
}
if (request.indexOf("/RELAY3=OFF") != -1)
{
Serial.println("RELAY3=OFF");
digitalWrite(PinRelay3, HIGH);
valueRelay3 = HIGH;
}

if (request.indexOf("/RELAY4=ON") != -1)
{
Serial.println("RELAY4=ON");
digitalWrite(PinRelay4, LOW);
valueRelay4 = LOW;
}
if (request.indexOf("/RELAY4=OFF") != -1)
{
Serial.println("RELAY4=OFF");
digitalWrite(PinRelay4, HIGH);
valueRelay4 = HIGH;
}

// Renvoyez la 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.println("<head><title>ESP8266 Led Controm</title>");
client.println("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
client.println("<link rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css\" integrity=\"sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T\" crossorigin=\"anonymous\">");
client.println("</head>");
client.println("<body>");
client.println("<div class=\"p-2 rounded\">");
client.println("<div class=\"row g-2 p-3\">");
//Relay1
client.println("<div class=\"p-2 col-12 col-sm-6 col-md-4 col-lg-3 col-xl-3 col-xxl-2\"> ");
client.println(" <div class=\"p-3 border bg-light text-center\">");
client.println("<a href=\"/RELAY1=ON\" class=\"btn btn-success\" role=\"button\">ON</a>");
client.println("<a href=\"/RELAY1=OFF\" class=\"btn btn-danger\" role=\"button\">OFF</a>  Relay 1 :");
if (valueRelay1 == HIGH)
{
client.print("OFF");
}
else
{
client.print("ON");
}
client.println("</div>");
client.println("</div>");
//Relay2
client.println("<div class=\"p-2 col-12 col-sm-6 col-md-4 col-lg-3 col-xl-3 col-xxl-2\"> ");
client.println(" <div class=\"p-3 border bg-light text-center\">");
client.println("<a href=\"/RELAY2=ON\" class=\"btn btn-success\" role=\"button\">ON</a>");
client.println("<a href=\"/RELAY2=OFF\" class=\"btn btn-danger\" role=\"button\">OFF</a>  Relay 2 :");
if (valueRelay2 == HIGH)
{
client.print("OFF");
}
else
{
client.print("ON");
}
client.println("</div>");
client.println("</div>");
//Relay3
client.println("<div class=\"p-2 col-12 col-sm-6 col-md-4 col-lg-3 col-xl-3 col-xxl-2\"> ");
client.println(" <div class=\"p-3 border bg-light text-center\">");
client.println("<a href=\"/RELAY3=ON\" class=\"btn btn-success\" role=\"button\">ON</a>");
client.println("<a href=\"/RELAY3=OFF\" class=\"btn btn-danger\" role=\"button\">OFF</a>  Relay 3 :");
if (valueRelay3 == HIGH)
{
client.print("OFF");
}
else
{
client.print("ON");
}
client.println("</div>");
client.println("</div>");
//Relay4
client.println("<div class=\"p-2 col-12 col-sm-6 col-md-4 col-lg-3 col-xl-3 col-xxl-2\"> ");
client.println(" <div class=\"p-3 border bg-light text-center\">");
client.println("<a href=\"/RELAY4=ON\" class=\"btn btn-success\" role=\"button\">ON</a>");
client.println("<a href=\"/RELAY4=OFF\" class=\"btn btn-danger\" role=\"button\">OFF</a>  Relay 4 :");
if (valueRelay4 == HIGH)
{
client.print("OFF");
}
else
{
client.print("ON");
}
client.println("</div>");
client.println("</div>");
//
client.println("</div>");
client.println("</div>");
client.println("</body>");
client.println("<script src=\"https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js\" integrity=\"sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM\" crossorigin=\"anonymous\"></script>");
client.println("</html>");

delay(1);
Serial.println("");
}

 

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire