Go Down

Topic: ESP32 Serveur web Asynchrone  (Read 321 times) previous topic - next topic

EricRecifal33480

Oct 20, 2018, 12:42 pm Last Edit: Oct 20, 2018, 01:46 pm by EricRecifal33480
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

J-M-L

postez le code directement en ligne - là difficile de lire depuis un smartphone...
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

Le voici :

Code: [Select]
// 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() {

}
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

J-M-L

#3
Oct 20, 2018, 11:23 pm Last Edit: Oct 21, 2018, 10:15 am by J-M-L
Pourquoi ce sont toutes les mêmes?
Code: [Select]
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?
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

EricRecifal33480

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

EricRecifal33480

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

J-M-L

#6
Oct 21, 2018, 11:42 am Last Edit: Oct 21, 2018, 11:54 am by J-M-L
Si votre IP est xxx.xxx.xxx.xxx, vous entrez bien l'URL dans le navigateur sous la forme

http://xxx.xxx.xxx.xxx/
ou encore
http://xxx.xxx.xxx.xxx/?param=22

vous avez essayer sans retourner un truc du SPIFF? juste pour voir si l'architecture est fonctionnelle?
Code: [Select]
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(){}
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Go Up