INHOUDSOPGAWE:

ESP8266 en ESP32 Met WiFiManager: 10 stappe
ESP8266 en ESP32 Met WiFiManager: 10 stappe

Video: ESP8266 en ESP32 Met WiFiManager: 10 stappe

Video: ESP8266 en ESP32 Met WiFiManager: 10 stappe
Video: WiFiManager with ESP32 - Stop Hard-coding WiFi Credentials! 2024, Julie
Anonim
Image
Image
PINOUT
PINOUT

Is u bekend met WiFiManager? Dit is 'n biblioteek wat dien as 'n bestuurder vir draadlose verbindings, en daarmee het ons 'n makliker manier om 'n toegangspunt en 'n stasie op te stel. Ek het verskeie voorstelle ontvang om hierdie onderwerp te bespreek; so ek stel u vandag bekend aan hierdie biblioteek en die funksies daarvan. Ek sal ook 'n demonstrasie toon van die gebruik daarvan met beide ESP32 en ESP8266.

Stap 1: PINOUT

PINOUT
PINOUT

Hier wys ek die PINOUT van die twee toestelle wat ons sal gebruik:

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

Stap 2: WiFiManager

Die WiFiManager is eintlik niks anders nie as 'n biblioteek wat bo -op WiFi.h geskryf is vir maklike bestuur van draadlose verbindings. Onthou dat ons daarmee 'n groter funksie het om 'n toegangspunt en 'n stasie op te stel. Vir die stasie -modus konfigureer ons via 'n portaal in die blaaier.

Enkele kenmerke:

• Dit hang af van outomatiese verbinding

• Initialisering van nie-outomatiese konfigurasieportaal

• Werk selektief in dubbele modus

Stap 3: Hoe dit werk

Hoe dit werk
Hoe dit werk
Hoe dit werk
Hoe dit werk

Die ESP sal 'n WiFi-konfigurasieportaal begin wanneer dit gekoppel is en die konfigurasiedata in die nie-vlugtige geheue stoor. Vervolgens sal die konfigurasieportaal eers weer begin as 'n knoppie in die ESP -module gedruk word.

Hier kan u die konfigurasievloei nagaan en hierdie stap vir stap volg:

1. Maak 'n verbinding met die nuutgeskepte toegangspunt met 'n WiFi-geaktiveerde toestel met 'n blaaier en voer die adres 192.168.4.1 in.

2. Op die skerm het u twee opsies om aan te sluit op 'n bestaande netwerk:

• Stel WiFi op

• Stel WiFi op (geen skandering nie)

3. Kies een van die netwerke en voer die wagwoord in (indien nodig). Stoor dan en wag totdat die ESP weer begin.

4. Aan die einde van die opstart probeer ESP om aan te sluit op die gestoorde netwerk. As u dit nie kan doen nie, aktiveer u 'n toegangspunt.

Stap 4: Biblioteke

Biblioteke
Biblioteke

Voeg biblioteek "WifiManager-ESP32" by.

Gaan na https://github.com/zhouhan0126/WIFIMANAGER-ESP32 en laai die biblioteek af.

Pak die lêer uit en plak dit in die biblioteekmap van die Arduino IDE.

C: / Programlêers (x86) / Arduino / biblioteke

Voeg 'DNSServer-ESP32' biblioteek by.

Gaan na die https://github.com/zhouhan0126/DNSServer---esp32 skakel en laai die biblioteek af.

Pak die lêer uit en plak dit in die biblioteekmap van die Arduino IDE.

C: / Programlêers (x86) / Arduino / biblioteke

Voeg 'WebServer-ESP32' biblioteek by.

Gaan na die https://github.com/zhouhan0126/WebServer-esp32-skakel en laai die biblioteek af.

Pak die lêer uit en plak dit in die biblioteekmap van die Arduino IDE.

C: / Programlêers (x86) / Arduino / biblioteke

Let wel:

Die WiFiManager-ESP32-biblioteek het reeds die instellings wat met ESP8266 werk, dus ons sal dit slegs gebruik in plaas van twee WiFiManager-libs (een vir elke tipe chip).

Soos ons later sal sien, is ESP8266WiFi en ESP8266WebServer biblioteke wat ons nie hoef af te laai nie, want dit kom reeds wanneer ons ESP8266 in die Arduino IDE installeer.

Stap 5: Funksies

Funksies
Funksies
Funksies
Funksies
Funksies
Funksies

Hier is 'n paar funksies wat die WiFiManager ons bied.

1. outomatiese verbinding

Die autoConnect -funksie is verantwoordelik vir die skep van 'n toegangspunt. Ons kan dit op drie maniere gebruik.

• autoConnect ("netwerknaam", "wagwoord"); - skep 'n netwerk met die gedefinieerde naam en wagwoord.

• autoConnect ("netwerknaam"); - skep 'n oop netwerk met die gedefinieerde naam.

• autoConnect (); - skep 'n oop en outomaties genoemde netwerk met die naam 'ESP' + chipID.

2. startConfigPortal

Die startConfigPortal -funksie is verantwoordelik vir die skep van 'n toegangspunt sonder om aan te sluit by 'n netwerk wat voorheen gestoor is.

• startConfigPortal ("netwerknaam", "wagwoord"); - skep 'n netwerk met die gedefinieerde naam en wagwoord.

• startConfigPortal (); - skep 'n oop en outomaties genoemde netwerk met die naam 'ESP' + chipID.

3. getConfigPortalSSID

Wys die SSID van die portaal (toegangspunt)

4. getSSID

Dit gee die SSID terug van die netwerk waarmee dit gekoppel is.

5. getPassword

