Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.
This repository was archived by the owner on Feb 4, 2023. It is now read-only.

Static Station IP doesn't work #17

Closed
@Gius-8

Description

@Gius-8

When I try to set the static IP to the station, my router still assigns it a DHCP IP, how can I solve it? Thanks so much

void initAPConfig() {
  unsigned long startedAt = millis();

  ESP_WiFiManager ESP_wifiManager;
  ESP_wifiManager.setSTAStaticIPConfig(IPAddress(192, 168, 2, 114), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0));

  Router_SSID = ESP_wifiManager.WiFi_SSID();
  Router_Pass = ESP_wifiManager.WiFi_Pass();

  Serial.println("Stored: SSID = " + Router_SSID + ", Pass = " + Router_Pass);
  ssid.toUpperCase();

  digitalWrite(LED_STATUS, LED_OFF); // Turn led off as we are not in configuration mode.

  startedAt = millis();
  if ( (WiFi.status() != WL_CONNECTED) && (millis() - startedAt < WIFI_CONNECT_TIMEOUT ) ) {
    WiFi.mode(WIFI_STA);
    WiFi.persistent (true);
    // We start by connecting to a WiFi network

    Serial.print("Connecting to ");
    Serial.println(Router_SSID);

    WiFi.begin(Router_SSID.c_str(), Router_Pass.c_str());

    int i = 0;
    if ((!WiFi.status() || WiFi.status() >= WL_DISCONNECTED) && i++ < WHILE_LOOP_STEPS) {
      delay(WHILE_LOOP_DELAY);
    }
  }

  Serial.print("After waiting ");
  Serial.print((millis() - startedAt) / 1000);
  Serial.print(" secs more in setup(), connection result is ");

  if (WiFi.status() == WL_CONNECTED) {
    Serial.print("connected. Local IP: ");
    Serial.println(WiFi.localIP());
  }
  else
    Serial.println(ESP_wifiManager.getStatus(WiFi.status()));
}

void startPortalConfigAP() {
  stopWatchdog();
  Serial.println("\nConfiguration portal requested.");
  digitalWrite(LED_STATUS, LED_ON); // turn the LED on by making the voltage LOW to tell us we are in configuration mode.

  //Local intialization. Once its business is done, there is no need to keep it around
  ESP_WiFiManager ESP_wifiManager;

  //Check if there is stored WiFi router/password credentials.
  //If not found, device will remain in configuration mode until switched off via webserver.
  Serial.print("Opening configuration portal. ");
  Router_SSID = ESP_wifiManager.WiFi_SSID();
  if (Router_SSID != "") {
    ESP_wifiManager.setConfigPortalTimeout(60); //If no access point name has been previously entered disable timeout.
    Serial.println("Got stored Credentials. Timeout 60s");
  }
  else
    Serial.println("No stored Credentials. No timeout");


  // Just a quick hint
  ESP_WMParameter p_hint("<small>*Hint: if you want to reuse the currently active WiFi credentials, leave SSID and Password fields empty</small>");
  ESP_WMParameter p_mqtt_server_label(mqtt_server_label, "MQTT SERVER", mqtt_server, 17);
  ESP_WMParameter p_mqtt_port_label(mqtt_port_label, "MQTT PORT", mqtt_port, 6);
  ESP_WMParameter p_mqtt_user_label(mqtt_user_label, "MQTT USER", mqtt_user, 18);
  ESP_WMParameter p_mqtt_password_label(mqtt_password_label, "MQTT PASSWORD", mqtt_password, 18);
  ESP_WMParameter p_mqtt_id_label(mqtt_id_label, "MQTT ID DEVICE", mqtt_id, 6);

  ESP_wifiManager.addParameter(&p_hint);
  ESP_wifiManager.addParameter(&p_mqtt_server_label);
  ESP_wifiManager.addParameter(&p_mqtt_port_label);
  ESP_wifiManager.addParameter(&p_mqtt_user_label);
  ESP_wifiManager.addParameter(&p_mqtt_password_label);
  ESP_wifiManager.addParameter(&p_mqtt_id_label);

  ESP_wifiManager.setSTAStaticIPConfig(IPAddress(192, 168, 2, 114), IPAddress(192, 168, 2, 1), IPAddress(255, 255, 255, 0));

  //it starts an access point
  //and goes into a blocking loop awaiting configuration
  if (!ESP_wifiManager.startConfigPortal((const char *) ssid.c_str(), password)) {
    Serial.println("Not connected to WiFi but continuing anyway.");
  }
  else {
    //if you get here you have connected to the WiFi
    Serial.println("connected...yeey :)");
  }

  strcpy(mqtt_server, p_mqtt_server_label.getValue());
  strcpy(mqtt_port, p_mqtt_port_label.getValue());
  strcpy(mqtt_user, p_mqtt_user_label.getValue());
  strcpy(mqtt_password, p_mqtt_password_label.getValue());
  strcpy(mqtt_id, p_mqtt_id_label.getValue());

  writeConfigFile();

  digitalWrite(LED_STATUS, LED_OFF); // Turn led off as we are not in configuration mode.
  initWatchdog();
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions