servo esp8266 acces ap page web help

bonjours a tous et merci d avance

je suis soigneur animalier et je souhaite inclure un projet arduino pour enrichir (occuper) les animaux dans la journée

LE PROJET
contrôler un servo qui se déclenche à 15 30 45min et 1h d intervalle régulier avec millis(reussi).
Pour gérer les intervalles je souhaite pouvoir me connecter via l esp en mode accès point , générer une page web et sélectionner les intervalles(presque réussi)

mon problème
j arrive à déclenche le servo uniquement en renvoyant une requête.Je souhaite aussi que le temps demander s affiche sur la page et il saffiche avec un decalege d une requete

/*
SORTIE CODE => SORTIE WEMOS

14 => 13
12 => 12
13 => 11
15 => 10
13 => 09
12 => 8
1



 

  
*/
#include <Servo.h>
Servo servo,servo2;
int pos = 10;
long previousMillis = 0;        // variable pour mémoriser le temps écoulé depuis le dernier changement de la LED
long interval=500;
long TEMPS;

     int val;

#include <ESP8266WiFi.h>
const char* ssid = "la";
const char* password = "12345678";
//On créé une instance, un objet qui contiendra le serveur web.
//On communiquera avec lui sur le port 80,
//le port classique des requêtes HTTP utilisées par les navigateurs internet.
WiFiServer server(80);

void setup() {
  // Ouverture du port serie en 115200 baud pour envoyer des messages de debug à l'ide par exemple
  Serial.begin(115200);
  delay(10);
  servo.attach(2);
  servo.write(10);

  // prepare GPIO2 (sortie)
 
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.mode(WIFI_AP);
  // On se connecte a reseau WiFi avec le SSID et le mot de passe precedemment configure
 WiFi.softAP(ssid, password);
  
  // On sort de la boucle uniquement lorsque la connexion a ete etablie.
  // Il faudrait ameliorer cette partie pour un fonctionnement sur batterie car en cas d'abscence du reseau
  // on va vider la batterie !
  
  Serial.println("");
  Serial.println("WiFi connected");
   Serial.printf("Connection status: %d\n", WiFi.status());
  // connexion OK, on demarre le server web // Start the server
  server.begin();
  Serial.println("Server started");
 
  // On indique sur le port serie l'adresse ip de l'ESP pour le trouver facilement / Print the IP address
  Serial.println(WiFi.softAPIP());
}
void loop() {
 
  // On fait quelque chose uniquement si un client est connecté, 
  //c’est à dire qu’on réalise une requête HTTP sur l’ESP8266 depuis un navigateur internet
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  Serial.printf("Connection status: %d\n", WiFi.status());
  // Lorsqu’un client se connecte, on l’indique sur le port série
  Serial.println("new client");
  while(!client.available()){
    delay(10);

     String page = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\n";
     page +="   <head>";
     page +="<title>PAGE TEST</title><style type=\"text/css\">body {background-color: #009c30}</style></head>";
      page +="<h1><FONT SIZE=7><CENTER>HERBI</CENTER></FONT> </h1>";
       page +="<body><h1><CENTER>RAGONDIN</CENTER></h1> ";
       page +="<p><STRONG><FONT SIZE=7>";
        page +=  "<PRE>nourissage: "; 
        page +=  "<input type=button style=\"padding:15px 40px; background-color:#eaf4ed; border: groove 2px black; border-radius:10px;\"onmousedown=location.href=\"/gpio/1\">15min "; 
       page +="<input type=button  style=\"padding:15px 40px; background-color:#eaf4ed; border: groove 2px black; border-radius:10px;\"onmousedown=location.href=\"/gpio/0\">30min ";
      page +="<input type=button  style=\"padding:15px 40px; background-color:#eaf4ed; border: groove 2px black; border-radius:10px;\"onmousedown=location.href='/4;'> 45min ";
    page +=  "

            <input type=button  style=\"padding:15px 40px; background-color:#eaf4ed; border: groove 2px black; border-radius:10px;\"onmousedown=location.href='/4;'>1h00"; 
     page +="
TEMPS: ";
 page +=(TEMPS);
     page +=" MIN";
    page +=  " </FONT></STRONG></p> </body></html>";    
      client.print(page);

  }
    unsigned long currentMillis = millis(); // stocke la valeur courante de la fonction millis()

  if(currentMillis - previousMillis > interval) {
 
    // mémorise la valeur de la fonction millis() 
    previousMillis = currentMillis;  

    // inverse la variable d''état de la LED
   
   
       servo.write(170);       // 
  delay(1000);
  servo.write(10);
  delay(500);
    Serial.println("servo123");
  } 
   interval =TEMPS*60000;
       
 
  // On récupère la requête HTTP, ici l’URL saisie dans le navigateur tout simplement.
  //On envoi sur le port série le contenu de la requête HTTP.
  //On vide le tampon avec la méthode flush.
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
   
    
  if (req.indexOf("/gpio/0") != -1)
 TEMPS = 1; 
   
  else if (req.indexOf("/gpio/1") != -1)
   TEMPS = 2; 
  
  else {
    Serial.println("invalid request");
    client.stop();
   

  }
  

  // On met à jour l’état du GPIO et on vide le tampon
 
  
   
  client.flush();

  //On créé maintenant un page HTML qui contient l’état du GPIO. 
  //C’est une chaine texte qui contient le code HTML de la page.
  //On intercale dans le code de la page, l’état du GPIO
 
   delay(1);
   client.stop();
  Serial.println("Client disonnected");

  // On publie cette page au client avec la commande print, très facile !
  // when the function returns and 'client' object is detroyed
 
 
 }

Éventuellement jetez un œil sur mon petit tuto et celui là aussi pour envoyer des valeurs (même si ce n’est pas avec un esp en wifi, ça peut vous donner des idées)

Merci j-m-l ton tuto à l air très intéressant et je vais régale à essaye de le comprendre. j ai réussi la partie servo et le contrôle du temps via la page Web il me manque juste que le temps choisie s achiffe dès la première saisie et dans la idéal régler quelque bugg qui necessite un reset je posterai mon nouveau code demain