Innholdsfortegnelse:

ESP8266 og ESP32 Med WiFiManager: 10 trinn
ESP8266 og ESP32 Med WiFiManager: 10 trinn

Video: ESP8266 og ESP32 Med WiFiManager: 10 trinn

Video: ESP8266 og ESP32 Med WiFiManager: 10 trinn
Video: WiFiManager with ESP32 - Stop Hard-coding WiFi Credentials! 2024, November
Anonim
Image
Image
PINOUT
PINOUT

Er du kjent med WiFiManager? Det er et bibliotek som fungerer som en trådløs tilkoblingsbehandling, og med det har vi en enklere måte å konfigurere både et tilgangspunkt og en stasjon. Jeg har mottatt flere forslag for å diskutere dette emnet; så i dag vil jeg introdusere deg for dette biblioteket og dets funksjoner. Jeg vil også demonstrere bruken av den med både ESP32 og ESP8266.

Trinn 1: PINOUT

PINOUT
PINOUT

Her viser jeg PINOUT for de to enhetene vi skal bruke:

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

Trinn 2: WiFiManager

WiFiManager er egentlig ikke annet enn et bibliotek skrevet på toppen av WiFi.h for enkel håndtering av trådløse tilkoblinger. Husk at med det har vi et større anlegg for å konfigurere både et tilgangspunkt og en stasjon. For stasjonsmodus konfigurerer vi gjennom en portal i nettleseren.

Noen funksjoner:

• Det avhenger av automatisk tilkobling

• Initialisering av ikke-automatisk konfigurasjonsportal

• Fungerer selektivt i dobbel modus

Trinn 3: Slik fungerer det

Hvordan det fungerer
Hvordan det fungerer
Hvordan det fungerer
Hvordan det fungerer

ESP vil starte en WiFi-konfigurasjonsportal når den er tilkoblet og lagre konfigurasjonsdata i ikke-flyktig minne. Deretter starter konfigurasjonsportalen bare igjen hvis du trykker på en knapp i ESP -modulen.

Her kan du sjekke konfigurasjonsflyten og følge denne trinnvis:

1. Bruk en hvilken som helst WiFi-aktivert enhet med en nettleser, koble til det nyopprettede tilgangspunktet og skriv inn adressen 192.168.4.1.

2. På skjermen har du to alternativer for å koble til et eksisterende nettverk:

• Konfigurer WiFi

• Konfigurer WiFi (ingen skanning)

3. Velg ett av nettverkene og skriv inn passordet (om nødvendig). Lagre deretter og vent til ESP starter på nytt.

4. På slutten av oppstarten prøver ESP å koble seg til det lagrede nettverket. Hvis du ikke kan gjøre dette, aktiverer du et tilgangspunkt.

Trinn 4: Biblioteker

Biblioteker
Biblioteker

Legg til bibliotek "WifiManager-ESP32".

Gå til https://github.com/zhouhan0126/WIFIMANAGER-ESP32 og last ned biblioteket.

Pakk ut filen og lim den inn i bibliotekmappen i Arduino IDE.

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

Legg til "DNSServer-ESP32" -bibliotek.

Gå til https://github.com/zhouhan0126/DNSServer---esp32 lenken og last ned biblioteket.

Pakk ut filen og lim den inn i bibliotekmappen i Arduino IDE.

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

Legg til "WebServer-ESP32" -bibliotek.

Gå til https://github.com/zhouhan0126/WebServer-esp32 lenken og last ned biblioteket.

Pakk ut filen og lim den inn i bibliotekmappen i Arduino IDE.

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

Merk:

WiFiManager-ESP32-biblioteket har allerede innstillingene som fungerer med ESP8266, så vi bruker bare dette, i stedet for to WiFiManager-libs (en for hver type brikke).

Som vi vil se senere, er ESP8266WiFi og ESP8266WebServer biblioteker som vi ikke trenger å laste ned, fordi de allerede kommer når vi installerer ESP8266 i Arduino IDE.

Trinn 5: Funksjoner

Funksjoner
Funksjoner
Funksjoner
Funksjoner
Funksjoner
Funksjoner

Her er noen funksjoner som WiFiManager tilbyr oss.

1. autoConnect

AutoConnect -funksjonen er ansvarlig for å opprette et tilgangspunkt. Vi kan bruke det på tre måter.

• autoConnect ("nettverksnavn", "passord"); - oppretter et nettverk med definert navn og passord.

• autoConnect ("nettverksnavn"); - oppretter et åpent nettverk med det definerte navnet.

• autoConnect (); - oppretter et åpent og automatisk navngitt nettverk med navnet 'ESP' + chipID.

2. startConfigPortal

StartConfigPortal -funksjonen er ansvarlig for å opprette et tilgangspunkt uten å prøve å koble til et tidligere lagret nettverk.

• startConfigPortal ("nettverksnavn", "passord"); - oppretter et nettverk med definert navn og passord.

