Indholdsfortegnelse:

ESP8266 og ESP32 Med WiFiManager: 10 trin
ESP8266 og ESP32 Med WiFiManager: 10 trin

Video: ESP8266 og ESP32 Med WiFiManager: 10 trin

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

Kender du WiFiManager? Det er et bibliotek, der fungerer som en trådløs forbindelsesadministrator, og med det har vi en lettere måde at konfigurere både et adgangspunkt og en station. Jeg har modtaget flere forslag til at diskutere dette emne; så i dag vil jeg introducere dig til dette bibliotek og dets funktioner. Jeg vil også demonstrere brugen af den med både ESP32 og ESP8266.

Trin 1: PINOUT

PINOUT
PINOUT

Her viser jeg PINOUT for de to enheder, som vi vil bruge:

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

Trin 2: WiFiManager

WiFiManager er virkelig intet mere end et bibliotek skrevet oven på WiFi.h for nem håndtering af trådløse forbindelser. Husk, at med det har vi en større mulighed for at konfigurere både et adgangspunkt og en station. Til Stationstilstand konfigurerer vi via en portal i browseren.

Nogle funktioner:

• Det afhænger af automatisk forbindelse

• Initialisering af ikke-automatisk konfigurationsportal

• Fungerer selektivt i dobbelt tilstand

Trin 3: Sådan fungerer det

Hvordan det virker
Hvordan det virker
Hvordan det virker
Hvordan det virker

ESP starter en WiFi-konfigurationsportal, når den er tilsluttet, og gemmer konfigurationsdata i ikke-flygtig hukommelse. Efterfølgende starter konfigurationsportalen kun igen, hvis der trykkes på en knap i ESP -modulet.

Her kan du kontrollere konfigurationsforløbet og følge dette trin for trin:

1. Brug en hvilken som helst WiFi-aktiveret enhed med en browser, tilslut til det nyoprettede adgangspunkt og indtast adressen 192.168.4.1.

2. På skærmen har du to muligheder for at oprette forbindelse til et eksisterende netværk:

• Konfigurer WiFi

• Konfigurer WiFi (ingen scanning)

3. Vælg et af netværkene, og indtast adgangskoden (hvis det er nødvendigt). Gem derefter og vent på, at ESP genstarter.

4. I slutningen af opstarten forsøger ESP at oprette forbindelse til det gemte netværk. Hvis du ikke kan gøre dette, aktiverer du et adgangspunkt.

Trin 4: Biblioteker

Biblioteker
Biblioteker

Tilføj bibliotek "WifiManager-ESP32".

Gå til https://github.com/zhouhan0126/WIFIMANAGER-ESP32, og download biblioteket.

Pak filen ud, og indsæt den i biblioteksmappen i Arduino IDE.

C: / Programfiler (x86) / Arduino / biblioteker

Tilføj "DNSServer-ESP32" -bibliotek.

Gå til https://github.com/zhouhan0126/DNSServer---esp32 linket og download biblioteket.

Pak filen ud, og indsæt den i biblioteksmappen i Arduino IDE.

C: / Programfiler (x86) / Arduino / biblioteker

Tilføj "WebServer-ESP32" -bibliotek.

Gå til https://github.com/zhouhan0126/WebServer-esp32 linket og download biblioteket.

Pak filen ud, og indsæt den i biblioteksmappen i Arduino IDE.

C: / Programfiler (x86) / Arduino / biblioteker

Bemærk:

WiFiManager-ESP32-biblioteket har allerede de indstillinger, der fungerer med ESP8266, så vi vil kun bruge dette i stedet for to WiFiManager-libs (en for hver type chip).

Som vi vil se senere, er ESP8266WiFi og ESP8266WebServer biblioteker, som vi ikke behøver at downloade, fordi de allerede kommer, når vi installerer ESP8266 i Arduino IDE.

Trin 5: Funktioner

Funktioner
Funktioner
Funktioner
Funktioner
Funktioner
Funktioner

Her er nogle funktioner, som WiFiManager tilbyder os.

1. autoConnect

AutoConnect -funktionen er ansvarlig for oprettelse af et adgangspunkt. Vi kan bruge det på tre måder.

• autoConnect ("netværksnavn", "adgangskode"); - opretter et netværk med det definerede navn og adgangskode.

• autoConnect ("netværksnavn"); - opretter et åbent netværk med det definerede navn.

• autoConnect (); - opretter et åbent og automatisk navngivet netværk med navnet 'ESP' + chipID.

2. startConfigPortal

StartConfigPortal -funktionen er ansvarlig for at oprette et adgangspunkt uden at forsøge at oprette forbindelse til et tidligere gemt netværk.

• startConfigPortal ("netværksnavn", "adgangskode"); - opretter et netværk med det definerede navn og adgangskode.

