Arduino, ESP intégrer des valeur variable dans une page html

Le problème exposé dans ce sujet a été résolu.

Bonjour

J’utilise un Esp12 pour afficher une page web HTML mais certaine valeur son variable.

Comme gérer proprement ceci.

Pour le moment en fouillant j’ai trouver la solution de creer un fichier qui créé des constante de mon code html :

const char HEADER_page[] PROGMEM = R"=====( 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bande Led</title>
</head>
<body>
<h1>Bande led</h1>
 
<form action="/" method="get">
  Puissance 0 à 255: <input type="text" name="puissance" value="
)=====";

const char FOOTER_page[] PROGMEM = R"=====( 
">
  <input type="submit">
</form>

</body>
</html>
)=====";

J’ajoute ma variable entre :

String msg = HEADER_page;
msg += brithness;
String msg = FOOTER_page;
server.send(200, "text/html", msg);

C’est pas mal mais sa ne fonctionne pas le serveur plante et redémarre.

Je doit mettre la partie footer en "direct" :

String msg = HEADER_page;
msg += brithness;
String msg = " \"><input type=\"submit\"></form></body></html>";
server.send(200, "text/html", msg);

Ce qui est très chiant car il faut mettre tout sur une ligne avec les anti-slash De plus pas facile pour maintenir le code.

Je cherche donc une autre solution ou a comprendre pourquoi avec 2 constantes sa passe pas.

Une idée ?

+0 -0
String msg = HEADER_page;
msg += brithness;
String msg = FOOTER_page;
server.send(200, "text/html", msg);

C’est autorisé ça ? À la ligne 3, la variable msg est redéfinie. Ce qui dans certains langages devient un masquage, mais là, j’y crois pas trop, en C et C++ c’est une erreur.

Tu peux trouver un tutoriel sur le langage C sur ZdS justement ^^

Je pense que tu voulais faire :

String msg = HEADER_page;
msg += brithness;
msg += FOOTER_page;
server.send(200, "text/html", msg);
+0 -0

Oui c’est une faute de frappe il n’y a pas String a la ligne 3…

J’ai trouvé une solution un peu comme un templatte en faite :

String msg = HEADER_page;
msg.replace("{{PUISSANCE}}", String(brithness));
server.send(200, "text/html", msg);

Je met donc les variables entre double accolade dans mon fichier html.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte