Inhaltsverzeichnis:

ESP8266 und ESP32 mit WiFiManager - Gunook
ESP8266 und ESP32 mit WiFiManager - Gunook

Video: ESP8266 und ESP32 mit WiFiManager - Gunook

Video: ESP8266 und ESP32 mit WiFiManager - Gunook
Video: ESP32 DHT Web Server Project 2024, November
Anonim
Image
Image
PINOUT
PINOUT

Kennen Sie WiFiManager? Es ist eine Bibliothek, die als drahtloser Verbindungsmanager dient, und damit haben wir eine einfachere Möglichkeit, sowohl einen Access Point als auch eine Station zu konfigurieren. Ich habe mehrere Vorschläge erhalten, dieses Thema zu diskutieren; Deshalb stelle ich Ihnen heute diese Bibliothek und ihre Funktionen vor. Ich werde auch die Verwendung mit ESP32 und ESP8266 demonstrieren.

Schritt 1: PINOUT

PINOUT
PINOUT

Hier zeige ich die PINOUT der beiden Geräte, die wir verwenden werden:

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

Schritt 2: WiFiManager

Der WiFiManager ist eigentlich nichts anderes als eine auf WiFi.h geschriebene Bibliothek zur einfachen Verwaltung von drahtlosen Verbindungen. Denken Sie daran, dass wir damit eine größere Möglichkeit haben, sowohl einen Access Point als auch eine Station zu konfigurieren. Für den Stationsmodus konfigurieren wir über ein Portal im Browser.

Einige Eigenschaften:

• Es hängt von der automatischen Konnektivität ab

• Initialisierung des nicht-automatischen Konfigurationsportals

• Arbeitet selektiv im Dual-Modus

Schritt 3: Wie es funktioniert

Wie es funktioniert
Wie es funktioniert
Wie es funktioniert
Wie es funktioniert

Der ESP initiiert bei Verbindung ein WiFi-Konfigurationsportal und speichert die Konfigurationsdaten im nichtflüchtigen Speicher. Anschließend startet das Konfigurationsportal nur wieder, wenn im ESP-Modul eine Taste gedrückt wird.

Hier können Sie den Konfigurationsablauf überprüfen und Schritt für Schritt befolgen:

1. Verbinden Sie sich über ein WLAN-fähiges Gerät mit Browser mit dem neu erstellten Zugangspunkt und geben Sie die Adresse 192.168.4.1 ein.

2. Auf dem Bildschirm haben Sie zwei Möglichkeiten, sich mit einem bestehenden Netzwerk zu verbinden:

• WLAN konfigurieren

• WLAN konfigurieren (kein Scan)

3. Wählen Sie eines der Netzwerke und geben Sie das Passwort ein (falls erforderlich). Dann speichern und warten, bis das ESP neu gestartet wird.

4. Am Ende des Bootvorgangs versucht ESP, eine Verbindung zum gespeicherten Netzwerk herzustellen. Wenn dies nicht möglich ist, aktivieren Sie einen Access Point.

Schritt 4: Bibliotheken

Bibliotheken
Bibliotheken

Bibliothek "WifiManager-ESP32" hinzufügen.

Gehen Sie zu https://github.com/zhouhan0126/WIFIMANAGER-ESP32 und laden Sie die Bibliothek herunter.

Entpacken Sie die Datei und fügen Sie sie in den Bibliotheksordner der Arduino IDE ein.

C: / Programmdateien (x86) / Arduino / Bibliotheken

Fügen Sie die Bibliothek "DNSServer-ESP32" hinzu.

Gehen Sie zum Link https://github.com/zhouhan0126/DNSServer---esp32 und laden Sie die Bibliothek herunter.

Entpacken Sie die Datei und fügen Sie sie in den Bibliotheksordner der Arduino IDE ein.

C: / Programmdateien (x86) / Arduino / Bibliotheken

Bibliothek "WebServer-ESP32" hinzufügen.

Gehen Sie zum Link https://github.com/zhouhan0126/WebServer-esp32 und laden Sie die Bibliothek herunter.

Entpacken Sie die Datei und fügen Sie sie in den Bibliotheksordner der Arduino IDE ein.

C: / Programmdateien (x86) / Arduino / Bibliotheken

Notiz:

Die WiFiManager-ESP32-Bibliothek verfügt bereits über die Einstellungen, die mit ESP8266 funktionieren, daher verwenden wir nur diese anstelle von zwei WiFiManager-Bibliotheken (eine für jeden Chiptyp).

Wie wir später sehen werden, sind ESP8266WiFi und ESP8266WebServer Bibliotheken, die wir nicht herunterladen müssen, da sie bereits enthalten sind, wenn wir ESP8266 in der Arduino IDE installieren.

Schritt 5: Funktionen

Funktionen
Funktionen
Funktionen
Funktionen
Funktionen
Funktionen

Hier sind einige Funktionen, die uns der WiFiManager bietet.

1. autoConnect

Für das Anlegen eines Access Points ist die Funktion autoConnect zuständig. Wir können es auf drei Arten verwenden.

• autoConnect ("Netzwerkname", "Passwort"); - erstellt ein Netzwerk mit dem definierten Namen und Passwort.

• autoConnect ("Netzwerkname"); - erstellt ein offenes Netzwerk mit dem definierten Namen.

• autoConnect (); - erstellt ein offenes und automatisch benanntes Netzwerk mit dem Namen 'ESP' + chipID.

2. startConfigPortal

Die Funktion startConfigPortal ist dafür verantwortlich, einen Access Point zu erstellen, ohne zu versuchen, sich mit einem zuvor gespeicherten Netzwerk zu verbinden.

• startConfigPortal ("Netzwerkname", "Passwort"); - erstellt ein Netzwerk mit dem definierten Namen und Passwort.

• startConfigPortal(); - erstellt ein offenes und automatisch benanntes Netzwerk mit dem Namen 'ESP' + chipID.

3. getConfigPortalSSID

Gibt die SSID des Portals (Access Point) zurück

4. getSSID

Dies gibt die SSID des Netzwerks zurück, mit dem es verbunden ist.

5. Passwort abrufen

Dies gibt das Passwort des Netzwerks zurück, mit dem es verbunden ist.

6. setDebugOutput

Die Funktion setDebugOutput ist für das Drucken von Debug-Meldungen auf dem seriellen Monitor verantwortlich. Diese Nachrichten sind bereits in der Bibliothek definiert. Beim Durchlaufen der Funktionen werden die Daten ausgedruckt.

Standardmäßig ist diese Funktion auf TRUE gesetzt. Wenn Sie die Meldungen deaktivieren möchten, setzen Sie die Funktion einfach auf FALSE.

7. setMinimumSignalQuality

Die Funktion setMinimumSignalQuality ist für die Filterung von Netzwerken basierend auf der Signalqualität verantwortlich. Standardmäßig zeigt WiFiManager keine Anmeldenetzwerke unter 8 % an.

8. setRemoveDuplicateAPs

Die Funktion setRemoveDuplicateAPs ist für das Entfernen von Netzwerkduplikaten verantwortlich.

Standardmäßig ist es auf TRUE gesetzt.

9. setAPStaticIPConfig

Die Funktion setAPStaticIPConfig ist für die Einstellung der statischen Adresseinstellungen im Access Point-Modus verantwortlich.

(IP, GATEWAY, SUBNET)

10. setSTAStaticIPConfig

Die Funktion setSTAStaticIPConfig ist für die Einstellung der statischen Adresseinstellungen im Stationsmodus zuständig.

(IP, GATEWAY, SUBNET)

Sie müssen den Befehl vor autoConnect hinzufügen!!!

11. setAPCallback

Die Funktion setAPCallback ist dafür verantwortlich, Sie darüber zu informieren, dass der AP-Modus gestartet wurde.

Der Parameter ist eine Funktion, die erstellt werden muss, um ihn als Rückruf anzuzeigen;

12. setSaveConfigCallback

Die Funktion setSaveConfigCallback ist dafür verantwortlich, Sie darüber zu informieren, dass eine neue Konfiguration gespeichert und die Verbindung erfolgreich hergestellt wurde.

Der Parameter ist eine zu erstellende Funktion und zeigt dies als allback an.

Sie müssen den Befehl vor autoConnect hinzufügen !!!

Schritt 6: Montage

Montage
Montage

Beispiel

In unserem Beispiel erstellen wir einen Access Point mit ESP (der Code dient sowohl ESP8266 als auch ESP32). Nach der Erstellung des AP werden wir über die IP 192.168.4.1 (die Standardeinstellung für den Zugriff) auf das Portal zugreifen. Lassen Sie uns also die verfügbaren Netzwerke abrufen, eines auswählen und speichern. Von dort aus wird der ESP neu gestartet und versucht, eine Verbindung herzustellen, und dann funktioniert er als Station und nicht mehr als Access Point.

Nach dem Aufrufen des Stationsmodus können Sie das ESP nur über die Taste in den Access Point-Modus zurückkehren lassen.

Schritt 7: Code

Bibliotheken

Zuerst definieren wir die Bibliotheken, die wir verwenden werden.

Beachten Sie, dass wir die Befehle #if define, #else und #endif haben. Sie müssen die erforderlichen Bibliotheken für den Chip enthalten. Dieser Teil ist äußerst wichtig, um denselben Code sowohl auf ESP8266 als auch auf ESP32 auszuführen.

#wenn definiert(ESP8266)

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

#wenn definiert(ESP8266)

#include //Lokaler Webserver, der verwendet wird, um das Konfigurationsportal zu bedienen

#anders

#include //Lokaler DNS-Server, der zum Umleiten aller Anfragen an das Konfigurationsportal verwendet wird (https://github.com/zhouhan0126/DNSServer---esp32)

#endif

#include //Lokaler Webserver, der verwendet wird, um das Konfigurationsportal bereitzustellen (https://github.com/zhouhan0126/DNSServer---esp32) #include // WiFi Configuration Magic (https://github.com/zhouhan0126/DNSServer-- -esp32) >> https://github.com/zhouhan0126/DNSServer---esp32 (ORIGINAL)

Schritt 8: Einrichtung

Im Setup konfigurieren wir unseren WiFiManager auf einfachste Weise. Lassen Sie uns einfach die Rückrufe definieren und das Netzwerk erstellen.

const int PIN_AP = 2;

Void setup () { Serial.begin (9600); pinMode (PIN_AP, EINGANG); //Erklärung zum 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(); // Rückruf für Benachrichtigungen über Konfigurationseinstellungen AP wifiManager.setAPCallback (configModeCallback); // Rückruf für eine Verbindung mit einer Verbindung zum Wiederaufnehmen, oder um eine Verbindung zu einem Trabalhar in einer Mod-Estação wifiManager.setSaveConfigCallback (saveConfigCallback); //cria uma rede de nome ESP_AP com senha 12345678 wifiManager.autoConnect("ESP_AP", "12345678"); }

Schritt 9: Schleife

In der Schleife lesen wir den Button-Pin, um zu sehen, ob er gedrückt wurde, und rufen dann die Methode auf, um den AP-Modus wieder zu aktivieren.

Leere Schleife () {

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"); Verzögerung (2000); ESP.restart(); Verzögerung (1000); } Serial.println ("Conectou ESP_AP !!!"); }

Wenn Sie die Taste drücken, verlässt ESP den Stationsmodus und öffnet Ihren Access Point und Ihr Portal.

Denken Sie daran, dass wir den Befehl resetSettings() nicht verwenden. Die Einstellungen werden beim nächsten Hochfahren des ESP noch gespeichert.

Schritt 10: Rückrufe

Die Callback-Funktionen, die mit Ereignissen verknüpft sind, dienen dazu, dass Sie den genauen Zeitpunkt einer Operation haben, in unserem Fall in den AP-Modus und in den Stationsmodus. Wir können dann eine gewünschte Routine implementieren, wie zum Beispiel das Abrufen der SSID aus dem angeschlossenen Netzwerk.

// Rückruf que indica que o ESP entrou no modo AP

Void configModeCallback (WiFiManager * myWiFiManager) {// Serial.println ("Eingegebener Konfigurationsmodus"); Serial.println ("Entrou no modo de configuração"); Serial.println (WiFi.softAPIP()); //imprime o IP tun AP Serial.println (myWiFiManager->getConfigPortalSSID()); //imprime oder SSID criado da rede

}

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

Void saveConfigCallback () {//Serial.println ("Sollte die Konfiguration speichern"); Serial.println ("Konfigurationssalva"); Serial.println (WiFi.softAPIP()); //imprime o IP tun AP}

Empfohlen: