Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Français, page affichée Read this page in English

WiFi Manager, firmware de base des modules

Socle commun à tous les modules MicroCoaster. Il gère la mise en réseau d'un ESP32 : portail captif au premier démarrage, mémorisation des identifiants, reconnexion automatique, et un bouton de secours pour reprendre la main quand le réseau a changé.

Chaque module du circuit part de ce firmware et y greffe sa logique propre. Ce qui est réglé ici n'a pas à l'être ailleurs.

Version 2.0.0

01 Principe

Un module n'a ni clavier ni écran. La seule manière de lui donner les identifiants d'un réseau, c'est qu'il en crée un lui-même.

Premier démarrage : aucun wifi.json, le module ouvre son point d'accès. Portail captif : toute requête est redirigée vers la page de configuration. Identifiants saisis : écrits dans wifi.json sur LittleFS, puis redémarrage. Ensuite : connexion directe au réseau mémorisé, reconnexion automatique en cas de coupure puis repli sur le portail.

Le fichier /wifi.json est déclaré protégé auprès de la bibliothèque, ce qui empêche qu'une opération sur le système de fichiers l'efface par accident. C'est la différence entre un module qu'on reconfigure et un module qu'on doit aller déloger du circuit.

02 Reprise en main

Un bouton sur GPIO 0, celui qui est déjà câblé sur la plupart des cartes de développement.

Appui de 2 à 5 secondes : réouvre le portail de configuration sans rien effacer. Appui de 5 secondes ou plus : efface les identifiants mémorisés, le module repart vierge.

Il sert le jour où le réseau a changé de nom ou de clé et où le module, lui, cherche toujours l'ancien.

03 Réglages

setPortalTimeout : durée avant fermeture du portail. setAPClientCheck : le portail ne se ferme pas tant qu'un client y est connecté. setWebClientCheck : chaque requête HTTP relance le compte à rebours. setCaptivePortal : redirige toute requête vers la page de configuration. setFallbackPolicy ON_FAIL : le portail ne s'ouvre qu'après un échec de connexion. setAutoReconnect : tentative de reconnexion sans intervention.

Une heure de portail est confortable pour la mise au point, mais généreux pour un module posé dans un circuit : un point d'accès ouvert est un point d'entrée. En exploitation, quelques minutes suffisent.

Les identifiants du point d'accès vivent dans include/env.h, qui n'est pas versionné. Copiez include/env.h.example et renseignez-le : sans ce fichier, le firmware ne compile pas, et c'est voulu. Un oubli se voit au build plutôt qu'en production.

Ceux du réseau domestique, eux, ne passent jamais par le code : ils sont saisis dans le portail et restent dans /wifi.json, en mémoire du module.

04 Mise en service

Nécessite PlatformIO dans Visual Studio Code.

pio run                  # compilation
pio run -t upload        # téléversement du firmware
pio run -t uploadfs      # téléversement du portail vers LittleFS
pio device monitor       # console série, 115200 bauds

Le portail est fait de fichiers statiques dans data/. Ils partent sur LittleFS avec uploadfs, séparément du firmware : modifier une page ne demande pas de recompiler.

  1. Alimenter le module. Il crée le point d'accès WifiManager-MicroCoaster.
  2. S'y connecter et ouvrir http://192.168.4.1.
  3. Renseigner le réseau de destination.
  4. Le module redémarre et rejoint le réseau.

La console série à 115200 bauds trace chaque étape, et un état de connexion est publié toutes les trente secondes avec l'adresse IP et la puissance du signal.

05 Écosystème

ayresnet/AyresWiFiManager   ; portail captif, mémorisation, reconnexion

Les journaux de la bibliothèque sont désactivés par AWM_ENABLE_LOG=0 dans platformio.ini, afin que la console ne mélange pas deux langues. Système de fichiers embarqué : LittleFS, il héberge les pages du portail et /wifi.json.

Modules qui partent de ce socle : Switch Track, Launch Track, Lift Hill, Module Audio, Smoke Machine. Le tout est piloté par la WebApp.


MicroCoaster · Auteur : Cybertrist

About

Firmware ESP32 commun à tous les modules : portail captif de configuration, appairage au réseau puis connexion automatique au serveur.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages