Wi-Fi-ESP32-E-Paper
Code Wi-Fi & ESP32 & E-Paper
Wi-Fi-ESP32-E-Paper
#include <WiFi.h>
#include <WebServer.h>
#include <Preferences.h>
Preferences prefs;
WebServer server(80);
String ssid, pass;
const char* configPage = R"rawliteral(
<!DOCTYPE html>
<html>
<body>
<h2>Configuration WiFi</h2>
<form action="/save" method="POST">
SSID: <input type="text" name="ssid"><br>
Password: <input type="text" name="pass"><br>
<input type="submit" value="Save">
</form>
</body>
</html>
)rawliteral";
void handleRoot() {
server.send(200, "text/html", configPage);
}
void handleSave() {
if (server.hasArg("ssid") && server.hasArg("pass")) {
ssid = server.arg("ssid");
pass = server.arg("pass");
prefs.begin("wifi", false);
prefs.putString("ssid", ssid);
prefs.putString("pass", pass);
prefs.end();
server.send(200, "text/html", "Paramètres sauvegardés. Redémarrage...");
delay(2000);
ESP.restart();
}
}
bool connectToWiFi() {
prefs.begin("wifi", true);
ssid = prefs.getString("ssid", "");
pass = prefs.getString("pass", "");
prefs.end();
if (ssid == "") return false;
WiFi.begin(ssid.c_str(), pass.c_str());
Serial.print("Connexion à "); Serial.println(ssid);
unsigned long start = millis();
while (WiFi.status() != WL_CONNECTED && millis() - start < 10000) {
delay(500);
Serial.print(".");
}
return WiFi.status() == WL_CONNECTED;
}
void startAP() {
WiFi.softAP("XIAO_Config", "12345678");
Serial.println("AP démarré. IP: " + WiFi.softAPIP().toString());
server.on("/", handleRoot);
server.on("/save", HTTP_POST, handleSave);
server.begin();
}
void setup() {
Serial.begin(115200);
if (!connectToWiFi()) {
Serial.println("Échec connexion. Passage en mode AP.");
startAP();
} else {
Serial.println("Connecté au WiFi. IP: " + WiFi.localIP().toString());
// Ici vous pouvez lancer un serveur web normal ou autre logique
}
}
void loop() {
server.handleClient();
}
## ⚙️ Fonctionnement - **Premier démarrage** : pas de SSID enregistré → le module crée un AP `XIAO_Config`. - **Page web** : accessible via l’IP du point d’accès (souvent `192.168.4.1`). - **Sauvegarde** : SSID et mot de passe sont stockés dans `Preferences`. - **Redémarrage** : le module tente de se connecter au Wi Fi enregistré. - **Fallback** : si la connexion échoue, retour en mode AP pour reconfigurer.