Taula de continguts:

ESP8266 i ESP32 amb WiFiManager: 10 passos
ESP8266 i ESP32 amb WiFiManager: 10 passos

Vídeo: ESP8266 i ESP32 amb WiFiManager: 10 passos

Vídeo: ESP8266 i ESP32 amb WiFiManager: 10 passos
Vídeo: Como Instalar o ESP32 no IDE do Arduino ? - Vídeo #11 2024, Desembre
Anonim
Image
Image
PINOUT
PINOUT

Coneixeu WiFiManager? És una biblioteca que serveix com a gestor de connexions sense fils i, amb ella, tenim una manera més senzilla de configurar tant un punt d’accés com una estació. He rebut diversos suggeriments per debatre sobre aquest tema; així que avui us presentaré aquesta biblioteca i les seves funcions. També faré una demostració del seu ús tant amb ESP32 com ESP8266.

Pas 1: PINOUT

PINOUT
PINOUT

Aquí mostro el PINOUT dels dos dispositius que farem servir:

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

Pas 2: WiFiManager

El WiFiManager no és res més que una biblioteca escrita a la part superior de WiFi.h per facilitar la gestió de les connexions sense fils. Recordeu que, amb ell, tenim una facilitat més gran per configurar tant un punt d’accés com una estació. Per al mode Estació, configurem mitjançant un portal al navegador.

Algunes característiques:

• Depèn de la connectivitat automàtica

• Inicialització del portal de configuració no automàtic

• Funciona de manera selectiva en mode dual

Pas 3: Com funciona

Com funciona
Com funciona
Com funciona
Com funciona

L'ESP iniciarà un portal de configuració de WiFi quan estigui connectat i desarà les dades de configuració en memòria no volàtil. Posteriorment, el portal de configuració només començarà de nou si es prem un botó al mòdul ESP.

Aquí podeu comprovar el flux de configuració i seguir aquest pas a pas:

1. Utilitzant qualsevol dispositiu habilitat per a WiFi amb un navegador, connecteu-vos al punt d'accés creat recentment i introduïu l'adreça 192.168.4.1.

2. A la pantalla tindreu dues opcions per connectar-vos a una xarxa existent:

• Configurar WiFi

• Configurar WiFi (sense escaneig)

3. Trieu una de les xarxes i introduïu la contrasenya (si cal). A continuació, deseu i espereu que es reiniciï l'ESP.

4. Al final de l'arrencada, ESP intenta connectar-se a la xarxa desada. Si no ho podeu fer, habilitareu un punt d’accés.

Pas 4: biblioteques

Biblioteques
Biblioteques

Afegiu la biblioteca "WifiManager-ESP32".

Aneu a https://github.com/zhouhan0126/WIFIMANAGER-ESP32 i descarregueu la biblioteca.

Descomprimiu el fitxer i enganxeu-lo a la carpeta de biblioteques de l'IDE Arduino.

C: / Program Files (x86) / Arduino / libraries

Afegiu la biblioteca "DNSServer-ESP32".

Aneu a l’enllaç https://github.com/zhouhan0126/DNSServer---esp32 i descarregueu la biblioteca.

Descomprimiu el fitxer i enganxeu-lo a la carpeta de biblioteques de l'IDE Arduino.

C: / Program Files (x86) / Arduino / libraries

Afegiu la biblioteca "WebServer-ESP32".

Aneu a l’enllaç https://github.com/zhouhan0126/WebServer-esp32 i descarregueu la biblioteca.

Descomprimiu el fitxer i enganxeu-lo a la carpeta de biblioteques de l'IDE Arduino.

C: / Program Files (x86) / Arduino / libraries

Nota:

La biblioteca WiFiManager-ESP32 ja té la configuració que funciona amb ESP8266, de manera que només l’utilitzarem en lloc de dues llibres WiFiManager (una per a cada tipus de xip).

Com veurem més endavant, ESP8266WiFi i ESP8266WebServer són biblioteques que no necessitem descarregar, perquè ja vénen quan instal·lem ESP8266 a l’IDE Arduino.

Pas 5: Funcions

Funcions
Funcions
Funcions
Funcions
Funcions
Funcions

Aquí hi ha algunes funcions que ens ofereix el WiFiManager.

1. autoConnect

La funció d’autoconnexió s’encarrega de crear un punt d’accés. El podem utilitzar de tres maneres.

• autoConnect ("nom de xarxa", "contrasenya"); - crea una xarxa amb el nom i la contrasenya definits.

• autoConnect ("nom de xarxa"); - crea una xarxa oberta amb el nom definit.

• autoConnect (); - crea una xarxa oberta i anomenada automàticament amb el nom 'ESP' + chipID.

2. startConfigPortal

La funció startConfigPortal s’encarrega de crear un punt d’accés sense intentar connectar-se a una xarxa desada prèviament.

• startConfigPortal ("nom de xarxa", "contrasenya"); - crea una xarxa amb el nom i la contrasenya definits.

• startConfigPortal (); - crea una xarxa oberta i anomenada automàticament amb el nom 'ESP' + chipID.

3. getConfigPortalSSID

Retorna l'SSID del portal (punt d'accés)

4. getSSID

Retorna el SSID de la xarxa a la qual està connectat.

5. getPassword

Retorna la contrasenya de la xarxa a la qual està connectat.

6. setDebugOutput

La funció setDebugOutput s’encarrega d’imprimir missatges de depuració al monitor sèrie. Aquests missatges ja estan definits a la biblioteca. A mesura que aneu passant per les funcions, les dades s’imprimiran.

Per defecte, aquesta funció s'estableix en TRUE. Si voleu desactivar els missatges, simplement configureu la funció com a FALS.

7. setMinimumSignalQuality

La funció setMinimumSignalQuality s’encarrega de filtrar les xarxes en funció de la qualitat del senyal. Per defecte, WiFiManager no mostrarà xarxes d'inici de sessió inferiors al 8%.

8. setRemoveDuplicateAPs

La funció setRemoveDuplicateAPs s’encarrega d’eliminar els duplicats de xarxa.

Per defecte, s'estableix en TRUE.

9. setAPStaticIPConfig

La funció setAPStaticIPConfig s’encarrega de configurar la configuració de l’adreça estàtica quan es troba en mode de punt d’accés.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

La funció setSTAStaticIPConfig s’encarrega de configurar la configuració de l’adreça estàtica quan es troba en mode estació.

(IP, GATEWAY, SUBNET)

Heu d'afegir l'ordre abans de connectar-vos automàticament !!!

11. setAPCallback

La funció setAPCallback s’encarrega d’informar-vos que s’ha iniciat el mode AP.

El paràmetre és una funció que s'ha de crear per indicar-lo com a devolució de trucada;

12. setSaveConfigCallback

La funció setSaveConfigCallback s’encarrega d’informar-vos que s’ha desat una nova configuració i que la connexió s’ha completat amb èxit.

El paràmetre és una funció que cal crear i ho indica com un allback.

Heu d'afegir l'ordre abans de connectar-vos automàticament !!!

Pas 6: Muntatge

muntatge
muntatge

Exemple

En el nostre exemple, crearem un punt d’accés amb ESP (el codi servirà tant ESP8266 com ESP32). Després de la creació de l’AP, accedirem al portal mitjançant l’IP 192.168.4.1 (que és el valor per defecte per accedir-hi). Així que anem a obtenir les xarxes disponibles, en seleccionem una i desem. A partir d’aquí, l’ESP es reiniciarà i intentarà connectar-s’hi, i després funcionarà com a estació i ja no com a punt d’accés.

Després d’entrar al mode d’estació, només podeu fer que l’ESP torni al mode de punt d’accés mitjançant el botó.

Pas 7: Codi

Biblioteques

Primer definim les biblioteques que farem servir.

Tingueu en compte que tenim ordres #if definit, #else i #endif. Estan condicionats per incloure les biblioteques necessàries relatives al xip. Aquesta part és extremadament important per executar el mateix codi tant a ESP8266 com a ESP32.

#if definit (ESP8266)

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

#if definit (ESP8266)

#include // Local WebServer utilitzat per publicar el portal de configuració

#else

#include // Servidor DNS local utilitzat per redirigir totes les sol·licituds al portal de configuració (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // Local WebServer utilitzat per publicar el portal de configuració (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Pas 8: Configuració

A la configuració, estem configurant el nostre WiFiManager de la manera més senzilla. Definim només les devolucions de trucades i creem la xarxa.

const int PIN_AP = 2;

configuració nul·la () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // declaració d'objecte wifiManager WiFiManager wifiManager;

// usando esse comando, as configurações são apagadas da memória // caso tiver salvo alguma rede para connectar automaticamente, ela é apagada. // wifiManager.resetSettings (); // callback per quan entra en mode de configuració AP wifiManager.setAPCallback (configModeCallback); // callback para quan se connecta em uma rede, ou seja, quan passa a treballar em modo estação wifiManager.setSaveConfigCallback (saveConfigCallback); // cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect ("ESP_AP", "12345678"); }

Pas 9: bucle

Al bucle, llegirem el pin del botó per veure si s’ha premut i, a continuació, trucarem al mètode per tornar a activar el mode AP.

bucle buit () {

WiFiManager wifiManager; // se o botão foi pressionado if (digitalRead (PIN_AP) == HIGH) {Serial.println ("resetar"); // tenta obrir un portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao connectar"); endarreriment (2000); ESP.restart (); retard (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Quan premeu el botó, ESP sortirà del mode Estació i obrirà el vostre punt d'accés i el portal.

Recordeu que no fem servir l'ordre resetSettings (). La configuració encara es desa per a la propera vegada que arrenca l'ESP.

Pas 10: devolucions de trucada

Les funcions de devolució de trucada, associades a esdeveniments, us serveixen per tenir el moment exacte d’una operació, en el nostre cas, entrant en mode AP i en mode Estació. A continuació, podem implementar la rutina desitjada, com ara recuperar l’SSID de la xarxa connectada, per exemple.

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

void configModeCallback (WiFiManager * myWiFiManager) {// Serial.println ("Mode de configuració introduït"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP IP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // imprime o SSID criado da rede

}

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

void saveConfigCallback () {// Serial.println ("Hauria de desar la configuració"); Serial.println ("Configuració salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Recomanat: