Пытаюсь прошить ESP8266 с помощью Arduino UNO

Это мой первый проект, не считая некоторых стартовых проектов. Я пытаюсь прошить прошивку на модуль Wi-Fi ESP8266, используя и arduino uno. Было бы неплохо узнать, есть ли что-то неправильное или лишнее на картинке ниже (я просмотрел несколько разных диаграмм, чтобы попытаться понять, что правильно). Я нашел несколько руководств, в которых говорится, что TX должен переходить на RX, а не TX на TX, так что я и делаю. Я пытаюсь использовать переключатель уровня, чтобы перейти от 5 В к 3,3 В, потому что я не был уверен, что у меня достаточно тока, поступающего на ESP8266, когда я просто напрямую подключил до 3,3 В на Arduino (я читал в нескольких местах, что Arduino не имеет достаточно сильного тока для работы модуля Wi-Fi). Я нашел несколько руководств, в которых используется регулятор напряжения, я пытался это сделать, но получил те же результаты, что и сейчас. Я также читал, что вам не нужен регулятор уровня или регулятор напряжения, но это может повредить компоненты, поэтому я еще не пробовал этот способ.

Я подключаю его к компьютеру через USB, открываю Arduino IDE > Инструменты > Монитор последовательного порта.

Я набираю команду 'AT', но ответа нет — я перепробовал все настройки скорости передачи данных. Иногда он случайным образом выводит вопросительный знак или два.

Другое примечание: когда я подключаю его, синий индикатор ESP8266 мигает один раз. Когда я модифицировал контакты разъема ESP8266, я много возился с этим — могло ли это сломать какой-то аспект чипа? Кроме того, при модификации штыревых контактов я вставил их все внутрь, чтобы сделать их длиннее, и согнул их с другой стороны, чтобы они работали с макетной платой — мне интересно, должны ли соединения для пайки быть более прочными (вы можете видеть на картинке).

Это схема того, чего я пытался достичь в основном, а также использовал переключатель уровня:

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

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

, 👍3

Обсуждение

Ооо... Этот припой! Это НЕ нормально!, @Randomaker


3 ответа


3

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

И Arduino уже имеет эту защиту между ATMega16U2 и выводами TX/RX в виде резисторов 100 Ом, которые используются для предотвращения короткого замыкания между двумя микроконтроллерами на плате, так что вам не нужно ее добавлять. в данном случае (это нужно делать, если вы хотите обмениваться данными между ATMega328P и ESP8266, но только между выводами TX Arduino и выводами RX ESP8266).

Когда дело доходит до активной работы ESP8266, может быть выгодно питать его от более мощного стабилизатора 3,3 В, чем 150 мА на Arduino, поскольку при передаче ESP8266 требует большего, но для простой прошивки Arduino Регулятор на 150 мА должен работать нормально.

Одна вещь, которую следует отметить: мне не нравится вид пайки на контактах ESP8266. Я бы склонялся к тому, чтобы перепаять эти соединения. Добавьте немного флюса, чтобы обеспечить правильное растекание припоя.

,

Спасибо @Majenko, я спаяю эти соединения. из ваших комментариев внизу: у меня нет под рукой регулятора, и мне было интересно, могу ли я использовать уравнение здесь https://learn.sparkfun.com/tutorials/voltage-dividers для использования в качестве грубого регулятора ... будет ли это небезопасно ... Думаю, я припаю, а затем попробую еще раз, чтобы убедиться, что это не соединение., @ewizard

Точно нет. https://hackingmajenkoblog.wordpress.com/2016/08/30/why-you-cant-use-resistors-as-a-voltage-regulator/, @Majenko

здорово, что это объяснили, общение не сила, спасибо за ссылку., @ewizard

но я все еще могу попробовать с 3,3 В на ардуино в качестве источника питания, вы сказали, что этого должно быть достаточно для прошивки, @ewizard

Поможет ли мой переключатель уровня от 5 до 3,3 В?, @ewizard

Не для власти, нет. Только логические сигналы., @Majenko


0

Что я сделал, так это соединил ESP8266 и UNO, как описано на схеме.

Но вместо использования программы по умолчанию в ESP8266 я запрограммировал ESP8266 через UNO, используя библиотеку ESP8266 в Arduino IDE

Если ваш способ все еще не работает, вы можете попробовать этот метод.

,

0

Я думаю, что смогу немного прояснить ситуацию здесь:

Вы не пытаетесь "прошить" плату ESP01 (такую, что у вас есть), а пытаетесь связаться с прошивкой AT-команды, с которой она была установлена.

Кроме того, есть своего рода скетч pingback (я забыл название и не могу его найти, но в основном он использует SoftwareSerial и копирует символы из одного в другой и наоборот), который используется для настройки ESP01, который обычно используется, но вы, кажется, не используете его здесь (может быть, это не стоит усилий, так как иногда сложно заставить работать).

В этом случае кажется, что вы пытаетесь сделать одно из двух:

Если вы пытаетесь связаться с модулем ESP01 с компьютера, подключите TX к контакту TX, а RX — к контакту RX. Это связано с тем, что последовательный адаптер платы Arduino уже подключен в зеркальном направлении, и вы используете его для связи с ESP01. Обратите внимание, что вы должны перед подключением ESP01 загрузить скетч Blink или аналогичный в Arduino, чтобы он не пытался использовать последовательное соединение. См. http://www.teomaragakis.com/ hardware/electronics/how-to-connect-an-esp8266-to-an-arduino-uno/ для получения дополнительной информации об этом варианте использования.

С другой стороны, если вы пытаетесь подключиться к устройству через сам Arduino (например, в Arduino есть программа, которой требуется доступ к WiFi), вы захотите подключить его RX к TX и TX к RX. . Конечно, при этом в Arduino уже должна быть загружена программа, поскольку ESP01 впоследствии вызовет проблемы с загрузкой прошивки через последовательный порт (они оба говорят одновременно).

Наконец, эти вещи ДЕЙСТВИТЕЛЬНО привередливы, поэтому убедитесь, что вы установили скорость передачи данных и используете сигнализацию конца строки NLCR.

,