Проблема с 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...
@Remi, 👍0
Обсуждение3 ответа
Вы заявляете, что "не можете подключиться к ним, когда они находятся в режиме точки доступа", но я не вижу точки доступа, настроенной в вашем коде.
// Сервер 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
У меня была эта проблема. На 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
Если вы зашли на эту страницу из-за того, что ESP8266 на вашем (WeMos) Mega Wi-Fi не подключается к вашему маршрутизатору (и т. д.), проверьте возраст/безопасность вашего маршрутизатора: Wi-Fi перестал подключаться (Wemos D1 Mini)
Эта строка кода, позволяющая подключиться к моему старому маршрутизатору: WiFi.enableInsecureWEP();
что также подчеркивает, что я должен обновить его...
- Ошибка тайм-аута с Arduino Mega и ESP8266 в качестве модуля Wi-Fi
- Связь Mega <> esp8266 отправляет непонятные данные
- ESP8266 не подключается к Wi-Fi
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Можно ли отключить WiFi на ESP8266?
- Как отключить или остановить точку доступа в ESP8266?
- ESP8266 — действительно ли у него по умолчанию плохой радиус действия Wi-Fi?
- Как подключить ESP8266 с помощью адаптера ESP-01 к Arduino Uno?
попробуйте стереть флэш esp8266 с помощью esptool, а затем загрузить скетч из IDE. выберите Generic esp8266 в качестве платы, @Juraj
Я сделал это с помощью
python .\esptool.py -p COM10 erase_flash
, и это ничего не изменило. Вывод добавлен к вопросу., @Remi