Den ESP32 mit dem Arduino Framework programmieren:
Die WiFi-Library

Die WiFi-Library für den ESP32 im Arduino Framework

Um die WLAN-Fähigkeit des ESP32 im Arduino Framework nutzen zu können, muss zunächst die WiFi.h Library für den ESP32 eingebunden werden. Die WiFi-Library findet man auf Github.

Eine Dokumentation der WiFi-Library findet man hier.

Die Esp32 WiFi-Library in PlatformIO benutzen

Achtung! Bei der gleichzeitigen Benutzung der Arduino WiFi.h Library und der ESP32 Wifi.h Library können Konflikte auftreten!

Durch das korrekte Setting der Library-Abhängigkeiten (lib_deps) in der platformio.ini können diese Konflikte eliminiert werden.

Einstellen des WiFi-Modes

Mit der mode() Methode lässt sich der WLAN Betriebs-Modus des ESP32 einstellen.

WiFi.mode(WIFI_AP)  

Access-Point Modus

WiFi.mode(WIFI_STA)  

Station Modus

WiFi.mode(WIFI_AP_STA)  

Mixed Modus

WiFi.mode(WIFI_OFF)  

WLAN aus

Achtung! Der ESP32 hat bei eingeschaltetem WLAN einen merklich höheren Energieverbrauch. Möchte man diesen (z.B. bei Batteriebetrieb) reduzieren, empfiehlt es sich, das WLAN wo immer möglich auszuschalten.

Ermitteln des WiFi-Modes

Mit der getMode() Methode lässt sich der WLAN Betriebs-Modus des ESP32 ermitteln.

WiFi.getMode() = 2  

Access-Point Modus

WiFi.getMode() = 1  

Station Modus

WiFi.getMode() = 3  

Mixed Modus

WiFi.getMode() = 0  

WLAN aus

Einen Access-Point (AP) aufspannen

Um mit dem ESP32 einen AP aufspannen zu können, muss der ESP32 zunächst mit der WiFi.mode() Methode in die Betriebsart WIFI_AP gebracht werden.

Der AP wird dann mit der WiFi.softAP() Methode gestartet.

bool WiFi.softAP(ssid, passwort , Kanal, ssid_hidden, Anzahl_Verbindungen);

ssid

char Array
(nullterminiert)

SSID des aufgespannten Netzwerks (maximal 63 Zeichen)

passwort

char Array
(nullterminiert)

Passwort für das Netzwerk
mindestens 8 Zeichen (sonst Fehlermeldung!)
NULL für offenes Netzwerk

Kanal

int

Nummer des WiFi-Kanals (1-13)

ssid_hidden

int

0: SSID sichtbar
1: SSID versteckt

Anzahl_Verbindungen

int

Maximale Anzahl gleichzeitiger Verbindungen (1-4)

Die IP-Adresse des APs abfragen

Mit der WiFi.softAPIP() Methode kann die IP des APs abgefragt werden.

IPAddress WiFi.softAPIP();

Der Rückgabewert vom Typ IPAddress entspricht der IPv4-Adresse des ESP-APs.

Einen Webserver starten

Mit der WiFiServer.begin() Methode wird ein Webserver auf dem ESP32 gestartet.

void WiFiServer.begin(port );

port

uint16_t

Datenport des Servers

Prüfen, ob ein Client vorhandenen ist

Mit der WiFiServer.available() Methode kann überprüft werden, ob ein Client vorhanden ist.

WifiClient WiFiServer.available();

Ist ein Client vorhanden entspricht der Rückgabewert der Instanz vom Typ WifiClient eines Clients.

Prüfen, ob ein Client Daten übermittelt hat

Mit der WiFiClient.available() Methode kann überprüft werden, ob ein Client Daten übermittelt hat.

int WiFiClient.available();

Der Rückgabewert vom Typ int entspricht der Anzahl an Datenbytes, die vorhanden sind.

Datenbytes vom Client lesen

Mit der WiFiClient.read() Methode können Datenbytes vom Client gelesen werden.

int WiFiClient.read();

Der Rückgabewert vom Typ int entspricht einem Datenbyte

Datenbytes zum Client senden

Mit der WiFiClient.print() Methode können Datenbytes zum Client gesendet werden.

unsigned int WiFiClient.print(data);

data

char, byte, string

Zu übermittelnde Daten (Zeichenketten-Format)

unsigned int WiFiClient.print(data, BASE);

data

int, long

Zu übermittelnde Daten (Zahlen-Format)

BASE

DEC: Zahlenbasis dezimal

OCT: Zahlenbasis oktal

HEX: Zahlenbasis hexadezimal

Zahlenbasis der Daten im Zahlen-Format

Der (optionale) Rückgabewert vom Typ unsigned int entspricht der Anzahl der geschriebenen Daten-Bytes.

Datenbytes zum Client senden (mit Carriage Return)

Mit der WiFiClient.println() Methode können Datenbytes zum Client gesendet werden. Den übertragenen Daten wird ein Zeilenwechsel angefügt.

unsigned int WiFiClient.println(data);

data

char, byte, string

Zu übermittelnde Daten (Zeichenketten-Format)

unsigned int WiFiClient.println(data, BASE);

data

int, long

Zu übermittelnde Daten (Zahlen-Format)

BASE

DEC: Zahlenbasis dezimal

OCT: Zahlenbasis oktal

HEX: Zahlenbasis hexadezimal

Zahlenbasis der Daten im Zahlen-Format

Der (optionale) Rückgabewert vom Typ unsigned int entspricht der Anzahl der geschriebenen Daten-Bytes.