|

Récupérer la valeur d’un input « time » d’une page web sur l’esp32

Prérequis :

  • 1 x Carte ESP32
  • Fils de connexion

Version IDE :

  • Arduino IDE 2.3.5

Bibliothèque :

Vidéo de démonstration :

Schéma de câblage :

Code :

Code Arduino :
#include "LittleFS.h"
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <WiFi.h>

const char *ssid = "......";  // "Votre Nom_du_routeur"
const char *password = "......";  // "Votre Mot_de_passe_du_routeur"
AsyncWebServer server(80);

int Valeurheure;
int Valeurminute;
String Valeurtime = "12:00";

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

  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  // Imprimer l'adresse IP locale ESP
  Serial.println(WiFi.localIP());

  if (!LittleFS.begin()) {
    Serial.println("An Error has occurred while mounting LittleFS");
    return;
  }

  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/index.html", "text/html");
  });

  server.on("/script.js", HTTP_GET, [](AsyncWebServerRequest *request) {
    request->send(LittleFS, "/script.js", "text/javascript");
  });

  server.on("/read_Valeurheure", HTTP_GET, [](AsyncWebServerRequest *request) {
    String message = String(Valeurheure);
    request->send(200, "text/plain", message);
  });

  server.on("/read_Valeurminute", HTTP_GET, [](AsyncWebServerRequest *request) {
    String message = String(Valeurminute);
    request->send(200, "text/plain", message);
  });

  server.on("/read_Valeurtime", HTTP_GET, [](AsyncWebServerRequest *request) {
    String message = String(Valeurtime);
    request->send(200, "text/plain", message);
  });


  server.on("/read_Valeur", HTTP_GET, [](AsyncWebServerRequest *request) {
    String message = String(Valeurtime);
    request->send(200, "text/plain", message);
  });


  server.on("/write_Valeurtime", HTTP_POST, [](AsyncWebServerRequest *request) {
    if (request->hasParam("Valeurtime", true)) {
      String message;
      message = request->getParam("Valeurtime", true)->value();
      Valeurtime = message;
      Valeurheure = Valeurtime.substring(0, 2).toInt();
      Valeurminute = Valeurtime.substring(3, 5).toInt();
    }
    request->send(204);
  });

  Valeurheure = Valeurtime.substring(0, 2).toInt();
  Valeurminute = Valeurtime.substring(3, 5).toInt();
  // Démarrer le serveur
  server.begin();
}

void loop() {

  Serial.print("Valeurheure :");
  Serial.println(Valeurheure);
  Serial.print("Valeurminute :");
  Serial.println(Valeurminute);
  Serial.print("Valeurtime :");
  Serial.println(Valeurtime);


  delay(500);
}
Code HTML :

( index.html )

<!DOCTYPE html>
<html lang="fr">

<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8" />
    <script type="text/javascript" src="https://webapps1.chicago.gov/cdn/jQuery-3.4.1/jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="script.js"></script>  
    </head>

<body>
    <div>
        <h2>Valeur des variables sur ESP32 :</h2>
        <h4>int Valeurheure; : <span id="Valeurheure"></span><br>
         int Valeurminute; : <span id="Valeurminute"></span><br>
         String Valeurtime; <span id="Valeurtime"></span></h4>
         <br>   
         Saisir une heure :
        <input type="time" id="Valeur" name="appt" min="00:00" max="23:59" required />
        <button id="AppValeur" class="">Appliquer</button>
    </div>
</body>

</html>
Code Javascript :

( script.js )

$(document).ready(function(){
    $("#AppValeur").click(function(){
        var valeur = $("#Valeur").val();
        $.post("write_Valeurtime",{
            Valeurtime: valeur
        });
    });
});

function getDataValeur() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Valeur").value = this.responseText;
        }
    };
    
    xhttp.open("GET", "read_Valeur", true);
    xhttp.send();
};
getDataValeur();

function getDataValeurheure() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Valeurheure").innerHTML = this.responseText;
        }
    };
    
    xhttp.open("GET", "read_Valeurheure", true);
    xhttp.send();
};

function getDataValeurminute() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Valeurminute").innerHTML = this.responseText;
        }
    };
    
    xhttp.open("GET", "read_Valeurminute", true);
    xhttp.send();
};

function getDataValeurtime() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("Valeurtime").innerHTML = this.responseText;
        }
    };
    
    xhttp.open("GET", "read_Valeurtime", true);
    xhttp.send();
};
getDataValeurtime();
getDataValeurheure();
getDataValeurminute();

function functioninterval() {
    getDataValeurheure();
    getDataValeurminute();
    getDataValeurtime();
 }
 
setInterval( functioninterval, 500 );

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *