Esp32 - Wifi Manager

wifi_manager


Le Wifi Manager peut contrôler le processus de sélection d'un point d'accès disponible, s'authentifier et s'associer à lui et configurer d'autres paramètres de la connexion Wifi.


Je m'explique:

Vous avez besoin de configurer un Esp32 pour qu'il se connecte à votre réseau Wifi (ou un autre) via sa propre interface de connexion de Wifi "interne" à l'Esp32.

Mise sous tension de l'Esp32 avec son propre réseau Wifi  avec son <ssid> et son <mot de passe> et une adressse IP en 192.168.4.1

Vous vous connectez à réseau Wifi "Interne de l'Esp32" (<ssid> et <mot de passe> de l'Esp32)

Et via l'interface Wifi Manager, vous sélectionnez le réseau Wifi sur lequel vous souhaitez que l'Esp32 se connecte et vous renseignez les identfiants de connexion Wifi.



Téléchargement de la librairie WifiManager

  • master_development
  • download_zip


Information venant de Youtube et Github

Utilisation de la librairie de WifiManager de TZAPU


Le Github de TZAPU propose deux solutions WifiManager

Master (par defaut) utilisable pour l'Esp8266
Development pour Esp8266/Esp32


Utiliser la librairie WifiManager-development car à la date du 25/02/2020  seule la version développement fonctionne avec l'Esp32


Télécharger la librairie WifiManager-development.zip sur

https://github.com/tzapu/WiFiManager/tree/development



Installation de la librairie WifiManager

  • install_zip
  • install-zip-2


Installer la librairie WifiManager pour Esp32 dans l'IDE Arduino

Croquis / Inclure une bibliothèque / Ajouter la bibliothèque .ZIP ...

Se déplacer dans le dossier contenant le fichier zip

Séléctionner la librairie WifiManager-development.zip 

Cliquer sur [OK]



Le code

wifimanger-code


Dans l'IDE Arduino, écrire le code ci-dessous


#include <WiFiManager.h>  # Utilisation de la librairie WiFiManager.h

WiFiManager wm;   # Définition du nom du WifiManager = wm
const char* ssid = "ESP32AP";  # ssid (exemple)
const char* password = "esp32wroom";  # Mot de passe (exemple)

void setup() {
  WiFi.mode(WIFI_STA);  
# Définition du Wifi en mode Station

  Serial.begin(115200);  # Initialisation du moniteur série
  delay(1000);
  Serial.println("\n");

  if(!wm.autoConnect(ssid, password))  # Test d'auto-connexion
    Serial.println("Erreur de connexion.");  # Si pas de connexion = Erreur
  else
    Serial.println("Connexion etablie !");  
# Si connexion = OK
}

void loop() {
  if(touchRead(T0) < 60)  
# Utilisation de la fonction Touch sur la pin T0 (GPIO4) pour resetter l'Esp32 
    {                                 # Si détection touch < 60 sur pin T0
      Serial.println("Suppression des reglages et redemarrage ...");
      wm.resetSettings();
 # Reset des paramètres Wifi
      ESP.restart();  # Restart de l'esp32
    }
}


 Le ssid et le mot de passe sont des exemples - Mettre un mot de passe plus sécurisé 


Vérifier et téléverser le code dans l'Esp32

Ouvrir le moniteur série pour voir les informations



Moniteur serie

moniteur-serie-01
Ouvrir le moniteur série

16:47:45.843 -> *WM: [1] AutoConnect    # Mode autoconnect
16:47:45.843 -> *WM: [2] ESP32 event handler enabled 
16:47:45.876 -> *WM: [2] Connecting as wifi client... 
16:47:45.876 -> *WM: [3] STA static IP:
16:47:45.876 -> *WM: [2] setSTAConfig static ip not set, skipping 
16:47:45.876 -> *WM: [1] No saved credentials, skipping wifi 
16:47:45.876 -> *WM: [2] Connection result: WL_NO_SSID_AVAIL
16:47:45.876 -> *WM: [3] lastconxresult: WL_NO_SSID_AVAIL
16:47:45.876 -> *WM: [1] AutoConnect: FAILED  # Autoconnexion Failed
16:47:45.876 -> *WM: [2] Starting Config Portal 
16:47:45.876 -> *WM: [2] AccessPoint set password is VALID  # Connexion a l'AP de l'Esp32
16:47:45.910 -> *WM: [1] esp32wroom  # Mot de passe de l'AP de l'Esp32
16:47:45.910 -> *WM: [3] WIFI station disconnect 
16:47:45.910 -> *WM: [3] WiFi station enable 
16:47:45.910 -> *WM: [2] Disabling STA 
16:47:45.910 -> *WM: [2] Enabling AP 
16:47:45.910 -> *WM: [1] StartAP with SSID:  ESP32AP
16:47:45.910 -> *WM: [1] SoftAP Configuration 
16:47:45.910 -> *WM: [1] -------------------- 
16:47:45.910 -> *WM: [1] ssid:             ESP32AP  # ssid
16:47:45.910 -> *WM: [1] password:         esp32wroom  # Mot de passe
16:47:45.910 -> *WM: [1] ssid_len:         7
16:47:45.910 -> *WM: [1] channel:          1
16:47:45.910 -> *WM: [1] authmode:         3
16:47:45.983 -> *WM: [1] ssid_hidden:     
16:47:45.983 -> *WM: [1] max_connection:   4
16:47:45.983 -> *WM: [1] country:          CN
16:47:45.983 -> *WM: [1] beacon_interval:  100(ms)
16:47:45.983 -> *WM: [1] -------------------- 
16:47:46.440 -> *WM: [1] AP IP address: 192.168.4.1  # Adresse IP de l'AP de l'Esp32
16:47:46.440 -> *WM: [3] setupConfigPortal 
16:47:46.440 -> *WM: [1] Starting Web Portal 
16:47:46.440 -> *WM: [3] dns server started with ip:  192.168.4.1
16:47:46.440 -> *WM: [2] HTTP server started 
16:47:48.530 -> *WM: [2] WiFi Scan ASYNC completed in 2101 ms
16:47:48.530 -> *WM: [2] WiFi Scan ASYNC found: 5
16:47:48.530 -> *WM: [2] WiFi Scan completed in 2102 ms
16:47:48.563 -> *WM: [2] Config Portal Running, blocking, waiting for clients... 
16:48:14.727 -> *WM: [2] NUM CLIENTS: 0 


L'Esp32 est en attente de connexion à un réseau Wifi local



Connexion a l'AP de l'Esp32

esp32ap


Connexion à l'AP de l'Esp32

Sélectionner l'ESP32AP
Renseigner le mot de passe du Wifi
(esp32wroom)


Le mot de passe est un exemple - Mettre un mot de passe plus sécurisé

AP = Acces Point


Accés à l'interface Wifi de l'AP de l'Esp32

page-esp32


Une fois connecté à l'Esp32, ouvir un navigateur, et saisir l'adresse IP de l'AP

192.168.4.1

Pour accéder la page d'accueil de l'AP


Trois boutons sont affichés

[Configure Wifi]  # Sélection et configuration du réseau Wifi local

[Info]  # Information sur la connexion 

[Exit]  # Quitter la page d'acceuil sans connexion Wifi




Bouton [Configure Wifi]

  • configure
  • freebox


Le bouton [Configure Wifi] permet de configurer le Wifi de l'Esp32 

Sélectionner le réseau Wifi voulu et renseigner le mot de passe

Puis cliquer sur le bouton [Save]

L'Esp32 est connecté à votre réseau local


Bouton [Info]

  • info
  • erase


Le bouton [Info] affiche les informations sur la connexion et sur la carte Esp32

Et vous pouvez éffacer la configuration en cliquant sur le bouton [Erase Wifi Config]


Vous trouverez des commandes supplémentaires 

192.168.41/  # Affiche la page d'accueil
192.168.4.1/wifi   # Affiche les reseaux Wifi détectés
192.168.4.1/wifisave  # Sauvegarde la configuration Wifi et configure l'Esp32
192.168.4.1/param   # Affiche la page de paramétrage
192.168.4.1/info   # Affiche les informations Wifi de la carte Esp32
192.168.4.1/close # Ferme la page de configuration - Le portail de configuration reste actif
192.168.4.1/exit   # Quitte la configuration - Le portail de configuration est fermé
192.168.4.1/restart   # Reboot l'Esp32
192.168.4.1/erase   # Efface la configuration Wifi et reboot l'Esp32 sans connexion réseau 


Bouton [Exit]

exit


Le bouton [Exit] permet de

quitter la page d'acceuil
deconnexion de l'AP de l'Esp32


Il faudra presser le bouton <RST> de l'Esp32 pour relancer l'Esp32 pour vous reconnecter à l'AP de l'Esp32  si vous souhaitez configurer un réseau Wifi



Reset / Touch pin T0


Nous utilisons la fonction Touch sur la pin T0 (GPIO4), pour <resetter> complétement l'Esp32 et revenir à la configuration initiale 192.168.4.1

Toucher la pin T0 (GPIO4) de l'Esp32, et l'Esp32 se reinitialisera avec la configuration de base en 192.168.4.1

Nous aurions utiliser un bouton poussoir connecté sur un GPIOx et modifier le code en fonction