(deleted)
Bonjour
Quand vous ditesserver.on("/uri", HTTP_POST, []() {...});
vous déclarez que votre serveur sur votre ESP répondra à une requête de type POST envoyée sur http://[i]adresseESP[/i]/uri
en exécutant le code {...}
est-ce bien cela que vous avez en tête ? Qui émet la requête POST ?
(deleted)
Qui émet la requête POST ?
(deleted)
(deleted)
Quand vous rencontrez un souci avec du code web, la première chose à effectuer c'est de regarder ce qui dit le mode développeur web (la majorité des navigateurs offre cette possibilité d'inspection - ici c'est Safari). On va voir tout de suite qu'il y a un souci dans le code HTML qui ne ressemble pas à celui donné côté arduino et le fait que Safari vous notifie aussi d'une erreur et d'un warning.
Donc ici, outre le fait que le code d'exemple ne soit pas terrible (usage abusif de la classe String, pas super propre pour la connexion), votre souci vient du fait que vous avez copié le code depuis un site web qui n'est pas en UTF8 ou n'a pas encodé les caractères comme il faut et la page web a des bugs à cause des guillemets utilisés pour fermer la chaîne du viewport ou http-equiv (si vous regardez bien ils sont comme en italique, inclinés)
Essayez avec ce code (avec la console à 115200 bauds, pas la peine d'aller lentement à 9600)
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
// Création d'une instance serveur
ESP8266WebServer server(80); // port d'écoute 80
const char* ssid = "Freebox-truc"; // SSID
const char* password = "xxxxx"; // mot de passe pour la connexion au point d'accès
// Page HTML
const char SITE_index[] PROGMEM = R"=====(
<!DOCTYPE HTML>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Test</title>
<form action="/bouton" method="POST">
<input type="submit" name="bouton_on" value="On">
  
<input type="submit" name="bouton_off" value="Off">
</form>
</HTML>
)=====";
void page_html()
{
server.send_P(200, "text/html", SITE_index); // envoie la page principale
}
void traite_bouton()
{
Serial.println("Appui sur le bouton ON/OFF");
server.send_P(200, "text/html", SITE_index); // envoie la page principale
if (server.hasArg("bouton_on")) {
Serial.println("Appui sur le bouton ON");
} else if (server.hasArg("bouton_off")) {
Serial.println("Appui sur le bouton OFF");
}
}
void handleNotFound() {
server.send(404, "text/plain", "404: URL inconnue");
}
void setup()
{
Serial.begin(115200);
WiFi.mode(WIFI_STA); // configure le WIFI en mode station
WiFi.disconnect(); // on se déconnecte si on été déjà connecté à un point d'accès WiFi
WiFi.begin(ssid, password); // connexion au point d'accès WiFi
Serial.println("");
while (WiFi.status() != WL_CONNECTED) { // attente de connexion
delay(500);
Serial.print(".");
}
Serial.print("\nConnected to "); Serial.println(ssid);
Serial.print("IP address: "); Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
// affectation des actions à effectuer
server.on("/", page_html); // page par défaut
server.onNotFound(handleNotFound); // page inconnue
server.on("/bouton", HTTP_POST, traite_bouton); // appui sur un des boutons
server.begin(); // démarre le serveur WEB
}
void loop()
{
server.handleClient(); // gestion des requêtes HTTP ?
}
(deleted)
(deleted)
vous avez essayé mon code ?
vu comment les boutons sont déclarés, l'URL déclenchée est /bouton donc on doit enregistrer
server.on("/bouton", HTTP_POST, traite_bouton); // appui sur un des boutons
chez moi ça fonctionne
(deleted)
je ne sais pas ce que vous faites. il faut mettre la console à 115200 bauds avec mon code
chez moi c'est fonctionnel comme le montre la copie d'écran
(deleted)
bizarre. Vous avez des trucs connectés sur votre ESP ?
mettez un copie d'écran de votre console série
(deleted)
La console est-elle bien réglée au même débit que celui défini dans le code ?
(deleted)
c'est bon le chinois au début c'est juste que votre ESP parle au boot à un débit différent, ce n'est pas très important.
Vous voyez bien donc le fait que le code se connecte à votre Freebox
tapez dans un navigateur web connecté sur le même réseau: http://192.168.1.40/
vous devriez voir les boutons On et Off s'afficher.
Clickez dessus et vous devriez voir les messages dans la console
(deleted)