Inhoudsopgave:

ESP8266 en ESP32 met WiFiManager: 10 stappen
ESP8266 en ESP32 met WiFiManager: 10 stappen

Video: ESP8266 en ESP32 met WiFiManager: 10 stappen

Video: ESP8266 en ESP32 met WiFiManager: 10 stappen
Video: WiFiManager with ESP32 - Stop Hard-coding WiFi Credentials! 2024, November
Anonim
Image
Image
PINOUT
PINOUT

Bent u bekend met WiFiManager? Het is een bibliotheek die dienst doet als beheerder van draadloze verbindingen, en daarmee hebben we een eenvoudigere manier om zowel een toegangspunt als een station te configureren. Ik heb verschillende suggesties gekregen om dit onderwerp te bespreken; dus vandaag zal ik je kennis laten maken met deze bibliotheek en zijn functies. Ik zal ook een demonstratie geven van het gebruik ervan met zowel ESP32 als ESP8266.

Stap 1: PINOUT

PINOUT
PINOUT

Hier toon ik de PINOUT van de twee apparaten die we zullen gebruiken:

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

Stap 2: WiFiManager

De WiFiManager is eigenlijk niets meer dan een bibliotheek die bovenop WiFi.h is geschreven voor eenvoudig beheer van draadloze verbindingen. Onthoud dat we hiermee een grotere mogelijkheid hebben om zowel een toegangspunt als een station te configureren. Voor Station-modus configureren we via een portal in de browser.

Sommige eigenschappen:

• Het hangt af van automatische connectiviteit

• Initialisatie van niet-automatisch configuratieportaal

• Werkt selectief in dubbele modus

Stap 3: Hoe het werkt

Hoe het werkt
Hoe het werkt
Hoe het werkt
Hoe het werkt

De ESP start een wifi-configuratieportaal wanneer deze is aangesloten en slaat configuratiegegevens op in niet-vluchtig geheugen. Vervolgens start het configuratieportaal pas weer als er op een knop in de ESP-module wordt gedrukt.

Hier kunt u de configuratiestroom controleren en deze stap voor stap volgen:

1. Gebruik een willekeurig WiFi-apparaat met een browser, maak verbinding met het nieuw gemaakte toegangspunt en voer het adres 192.168.4.1 in.

2. Op het scherm heb je twee opties om verbinding te maken met een bestaand netwerk:

• Wifi configureren

• Wifi configureren (geen scan)

3. Kies een van de netwerken en voer het wachtwoord in (indien nodig). Sla vervolgens op en wacht tot de ESP opnieuw is opgestart.

4. Aan het einde van het opstarten probeert ESP verbinding te maken met het opgeslagen netwerk. Als u dit niet kunt doen, schakelt u een toegangspunt in.

Stap 4: Bibliotheken

Bibliotheken
Bibliotheken

Bibliotheek toevoegen "WifiManager-ESP32".

Ga naar https://github.com/zhouhan0126/WIFIMANAGER-ESP32 en download de bibliotheek.

Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.

C: / Programmabestanden (x86) / Arduino / bibliotheken

Voeg de bibliotheek "DNSServer-ESP32" toe.

Ga naar de https://github.com/zhouhan0126/DNSServer---esp32 link en download de bibliotheek.

Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.

C: / Programmabestanden (x86) / Arduino / bibliotheken

Voeg de bibliotheek "WebServer-ESP32" toe.

Ga naar de https://github.com/zhouhan0126/WebServer-esp32 link en download de bibliotheek.

Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.

C: / Programmabestanden (x86) / Arduino / bibliotheken

Opmerking:

De WiFiManager-ESP32-bibliotheek heeft al de instellingen die werken met ESP8266, dus we zullen deze alleen gebruiken in plaats van twee WiFiManager-bibliotheken (één voor elk type chip).

Zoals we later zullen zien, zijn ESP8266WiFi en ESP8266WebServer bibliotheken die we niet hoeven te downloaden, omdat ze al komen wanneer we ESP8266 in de Arduino IDE installeren.

Stap 5: Functies

Functies
Functies
Functies
Functies
Functies
Functies

Hier zijn enkele functies die de WiFiManager ons biedt.

1. automatisch verbinden

De autoConnect-functie is verantwoordelijk voor het maken van een Access Point. We kunnen het op drie manieren gebruiken.

• autoConnect ("netwerknaam", "wachtwoord"); - creëert een netwerk met de gedefinieerde naam en wachtwoord.

• autoConnect ("netwerknaam"); - creëert een open netwerk met de gedefinieerde naam.

• automatisch verbinden (); - creëert een open en automatisch benoemd netwerk met als naam 'ESP' + chipID.

2. startConfigPortal

De startConfigPortal-functie is verantwoordelijk voor het maken van een toegangspunt zonder te proberen verbinding te maken met een eerder opgeslagen netwerk.

• startConfigPortal ("netwerknaam", "wachtwoord"); - creëert een netwerk met de gedefinieerde naam en wachtwoord.

• startConfigPortal (); - creëert een open en automatisch benoemd netwerk met als naam 'ESP' + chipID.

3. getConfigPortalSSID

Retourneert de SSID van de portal (Access Point)

4. getSSID

Dit retourneert de SSID van het netwerk waarmee het is verbonden.

5. getPassword

Dit retourneert het wachtwoord van het netwerk waarmee het is verbonden.

6. setDebugOutput

De functie setDebugOutput is verantwoordelijk voor het afdrukken van foutopsporingsberichten op de seriële monitor. Deze berichten zijn al gedefinieerd in de bibliotheek. Terwijl u de functies doorloopt, worden de gegevens afgedrukt.

Standaard is deze functie ingesteld op TRUE. Als u de berichten wilt uitschakelen, stelt u de functie eenvoudig in op FALSE.

7. stelMinimumSignaalKwaliteit in

De functie setMinimumSignalQuality is verantwoordelijk voor het filteren van netwerken op basis van signaalkwaliteit. Standaard toont WiFiManager geen aanmeldingsnetwerken onder de 8%.

8. setRemoveDuplicateAP's

De functie setRemoveDuplicateAPs is verantwoordelijk voor het verwijderen van netwerkduplicaten.

Standaard is deze ingesteld op TRUE.

9. setAPStaticIPConfig

De functie setAPStaticIPConfig is verantwoordelijk voor het instellen van de statische adresinstellingen in de toegangspuntmodus.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

De functie setSTAStaticIPConfig is verantwoordelijk voor het instellen van de statische adresinstellingen in de stationsmodus.

(IP, GATEWAY, SUBNET)

U moet de opdracht toevoegen vóór autoConnect!!!

11. setAPCallback

De setAPCallback-functie is verantwoordelijk voor het informeren dat de AP-modus is gestart.

De parameter is een functie die moet worden gemaakt om het aan te geven als een callback;

12. setSaveConfigCallback

De functie setSaveConfigCallback is verantwoordelijk om u te informeren dat een nieuwe configuratie is opgeslagen en dat de verbinding tot stand is gebracht.

De parameter is een functie om aan te maken en geeft dit aan als een allback.

U moet de opdracht toevoegen vóór autoConnect !!!

Stap 6: Montage

samenkomst
samenkomst

Voorbeeld

In ons voorbeeld zullen we een toegangspunt maken met ESP (de code dient zowel voor ESP8266 als ESP32). Na het maken van de AP, zullen we toegang krijgen tot de portal via IP 192.168.4.1 (wat de standaard is om toegang te krijgen). Dus laten we de beschikbare netwerken pakken, er een selecteren en opslaan. Vanaf daar zal de ESP opnieuw opstarten en proberen er verbinding mee te maken, en dan zal het werken als een station en niet langer als een toegangspunt.

Nadat u de stationsmodus hebt geactiveerd, kunt u de ESP alleen via de knop terug laten keren naar de toegangspuntmodus.

Stap 7: Coderen

Bibliotheken

Laten we eerst de bibliotheken definiëren die we zullen gebruiken.

Merk op dat we de commando's #if gedefinieerd, #else en #endif hebben. Voorwaarde is dat ze de noodzakelijke bibliotheken met betrekking tot de chip bevatten. Dit onderdeel is uiterst belangrijk om dezelfde code uit te voeren op zowel ESP8266 als ESP32.

#indien gedefinieerd(ESP8266)

#include //ESP8266 Core WiFi-bibliotheek #else #include //ESP32 Core WiFi-bibliotheek #endif

#indien gedefinieerd(ESP8266)

#include //Local WebServer gebruikt om de configuratieportal te bedienen

#anders

#include //Local DNS Server gebruikt voor het omleiden van alle verzoeken naar de configuratieportal (https://github.com/zhouhan0126/DNSServer---esp32)

#stop als

#include //Local WebServer gebruikt om de configuratieportal te bedienen (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINEEL)

Stap 8: Instellen

In de installatie configureren we onze WiFiManager op de eenvoudigste manier. Laten we gewoon de callbacks definiëren en het netwerk creëren.

const int PIN_AP = 2;

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

//utilizando esse comando, as configurações são apagadas da memoria //caso tiver salvo alguma rede para conectar automaticamente, ela é apagada. // wifiManager.resetSettings(); //callback voor quando in de configuratie van AP wifiManager.setAPCallback(configModeCallback); //callback voor quando-se-connectie met uma rede, of 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: Loop

In de lus zullen we de knoppin lezen om te zien of deze is ingedrukt, en dan zullen we de methode aanroepen om de AP-modus opnieuw in te schakelen.

lege lus() {

wifimanager wifimanager; // Zie voor meer informatie if (digitalRead (PIN_AP) == HOOG) { Serial.println ("resetar"); //tenta abrir o portal if(!wifiManager.startConfigPortal("ESP_AP", "12345678")){ Serial.println("Falha en conectar"); vertraging (2000); ESP.herstart(); vertraging (1000); } Serial.println("Verbind ESP_AP!!!"); }

Wanneer u op de knop drukt, verlaat ESP de stationsmodus en opent u uw toegangspunt en portaal.

Onthoud dat we de opdracht resetSettings () niet gebruiken. De instellingen worden nog steeds bewaard voor de volgende keer dat de ESP opstart.

Stap 10: Terugbellen

De callback-functies, die aan gebeurtenissen zijn gekoppeld, zorgen ervoor dat u het exacte moment van een operatie hebt, in ons geval de AP-modus en de Stationsmodus. We kunnen dan een gewenste routine implementeren, zoals bijvoorbeeld het ophalen van de SSID van het aangesloten netwerk.

// callback que indica o ESP entrou no modo AP

void configModeCallback (WiFiManager * myWiFiManager) { // Serial.println ("Ingevoerde configuratiemodus"); Serial.println("Entrou no modo de configuração"); Seriële.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 ("Moet configuratie opslaan"); Serial.println("Configuration salva"); Seriële.println(WiFi.softAPIP()); //imprime o IP doen AP}

Aanbevolen: