Zum Inhalt springen

ESP8266 WiFi Verbindung herstellen

    Der ESP8266 ist ein kostengünstiger Mikrocontroller mit integriertem WiFi-Modul, der sich hervorragend für IoT-Projekte eignet. In diesem Artikel zeige ich dir, wie du eine WiFi-Verbindung mit dem ESP8266 herstellst und einige bewährte Methoden für eine stabile und zuverlässige Verbindung implementierst.

    Benötigte Hardware

    • ESP8266-Modul (z.B. NodeMCU Amica)
    • USB-Kabel
    • Computer mit Arduino IDE oder VS Code installiert

    Vorbereitung

    Stelle sicher, dass du die ESP8266-Bibliothek in der Arduino IDE installiert hast. Dies kannst du über den Bibliotheksverwalter in der Arduino IDE erledigen.
    Wie du die Arduino IDE installierst, oder wie in meinem Fall lieber mit dem Visual Studio Code und PlatformIO arbeiteten möchtest, zeige ich dir in weiteren Artikeln.

    Codebeispiel

    #include <Arduino.h>
    #include <ESP8266WiFi.h>
    
    #ifndef WiFi_SSID
    #define WiFi_SSID "WiFi Name"
    #define WiFi_PW  "WiFi Password"
    #endif
    
    const char* ssid     = WiFi_SSID;
    const char* password = WiFi_PW;
    
    // Timeout-Dauer in Millisekunden
    const int timeout = 10000;  // 10 Sekunden
    
    // put function declarations here:
    void connectToWiFi();
    
    void setup() {
      // put your setup code here, to run once:
      Serial.begin(115200);
      connectToWiFi();
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      if (WiFi.status() != WL_CONNECTED) {
        Serial.println("WiFi connection lost. Reconnecting...");
        connectToWiFi();
      }
      // Hier kann dein Hauptcode hin
    }
    
    void connectToWiFi() {
      Serial.print("Connecting to WiFi ");
      WiFi.begin(ssid, password);
      
      unsigned long startAttemptTime = millis();
    
      while (WiFi.status() != WL_CONNECTED && millis() - startAttemptTime < timeout) {
        delay(500);
        Serial.print(".");
      }
    
      if (WiFi.status() == WL_CONNECTED) {
        Serial.println("");
        Serial.print("WiFi connected - local IP address: ");
        Serial.println(WiFi.localIP());
      } else {
        Serial.println("");
        Serial.println("Failed to connect to WiFi");
      }
    }
    
    // put function definitions here:

    Code-Erklärung

    1. Bibliotheken einbinden: Der Code beginnt mit dem Einbinden der notwendigen Bibliotheken Arduino.h und ESP8266WiFi.h.
    2. WiFi-Anmeldedaten: Die SSID und das Passwort des WiFi-Netzwerks werden definiert. Dies geschieht in diesem Fall über Präprozessor-Direktiven, was die spätere Anpassung erleichtert.
    3. Konstanten und Funktionsdeklarationen: Es werden Konstanten für die SSID, das Passwort und die Timeout-Dauer definiert. Außerdem wird eine Funktionsdeklaration für die connectToWiFi-Funktion hinzugefügt.
    4. Setup-Funktion: In der setup()-Funktion wird die serielle Kommunikation initialisiert und versucht, eine Verbindung zum WiFi herzustellen.
    5. Loop-Funktion: In der loop()-Funktion wird kontinuierlich überprüft, ob die WiFi-Verbindung noch besteht. Wenn die Verbindung verloren geht, wird versucht, diese erneut herzustellen.
    6. connectToWiFi-Funktion: Diese Funktion versucht, eine Verbindung zum WiFi herzustellen und gibt den Verbindungsstatus auf der seriellen Konsole aus. Bei Erfolg wird die lokale IP-Adresse des ESP8266 ausgegeben.

    Fazit

    Die Herstellung einer WiFi-Verbindung mit dem ESP8266 ist relativ einfach, kann aber durch Implementierung einiger zusätzlicher Maßnahmen stabiler und robuster gemacht werden. Mit dem obigen Codebeispiel bist du gut gerüstet, um deine eigenen IoT-Projekte zu starten.

    Viel Spaß beim Programmieren und Experimentieren mit dem ESP8266!


    0 Kommentare
    Inline Feedbacks
    View all comments
    Schlagwörter: