esp8266 не отвечает на AT-команды
Я интегрирую Arduino Uno с Wi-Fi-модулем ESP8266. Я уже выполнил следующие соединения между ESP8266 и Arduino Uno:
txd uno -> rxd esp8266
rxd uno -> txd esp8266
gnd uno -> gnd esp8266
Выводы VCC и Chid микроконтроллера ESP8266 подключены к внешнему источнику питания напряжением 3,3 В и током 160 мА. Код загружается в Arduino, и ESP8266 также включается. Но при отправке AT-команд через последовательный монитор возникает проблема. Микроконтроллер не отвечает, хотя красный светодиод горит постоянно, а при нажатии Enter после отправки команды синий светодиод мигает несколько секунд. Нужно ли обновлять прошивку ESP8266?
@Rohan sethi, 👍1
Обсуждение6 ответов
Похоже, вы не использовали какой-либо делитель напряжения или преобразователь уровня между линией передачи Arduino и линией приёма ESP8266. ESP8266 не очень-то дружит с напряжением 5 В. Жаль, что Arduino выдаёт 5 В на всех своих выводах. Вы всё ещё можете попробовать использовать делитель напряжения с двумя резисторами или преобразователь уровня, надеюсь, это сработает. В противном случае, используйте модуль USB->UART 3,3 В или приобретите новый ESP8266.
Я думал, что нам нужно только питание 3,3 В. Не знаю, что между контактами также должен быть делитель напряжения. Нам нужен делитель напряжения только между контактами Arduino TX-> ESP 8266 RX, а не между Arduino RX -> ESP 8266 TX?, @Rohan sethi
Нет. Вывод TX отправляет данные. Это означает, что напряжение задаётся микроконтроллером. Это означает, что передающий вывод Arduino имеет напряжение 5 В, что плохо для ESP, в то время как передающий вывод ESP — 3,3 В, с которыми у Arduino проблем не возникает. Также следует помнить об этом при работе с экранами или датчиками. Всегда читайте техническое описание и проверяйте максимальное напряжение в IO (в 90% случаев можно найти VIO)., @Matze Strawberrymaker
Я учел ваши решения и сделал следующее: 1. Я использую аккумулятор в качестве источника питания, а не Arduino. 2. Я использую разные контакты для связи между USB и ESP. 3. Я подключил делитель напряжения и понизил напряжение до 3,3 В, одновременно подключив передатчик Arduino к приёмнику ESP. Но я всё ещё не могу ничего получить от ESP., @Rohan sethi
Хорошо, я просто обобщу то, что увидел в комментариях и ответах. Это довольно простая проблема? Вы найдёте много информации по ней в интернете.
Текущий (слишком большой расход фишки?):
Беспроводная связь может потреблять много тока. Вам понадобится хороший блок питания. Arduino обычно не может обеспечить достаточный ток. Проверьте спецификацию микросхемы, чтобы узнать её максимальный потребляемый ток.
Rx/Tx (проводка):
Обязательно отправляйте данные через контакт Tx на контакт Receive (Rx) другого устройства. Кроме того, вы не можете использовать одни и те же контакты Tx для USB-связи и для подключения к ESP, это в принципе не будет работать.
Напряжение (3,3 В против 5 В):
Arduino работает от 5 В, а ESP — от 3,3 В, так что не стоит их путать. В некоторых случаях это подойдёт. Подача 3,3 В (передача ESP) на приём Arduino (5 В) не повредит его. Но наоборот крайне не рекомендуется. Используйте между ними преобразователь логических уровней или делитель напряжения.
Возможно, чип сломан
Если чип вообще ничего не делает, стоит учитывать, что он, возможно, сломан... Я потратил слишком много часов на отладку кода, а чип просто не работал. Кроме того, после подачи 5 В на ESP8266 это становится весьма вероятным.
Я учел все ваши решения и сделал следующее: 1. Я использую аккумулятор в качестве источника питания, а не Arduino. 2. Я использую разные контакты для связи между USB и ESP. 3. Я подключил делитель напряжения и понизил напряжение до 3,3 В, одновременно подключив передатчик Arduino к приёмнику ESP. Но я всё ещё не могу ничего получить от ESP., @Rohan sethi
Если бы вы использовали 5-вольтовую логику на ESP, вы бы его убили. Вы уверены, что чип работает?, @Avamander
Ты что-то пропустил, бро!
Arduino ESP8266 Rxd -> Txd Тхд -> Рхд 3,3 В -> VCC Земля -> Земля 3,3 В -> CH_PD
Всё вышесказанное верно! Несколько дней назад всё работало. Внезапно перестало работать, но красный светодиод на нём всё ещё горит., @Rahul Rastogi
У меня была та же проблема. Помогло соединение GND обоих источников питания: того, который питает Arduino, и того, который питает 3,3 В ESP8266.
У нас возникла похожая проблема, и нам пришлось потратить много времени, пытаясь понять, в чем проблема. Следующие советы, безусловно, помогли нам решить ее:
- Мы установили скорость передачи данных последовательного порта на 1200 бод. Это привело к корректному отображению ответов от ESP без каких-либо помех или с минимальным количеством мусора.
- Мы установили скорость передачи данных с ESP на 115200 бод. Это гарантировало, что ESP будет получать правильные команды.
- Мы гарантируем, что каждая отправляемая нами команда завершается CR, например, ESP8266.println(espCmd + "\r"); // где ESP8266 — это SoftwareSerial ESP8266 (rxPin, txPin);
- Кроме того, при подаче на модуль ESP 5 В ответа от него не последовало. Когда мы подали только 3,3 В, он начал реагировать. Поначалу ответы выглядели некорректно из-за несоответствия настроек скорости передачи данных.
Надеюсь, это поможет.
(Иногда вам может понадобиться использовать оба \r\n....)
С уважением
Но, конечно, подача правильного напряжения на плату (3,3 В) и смещение уровня линий rx и tx так, чтобы ESP получал 3,3 В, а Arduino — 5 В, работало бы гораздо лучше., @Code Gorilla
Даже я столкнулся с подобной проблемой. Мне приходилось общаться с помощью AT, пока я не загрузил на плату другую программу. Изначально все платы ESP поставляются с прошивкой ответа AT. Если я не ошибаюсь, после загрузки вашего кода или программы она заменяет ее, поэтому вы не получите никакого ответа. Это мой личный опыт использования всех видов плат esp8266 (01, nodeMCU) и т. д. Поскольку я все еще учусь, пожалуйста, поправьте меня, если я неправильно это спроецировал. Спасибо
- Как читать и записывать EEPROM в ESP8266
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Как навсегда изменить скорость передачи данных ESP8266 (12e)?
- Как заставить 5-вольтовое реле работать с NodeMCU
- Как исправить: Invalid conversion from 'const char*' to 'char*' [-fpermissive]
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- AT-команда не отвечает на последовательный монитор
возможный дубликат esp 8266 не программируется, @Majenko
Это не дубликат вопроса выше. Светодиоды не светятся, но esp8266 не реагирует на AT-команды., @Rohan sethi
Это дубликат, поскольку вы допустили ту же самую базовую ошибку в своей проводке и пытаетесь неправильно общаться тем же способом., @Majenko
Не могли бы вы объяснить мне, в чем основная ошибка, которую я допускаю?, @Rohan sethi
Вы не можете одновременно использовать контакты TX/RX для связи с ПК и внешним модулем. Фактически, вы перепутали полярность подключения ESP для связи с последовательным монитором, но если перевернуть, то и для связи с Arduino тоже будет перепутана полярность подключения. Если вы хотите общаться через последовательный терминал, вам придётся подключить ESP к другим контактам и передавать данные через SoftwareSerial., @Majenko
Я не думаю, что вам следует подключать TX Arduino напрямую к RX ESP, поскольку ESP принимает только сигналы 3,3 В, тогда как Uno использует сигналы 5 В., @Gerben
160 мА едва хватает для питания ESP. Если мне не изменяет память, этот чип может потреблять до 1 А при определённых условиях., @Butters
Пожалуйста, спасите этот чип от ужасной смерти! Понизьте напряжение на сигнальных контактах до 3,3 В, иначе вы его убьёте!, @Butters
Я снизил напряжение до 3,3 В с помощью делителя напряжения. Проблема осталась прежней., @Rohan sethi
У меня та же проблема. Я использовал Arduino для связи с ESP8266. Для связи с ESP я использовал Serial1. После загрузки, что бы я ни передавал в ESP, возвращаются одни и те же символы. Сам ESP выглядит нормально, его SSID отображается, и я подключаюсь к нему по Wi-Fi. Может ли кто-нибудь помочь в этом вопросе?, @Azeem