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/