81 lines
No EOL
2.7 KiB
Text
81 lines
No EOL
2.7 KiB
Text
#include <WiFi.h> // WLAN-Funktion für ESP32
|
|
#include <Wire.h> // I2C Kommunikation (für OLED)
|
|
#include <Adafruit_GFX.h> // Grafik-Basisbibliothek (Text, Linien)
|
|
#include <Adafruit_SSD1306.h> // OLED-Treiber (SSD1306 Display)
|
|
|
|
#define SCREEN_WIDTH 128 // OLED Breite in Pixeln
|
|
#define SCREEN_HEIGHT 64 // OLED Höhe in Pixeln
|
|
|
|
// OLED Display Objekt erstellen
|
|
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
|
|
|
|
// WLAN Zugangsdaten
|
|
const char* ssid = "Galaxy Julian";
|
|
const char* password = "0987654321";
|
|
|
|
|
|
// -----------------------------------------------------
|
|
// Funktion: zeigt IP-Adresse und WLAN Status an
|
|
// -----------------------------------------------------
|
|
void showIP(String ip)
|
|
{
|
|
display.clearDisplay(); // Bildschirm löschen (neuer Frame)
|
|
|
|
display.setTextSize(2); // große Schrift (Achtung: braucht viel Platz)
|
|
display.setTextColor(SSD1306_WHITE);// Textfarbe: weiß (OLED kennt nur an/aus)
|
|
|
|
// Zeile 1: Status
|
|
display.setCursor(0, 0); // oben links starten
|
|
display.println("WLAN OK"); // WLAN verbunden
|
|
|
|
// Zeile 2: Label
|
|
display.setCursor(0, 28); // etwas nach unten (Abstand wegen großer Schrift)
|
|
display.println("IP:");
|
|
|
|
// Zeile 3: IP-Adresse
|
|
display.setCursor(0, 48); // fast unten im Display
|
|
display.println(ip); // echte IP vom Router
|
|
|
|
display.display(); // alles auf OLED „anzeigen“ (Buffer → Screen)
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------
|
|
// Setup: läuft EINMAL beim Start des ESP
|
|
// -----------------------------------------------------
|
|
void setup() {
|
|
|
|
Wire.begin(21, 22); // I2C starten (SDA=21, SCL=22)
|
|
|
|
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // OLED starten (Adresse 0x3C Standard)
|
|
|
|
// Startbildschirm: WLAN wird verbunden
|
|
display.clearDisplay();
|
|
display.setTextSize(2); // große Schrift für „Verbinde WLAN“
|
|
display.setCursor(0, 28); // ungefähr Mitte
|
|
display.println("Verbinde WLAN...");
|
|
display.display(); // anzeigen
|
|
|
|
// WLAN verbinden
|
|
WiFi.begin(ssid, password);
|
|
|
|
// warten bis Verbindung steht
|
|
while (WiFi.status() != WL_CONNECTED)
|
|
{
|
|
delay(500); // alle 0.5s prüfen
|
|
}
|
|
|
|
// wenn verbunden → IP holen
|
|
String ip = WiFi.localIP().toString();
|
|
|
|
// IP + Status anzeigen
|
|
showIP(ip);
|
|
}
|
|
|
|
|
|
// -----------------------------------------------------
|
|
// Loop: läuft dauerhaft (hier aktuell NICHT benutzt)
|
|
// -----------------------------------------------------
|
|
void loop() {
|
|
// später: hier kommen Buttons, Webserver, Nachrichten usw.
|
|
} |