Sommario:

ESP8266 ed ESP32 con WiFiManager: 10 passaggi
ESP8266 ed ESP32 con WiFiManager: 10 passaggi

Video: ESP8266 ed ESP32 con WiFiManager: 10 passaggi

Video: ESP8266 ed ESP32 con WiFiManager: 10 passaggi
Video: [E-3]ESP8266 codes on ESP32 | HTTP Client | WiFi Multi | IoT Button | Data Monitoring | ESP32 Series 2024, Dicembre
Anonim
Image
Image
PINOUT
PINOUT

Conosci WiFiManager? È una libreria che funge da gestore di connessione wireless e, con essa, abbiamo un modo più semplice per configurare sia un punto di accesso che una stazione. Ho ricevuto diversi suggerimenti per discutere questo argomento; quindi oggi vi presenterò questa libreria e le sue funzioni. Farò anche una dimostrazione del suo utilizzo sia con ESP32 che con ESP8266.

Passaggio 1: PINOUT

PINOUT
PINOUT

Qui mostro il PINOUT dei due dispositivi che utilizzeremo:

  • NodeMCU ESP-12E
  • NodeMCU ESP-WROOM-32

Passaggio 2: WiFiManager

Il WiFiManager non è altro che una libreria scritta sopra WiFi.h per una facile gestione delle connessioni wireless. Ricorda che con esso, abbiamo una maggiore facilità per configurare sia un punto di accesso che una stazione. Per la modalità Station, configuriamo tramite un portale nel browser.

Alcune caratteristiche:

• Dipende dalla connettività automatica

• Inizializzazione del portale di configurazione non automatica

• Funziona in modo selettivo in modalità doppia

Passaggio 3: come funziona

Come funziona
Come funziona
Come funziona
Come funziona

L'ESP avvierà un portale di configurazione WiFi quando connesso e salverà i dati di configurazione nella memoria non volatile. Successivamente, il portale di configurazione si riavvierà solo se viene premuto un pulsante nel modulo ESP.

Qui puoi controllare il flusso di configurazione e seguire questo passo dopo passo:

1. Utilizzando un qualsiasi dispositivo abilitato WiFi con un browser, connettersi al punto di accesso appena creato e inserire l'indirizzo 192.168.4.1.

2. Sullo schermo avrai due opzioni per connetterti a una rete esistente:

• Configura WiFi

• Configura WiFi (nessuna scansione)

3. Scegli una delle reti e inserisci la password (se necessaria). Quindi salvare e attendere il riavvio dell'ESP.

4. Al termine dell'avvio, ESP tenta di connettersi alla rete salvata. Se non puoi farlo, abiliterai un punto di accesso.

Passaggio 4: biblioteche

Biblioteche
Biblioteche

Aggiungi la libreria "WifiManager-ESP32".

Vai su https://github.com/zhouhan0126/WIFIMANAGER-ESP32 e scarica la libreria.

Decomprimi il file e incollalo nella cartella delle librerie dell'IDE di Arduino.

C: / Programmi (x86) / Arduino / librerie

Aggiungi la libreria "DNSServer-ESP32".

Vai al link https://github.com/zhouhan0126/DNSServer---esp32 e scarica la libreria.

Decomprimi il file e incollalo nella cartella delle librerie dell'IDE di Arduino.

C: / Programmi (x86) / Arduino / librerie

Aggiungi la libreria "WebServer-ESP32".

Vai al link https://github.com/zhouhan0126/WebServer-esp32 e scarica la libreria.

Decomprimi il file e incollalo nella cartella delle librerie dell'IDE di Arduino.

C: / Programmi (x86) / Arduino / librerie

Nota:

La libreria WiFiManager-ESP32 ha già le impostazioni che funzionano con ESP8266, quindi useremo solo questa, invece di due librerie WiFiManager (una per ogni tipo di chip).

Come vedremo in seguito, ESP8266WiFi e ESP8266WebServer sono librerie che non abbiamo bisogno di scaricare, perché arrivano già quando installiamo ESP8266 nell'IDE di Arduino.

Passaggio 5: funzioni

Funzioni
Funzioni
Funzioni
Funzioni
Funzioni
Funzioni

Ecco alcune funzioni che WiFiManager ci offre.

1. Connessione automatica

La funzione autoConnect è responsabile della creazione di un punto di accesso. Possiamo usarlo in tre modi.

• autoConnect ("nome rete", "password"); - crea una rete con il nome e la password definiti.

• autoConnect ("nome rete"); - crea una rete aperta con il nome definito.

• connessione automatica (); - crea una rete aperta e denominata automaticamente con il nome "ESP" + chipID.

2. startConfigPortal

La funzione startConfigPortal è responsabile della creazione di un punto di accesso senza tentare di connettersi a una rete precedentemente salvata.

• startConfigPortal ("nome rete", "password"); - crea una rete con il nome e la password definiti.

• startConfigPortal (); - crea una rete aperta e denominata automaticamente con il nome "ESP" + chipID.

3. getConfigPortalSSID

Restituisce l'SSID del portale (Access Point)

4. getSSID

Questo restituisce l'SSID della rete a cui è connesso.

5. ottieni la password

Restituisce la password della rete a cui è connesso.

6. setDebugOutput

La funzione setDebugOutput è responsabile della stampa dei messaggi di debug sul monitor seriale. Questi messaggi sono già definiti nella libreria. Durante l'esecuzione delle funzioni, i dati verranno stampati.

