ESP8266, печатает готово при запуске, но не отвечает на AT-команду

Я использовал модуль Wi-Fi ESP8266 с Arduino в качестве FTDI. Питание для ESP8266 поступает от LM317 5В - 3,3В регулируемого источника питания (я уверен, что 5В достаточно, чтобы дать ток до 1А).

Приемник ESP8266 подключен к приемнику Arduino через делитель напряжения для обеспечения логического уровня 3,3 В. Но, тем не менее, я не получаю никакого ответа на команду AT, хотя мой ноутбук и телефон успешно подключились к AI-Thinker... SSID (открытая точка доступа от ESP8266).

У меня также есть несколько значений мусора на последовательном порту сразу после того, как я включу питание ESP8266. Я проверил все скорости передачи данных, доступные в Arduino IDE v1.0.5, но безрезультатно.

Значения резисторов для lm317: R1 = 125 Ом, R2 = 225 Ом, с которым я получаю около 3,2 Вольта.

Соединения следующие:-


-----Arduino UNO-----

СБРОС ------------ ЗАЗЕМЛЕНИЕ


Ардуино УНО ----- ESP8266

TX ------------------- TX

RX --- от 5 В до 3,3 В --- RX

Земля ------------------ Земля


ESP8266 --------- LM317 (от 5 В до 3,3 В)

VCC --------------- 3,3 В

Земля --------------- Земля

CH_PD ------------ 3,3 В



EDIT – 1: я купил новый ESP8266, и даже он не отвечает ни на один AT code> команд, хотя есть некоторая разница в предыдущем выводе ESP8266 и этом новом выводе ESP8266.

Разница для меня является своего рода хорошей новостью, она отправляет ready после отправки какого-то мусора на 115200 скорость при загрузке, чего никогда не было с предыдущим (ESP8266).

Кто-нибудь знает, почему нет ответа на команды AT? Может ли быть проблема с линией TX?


Обновление - 2: я также использовал другой Arduino с такими же подключениями, сомневаясь в контакте TX на Arduino, но с той же удачей, плохо удача. Тем не менее, ничего не изменилось.


Обновление 3: я переключаю 5 В на 3,3 В с помощью трех резисторов по 100 Ом.

, 👍1

Обсуждение

Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат](http://chat.stackexchange.com/rooms/60166/discussion-on-question-by-devesh-saini-no-response-to-at-commands-using-esp8266) ., @Nick Gammon

Я думаю, что **синий** светодиод должен мигать даже при неправильных бодах. Поправьте меня, если я ошибаюсь., @Devesh Saini

**синий** светодиод мигает только при отправке некоторых данных, а не при получении., @Devesh Saini


6 ответов


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

0

Проблема заключалась в моем смещении логического уровня.

Любой вывод Arduino может обеспечивать ток не более 40 мА. То, что вы пытаетесь нарисовать, это: -

5 Вольт / 100 Ом = 50 мА

что явно более актуально, чем то, что может предоставить UNO. Ваш ESP также добавляет свое собственное сопротивление, что означает еще большее потребление тока от контакта RX.

Вместо трех резисторов по 100 Ом используйте несколько резисторов с большим сопротивлением, например, резисторы с сопротивлением 1 кОм (или даже с большим сопротивлением) в схеме делителя напряжения, чтобы не ток проходит через него, потребляя меньше энергии, доступной для контакта Arduino RX.

Примечание. Если вы не знаете, как смещение логического уровня работает со схемой делителя напряжения, нажмите здесь. р>

,

-1

Во-первых, не используйте резисторы (попробуйте) для контакта RX. Подключите его напрямую.

Второе подключение контакта RST ESP8266 к источнику питания 3,3 В.

А также попробуйте один раз использовать arduino напрямую с esp8266. Не используйте lm317 или любой другой отдельный источник питания. Используйте блок питания Arduino 3,3 В.

И я не знаю, почему вы подключили контакт RESET Arduino к GND. Пожалуйста, ответьте мне на это.

,

Я уже пытался подключить arduino RX к ESP8266 RX без резисторов (схема делителя напряжения), но это тоже не сработало. Во-вторых, я не пробовал контакт RST ESP8266 на 3,3 В, я собираюсь попробовать это сейчас и скоро отчитаюсь., @Devesh Saini

Я также использовал arduino напрямую без lm317, он не показывает никаких точек доступа, пока не будет подано внешнее питание на Arduino. Я подал внешнее питание arduino 5V, и точка доступа снова показалась, но и на этот раз без ответа на AT-команду, а при запуске мусор., @Devesh Saini

зачем вы все усложняете. Подключите 3,3 В Arduino к порту Vcc esp8266. И вы, очевидно, должны обеспечить внешний источник питания для Arduino. Подключите его к ПК с помощью USB-кабеля. И подключите контакт RST к 3,3 В. Используйте макетную плату., @SONIA JOHNSON

Я использовал 3,3 В Arduino для esp8266 напрямую. Дано, внешний источник питания к Arduino, подключенный Arduino к ПК и подключенный контакт RST ESP8266 к 3,3 В. Я все еще получаю мусор в последовательном порту при запуске и не отвечаю на AT., @Devesh Saini

@SONIAJOHNSON Вам нужно запитать ESP8266 отдельно от Arduino — для этого требуется более высокий ток, чем может обеспечить вывод Arduino 3V3. Кроме того, контакт ESP8266 RX, по-видимому, чувствителен к напряжению, поэтому для его снижения до 3 В3 требуется делитель или преобразователь напряжения., @Holmez


0

Подключите TX arduino к esp8266 RX, а arduino RX — к esp8266 TX.

См. это. ссылка для получения дополнительной информации.

,

Комментарии не для расширенного обсуждения; этот разговор был [перемещен в чат](http://chat.stackexchange.com/rooms/60363/discussion-on-answer-by-user2497-esp8266-prints-ready-at-start-but-no-response) ., @Nick Gammon

К ответу следует добавить довольно обширный набор комментариев (теперь перемещенных в чат), если они действительно помогают ответить на вопрос. Здесь, на Stack Exchange, ситуация не похожа на форум., @Nick Gammon


0

Во-первых, ваши подключения неверны: -----Ардуино УНО-----

СБРОС ------------ GND (Почему)

Ардуино УНО ----- ESP8266

Передача ------------------- Прием

Прием ------------------- Передача

(RX — принимающая сторона, TX — передающая сторона, всегда следует подключать передатчик к приемнику в обоих направлениях, никогда не передатчик к передатчику или приемник к приемнику, и использовать сдвиг логического уровня)

Земля ------------------ Земля

ESP8266 --------- LM317 (от 5 В до 3,3 В) (только для Vcc)

VCC --------------- 3,3 В

Земля --------------- Земля

CH_PD ------------ 3,3 В

В этих случаях следует использовать переключатель логического уровня, например 74LVC245 или преобразователь уровня sparkfun, а не регулятор напряжения. Если вы должны использовать lm317, подключите его правильно, диоды, конденсаторы и регулировочный потенциометр или резистор. Типичное применение можно найти в таблице данных на стр. 10

скорость передачи должна быть 57600 на esp8266.

глхф :)

,

Когда мы делаем TX-RX, RX-TX, мы пытаемся установить связь между микроконтроллером Arduino и ESP8266, поэтому эти выводы помечены так. Но, в случае, если мы обходим микроконтроллер Arduino, делаем это так TX-TX, RX-RX. Обходя микроконтроллер Arduino, наши TX и RX на arduino меняются местами, то есть они становятся RX и TX компьютера (если мы подключаем компьютер с помощью USB-кабеля), с помощью которого мы можем обмениваться данными между компьютером и ESP8266 в обход Arduino., @Devesh Saini

Во-вторых, я думаю, что ESP8266 получает достаточно энергии, поскольку он отображается как точка доступа Wi-Fi на моем ноутбуке и телефоне, а также отправляет некоторые биты, а затем «готов» в последовательной консоли, так что, возможно, это не имеет ничего общего с LM317, я думаю., @Devesh Saini

В-третьих, Arduino: RESET --- GND, потому что это способ обойти микроконтроллер Arduino, мы могли бы физически удалить его ATMEGA328p с платы, но это не элегантный способ сделать это., @Devesh Saini


0

Какую версию Arduino IDE вы используете? Пользуюсь 1.6.12 и работает, на 1.8 версиях не работает. Также обеспечьте входное питание 3,3 В для esp8266 отдельно от питания Arduino. Я предлагаю использовать блок питания ПК (оранжевый цвет соответствует 3,3 В).

,

0

Проблема, с которой вы столкнулись, заключается в том, что Arduino Uno не может обеспечить достаточный ток при напряжении 3,3 В для работы esp8266. Мне пришлось использовать отдельный источник питания с заземлением, и тогда мой esp8266 реагировал на AT-команды.

Обзор:

  • Я использую Arduino Uno в качестве последовательного моста (RESET привязан к GND)

  • внешний источник питания для esp8266

  • и двунаправленный переключатель уровня для каналов передачи данных TX/RX с напряжением от 3,3 В до 5 В

  • Подключил CHPD esp8266 к GND, подождал 5 секунд, затем снова подключил к 3,4 В

  • IDE для Arduino > Инструменты> Последовательный монитор > Оба NL и CR > Скорость 115200 бод

,

и я просто подключаю Uno к esp-01 напрямую, и он работает. но это зависит от версии Uno. оригинальный Rev 3 дает 150 мА на контактах 3,3 В, чего достаточно для esp-01. нет необходимости сдвигать уровень с 3,3 до 5 В, а у esp8266 нет проблем с логическим уровнем 5 В практически без протекания тока, @Juraj

@Juraj Я читал в нескольких местах, что рабочее напряжение ESP8266 составляет 3,3 В. Кроме того, смещение уровня I, потому что TX / RX Arduino Uno ожидает 5 В, тогда как ESP8266 ожидает 3,3 В. https://cdn-shop.adafruit.com/product-files/2471/0A-ESP8266__Datasheet__EN_v4.3.pdf, @goat1123