Проблема с WiFi на Mega + WiFi R3 ATmega2560 + ESP8266

У меня есть 2 "Mega + WiFi R3 ATmega2560 + ESP8266" (ссылка), и оба имеют одинаковую проблему при попытке использовать чип ESP.

Надеюсь, кто-нибудь может указать мне на что-то еще, чтобы попробовать, чтобы заставить их работать правильно.

Контекст

Я могу прошить чип ESP с помощью Arduino IDE или PlatformIO. DIP-переключатель должен быть: 5, 6 и 7 ВКЛ для мигания и только 5 и 6 для отладки через последовательный порт.

Я пробовал использовать разные платы (модуль Generic ESP8266, Wemos D1 R2 & mini, Node MCU), а также разные режимы флэш-памяти (DIO, QIO), частоту кристалла (26 МГц, 40 МГц), частоту процессора ( 80 МГц, 160 МГц)

Все они мигают правильно, без ошибок, и я могу получить серийный вывод.

На чипе ESP написано ESP8266EX. И я пробовал с подключенной к плате антенной или без нее.

Проблема

Проблема, с которой я столкнулся на обоих из них, заключается в огромной нестабильности при использовании Wi-Fi. Я не могу подключиться к ним, когда они находятся в режиме точки доступа, они немедленно отключаются. И я не могу подключиться или увидеть свою собственную сеть Wi-Fi из ESP Mega.

Тот же сценарий и конфигурация прошивки, что и на других устройствах ESP, работают должным образом (см. [вывод другой платы ESP] ниже). Я пробовал на устройствах WeMos и NodeMCU.

Но с mega+wifi он видит только от 0 до 2 точек доступа, которые находятся на большем расстоянии и имеют более слабый сигнал, чем мой собственный Wi-Fi ([выход mega+wifi] ниже).

Вопрос

Я понятия не имею, что может вызвать такой разный результат на устройствах того же семейства (ESP/espressif). Как будто на этих ESP нужно изменить какие-то настройки.

Будем искренне признательны за любую помощь или понимание.

[код]

#include "ESP8266WiFi.h"

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

  // Установить WiFi в режим станции и отключиться от точки доступа, если она ранее была подключена
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(100);

  Serial.println("Setup done");
}

void loop() {
  Serial.println("scan start");

  // WiFi.scanNetworks вернет количество найденных сетей
  int n = WiFi.scanNetworks();
  Serial.println("scan done");
  if (n == 0)
    Serial.println("no networks found");
  else
  {
    Serial.print(n);
    Serial.println(" networks found");
    for (int i = 0; i < n; ++i)
    {
      // Печатаем SSID и RSSI для каждой найденной сети
      Serial.print(i + 1);
      Serial.print(": ");
      Serial.print(WiFi.SSID(i));
      Serial.print(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
      delay(10);
    }
  }
  Serial.println("");

  // Немного подождем перед повторным сканированием
  delay(5000);
}

[вывести другую плату ESP]

scandone
scan done
8 networks found
1: 412 Precondition Failed (-67)*
2: VIDEOTRON1547 (-90)*
3: BELL275 (-94)*
4: BELL558 (-72)*
5: C-PC_Network (-88)*
6: BELL387 (-90)*
7: EBOX-4229 (-94)*
8: VIDEOTRON6825 (-80)*

scan start
scandone
scan done
11 networks found
1: 412 Precondition Failed (-63)*
2: VIDEOTRON1547 (-88)*
3: BELL681 (-90)*
4: BELL275 (-90)*
5: VIDEOTRON0442 (-90)*
6: BELL558 (-71)*
7: BELL602 (-90)*
8: IKA COIFFURE (-90)*
9: C-PC_Network (-87)*
10: EBOX-4229 (-87)*
11: BELL387 (-90)*

scan start
scandone
scan done
7 networks found
1: 412 Precondition Failed (-65)*
2: BELL681 (-88)*
3: VIDEOTRON1547 (-88)*
4: EBOX-4229 (-88)*
5: BELL387 (-87)*
6: BELL558 (-71)*
7: dlink-Ares (-75)*

[выход мега+wifi]

SDK:2.2.1(cfd48f3)/Core:2.4.1/lwIP:2.0.3(STABLE-2_0_3_RELEASE/glue:arduino-2.4.1)
bcn 0
del if1
usl
mode : sta(2c:3a:e8:26:36:13)
add if0
wifi evt: 8
Setup done
scan start
scandone
scan done
1 networks found
1: BELL558 (-69)*

scan start
scandone
scan done
1 networks found
1: BELL387 (-88)*

scan start
scandone
scan done
no networks found

scan start
scandone
scan done
1 networks found
1: BELL387 (-87)*

[удаление flash]

PS \tool-esptoolpy> python .\esptool.py -p COM10 erase_flash
esptool.py v2.3.1
Connecting....
Detecting chip type... ESP8266
Chip is ESP8266EX
Features: WiFi
Uploading stub...
Running stub...
Stub running...
Erasing flash (this may take a while)...
Chip erase completed successfully in 14.2s
Hard resetting via RTS pin...

, 👍0

Обсуждение

попробуйте стереть флэш esp8266 с помощью esptool, а затем загрузить скетч из IDE. выберите Generic esp8266 в качестве платы, @Juraj

Я сделал это с помощью python .\esptool.py -p COM10 erase_flash, и это ничего не изменило. Вывод добавлен к вопросу., @Remi


3 ответа


0

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

// Сервер ESP AP
// пароль может быть пустым
// должно быть не менее 8 символов, иначе не будет работать
const char *APName = "MYESP8266";
const char *APPass = "MYPASS123"; 
// запускаем сервер точки доступа
WiFi.softAP(APName, APPass);
// определяем функции веб-ссылок
webServer.on("/", doRoot);
// запускаем сервер
webServer.begin();

// В цикле
// продолжаем проверять, подключается ли кто-нибудь к устройству
webServer.handleClient();

Относительно mega-wifi-r3-atmega2560-esp8266 Я не уверен, как они работают, код прошивается на микросхему ESP или на микросхему Arduino, а ESP находится в режиме AT?

,

Для режима AP я попытался использовать приведенный здесь пример: http://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/soft-access-point-examples.html Я просто не могу подключиться к точке доступа (когда я ее вижу), даже если я нахожусь всего в 1 футе от платы., @Remi

Выдает ошибку после ввода пароля?, @Brian Moreau

Попробуйте написать пароль заглавными буквами, @Brian Moreau

Нет, с компьютера пишет "не удается подключиться к сети", а с моего телефона точка доступа просто исчезает. Тот же код отлично работает на других платах. Больше похоже на проблему с основной прошивкой., @Remi

Если погаснет, то скорее всего код сбой и ESP перезагружается, @Brian Moreau

Как ни странно, это не... ничего в последовательной отладке, даже если уровень отладки включает почти все, @Remi


1

У меня была эта проблема. На Robotdyn D1 mini помогло стирание флэш-памяти esp8266. На Robotdyn D1 R2 только прошивка прошивки AT с помощью Espressif Flash Download Tool восстановила esp8266. После этого скетчи из IDE имели работающий WiFi.

Некоторые настройки базовых библиотек Espressif esp8266 (SDK) сохраняются во флэш-памяти, и существует некоторая несовместимость между версиями SDK. Инструмент загрузки Flash создает двоичный файл правильных настроек esp и записывает его по правильному адресу во флэш-памяти.

,

ESP8266_AT_Bin_V1.6.2? а потом at или at_sdio ? и как мне узнать правильные адреса для использования?, @Remi

"в". адреса зависят от размера флешки и указаны в файле readme, @Juraj

Спасибо. Только что прошил его и даже с прямой AT-командой видит только очень мало сетей Wi-Fi AT+CWMODE? +CWРЕЖИМ:2 ХОРОШО AT+CWMODE=3 ХОРОШО AT+CWMODE? +CWMODE:3 ХОРОШО AT+CWLAP +CWLAP:(2,"CHANTAL-PC-Network",-77,"00:26:5a:d1:c9:96",11,162,0,5,3,7,1), @Remi

AT+GMR Версия AT: 1.6.2.0 (13 апреля 2018 г., 11:10:59) Версия SDK: 2.2.1 (6ab97e9) время компиляции: 7 июня 2018 г. 19:34:26 Версия корзины (Wroom 02): 1.6.2, @Remi

и можете ли вы подключиться к вашей сети (CWJAP)?, @Juraj

Нет.. AT+CWMODE=3 ХОРОШО AT+CWJAP_DEF="412 Precondition Failed","мой пропуск" +CWJAP:3 НЕУДАЧА, @Remi

а CWJAP:3 означает "не удается найти целевую точку доступа", @Remi

Я также изменил страну на США, как это было на «CN», на случай, если это может помочь, но это ничего не изменило даже после сброса., @Remi

идеи: это точка доступа WiFi, которую вы пытаетесь подключить 2,4 ГГц? он указан в скане? попробуйте запустить AP с помощью AT-команд и подключиться к нему., @Juraj

Да, это 2,4 ГГц, и нет, он не отображается в скане на этих устройствах. Но он виден (и подключается) с любой другой платы ESP, которая у меня есть + компьютер + телефон., @Remi

Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/78832/discussion-between-remi-and-juraj)., @Remi


0

Если вы зашли на эту страницу из-за того, что ESP8266 на вашем (WeMos) Mega Wi-Fi не подключается к вашему маршрутизатору (и т. д.), проверьте возраст/безопасность вашего маршрутизатора: Wi-Fi перестал подключаться (Wemos D1 Mini)

Эта строка кода, позволяющая подключиться к моему старому маршрутизатору: WiFi.enableInsecureWEP();

что также подчеркивает, что я должен обновить его...

,