ESP 32 WROOM - WiFi
Table of Contents
Differenza tra WiFi.h e WIFIManager.h e espwifi.h
- wifi.h: Questa intestazione viene tipicamente utilizzata negli sketch di Arduino quando si lavora con la connettività Wi-Fi su dispositivi come ESP8266 o ESP32. Fornisce funzioni e classi per configurare e gestire le connessioni Wi-Fi nei tuoi progetti Arduino. Ti consente di connettere il tuo dispositivo Arduino a reti Wi-Fi, configurare punti di accesso e svolgere altre attività relative al Wi-Fi.
- WiFiManager.h: WiFiManager è una libreria popolare per Arduino che semplifica il processo di configurazione delle impostazioni Wi-Fi su dispositivi IoT, specialmente quando il dispositivo non dispone di un'interfaccia utente come uno schermo o una tastiera. WiFiManager consente di creare un portale catturato a cui si può accedere attraverso un browser web per inserire le credenziali Wi-Fi. È spesso utilizzato per consentire una configurazione semplice del Wi-Fi su dispositivi come ESP8266 ed ESP32.
- La libreria espwifi.h è una parte fondamentale del framework di sviluppo per ESP8266 e ESP32, che sono famosi microcontroller a basso costo e ad alte prestazioni utilizzati per sviluppare applicazioni IoT (Internet delle cose) e embedded. Questa libreria fornisce un'interfaccia per la gestione delle connessioni Wi-Fi sui dispositivi ESP. Ecco alcuni dei principali aspetti e funzionalità associati alla libreria `espwifi.h`:
- Gestione della Connessione Wi-Fi: La libreria permette di inizializzare, configurare e gestire la connessione Wi-Fi su un dispositivo ESP. Questo include la connessione a reti Wi-Fi esistenti, la creazione di Access Point (AP) Wi-Fi e la gestione delle impostazioni di rete.
- Modalità Operative: Supporta diverse modalità operative, tra cui Station Mode (ST), Soft Access Point Mode (AP), e promiscuous mode, che permette di monitorare tutto il traffico Wi-Fi in una determinata rete.
- Eventi Wi-Fi: La libreria gestisce eventi legati alla connessione Wi-Fi, ad esempio la connessione e la disconnessione da una rete, la ricezione di un indirizzo IP, ecc. Questi eventi sono gestiti utilizzando il sistema di callback.
- Gestione della Sicurezza: Fornisce funzionalità per la configurazione delle opzioni di sicurezza Wi-Fi, come WEP, WPA, WPA2, ecc.
- Configurazione Avanzata: La libreria offre la possibilità di configurare parametri avanzati relativi alla connessione Wi-Fi, tra cui la modalità di risparmio energetico, il controllo della potenza di trasmissione (TX), la selezione del canale, ecc.
- Scansione delle Reti Wi-Fi: Permette di eseguire la scansione delle reti Wi-Fi circostanti e di ottenere informazioni sulle reti disponibili, come l'SSID, la potenza del segnale, l'indirizzo MAC, ecc.
- Gestione delle Impostazioni di Rete: È possibile gestire le impostazioni di rete, inclusi indirizzi IP statici, subnet mask, gateway predefiniti, server DNS, ecc.
- Eventi Personalizzati: La libreria consente agli sviluppatori di registrare callback personalizzati per gestire eventi specifici della connessione Wi-Fi.
- In generale, espwifi.h è una parte essenziale per la connettività Wi-Fi su dispositivi ESP8266 e ESP32 e fornisce un'ampia gamma di funzionalità per configurare e gestire la connessione Wi-Fi. Questo è particolarmente importante quando si sviluppano applicazioni IoT che richiedono una connessione a Internet o una comunicazione in rete wireless.
Metodi di WiFi.h
- WiFi.begin(ssid, password):
- Questo metodo viene utilizzato per connettersi a una rete Wi-Fi. È necessario fornire l'identificatore SSID e la password della rete Wi-Fi a cui ci si desidera connettere.
- WiFi.status(): Restituisce lo stato attuale della connessione Wi-Fi. Può essere utilizzato per verificare se il dispositivo è connesso a una rete Wi-Fi.
- WiFi.localIP(): Restituisce l'indirizzo IP locale assegnato al dispositivo una volta connesso a una rete Wi-Fi.
- WiFi.scanNetworks(): Scansiona le reti Wi-Fi disponibili nell'area circostante e restituisce un elenco delle reti rilevate.
- WiFi.SSID(): Restituisce l'identificatore SSID della rete Wi-Fi a cui il dispositivo è attualmente connesso.
- WiFi.RSSI(): Restituisce il livello del segnale RSSI (Received Signal Strength Indicator) della rete Wi-Fi a cui il dispositivo è connesso. Questo fornisce un'indicazione della qualità della connessione.
- WiFi.mode(): Permette di impostare la modalità di funzionamento della connessione Wi-Fi, ad esempio come client o come punto di accesso (AP).
- WiFi.softAP(ssid, password): Imposta il dispositivo come punto di accesso Wi-Fi (AP). È necessario fornire un SSID e una password per il tuo AP.
- WiFi.beginAP(ssid): Imposta il dispositivo come punto di accesso Wi-Fi senza password. Utile quando si desidera creare un AP aperto.
Il link punta ad un esempio di uso della libreria.
Metodi WIFIManager.h
La libreria "WiFiManager" semplifica la gestione delle connessioni Wi-Fi in Arduino, consentendo agli utenti di configurare facilmente le reti Wi-Fi attraverso un portale Web. Di seguito sono elencati alcuni dei metodi e delle funzioni comuni disponibili nella libreria "WiFiManager":
- autoConnect():Questo è uno dei metodi principali di WiFiManager. Viene utilizzato per creare un portale catturato (captiv portal) che consente agli utenti di configurare le reti Wi-Fi e altre impostazioni senza dover scrivere manualmente l'SSID e la password nel codice. È spesso chiamato nel setup del tuo programma Arduino.
WiFiManager wifiManager; wifiManager.autoConnect("AP-Name");
[@2] resetSettings(): Questo metodo consente di reimpostare tutte le impostazioni di WiFiManager allo stato predefinito. Utile se si desidera consentire all'utente di ripristinare le impostazioni di fabbrica.
wifiManager.resetSettings();
- getSSID() e getPassword():Questi metodi vengono utilizzati per ottenere l'SSID e la password Wi-Fi inseriti dall'utente attraverso il portale catturato.
String ssid = wifiManager.getSSID(); String password = wifiManager.getPassword();
- getParameters(): Restituisce tutti i parametri personalizzati inseriti dall'utente attraverso il portale catturato.
String customParameter = wifiManager.getParameters(0);
- getPortalTimeout() e setPortalTimeout(): Questi metodi permettono di ottenere e impostare il timeout del portale catturato, cioè il tempo massimo in cui l'utente può configurare la connessione Wi-Fi prima che il dispositivo riprenda la normale esecuzione.
unsigned long timeout = wifiManager.getPortalTimeout(); wifiManager.setPortalTimeout(180); // Imposta il timeout a 180 secondi
- setConfigPortalTimeout(): Imposta un timeout per il portale di configurazione. Se il dispositivo si trova in modalità "configurazione" (ad esempio, perché non può connettersi a una rete Wi-Fi), il portale si chiuderà dopo il periodo di timeoutbb specificato.
wifiManager.setConfigPortalTimeout(180); // Imposta il timeout a 180 secondi
- saveParams(): Salva i parametri personalizzati inseriti dall'utente.
wifiManager.saveParams();
- resetSettings(): Reimposta tutte le impostazioni, compresi l'SSID e la password, alle impostazioni di default.
wifiManager.resetSettings();