... | ... | @@ -14,18 +14,88 @@ Library: AsyncTCP -> https://github.com/me-no-dev/AsyncTCP |
|
|
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.
|
|
|
- |
|
|
\ No newline at end of file |