Ajout portail captif
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# Fichiers Kicad
|
||||
@@ -56,7 +56,7 @@ Conseils importants :
|
||||
|
||||
- GPIO0, GPIO2 et GPIO15 participent au démarrage de l'ESP8266. Le MX1508 et le servo ne doivent pas imposer un mauvais niveau logique pendant le boot ; tester le démarrage avec le moteur déconnecté, puis vérifier les niveaux avec un oscilloscope ou un analyseur logique.
|
||||
- D8/GPIO15 est utilisé ici pour disposer de quatre sorties moteur, mais il doit être validé sur le montage final. Prévoir une résistance ou un buffer si le MX1508 perturbe le niveau de boot.
|
||||
- L'ESP8266 ne possède qu'une seule entrée analogique. Deux capteurs Hall analogiques ne peuvent donc pas être raccordés directement : utiliser un ADC externe I2C (solution recommandée) ou un multiplexeur analogique.
|
||||
- L'ESP8266 ne possède qu'une seule entrée analogique. Deux capteurs Hall analogiques ne peuvent donc pas être raccordés directement : utiliser un ADC externe I2C (ADS115).
|
||||
- Si les capteurs Hall sont des capteurs numériques à seuil, les raccorder à des GPIO distincts et adapter `pins.h` et le filtrage logiciel.
|
||||
- Le servo doit avoir une alimentation adaptée et une masse commune ; ne pas supposer que le 3,3 V de l'ESP8266 suffit à fournir son courant de pointe.
|
||||
|
||||
|
||||
@@ -0,0 +1,96 @@
|
||||
// #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")) {
|
||||
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);
|
||||
Reference in New Issue
Block a user