Skip to content

Fixed IP with ESP8266WiFi #1959

Closed
Closed
@SamirTafesh

Description

@SamirTafesh

Hello,

i am building a Relay controller via ESP8266Wifi, every thing works fine with no problem, but the issue is that every time i restart the ESP, a new IP address is assigned, i would like to know if it is possible to fix an IP address from the code and not from the router

the Code is

/*

  • This sketch demonstrates how to set up a simple HTTP-like server.
  • The server will set a GPIO pin depending on the request
  • http://server_ip/gpio/0 will set the GPIO2 low,
  • http://server_ip/gpio/1 will set the GPIO2 high
  • server_ip is the IP address of the ESP8266 module, will be
  • printed to Serial when the module is connected.
    */

include ESP8266WiFi.h

const char* ssid = "BOSS-HOME";
const char* password = "9876543210";
// the IP address for the shield:
IPAddress ip(192, 168, 1, 177);

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

void setup() {
Serial.begin(115200);
delay(10);

// prepare GPIO2
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
pinMode(0, OUTPUT);
digitalWrite(0, HIGH);

// Connect to WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

//WiFi.config(ip);
WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Start the server
server.begin();
Serial.println("Server started");

// Print the IP address
Serial.println(WiFi.localIP());
}

void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}

// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}

// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

// Match the request
int val;
if (req.indexOf("/gpio/0") != -1)
digitalWrite(2, LOW);
else if (req.indexOf("/gpio/1") != -1)
digitalWrite(2,HIGH);
else {
Serial.println("invalid request");
client.stop();
return;
}

// Set GPIO2 according to the request
//digitalWrite(2, val);

client.flush();

// Prepare the response
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO is now ";
s += (val)?"high":"low";
s += "\n";

// Send the response to the client
client.print(s);
delay(1);
Serial.println("Client disonnected");

// The client will actually be disconnected
// when the function returns and 'client' object is detroyed
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions