Innholdsfortegnelse:
Video: ESP8266 og ESP32 Med WiFiManager: 10 trinn
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
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
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
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
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
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
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}