96 lines
3.4 KiB
C++
96 lines
3.4 KiB
C++
// #include <ESP8266WiFi.h> //https://github.com
|
|
// #include <DNSServer.h>
|
|
// #include <ESP8266WebServer.h>
|
|
// #include <WiFiManager.h> //https://github.com
|
|
|
|
// void WifiSetup(void)
|
|
// {
|
|
// Serial.begin(115200);
|
|
|
|
// // Objet WiFiManager
|
|
// WiFiManager wifiManager;
|
|
|
|
// // Optionnel : réinitialiser les paramètres enregistrés pour les tests
|
|
// // wifiManager.resetSettings();
|
|
|
|
// // Démarre un point d'accès nommé "FinistRC_Config" (sans mot de passe)
|
|
// // Si la connexion au Wi-Fi enregistré échoue, le portail s'ouvre
|
|
// if (!wifiManager.autoConnect("FinistRC_Config")) {
|
|
// // Option 1 : Utiliser le mode sombre intégré
|
|
// wifiManager.setClass("invert");
|
|
|
|
// Serial.println("Échec de la connexion et timeout du portail.");
|
|
// delay(3000);
|
|
// ESP.restart(); // Redémarre l'ESP en cas d'échec
|
|
// }
|
|
|
|
// // Si on arrive ici, l'ESP8266 est connecté au Wi-Fi
|
|
// Serial.println("Connecté au réseau Wi-Fi !");
|
|
// Serial.print("Adresse IP : ");
|
|
// Serial.println(WiFi.localIP());
|
|
// }
|
|
|
|
// #include <ESP8266WiFi.h>
|
|
// #include <DNSServer.h>
|
|
// #include <ESP8266WebServer.h>
|
|
// #include <WiFiManager.h>
|
|
|
|
// // Variables pour stocker les paramètres personnalisés
|
|
// char mqtt_server[40] = "brokermqtt.local";
|
|
// char api_token[32] = "votre_cle_ici";
|
|
|
|
// // Drapeau pour savoir s'il faut sauvegarder les données
|
|
// bool doiventSauvegarderConfiguration = false;
|
|
|
|
// // Fonction de rappel (callback) appelée lorsque l'utilisateur valide le formulaire
|
|
// void saveConfigCallback() {
|
|
// Serial.println("Configuration modifiée. Prêt à sauvegarder.");
|
|
// doiventSauvegarderConfiguration = true;
|
|
// }
|
|
|
|
void WifiSetup() {
|
|
Serial.begin(115200);
|
|
|
|
// 1. Création des champs personnalisés (ID, Label, Valeur par défaut, Longueur max)
|
|
WiFiManagerParameter custom_mqtt_server("mqtt", "Serveur MQTT", mqtt_server, 40);
|
|
WiFiManagerParameter custom_api_token("api", "Clé API", api_token, 32);
|
|
|
|
WiFiManager wifiManager;
|
|
|
|
// Associer la fonction de rappel
|
|
wifiManager.setSaveConfigCallback(saveConfigCallback);
|
|
|
|
// 2. Ajouter les champs à l'interface graphique de WiFiManager
|
|
wifiManager.addParameter(&custom_mqtt_server);
|
|
wifiManager.addParameter(&custom_api_token);
|
|
|
|
// Lance le portail
|
|
if (!wifiManager.autoConnect("FinistRC_Config","Finist29PWD")) {
|
|
Serial.println("Échec de connexion ou timeout...");
|
|
delay(3000);
|
|
ESP.restart();
|
|
}
|
|
|
|
// 3. Récupérer les valeurs saisies par l'utilisateur après la validation
|
|
strcpy(mqtt_server, custom_mqtt_server.getValue());
|
|
strcpy(api_token, custom_api_token.getValue());
|
|
|
|
// Affichage dans le moniteur série
|
|
Serial.println("Connecté au Wi-Fi !");
|
|
Serial.print("Serveur MQTT enregistré : ");
|
|
Serial.println(mqtt_server);
|
|
Serial.print("Clé API enregistrée : ");
|
|
Serial.println(api_token);
|
|
|
|
// [Optionnel] Si deconnexion/reconnexion, sauvegarder ici ces variables dans la LittleFS/SPIFFS (mémoire flash)
|
|
if (doiventSauvegarderConfiguration) {
|
|
// Code pour écrire mqtt_server et api_token dans un fichier JSON sur l'ESP
|
|
}
|
|
}
|
|
|
|
// // Modifier le titre principal de la page web
|
|
// wifiManager.setPageTitle("Mon Système Domotique");
|
|
|
|
// // Personnaliser le menu du portail (ne garder que le scan Wi-Fi et l'extinction de l'AP par exemple)
|
|
// std::vector<const char *> menu = {"wifi", "exit"};
|
|
// wifiManager.setMenu(menu);
|