Um eine Library in VSCode zu integrieren gibt es 2 Möglichkeiten.
1. Download den zip Folder von Github, entpacke und kopiere diesen in den lib Ordner.
# WiFi Verbindung mit dem ESP32 herstellen
Der ESP32 besitzt eine eingebaute WiFi Antenne.
Mit Hilfe der WiFi.h Biblithek lässt sich in nur wenigen Schritten eine WiFi verbindung aufbauen.
## Bibliothek und die Konstanten
```C++
#include <WiFi.h>
const char *SSID = "BaristaBandwidth"; //<-- Achten Sie auf die Anweisungen der Praktikumsbetreuung
const char *PWD = "oneEspressoPLEASE"; //<-- Achten Sie auf die Anweisungen der Praktikumsbetreuung
const unsigned long INTERVAL = 5000;
```
- Die ``SSID`` bezeichnet den Namen des WiFi Netzwerkes, mit dem Sie Ihren ESP32 verbinden wollen.
-``PWD`` ist dabei das Passwort für das WiFi Netzwerk.
> :bulb: :exclamation: Laut Konvention werden KONSTANTEN in Großbuchstaben geschrieben.
## Verbinden mit WiFi.begin()
Um den Code übersichtlicher zu gestalten wird eine Funktion ``wifiConnect()`` definiert:
```C++
void wifiConnect() {
WiFi.begin(<name des wifi>, <pwd des wifi>); // <-- Variablen anpassen!
Serial.println("");
Für andere Libraries werden wir eine andere Möglichkeit ausprobieren.
Libraries sind nichts anderes als Code-Module, die wir in unserem Projekt verwenden, um den Aufwand zu verringern.

// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(<name des wifi);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
```
> :exclamation: :books: Übernehmen Sie diese Funktion in Ihren Code um Ihren ESP mit dem WiFi zu verbinden. Diese Funktion muss außerhalb und über der setup() Funktion stehen.
> :zap: Denken Sie daran die oben definierten Variablen richtig einzusetzen.
> :question: Was passiert in der ``while`` Schleife?
> :books: Rufen Sie diese Funktion ``wifiConnect()`` in der ``setup()`` Ihres Programmcodes auf!
> Damit die Ausgabe über den seriellen Monitor funktioniert, müssen Sie in der ``setup()`` außerdem die Funktion ``Serial.begin(115200)`` aufrufen!
---
## Verbindung überwachen
Während dem Betrieb kann es zu Fluktuationen in der Signalstärke des WiFi Netzes kommen. Die kann dazu führen, dass die Verbindung zwischen Netzwerk und ESP32 abbricht.
Um dieses Verhalten abzufangen definiert man eine Funktion ``checkWiFiConnection()``:
```C++
void wifiCheckConnection() {
if (WiFi.status() != WL_CONNECTED) { //Wenn die Verbindung nicht mehr "WL_CONNECTED" ist, dann...
wifiConnect(); //wieder mit dem WiFi verbinden
}
yield(); // give stack time to work
}
```
> :exclamation: :books: Fügen Sie den nötigen Funktionsaufruf in der ``if``-Bedingung ein!
> :question: :books: Wo muss diese Funktion ``wifiCheckConnection`` aufgerufen werden?
> :question: :bulb: Was macht die ``yield()`` Funktion?
Für andere Libraries werden wir eine andere Möglichkeit ausprobieren.
Libraries sind nichts anderes als Code-Module, die wir in unserem Projekt verwenden, um den Aufwand zu verringern.
2. Suche über PlatformIO die Library und füge den Link in die platformio.ini Datei hinzu.