Negli ultimi tempi ho curato lo sviluppo di un progetto con diversi ESP32 sparpagliati in giro.
In questo progetto si fa largamente uso di webserver integrati in ciascun ESP32 per ragioni che non starò a dettagliare.
In passato avevo già sviluppato questa libreria per semplificare la creazione di webserver. La libreria fa uso delle librerie incluse sia nel core Arduino per ESP32 che per ESP8266 e ha sempre fatto (e continua a fare) il suo onesto lavoro, ma per questo progetto avevo bisogno che i tempi di risposta dei singoli webserver fossero i più bassi possibili.
Mi sono reso contro dalle varie prove fatte che le librerie in questione sono molto più lente rispetto all'ottima e arcinota ESPAsyncWebServer sviluppata dall'utente Github me-no-dev che non per niente, adesso lavora direttamente per Espressif (e ci sono già diverse richieste per includerla nel core ufficiale).
La differenza in termini di tempi di risposta è di circa un ordine di grandezza:
con tutti gli ESP32 sulla stessa rete locale ho circa 10/40 ms con la libreria ESPAsyncWebServer.h
che diventano 150/300 ms con la libreria WebServer.h
inclusa nel core.
Tutta questa lunga e noiosa introduzione solo per dire che quindi mi sono deciso a sviluppare una libreria che avesse le stesse identiche funzionalità, ma basata su ESPAsyncWebServer.
In parole povere la libreria mette insieme le 3 funzionalità che io ritengo il minimo indispensabile per sviluppare interfacce web con ESP32/ESP8266:
- "servire" file sorgenti HTML, JavaScript, CSS direttamente dal filesystem ESP proprio come farebbe qualsiasi altro tipo di server locale (es. XAMP, Laragon o simili... che poi sono tutti basati su Apache alla fine)
- avere un WiFi manager per la scansione delle reti disponibili e l'impostazione delle credenziali. Il Wifi manager consente anche di salvare altre variabili come ad esempio token, indirizzi di server remoti, porte etc etc
- avere un file editor integrato (ACE web code editor) per la modifica dei file sorgenti (del webserver) cosi da non dover ricompilare ogni volta per vedere gli effetti delle modifiche.
La libreria in questione non poteva che chiamarsi async-esp-fs-webserver ed ovviamente trovate tutto nel mio repository
Se avete tempo e voglia, sarebbero graditissimi i vostri feedback!
Io ho compilato tutti gli esempi inclusi con ESP32 e qualcuno con ESP8266, ma di sicuro c'è scappato qualche errore o omissione
P.S.
Non è ancora disponibile nel gestore librerie "ufficiale" perché voglio prima fare un po' di "rodaggio"