Per impostazione predefinita, questa funzione è impostata su TRUE. Se vuoi disabilitare i messaggi, imposta semplicemente la funzione su FALSE.

7. setMinimumSignalQuality

La funzione setMinimumSignalQuality è responsabile del filtraggio delle reti in base alla qualità del segnale. Per impostazione predefinita, WiFiManager non mostrerà le reti di accesso inferiori all'8%.

8. setRemoveDuplicateAPs

La funzione setRemoveDuplicateAPs è responsabile della rimozione dei duplicati di rete.

Per impostazione predefinita è impostato su TRUE.

9. setAPStaticIPConfig

La funzione setAPStaticIPConfig è responsabile dell'impostazione delle impostazioni dell'indirizzo statico in modalità punto di accesso.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

La funzione setSTAStaticIPConfig è responsabile dell'impostazione delle impostazioni dell'indirizzo statico in modalità stazione.

(IP, GATEWAY, SUBNET)

Devi aggiungere il comando prima di autoConnect!!!

11. setAPCallback

La funzione setAPCallback è responsabile di informarti che la modalità AP è stata avviata.

Il parametro è una funzione che deve essere creata per indicarlo come callback;

12. setSaveConfigCallback

La funzione setSaveConfigCallback è responsabile di informarti che una nuova configurazione è stata salvata e che la connessione è stata completata con successo.

Il parametro è una funzione da creare e lo indica come allback.

Devi aggiungere il comando prima di autoConnect !!!

Passaggio 6: assemblaggio

Assemblea
Assemblea

Esempio

Nel nostro esempio, creeremo un Access Point con ESP (il codice servirà sia ESP8266 che ESP32). Dopo la creazione dell'AP, accederemo al portale tramite IP 192.168.4.1 (che è l'impostazione predefinita per accedervi). Quindi prendiamo le reti disponibili, selezioniamone una e salviamo. Da lì, l'ESP si riavvierà e tenterà di connettersi ad esso, quindi funzionerà come stazione e non più come punto di accesso.

Dopo essere entrati in modalità stazione, è possibile far tornare l'ESP in modalità Access Point solo tramite il pulsante.

Passaggio 7: codice

Biblioteche

Per prima cosa definiamo le librerie che utilizzeremo.

Nota che abbiamo i comandi #if definito, #else e #endif. Sono condizionati a includere le librerie necessarie relative al chip. Questa parte è estremamente importante per eseguire lo stesso codice sia su ESP8266 che su ESP32.

#se definito(ESP8266)

#include //ESP8266 Core WiFi Library #else #include //ESP32 Core WiFi Library #endif

#se definito(ESP8266)

#include //Local WebServer utilizzato per servire il portale di configurazione

#altro

#include //Server DNS locale utilizzato per reindirizzare tutte le richieste al portale di configurazione (https://github.com/zhouhan0126/DNSServer---esp32)

#finisci se

#include //Local WebServer utilizzato per servire il portale di configurazione (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINALE)

Passaggio 8: configurazione

Nella configurazione, stiamo configurando il nostro WiFiManager nel modo più semplice. Definiamo solo i callback e creiamo la rete.

const int PIN_AP = 2;

void setup() { Serial.begin(9600); pinMode(PIN_AP, INPUT); //dichiarazione dell'oggetto wifiManager WiFiManager wifiManager;

//utilizando esse comando, as configurações são apagadas da memória //caso tiver salva alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings(); //callback per quando si entra in modalità di configurazione dell'AP wifiManager.setAPCallback(configModeCallback); //callback para quando se conecta em uma rede, ou seja, quando passa a trabalhar em modo estação wifiManager.setSaveConfigCallback(saveConfigCallback); //cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect("ESP_AP", "12345678"); }

Passaggio 9: ciclo

Nel loop, leggeremo il pin del pulsante per vedere se è stato premuto, quindi chiameremo il metodo per riattivare la modalità AP.

ciclo vuoto() {

WiFiManager wifiManager; //se o botão per pressionado if (digitalRead(PIN_AP) == HIGH) { Serial.println("resetar"); //tenta abrir o portal if(!wifiManager.startConfigPortal("ESP_AP", "12345678")){ Serial.println("Falha ao conectar"); ritardo (2000); ESP.restart(); ritardo(1000); } Serial.println("Conectou ESP_AP!!!"); }

Quando si preme il pulsante, ESP uscirà dalla modalità Station e aprirà il punto di accesso e il portale.

Ricorda che non usiamo il comando resetSettings(). Le impostazioni vengono ancora salvate per il prossimo avvio dell'ESP.

Passaggio 10: Richiamate

Le funzioni di callback, che sono associate agli eventi, servono per avere il momento esatto di un'operazione, nel nostro caso, entrando in modalità AP e modalità Station. Possiamo quindi implementare alcune routine desiderate, come ad esempio il recupero dell'SSID dalla rete connessa.

//callback que indica que o ESP entrou no modo AP

void configModeCallback (WiFiManager *myWiFiManager) { // Serial.println("Inserita la modalità di configurazione"); Serial.println("Invio senza modalità di configurazione"); Serial.println(WiFi.softAPIP()); //imprime o IP do AP Serial.println(myWiFiManager->getConfigPortalSSID()); //imprime o SSID criado da rede

}

//callback que indica que salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () { // Serial.println("Dovrebbe salvare la configurazione"); Serial.println("Configurazione salva"); Serial.println(WiFi.softAPIP()); //imprime o IP do AP }

Consigliato: