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(
|
Access-Point Modus |
WiFi.mode(
|
Station Modus |
WiFi.mode(
|
Mixed Modus |
WiFi.mode(
|
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.
|
Access-Point Modus |
|
Station Modus |
|
Mixed Modus |
|
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 des aufgespannten Netzwerks (maximal 63 Zeichen) |
|
|
Passwort für das Netzwerk |
|
|
Nummer des WiFi-Kanals (1-13) |
|
|
0: SSID sichtbar |
|
|
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
)
|
|
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
)
|
|
Zu übermittelnde Daten (Zeichenketten-Format) |
unsigned int
WiFiClient.print(
;
data
), BASE
|
|
Zu übermittelnde Daten (Zahlen-Format) |
|
|
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
)
|
|
Zu übermittelnde Daten (Zeichenketten-Format) |
unsigned int
WiFiClient.println(
;
data
), BASE
|
|
Zu übermittelnde Daten (Zahlen-Format) |
|
|
Zahlenbasis der Daten im Zahlen-Format |
Der (optionale) Rückgabewert vom Typ unsigned int
entspricht der Anzahl der geschriebenen Daten-Bytes.