Dit gee die wagwoord van die netwerk waarmee dit gekoppel is, terug.

6. setDebugOutput

Die setDebugOutput -funksie is verantwoordelik vir die druk van ontfoutingsboodskappe op die seriële monitor. Hierdie boodskappe is reeds in die biblioteek gedefinieer. As u deur die funksies gaan, word die data gedruk.

Hierdie funksie is standaard op WAAR gestel. As u die boodskappe wil deaktiveer, stel die funksie eenvoudig op ONWAAR.

7. setMinimumSignalQuality

Die setMinimumSignalQuality -funksie is verantwoordelik vir die filter van netwerke gebaseer op seinkwaliteit. By verstek wys WiFiManager nie aanmeldnetwerke onder 8%nie.

8. setRemoveDuplicateAPs

Die setRemoveDuplicateAPs -funksie is verantwoordelik vir die verwydering van netwerkduplikate.

By verstek is dit op WAAR gestel.

9. setAPStaticIPConfig

Die setAPStaticIPConfig -funksie is verantwoordelik vir die instelling van die statiese adresinstellings in die toegangspuntmodus.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Die funksie setSTAStaticIPConfig is verantwoordelik vir die instelling van die statiese adresinstellings in die stasie -modus.

(IP, GATEWAY, SUBNET)

U moet die opdrag byvoeg voordat autoConnect !!!

11. setAPCallback

Die setAPCallback -funksie is verantwoordelik om u in kennis te stel dat die AP -modus begin het.

Die parameter is 'n funksie wat geskep moet word om dit as 'n terugbel aan te dui;

12. setSaveConfigCallback

Die setSaveConfigCallback -funksie is verantwoordelik om u in kennis te stel dat 'n nuwe konfigurasie gestoor is en dat die verbinding suksesvol voltooi is.

Die parameter is 'n funksie om te skep en dui dit aan as 'n allback.

U moet die opdrag byvoeg voordat autoConnect !!!

Stap 6: Montering

Vergadering
Vergadering

Voorbeeld

In ons voorbeeld sal ons 'n toegangspunt met ESP skep (die kode dien beide ESP8266 en ESP32). Na die oprigting van die AP, kry ons toegang tot die portaal via IP 192.168.4.1 (wat die standaard is om toegang daartoe te verkry). Laat ons dus die beskikbare netwerke kry, kies een en stoor. Van daar af sal die ESP weer begin en probeer om daaraan te koppel, en dan werk dit as 'n stasie en nie meer as 'n toegangspunt nie.

Nadat u die stasie -modus betree het, kan u slegs deur die knoppie die ESP na die toegangspuntmodus laat terugkeer.

Stap 7: Kode

Biblioteke

Laat ons eers die biblioteke definieer wat ons sal gebruik.

Let daarop dat ons #if gedefinieer, #else, en #endif opdragte het. Dit is voorwaardelik dat hulle die nodige biblioteke met betrekking tot die skyfie insluit. Hierdie deel is uiters belangrik om dieselfde kode op beide ESP8266 en ESP32 uit te voer.

#as gedefinieer (ESP8266)

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

#as gedefinieer (ESP8266)

#include // Local WebServer wat gebruik word om die konfigurasieportaal te bedien

#else

#include // Plaaslike DNS-bediener wat gebruik word om alle versoeke na die konfigurasieportaal te herlei (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include // Local WebServer wat gebruik word om die konfigurasieportaal te bedien (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (OORSPRONKLIK)

Stap 8: Opstel

In die opstel stel ons ons WiFiManager op die eenvoudigste manier op. Laat ons net die terugbelle definieer en die netwerk skep.

const int PIN_AP = 2;

ongeldige opstelling () {Serial.begin (9600); pinMode (PIN_AP, INPUT); // declaração do objeto wifiManager WiFiManager wifiManager;

// utilizando esse comando, as configurações são apagadas da memória // caso tiver salvo alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings (); // terugbel vir die konfigurasie van AP wifiManager.setAPCallback (configModeCallback); // terugbel vir 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"); }

Stap 9: Lus

In die lus sal ons die knoppiespen lees om te sien of dit ingedruk is, en dan bel ons die metode om die AP-modus weer in te skakel.

leemte -lus () {

WiFiManager wifiManager; // sien o botão foi pressionado if (digitalRead (PIN_AP) == HOOG) {Serial.println ("resetar"); // tenta abrir o portal if (! wifiManager.startConfigPortal ("ESP_AP", "12345678")) {Serial.println ("Falha ao conectar"); vertraging (2000); ESP.start (); vertraging (1000); } Serial.println ("Conectou ESP_AP !!!"); }

As u op die knoppie druk, verlaat ESP die stasie -modus en maak u toegangspunt en portaal oop.

Onthou dat ons nie die command resetSettings () gebruik nie. Die instellings word steeds gestoor vir die volgende keer dat die ESP opstart.

Stap 10: terugbel

Die terugbelfunksies, wat verband hou met gebeurtenisse, dien vir u om die presiese oomblik van 'n operasie te hê, in ons geval in die AP -modus en die stasie -modus. Ons kan dan die gewenste roetine implementeer, soos om byvoorbeeld die SSID uit die gekoppelde netwerk te haal.

// terugbel, wat aanduiding is van ESP, het geen AP -modus nie

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("Opgaande konfigurasiemodus"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP Serial.println (myWiFiManager-> getConfigPortalSSID ()); // imprime of SSID criado da rede

}

// terugbel na indika wat salvamos uma nova rede para se conectar (modo estação)

void saveConfigCallback () {// Serial.println ("moet konfig opslaan"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // tydsberekening van IP na AP}

Aanbeveel: