Ошибка ESP8266 при подключении к маршрутизатору

Я пытаюсь заставить работать плату ESP8266 с контактами 2x4. Я подключаю его к Olimexino 32u4 (совместимому с Leonardo), настроенному на использование 3,3 В. Этот простой фрагмент я использую для переноса всего на ПК (CH_PD подключен к D8, /RST к D9):

void setup() {
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  delay(2000);
  // инициализируем оба последовательных порта:
  Serial.begin(9600);
  Serial1.begin(115200);
  delay(10000);
  digitalWrite(9, HIGH);
  digitalWrite(8, HIGH);
}

void loop() {
  // читаем с порта 1, отправляем на порт 0:
  if (Serial1.available()) {
    int inByte = Serial1.read();
    Serial.write(inByte);
  }

  // читаем с порта 0, отправляем на порт 1:
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial1.write(inByte);
  }
}

При запуске я вижу следующий вывод:

<"random" bytes>
Ai-Thinker Technology Co. Ltd.

invalid

Выполнение сброса показывает больше:

AT+RST


OK

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

ŒÂÕ�MEM CHECK FAIL!!!
äsl�‚rô
Ai-Thinker Technology Co. Ltd.

invalid

Режим установлен на станцию:

AT+CWMODE?

+CWMODE:1

OK

Список точек доступа работает нормально:

AT+CWLAP

+CWLAP:(3,"ap-1",-91,"01:23:45:67:89:ab",1)
+CWLAP:(3,"ap-2",-88,"cd:ef:01:23:45:67",2)
+CWLAP:(3,"ap-3",-74,"89:ab:cd:ef:01:23",11)

OK

Но войти в мой маршрутизатор Fritzbox не удается (WPA2):

AT+CWJAP="ap-2","mypassword"
WIFI CONNECTED
+CWJAP:1

FAIL
WIFI DISCONNECT

Сначала я подумал, что причина в низком уровне сигнала, но даже движение непосредственно рядом с Fritzbox показывает тот же результат (правда, с более высоким значением сигнала в AT+CWLAP).

Я перепробовал почти все, например AT+CWMODE=3, AT+RST, AT+RESTORE). Ничего не меняется. При использовании неправильного пароля я вообще не получаю сообщений "WIFI CONNECTED".

Может ли это быть проблема с питанием (что Olimexino не может обеспечить до 200 мА на линии 3,3 В?

Подключение со смартфона к ESP8266 в одном из режимов точки доступа (2 или 3) работает нормально. Если бы были проблемы с питанием, не сбивался бы и режим точки доступа?

, 👍2


4 ответа


Лучший ответ:

5

Похоже, что ESP8266 не может получить IP-адрес через DHCP (это было включено в ESP8266, но Fritzbox был настроен для ограниченного диапазона только .200 - .209). При явной настройке IP:

AT+CIPSTA="192.168.92.82","192.168.92.254","255.255.255.0"

OK

а затем попытался подключиться, это сработало:

AT+CWJAP="ap-2","mypassword"
WIFI CONNECTED
WIFI GOT IP

OK

Теперь также работает пинг: :)

AT+PING="arduino.stackexchange.com"

+39

OK
,

11

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

AT+CWJAP="myssid","mypassword"
WIFI CONNECTED
+CWJAP:1

FAIL
WIFI DISCONNECT

Причина в том, что ESP8266, который у меня есть, по умолчанию настроен с отключенным DHCP. Чтобы включить его, вы можете попробовать следующее:

AT+CWDHCP=1,1

Если это сработает, вы получите следующее сообщение:

OK
WIFI GOT IP
,

Старый старый старый пост, который я знаю, но почти уверен, что это (более универсальный) правильный ответ, а не принятый., @Jon


1

У меня было много головной боли, связанной с этой ошибкой CWJAP:1 и несколькими другими, такими как OK в обмен на команду изменения IP-номера, но на самом деле IP-номер все тот же, что и раньше !!! Решение: команда AT+RESTORE для возврата ESP8266 к заводским настройкам по умолчанию... Когда по неизвестной причине происходят нелогичные вещи, вероятно, это связано с тем, что какой-то внутренний регистр имеет грязные значения внутри, и только AT+RESTORE может их нормализовать. .

,

2

У меня была такая же проблема, и я потратил позорное количество часов, пытаясь решить ее, прежде чем наткнулся на этот пост.

Я сделал AT+RESTORE, а затем AT+UART_DEF=9600,8,1,0,0, так как, как и ожидалось, модуль ожидал связи на 115200 после восстановление.

Затем... как по волшебству, теперь все работает...

AT+CWJAP="ssis","pwd"
WIFI CONNECTED
WIFI GOT IP


!

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

,