ESP8266, я пытаюсь установить SoftAP и не могу заставить функцию WiFilocalIP дать мне мой IP

Я просто пытаюсь установить сервер, и кажется, что я не могу заставить серийный монитор считать локальный IP-адрес моего устройства, а мой клиент не может установить соединение для обновления значения датчика. когда я запускаю монитор, я получаю это:

IP-адрес: (IP не установлен)

вот мой код:

    #include <ESP8266WiFi.h>
    #include <ESP8266WebServer.h>

    /// Параметры конфигурации для точки доступа
    char * ssid_ap = "This Little Buddy";
    char * password_ap = "guessing";
    IPAddress local_ip(192,168,4,4);
    IPAddress gateway(192,168,4,1);
    IPAddress subnet(255,255,255,0);

    //Настройка объекта сервера
    ESP8266WebServer server;

    //Датчики и что тут не так
    float sensor_value = 0.0;

    void setup() {
        // идентифицируем и запускаем WiFi
      WiFi.mode(WIFI_AP);
      WiFi.softAPConfig(local_ip, gateway, subnet);
      WiFi.softAP(ssid_ap, password_ap);
      //санитарная проверка
      Serial.begin(115200);
      Serial.println();
      Serial.print("IP Address: "); Serial.println(WiFi.localIP());
      //Настраиваем маршруты сервера
      server.on("/", handleIndex); //используем верхний корневой путь для последнего значения датчика
      server.on("/update", handleUpdate); //используем это для обновления значения датчика
      server.begin();
    }

    void loop() {
      // поместите сюда ваш основной код для многократного запуска:
    server.handleClient();
    }

    void handleIndex(){
      server.send(200, "text/plain", String(sensor_value));//необходимо обновить страницу, чтобы получить информацию
    }

    void handleUpdate(){
      //значение передается аргументом URL
      sensor_value = server.arg("value").toFloat();
      Serial.println(sensor_value);
      server.send(200,"text/plain", "Updated");
    }

, 👍0

Обсуждение

Вы должны использовать WiFi.softAPIP();, чтобы получить IP-адрес точки доступа., @Majenko

Да, я знаю это, но я до сих пор не получаю ответа от моего клиента. эта строка не становится истинной на клиенте. Serial.println("Ответ: "); в то время как (клиент. доступен ()) { Строка line = client.readStringUntil('\r'); Serial.print(строка);, @Fojikey

Вы пробовали просто запустить пример WiFiAccessPoint?, @Majenko

Комментарий // WiFi.mode(WIFI_AP); Вам это не нужно с softAP, @Codebreaker007


1 ответ


1

WiFi.localIP() — это функция STA. Чтобы распечатать IP-адрес SoftAP, используйте WiFi.softAPIP().

,

это ответ на вопрос, код и вывод в вопросе. если вы хотите спросить, почему клиент не может подключиться, спросите с кодом и выводом клиента, @Juraj