ESP32 Wifi manager template¶
- Auteur
J.Soranzo
- Association
Bricolab
- Entity
- dépôt Bitbucket des sources doc
https://bitbucket.org/myarduinotemplates/docsource/src/master/
- Dépôt BitBucket
https://bitbucket.org/myarduinotemplates/wifimanagerbasetemplate/src/master/
- Création
05/2024
- Maj
05/2024
Introduction¶
WIFI Manager est une librairie ARDUINO qui permet de ne pas mettre ses identifiant dans le code ARDUINO; les fameuses lignes:
const char* SSID = "YourSSID";
const char* password = "YourPassword";
Pour cela, la lib tente une connexion avec les paramètres mémorisés par l’ESP et si elle échoue, elle se met en mode aces point (point d’accès - elle crée son propre mini réseau wifi) en se connectant à ce mini réseau wifi (au moyen d’un téléphone ou d’un pc, mac disposant d’un navigateur Internet). Une page de connexion s’ouvre automatiquement - on parle alors de portail captif, comme dans les hotels par exemple, on peut entrer ses paramètres d’accès. Adresse ip du portail captif au cas où est dans le code configurable par défaut 192.168.4.1.
Comme son nom l’indique, le but de ce projet est de créer un block de base constitué d’un ESP32 avec intégration de la lib Wifi manager et éventuellement un tout petit écran OLED pour afficher l’IP Si besoin de documenter et de s’arrêter là !
Ce block doit permettre la réutilisation facile.
Premier run¶
Utilisation sur une carte AZDelivery ESP32.
Installation du pack dans ARDUINO et paramètre par défaut : OK
Installation de la lib dans l’environnement ARDUINO: prise du ZIP sur ARDUIBO.CC et dans library manager installation d’un zip.
Les exemples fournis dans la librairie WIFI manager¶
Advanced
Basic
NonBlocking
Old_examples
OnDemand
Parameters
ParamsChildClass
Super
Tests
Unique
Exemple basic¶
Avec une configuration 4Mo de FLASH et un schéma 1.2M App/1.5 SPIFFS
Utilisation de la bibliothèque WiFiManager-2.0.17 version 2.0.17 dans le dossier: C:\Users\jojo\Documents\Arduino\libraries\WiFiManager-2.0.17
Utilisation de la bibliothèque WiFi version 2.0.0 dans le dossier: C:\Users\jojo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\libraries\WiFi
Utilisation de la bibliothèque Update version 2.0.0 dans le dossier: C:\Users\jojo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\libraries\Update
Utilisation de la bibliothèque WebServer version 2.0.0 dans le dossier: C:\Users\jojo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\libraries\WebServer
Utilisation de la bibliothèque DNSServer version 2.0.0 dans le dossier: C:\Users\jojo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\libraries\DNSServer
Utilisation de la bibliothèque FS version 2.0.0 dans le dossier: C:\Users\jojo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.13\libraries\FS
Le croquis utilise 833653 octets (63%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 44184 octets (13%) de mémoire dynamique, ce qui laisse 283496 octets pour
les variables locales. Le maximum est de 327680 octets.
versus blink:
Le croquis utilise 236793 octets (18%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 21048 octets (6%) de mémoire dynamique, ce qui laisse 306632 octets
pour les variables locales. Le maximum est de 327680 octets.
Premier constat: Wifi manager est gourmand en ressources. Il faut tout de même nuancer ce propos car il utilise un grand nombre de librairies nécessaires dans un projet avec du wifi (lib Wifi, Webserver)
Hors sujet : test file système¶
Une tentative d’utiliser SPIFFS soldée par un échec erreur 663. Du coup => exemple SPIFFS_Test.ino
Au début de l’exemple, il faut formater le file système…
A part cela le test passe bien. Utile le plugin ARDUINO file system
Remarque Juillet 2024 sur les files système ARDUINO. Aujourd’hui 3 files systèmes sont utilisables: SPIFFS, LittleFS et FatFS
See also
SITE DE RESSOURCES GITHUB
LittleFS ESP32 6 GITHUB du système de fichier
arduino-esp32fs-plugin 7 plugin qui supporte les 3 Files Systems
Dépôt Bitbucket et branches¶
Projet Bitbucket plus vaste myArduinoTemplates
branches:
master : exemple basic
avecFileSystem : ajout de spiffs
avecFileSystemEtOled : ajout oled 128x32 0.92”
avecFileSystemEtOledEtWebServer
avecFileSystemEtOledEtWebServerEtLed
Webserver¶
A partir des exemples Arduino et notamment FSB Browser lit le fichier index.html de data
Battery Mesure¶
Dans cet article:
Note: ADC2 pins cannot be used when Wi-Fi is used. So, if you’re using Wi-Fi and you’re having
trouble getting the value from an ADC2 GPIO, you may consider using an ADC1 GPIO instead.
That should solve your problem.
Programme dédié aux tests adcChecker.ino
Je pilote une LED¶
pin 15
Ressources avec la branche avecFileSystemEtOledEtWebServerEtLed¶
Utilisation de la bibliothèque FS version 2.0.0
Utilisation de la bibliothèque SPIFFS version 2.0.0
Utilisation de la bibliothèque WiFiManager-2.0.17 version 2.0.17
Utilisation de la bibliothèque WiFi version 2.0.0
Utilisation de la bibliothèque Network version 1.0.0
Utilisation de la bibliothèque Update version 2.0.0
Utilisation de la bibliothèque WebServer version 2.0.0
Utilisation de la bibliothèque DNSServer version 2.0.0
Utilisation de la bibliothèque AsyncUDP version 2.0.0
Utilisation de la bibliothèque SPI version 2.0.0
Utilisation de la bibliothèque Wire version 2.0.0
Utilisation de la bibliothèque Adafruit_GFX_Library version 1.1.8
Utilisation de la bibliothèque Adafruit_SSD1306 version 1.1.2
Utilisation de la bibliothèque ESPmDNS version 2.0.0
Le croquis utilise 1054753 octets (80%) de l'espace de stockage de programmes. Le maximum est de 1310720 octets.
Les variables globales utilisent 45176 octets (13%) de mémoire dynamique, ce qui laisse 282504 octets pour les variables locales. Le maximum est de 327680 octets.
Avec le schéma Huge APP (3MB No OTA/1M SPIFFS), on ne consomme que 33%
Carte d’essai¶
Prog: ARDUINO 1.8.19+ devices ESP32 dev module, 1.2app, 1.7SPIFFS / 4MB (reste 1.1 ? OTA ?)
Réalisation sur la base d’une carte AZ Delivery ESP-32 Dev Kit C V4 15€ sur AMAZON
Broche I2C : 22 (CLK) et 21 (DATA)
Web asynchrone ?!¶
Il s’agit de remettre à jour des contenus de la page html sans recharger la page.
Caution
VIDEO
GDMP : ESP32 serveur web asynchrone et web application 10 très bon exemple à base de svg !!!
Utilise de l’Ajax, javascript avec un setInterval 5s et manifest.js
Ainsi que les librairies de me-no-dev ESPAsyncWebServer 11 et AsyncTCP
Autre exemple avec les Websockets:
Weblinks¶
- 1
- 2
- 3
- 4
https://www.amazon.fr/AZDelivery-ESP-32-Dev-compris-eBook/dp/B07Z83MF5W
- 5
https://github.com/me-no-dev/arduino-esp32fs-plugin?tab=readme-ov-file
- 6
- 7
- 8
- 9
https://randomnerdtutorials.com/esp32-pinout-reference-gpios/
- 10
- 11
- 12
https://techtutorialsx.com/2018/08/14/esp32-async-http-web-server-websockets-introduction/