• startConfigPortal (); - oppretter et åpent og automatisk navngitt nettverk med navnet 'ESP' + chipID.

3. getConfigPortalSSID

Returnerer SSID for portalen (tilgangspunkt)

4. getSSID

Dette returnerer SSID for nettverket det er koblet til.

5. getPassword

Dette returnerer passordet til nettverket det er koblet til.

6. setDebugOutput

SetDebugOutput -funksjonen er ansvarlig for utskrift av feilsøkingsmeldinger på den serielle skjermen. Disse meldingene er allerede definert i biblioteket. Når du går gjennom funksjonene, blir dataene skrevet ut.

Som standard er denne funksjonen satt til TRUE. Hvis du vil deaktivere meldingene, setter du funksjonen til FALSK.

7. setMinimumSignalQuality

SetMinimumSignalQuality -funksjonen er ansvarlig for filtrering av nettverk basert på signalkvalitet. Som standard vil WiFiManager ikke vise påloggingsnettverk under 8%.

8. setRemoveDuplicateAPs

SetRemoveDuplicateAPs -funksjonen er ansvarlig for å fjerne nettverksduplikater.

Som standard er den satt til SANN.

9. setAPStaticIPConfig

SetAPStaticIPConfig -funksjonen er ansvarlig for å angi de statiske adresseinnstillingene i tilgangspunktmodus.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

SetSTAStaticIPConfig -funksjonen er ansvarlig for å angi innstillingene for den statiske adressen i stasjonsmodus.

(IP, GATEWAY, SUBNET)

Du må legge til kommandoen før autoConnect !!!

11. setAPCallback

SetAPCallback -funksjonen er ansvarlig for å informere deg om at AP -modus har startet.

Parameteren er en funksjon som må opprettes for å indikere den som et tilbakeringing;

12. setSaveConfigCallback

SetSaveConfigCallback -funksjonen er ansvarlig for å informere deg om at en ny konfigurasjon er lagret og at tilkoblingen er fullført.

Parameteren er en funksjon som skal opprettes og angir dette som en allback.

Du må legge til kommandoen før autoConnect !!!

Trinn 6: Montering

montering
montering

Eksempel

I vårt eksempel vil vi opprette et tilgangspunkt med ESP (koden vil tjene både ESP8266 og ESP32). Etter at AP er opprettet, får vi tilgang til portalen via IP 192.168.4.1 (som er standard for å få tilgang til den). Så la oss få de tilgjengelige nettverkene, velg et og lagre. Derfra vil ESP starte på nytt og prøve å koble til den, og deretter vil den fungere som en stasjon og ikke lenger som et tilgangspunkt.

Etter at du har angitt stasjonsmodus, kan du få ESP til å gå tilbake til tilgangspunktmodus bare via knappen.

Trinn 7: Kode

Biblioteker

La oss først definere bibliotekene vi skal bruke.

Vær oppmerksom på at vi har kommandoene #if definert, #else og #endif. De er betinget av å inkludere nødvendige biblioteker knyttet til brikken. Denne delen er ekstremt viktig for å kjøre den samme koden på både ESP8266 og ESP32.

#if definert (ESP8266)

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

#if definert (ESP8266)

#include // Lokal WebServer som brukes til å betjene konfigurasjonsportalen

#ellers

#include // Lokal DNS-server som brukes til å omdirigere alle forespørsler til konfigurasjonsportalen (https://github.com/zhouhan0126/DNSServer---esp32)

#slutt om

#include // Lokal WebServer som brukes til å betjene konfigurasjonsportalen (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Trinn 8: Oppsett

I oppsettet konfigurerer vi WiFiManager på den enkleste måten. La oss bare definere tilbakeringingene og lage nettverket.

const int PIN_AP = 2;

ugyldig oppsett () {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 (); // tilbakeringing for en konfigurasjon av 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"); }

Trinn 9: Sløyfe

I løkken vil vi lese knappestiften for å se om den har blitt trykket, og deretter vil vi ringe metoden for å aktivere AP-modusen på nytt.

void loop () {

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

Når du trykker på knappen, forlater ESP stasjonsmodus og åpner tilgangspunktet og portalen.

Husk at vi ikke bruker resetSettings () -kommandoen. Innstillingene lagres fortsatt for neste gang ESP starter.

Trinn 10: Tilbakeringing

Tilbakekallingsfunksjonene, som er knyttet til hendelser, tjener til at du har det eksakte øyeblikket for en operasjon, i vårt tilfelle, går du inn i AP -modus og Stasjonsmodus. Vi kan deretter implementere en ønsket rutine, for eksempel å hente SSID fra det tilkoblede nettverket, for eksempel.

// tilbakeringing som indikerer que o ESP entrou no modo AP

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

}

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

void saveConfigCallback () {// Serial.println ("Skal lagre config"); Serial.println ("Configuração salva"); Serial.println (WiFi.softAPIP ()); // imprime o IP do AP}

Anbefalt: