Feste IP-Adresse vergeben
In diesem Artikel zeige ich Dir, wie Du deinem ESP8266 eine feste IP-Adresse vergeben kannst.
Um eine WLAN-Verbindung herstellen zu können, wird der unten gezeigte Code genutzt. Als Bibliothek nutzen wir dazu die ESP8266Wifi sowie den WifiClient. Im ersten Schritt definiere ich zwei Konstanten mit der WLAN-SSID sowie dem WLAND-Kennwort. In der Setup-Methode wird mit der WiFi Klasse die WLAN-Verbindung initialisiert. Dazu wird der Begin-Methode die WLAN-SSID und das Kennwort übergeben. Im Anschluss wird mit einer while-Schleife der Status der Connection überwacht und gewartet, bis eine Verbindung hergestellt wurde. In der Loop-Methode wird zudem gefragt, ob die Connection besteht, wenn ja können entsprechende Dienste über das WLAN genutzt werden.
In manchen Fällen macht es Sinn, für bestimmte Wifi-Geräte eine feste IP-Adresse zu vergeben. Dies kann zum einen direkt im Router/DHCP-Server definiert werden. Alternativ kannst Du die IP-Adresse des ESP8266 auch direkt im Code definieren. Dazu muss der folgende Block integriert werden. Über den folgenden Code wird die IP-Adresse, die Gateway-Adresse sowie die Subnetmask gesetzt. Zudem wird auch die IP-Adresse des DNS-Servers gesetzt.
IPAddress ip(192, 168, 2, 101); // IP fest einstellen IPAddress gateway(192, 168, 2, 1); // Gateway-Adresse definieren IPAddress subnet(255, 255, 255, 0); // Subnetmask IPAddress dns(192, 168, 2, 1); // DNS-Server WiFi.config(ip, dns, gateway, subnet);
Hier der gesamte Code zur Herstellung einer Wifi-Verbindung mit Nutzung einer festen IP-Adresse:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
const char* ssid = "YOUR_WLAN_SSID";
const char* password = "YOUR_WLAN_PWD";
void setup() {
Serial.begin(115200);
delay(10);
IPAddress ip(192, 168, 2, 101);
IPAddress gateway(192, 168, 2, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 2, 1);
WiFi.config(ip, dns, gateway, subnet);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
// Your WiFi-Stuff here
}
}


Wo werden die Statusmeldungen ausgegeben?
z.B. von dem Befehl
Serial.println(„WiFi connected“);
???
Die Ausgaben werden über die serielle Schnittstelle ausgegeben, im folgenden Artikel erkläre ich das genauer:
https://www.smarthome-tricks.de/esp8266/die-serielle-schnittstelle/