Проблемы с IP-адресом esp8266

У меня есть приложение Android Studio и коды Arduino, которые связаны друг с другом с помощью esp8266. но он работает только в одной сети, когда я использую другую сеть, он не распознает свой IP-адрес, вместо этого он дает 0.0.0.0 Только это сработало

 #include <LCD5110_Graph.h>
    #include <Adafruit_MLX90614.h>

    #define DEVICE_ID "Monitor1"

    #define DEBUG true
    #define REQ_CODE_ACK 1
    #define REQ_CODE_VALUES 2

    //84 Вт * 48 ч
    LCD5110 myGLCD(8,9,10,12,11);
    extern uint8_t SmallFont[];   //8h * 6w шрифт

    Adafruit_MLX90614 mlx = Adafruit_MLX90614();
    int pinLM35 = A0;         // Контакт A0 для LM35
    int fsrAnalogPin = A2;    //Pin A2 для датчика силы
    int blinkPin = 13;        // Контакт 13 — это встроенный светодиод

  String mSSID = "LibyaADSL-9a86";    //начальный ssid и пароль
  String mPASS = "BYRTPCRJAHPWQ";

    //код http-запроса
    int service_code;        


    // переменные прослушивания Wi-Fi
    String wifiBuf = "";        
    char character;
    int connectionId = 0 ;

    //значения датчика
    float sensor_mlx, sensor_heart, sensor_lm35;
    int sensor_force;

    void setup() {
      // инициализировать ЖК-дисплей
      myGLCD.InitLCD();
      myGLCD.setFont(SmallFont);
      randomSeed(analogRead(7));

      // инициализация MLX90614
      mlx.begin();

      // инициализировать серийный номер
      Serial.begin(115200);           //Ардуино-ПК
      Serial3.begin(115200);          //Ардуино-ESP8266\

      // инициализация esp8266
      init8266(); 

      pinMode(blinkPin,OUTPUT);         // вывод, который будет мигать в такт вашему сердцу!

      delay(200);
    }

    // инициализация esp8266
    void init8266()
    {    
        Serial.println("Init ESP...");
        String stationConCmd = make8266InitCommand();

        sendCommand("AT+RST\r\n",2000,DEBUG);       // сброс модуля
        sendCommand("AT+CWMODE=1\r\n",1000,DEBUG);  // настроить как точку доступа
       // sendCommand("AT+CWDHCP=1,1\r\n",1000,DEBUG);
       // sendCommand("AT+CIPSTA=192.168.0.101,192.168.0.1,255,255,255,0\r\n",1000,DEBUG); // ПРИВЕТ اني ضفته
        sendCommand(stationConCmd, 1000, DEBUG);


        delay(1000);
        sendCommand("AT+CIFSR\r\n",1000,DEBUG);     // получаем ip адрес
    ///
        sendCommand("AT+CIPMUX=1\r\n",1000,DEBUG);  // настроить для нескольких подключений
        sendCommand("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // включаем сервер на порт 80
    }

    //Создаем командную строку для подключения к AP
    String make8266InitCommand()
    {         
        String cmd = "AT+CWJAP=\"" ;        
        cmd += mSSID;
        cmd += "\",\"";
        cmd += mPASS;
        cmd += "\"";
        cmd += ",11,0\r\n";

        return cmd;
    }

до сих пор не могу понять

Надеюсь, кто-то может помочь

Спасибо

, 👍-1

Обсуждение

вы отправляете AT+RST сразу после AT+CWJAP. у него нет времени подключиться к новому WiFi. с запомненной сетью все заработало, потому что подключается к сети автоматически, @Juraj

@Juraj, сколько задержки мне нужно поставить?, @JDEV

Сообщение @jsotola обновлено, пожалуйста, проверьте, @JDEV

логика вашего скетча неверна. вы кидаете кучу рандомных команд на АТ прошивку. из вашего вопроса неясно, используете ли вы или хотите использовать запомненное соединение, или вы отключили автосоединение и хотите подключаться каждый раз и т. д., @Juraj

это написано с точки зрения библиотеки, но справедливо и для необработанных AT-команд: https://github.com/jandrassy/WiFiEspAT#persistent-wifi-connection, @Juraj

@Juraj я обновил вопрос новым изображением, показывающим ошибку, пожалуйста, проверьте, @JDEV

что такое 11,0 в CWJAP? убери это, @Juraj


1 ответ


-1

Если вы настроите esp как точку доступа, то он также должен быть DHCP-сервером и предоставлять IP-адреса своим клиентам. IP-адрес будет присвоен только в том случае, если вы настроите его как клиентскую станцию (например, подключитесь к маршрутизатору в качестве клиента).

,

на какой вопрос вы отвечаете здесь?, @Juraj

я обновил вопрос с новым изображением, показывающим ошибку, пожалуйста, проверьте, @JDEV

В комментарии к строке CWJAP говорилось, что она должна быть настроена как точка доступа, что наводит на мысль о некоторой путанице с концепциями сети Wi-Fi. Однако ошибка, которую вы показываете, возникает сразу после того, как вы пытаетесь подключиться к Wi-Fi ADSL, поэтому с этим сетевым именем или паролем что-то не так. Или, может быть, ваша точка доступа Wi-Fi выполняет фильтрацию MAC-адресов., @tavis