• startConfigPortal (); - opretter et åbent og automatisk navngivet netværk med navnet 'ESP' + chipID.

3. getConfigPortalSSID

Returnerer portalens SSID (adgangspunkt)

4. getSSID

Dette returnerer SSID for det netværk, som det er forbundet til.

5. getPassword

Dette returnerer adgangskoden til det netværk, som det er forbundet til.

6. setDebugOutput

SetDebugOutput -funktionen er ansvarlig for udskrivning af fejlfindingsmeddelelser på den serielle skærm. Disse meddelelser er allerede defineret i biblioteket. Når du går igennem funktionerne, udskrives dataene.

Denne funktion er som standard indstillet til SAND. Hvis du vil deaktivere meddelelserne, skal du blot indstille funktionen til FALSK.

7. setMinimumSignalQuality

Funktionen setMinimumSignalQuality er ansvarlig for filtrering af netværk baseret på signalkvalitet. Som standard viser WiFiManager ikke logonnetværk under 8%.

8. setRemoveDuplicateAPs

Funktionen setRemoveDuplicateAPs er ansvarlig for at fjerne netværksdubletter.

Som standard er den indstillet til SAND.

9. setAPStaticIPConfig

SetAPStaticIPConfig -funktionen er ansvarlig for at indstille de statiske adresseindstillinger, når den er i adgangspunkttilstand.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Funktionen setSTAStaticIPConfig er ansvarlig for indstilling af de statiske adresseindstillinger i stationstilstand.

(IP, GATEWAY, SUBNET)

Du skal tilføje kommandoen, før autoConnect !!!

11. setAPCallback

SetAPCallback -funktionen er ansvarlig for at informere dig om, at AP -tilstand er startet.

Parameteren er en funktion, der skal oprettes for at angive den som et tilbagekald;

12. setSaveConfigCallback

Funktionen setSaveConfigCallback er ansvarlig for at informere dig om, at en ny konfiguration er blevet gemt, og forbindelsen er gennemført.

Parameteren er en funktion, der skal oprettes, og angiver dette som en allback.

Du skal tilføje kommandoen, før autoConnect !!!

Trin 6: Montering

montage
montage

Eksempel

I vores eksempel opretter vi et adgangspunkt med ESP (koden tjener både ESP8266 og ESP32). Efter oprettelsen af AP får vi adgang til portalen via IP 192.168.4.1 (som er standard for at få adgang til den). Så lad os få de tilgængelige netværk, vælg et og gem. Derfra vil ESP genstarte og forsøge at oprette forbindelse til det, og derefter fungerer det som en station og ikke længere som et adgangspunkt.

Når du er gået i stationstilstand, kan du kun få ESP til at vende tilbage til adgangspunkttilstand via knappen.

Trin 7: Kode

Biblioteker

Lad os først definere de biblioteker, vi vil bruge.

Bemærk, at vi har #if definerede, #else og #endif kommandoer. De er betinget af at inkludere nødvendige biblioteker vedrørende chippen. Denne del er ekstremt vigtig for at køre den samme kode på både ESP8266 og ESP32.

#if defineret (ESP8266)

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

#if defineret (ESP8266)

#include // Lokal WebServer, der bruges til at betjene konfigurationsportalen

#andet

#include // Lokal DNS-server, der bruges til at omdirigere alle anmodninger til konfigurationsportalen (https://github.com/zhouhan0126/DNSServer---esp32)

#Afslut Hvis

#include // Lokal WebServer, der bruges til at betjene konfigurationsportalen (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Trin 8: Opsætning

I opsætningen konfigurerer vi vores WiFiManager på den enkleste måde. Lad os bare definere tilbagekald og oprette netværket.

const int PIN_AP = 2;

ugyldig opsætning () {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 (); // callback para quando entra em modo de configuração 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"); }

Trin 9: Sløjfe

I sløjfen læser vi knappenålen for at se, om der er trykket på den, og derefter vil vi kalde metoden for at genaktivere AP-tilstanden.

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.restart (); forsinkelse (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Når du trykker på knappen, forlader ESP stationstilstand og åbner dit adgangspunkt og portal.

Husk, at vi ikke bruger kommandoen resetSettings (). Indstillingerne gemmes stadig til næste gang ESP starter.

Trin 10: Tilbagekald

Tilbagekaldsfunktionerne, der er forbundet med hændelser, tjener til, at du har det nøjagtige tidspunkt for en operation, i vores tilfælde, når du går ind i AP -tilstand og Station -tilstand. Vi kan derefter implementere en ønsket rutine, f.eks. At hente SSID fra det tilsluttede netværk.

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

void configModeCallback (WiFiManager *myWiFiManager) {// Serial.println ("Angivet konfigurationstilstand"); 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

}

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

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

Anbefalede: