ESP32 Serveur web Asynchrone

Bonjour,

Je suis en train d'essayer de faire fonctionner un web serveur asynchrone mais je ne comprend pas pourquoi ma requete GET n'est pas détecter

Pouvez vous me donner un coup de pouce

Merci d'avance

ESP32_Async_Web_Server.zip (2.42 KB)

postez le code directement en ligne - là difficile de lire depuis un smartphone...

Le voici :

// Import required libraries
#include "WiFi.h"
#include "ESPAsyncWebServer.h"
#include "SPIFFS.h"

// Replace with your network credentials
//const char* ssid = "REPLACE_WITH_YOUR_SSID";
//const char* password = "REPLACE_WITH_YOUR_PASSWORD";

// Set LED GPIO
//const int ledPin = 2;
// Set LED GPIO
const int ledPin_Voie_1 = 2;
const int ledPin_Voie_2 = 2;
const int ledPin_Voie_3 = 2;
const int ledPin_Voie_4 = 2;

// Stores LED state
String ledState;

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

// Replaces placeholder with LED state value
String processor(const String& var) {
  Serial.println(var);
  if (var == "STATE") {
    if (digitalRead(ledPin_Voie_1)) {
      ledState = "ON";
    }
    else {
      ledState = "OFF";
    }
    Serial.print(ledState);
    return ledState;
  }
  return String();
}

void setup() {
  // Serial port for debugging purposes
  Serial.begin(115200);
  pinMode(ledPin_Voie_1, OUTPUT);
  pinMode(ledPin_Voie_2, OUTPUT);
  pinMode(ledPin_Voie_3, OUTPUT);
  pinMode(ledPin_Voie_4, OUTPUT);

  // Initialize SPIFFS
  if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }

  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }

  // Print ESP32 Local IP Address
  Serial.println(WiFi.localIP());

  // Route for root / web page
  server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {
    request->send(SPIFFS, "/index.html", String(), false, processor);
  });

  // Route to load style.css file
  server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest * request) {
    request->send(SPIFFS, "/style.css", "text/css");
  });
  server.on("/", HTTP_GET, [](AsyncWebServerRequest * request) {

    int paramsNr = request->params();
    Serial.println(paramsNr);

    for (int i = 0; i < paramsNr; i++) {
      AsyncWebParameter* p = request->getParam(i);
      Serial.print("Param name: ");
      Serial.println(p->name());
      Serial.print("Param value: ");
      Serial.println(p->value());
      Serial.println("------");
    }
    request->send(SPIFFS, "/index.html", String(), false, processor);
  });

  // Route to set GPIO to HIGH
  //  server.on("/V1_ON", HTTP_GET, [](AsyncWebServerRequest *request){
  //  digitalWrite(ledPin_Voie_1, HIGH);
  //  request->send(SPIFFS, "/index.html", String(), false, processor);
  //});

  // Route to set GPIO to LOW
  //  server.on("/V1_OFF", HTTP_GET, [](AsyncWebServerRequest *request){
  //  digitalWrite(ledPin_Voie_1, LOW);
  //  request->send(SPIFFS, "/index.html", String(), false, processor);
  //});  // Start server
  server.begin();
}

void loop() {

}

Pourquoi ce sont toutes les mêmes?

const int ledPin_Voie_1 = 2;
const int ledPin_Voie_2 = 2;
const int ledPin_Voie_3 = 2;
const int ledPin_Voie_4 = 2;

Pourquoi avez vous deux lambda handlers pour “/“ ?

Suivez vous ce tutorial?

Pourquoi ce sont toutes les mêmes?

—-> sa me permet d’util La led embarquée par l’esp32 sans avoir de l’electronique autour

Oui je suis ce tuto sauf que je suis parti d’un autre où on stock le web serveur dans le SPIFFS

J’avoue n’avoir que je n’ai pas fait gaffe au 2 ambla handler

J'ai viré le premier lambda handlers pour "/" mais c'est pareil, je n'ai pas de retour de mes paramètres

Si votre IP est xxx.xxx.xxx.xxx, vous entrez bien l'URL dans le navigateur sous la forme

http://xxx.xxx.xxx.xxx[color=red]/[/color]
ou encore

http://xxx.xxx.xxx.xxx[color=red]/[/color][color=purple]?param=22[/color]

vous avez essayer sans retourner un truc du SPIFF? juste pour voir si l'architecture est fonctionnelle?

include "WiFi.h"
#include "ESPAsyncWebServer.h"
 
const char* ssid = "yourNetworkName";
const char* password =  "yourNetworkPass";
 
AsyncWebServer server(80);
 
void setup(){
  Serial.begin(115200);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi..");
  }
 
  Serial.println(WiFi.localIP());
 
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
 
    int paramsNr = request->params();
    Serial.println(paramsNr);
 
    for(int i=0;i<paramsNr;i++){
 
        AsyncWebParameter* p = request->getParam(i);
        Serial.print("Param name: ");
        Serial.println(p->name());
        Serial.print("Param value: ");
        Serial.println(p->value());
        Serial.println("------");
    }
 
    request->send(200, "text/plain", "REQUETE OK");
  });
 
  server.begin();
}
 
void loop(){}