• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Не работает модуль esp8266

nickname

New member
Раз вопросы задаете здесь - значит сначала нужно все правильно подключить :)
Пожалуйста, ткните ссылкой, какой резистор нужен между CH_PD и VCC. Я понял, что преобразователь очень-очень рекомендуется. Спасибо. Питание можно брать с платы Arduino разъема 3.3V?
 

JustACat

Moderator
Команда форума
@nickname, понимаете, если человеку сразу пихнуть все по докам - то, во-первых, это может и в схему не влезть, либо она будет мудреная, а во-вторых, это многих просто отпугнет, и они и вовсе ни читать ни использовать не будут.
Вы же сами вот именно на такую упрощенную схему смотрите и повторяете, а не полезли сразу в документацию официальную от ESP. Хотя документация есть. Кривенькая, косенькая, на английском, не всегда корректная, но есть. И те, кто привык начинать с даташитов, думаю, так и делают.

А еще есть общий опыт, который мы пытаемся тут копить и по возможности - советовать (заметьте, совершенно безвозмездно). Ну и по мере сил и возможностей приводим статьи и документацию в порядок.
Так что там схема не "не правильная", а упрощенная. У вас же с ней ESP работает. Так?
Вот такие пирожки... с котятами...

PS: может мы конечно в чем-то и не правы, я обратного и не утверждал. Что ж, флаг вам в руки - возьмите и сделайте лучше. Напишите правильно! Мы (и еще многие) скажем вам спасибо и будем очень рады (говорю искренне, без сарказма).
 
Последнее редактирование:

Victor

Administrator
Команда форума
Пожалуйста, ткните ссылкой, какой резистор нужен между CH_PD и VCC. Я понял, что преобразователь очень-очень рекомендуется. Спасибо. Питание можно брать с платы Arduino разъема 3.3V?
да я бы так сразу и сделал, только еще никто не расписал в одном месте как сделать все правильно, потому что знания эти набирались сообществом кусочками вместе с опытом.
Но на форуме есть информация. Посмотрите у @JustACat в подписи Как я подключаю ESP-07 и ESP-12 - новичкам настоятельно рекомендую прочесть!
Много полезного в постах @pvvx

Удачи!
 

nickname

New member

JustACat

Moderator
Команда форума
можно брать с платы Arduino разъема 3.3V?
Можно, но не стоит. Как показывает практика, ESP в прыжке (на некоторых прошивках, в основном старых, на старом SDK или с ошибками в коде, как поправил @pvvx - читайте следующее за этим сообщение) может потреблять вплоть до 700 mA... Хотя по документации конечно меньше. Но даже заявленные в документации ~300 mA распаянный на Ардуино преобразователь может не вытянуть (да и USB порт может тоже, в общем, слабых мест много). Хотя смотря какой у вас на Ардуино преобразователь. Если на 1117 (AMS или подобной), то она на 800 mA способна.
На оригинальных Ардуино обычно стоит самовосстанавливающийся предохранитель. Так что особо плохого ничего не будет, но может просто не хватить запаса по току и не сработать какой-то потребялющий много процесс. ESP перезагрузится в таком случае скорее всего.
как подключали вы
Я вам еще раз говорю: вы определитесь, чего вы хотите конкретно: чтобы как-то работало, чтобы работало постабильнее, чтобы было 1-в-1 по документации?
То, что написано в подключении у меня - у меня и работает. С достаточной для меня стабильностью :)
Кстати, то, что написано у @Victor'а - у него тоже работает и с достаточной для него стабильностью.
Но вот, увы, не у всех так же. Мне иногда кажется, что вообще 2 одинаковых ESP нет, и каждая ведет себя по своему... Ну что сказать - это к разработчикам, производителям модулей и комплектухи для них, наверное...
Если посидите подольше на форуме, то такого про ESP поначитаетесь. Иногда прямо мистика. Хотя увы, чаще всего где-то не хватает резистора, или наоборот перебор с сопротивлением... Либо проблемы с контактом (про землю забыли и т.п.), либо с питанием (сюда же можно отнести и конденсаторы)...

PS: кстати, вторая моя темка про подключение (про ESP-12), где как раз CH_PD уже через 4,7 кОм, наглядно демонстрирует капризы ESP...
 
Последнее редактирование:

pvvx

Активный участник сообщества
Можно, но не стоит. Как показывает практика, ESP в прыжке может потреблять вплоть до 700 mA... Хотя по документации конечно меньше. Но даже заявленные в документации ~300 mA распаянный на Ардуино преобразователь может не вытянуть
Не пугайте народ. Все нормальные прошивки, с SDK0.9.5 и далее ныне работают до среднего тока в 250mA при 3.3V. У меня с самого начала на макетке стоит SMD стабилизатор с 5 в 3.3V с пределом по документации в 250mA (он ещё это проверяет и ограничивает) и не разу ничего плохого не стало и всё всегда работало, кроме случаев специальных тестов на перегрев и на разные замыкания всего подряд :) Прошли те времена, когда народ замыкал выводы напрямую на gnd или +3.3V для переключений режимов прошивка-работа... Т.е. если модуль жрет более 250 mA - ищите ошибки подключения.
Так-же настоятельно укажу для JustACat (он часто возиться с впервые подключающими модуль) - при не прошитой области 0x7C000 данными из esp_init_data_default.bin, SDK (последние версии) сама ставит настройки по умолчанию и ничего в этом страшного нет. Тест производится при старте SDK и проверяется первый байт на значение равное 5. Если не 5 - то ставиться настройки из SDK, аналогичные esp_init_data_default.bin.
 
Последнее редактирование:

JustACat

Moderator
Команда форума
pvvx, а разве не лучше перебдеть, чем недобдеть? =) Тем более, что вы же пишете "Все нормальные прошивки, с SDK0.9.5 и далее" - а если у человека не нормальная или старая?
Я лишь написал то, что сам у себя наблюдал. В любом случае спасибо вам за замечание! Я внес поправку в свое сообщение.
И за "настройки по умолчанию" тоже благодарю!
 

nickname

New member
Я вам еще раз говорю: вы определитесь, чего вы хотите конкретно: чтобы как-то работало, чтобы работало постабильнее, чтобы было 1-в-1 по документации?
Мне надо, чтобы работало постабильнее - беспроводной датчик, который будет отправлять данные на сервер 24 часа в сутки 365 дней в году.
 

JustACat

Moderator
Команда форума
nickname, самый стабильный вариант в случае с ESP - дополнительный МК (любой ваш отлаженный, проверенный, и с которым вы научились работать, в котором вы уверены, на котором собаку съели). Который будет как минимум мониторить состояние ESP, и в случае чего всегда ее перезагрузит.
В случае с ESP-only вряд ли кто-то вам сможет сказать, ударя кулаком в грудь: "вот такой-то вариант - 100% правильный и обеспечит вам работу 24/7/365". Кому нужна такая ответственность перед кем-то, да за бесплатно тем более? ;)
Так что вам остается только пробовать и, как и все здесь, набивать шишки и совместными усилиями (по возможности) копить опыт.
Либо заказать кому-то разработку вашего устройства за деньги и с гарантией (если что, я не намекаю на себя, у меня для этого нет опыта).
Как-то так...

PS: и да, меня сегодня на "поболтать" пробило, извините :)
 

nickname

New member
Ясно. Ну, у меня платка уже начинает подглючивать - раньше работала сутки, а сейчас полтора часа, и подвисает. Работаю с Arduino. Serial буфер действительно 64 байта. Кстати, если кому будет полезно, то такой код позволяет вытащить немного больший список сетей, но все равно не весь.

Код:
          Serial3.println( "AT+CWLAP" );
          //delay( 2000 );     

          String Res = "";     
          long TimeToRead = millis();
          while (true)
          {
           if ( millis() -  TimeToRead > 10000 )
               break;               
            char ch = Serial3.read();
              
            byte chb = ch;
            if ( chb == 255 )
              continue;       
            Res = Res + ch;       
          }
      
          Serial.println("WiFi Nets:");
          Serial.println( Res );

И все таки, я так понял, что подключать ESP8266 - 01 надо так:

Tx, Rx на Rx, Tx Arduino через конвертер логических сигналов 5V <-> 3.3V
VCC, GND - питание 3.3V
CH_PD (=CHIP_ENABLE?) через резистор 5К (как в datasheet) конденсатор можно опустить?
RST на любой выход Arduino, чтобы можно было из Arduino перезагружать модуль. Если RST замкнуть на GND, то ESP8266 перезагрузится
GPIO0 - к земле (напрямую?) в случае перепрошивки
GPIO2 - висит в воздухе?
 
Последнее редактирование:

JustACat

Moderator
Команда форума
у меня платка уже начинает подглючивать
Вот :(
Serial буфер действительно 64 байта
Вы можете его увеличить (я обычно ставлю 128). Только не забывайте, что он займет места в оперативке ардуинки из серии:
размер_буфера * 2 (ввод и вывод) * кол-во_UART
Ну и по полученным данным - лучше конечно сразу их обрабатывать, а не хранить во всяких там String'ах. Это слишком большие накладные ресурсы, толку в которых обычно особо нет. Например, если вам просто надо для дебага вывести в другой UART то, что прилетело в UART, к которому подключена ESP, то так и делайте сразу:
Код:
byte b = Serial3.read();
Serial.write(b);
// а тут далее уже работаем с полученным байтом
По подключению: ну почти.
Согласовывать нужно все ноги, которые вы подключаете между МК с разными уровнями питания.
(кстати, согласовывать направление от ESP к ардуино - не обязательно, т.к. ардуино на входе 3.3 вольта скорее всего нормально распознает как 1, но нужно тоже проверять)
То есть RST тоже надо к ардуино подключать согласовано. Хотя тут уже не нужно спец.микросхем, в принципе будет вполне достаточно подтянуть RST к 3.3 вольтам резистором в 5 или 10 кОм и еще через 1 резистор, Ом на 470, подключить к выводу Ардуино, и этот вывод не включать на выход без необходимости. То есть пусть он будет включен на вход без подтяжки (Hi-Z), а когда надо перезагрузить ESP - выставляете этот пин на выход и подаете на него 0, затем обратно на вход без подтяжки. Примерно так. Подчеркиваю - примерно... Я все же не эксперт...
Конденсаторы керамические небольшого номинала ставятся на всякие CHIP_EN и на RST иногда тоже - для убирания помех. Они сглаживают всякие ненужные импульсы и могут помочь в случае самопроизвольных перезагрузов.
GPIO (как для прошивки, та к и потом для работы) лучше подтягивать через резисторы (для обычной работы - большого номинала 5-10 кОм) и не оставлять в воздухе вообще.
Как-то так... Примерно.

Update: ах да, еще кондеры по питанию могут помочь в случае нестабильной работы, прямо между ногами VCC и GND на входе ESP можно поставить электролитический - на сколько не жалко 470-1000 мкф, ну и керамику еще на 100-330 нф.
Это все не обязательно, но помочь от помех может (а может и не помочь).

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

nickname

New member
GPIO (как для прошивки, та к и потом для работы) лучше подтягивать через резисторы (для обычной работы - большого номинала 5-10 кОм) и не оставлять в воздухе вообще.
Спасибо. Не понятно, GPIO0 и GPIO2 подтягивать к +3.3V или к GND? Я так понял, что к GND
А код типа Serial.write( Serial3.read() ) у меня тоже не работает. Видимо потому что, вывод Serial.write занимает время, и буффер успевает переполниться.
 

JustACat

Moderator
Команда форума
Я так понял, что к GND
Если вы их к земле на постоянку подтянете, у вас модуль все время будет в режим прошивки входить при старте: ESP8266_Module Application Design Guide.pdf - страница 16.
Так что подтягивать согласно нужному режиму.
Serial.write( Serial3.read() )
А это странно... Хотя да, может быть поэтому.
 

NOP

New member
... для прошивки делайте так (вот прямо по пунктам):....
Огромное спасибо за инструкцию!!!:) Два дня провозился, не получалось прошить, уже все перепробовал, собрал максимальную обвязку, и никак, думал уже выкинуть в ящик модуль, так как он в терминал слал только мусор, и как точка доступа не появлялся. Помогла только правильная последовательность включения USB-TTL и самого модуля, как описано тут, Теперь прошился и без изменений в схеме он отзывается на АТ команды и виден как точка.
 
Последнее редактирование модератором:

XSmile2008

New member
Всем доброго времени суток))) Сегодня начал эксперименты с 8266-01 никак не могу начать работать с нею. Фото подключения ниже. СH_PD(оранжевый) подключен к 3.3 через 5к резистор, rx(синий провод) через делитель напряжения(выдает ровно 3,3в), tx белый, подключение GPIO через резисторы(пробовал от 300 Ом до 20 кОм) не дает никаких изменений только напрямую к 3,3.
ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x40100000, len 25052, room 16
tail 12
chksum 0x0b
ho 0 tail 12 room 4
load 0x3ffe8000, len 3312, room 1
tail 4
chksum xd8e
tail 1
sd���������������������������������������������������������������������������������������������������������������
ets Jan 8 2013,rst cause:2, boot mode:(2,6)

Fatal exception (0):
epc100p00px0edx0e00F p(
110c00px0xd00dx0
t
=00200c00xd00e00Fxt(e11,c00c00xd00e00aei0
=0 20,c00x=00c00aei0
00,=00300c=00c00txi)ex0 00,=00vr0,p00axo:ex0 000300xr00d00Flp(
100c00ex0 d00dx0
p(
11e0 x0d0d0
en
x000=0cx0=0at:10c0e0,d0e0
x
4,x0=0v0 00 o
00=0c0x00c0tp)c0p0e0,d0d0
x
4,x0=0v0000at:10c0e0 r0e0Fc(e0 0000d0 0
en
x00030cx0=0at)10c0e0 r0e0Fc e0,x0=0v0000li:=020p0e00p0tp0c0p0 x,d0d0
xn
4,x0=0v0000lt:=020p0er0p0Fc e0 x000a0,x0 i 000030c00=0ap)10c0e0 r0e0Fx e0 x000a0,x0li =020p0er0p0ac(p1e0,x0a0 0
n
4,00=0vx000at:=0c0p0er0p0ac(p1 0,x0a0,x0li 0020c0e=0c0ae010e0e0 d0e0
x e0,x000v0,x0li 0020c0e=0c0ae(p1 0,x0a0 00 o
x0=030x0000at:=0c0p0 r0p0Fc(p0 0,x0a0 00 o
x0=0c0x=0c0ae0c1e0 00d0d0
e ex,x000v0,x0li =0c0c0e=0c0Fe0c1e0 x0d0d0
eo
x0=030x00c0tp)c0p0p0,r0p0Fc(e0 0,00a0 x0 o
00=0c0x00c0tp)c0p0 00d0 0
en
x00030cx0=0ai)1020p0 =0p0ae0p1e0,x0d0 0
en
x00030cx0=0tp)c0p0 0,d0d0
xn
4,00=0a0,x0 o 00=0c0x00c0tp0c0p0 0,d0d0
xn
400030cx0=0ap)10c0e0 r0e0ae p1e0,x0d0 0
eo
x00030c00=0ap)10c0e0 d0e0
xn
4,00=0vx000lt:=0c0c0x=0c0te0c0p0 0,d0d0
en
4,=0=0vx000at:=0c0e0 d0e0Fx e0,x000v0,0
lo
x0=030x00=0tp)10p0e0 d0e0
x e0,x000v0000at:=0c0p0 r0p0Fc(c0 0 00d0 0
n
x000=0xx000at:=0c0p0 r0p0Fc(e0 x000v0,x0li 0020c0e=0=0tp)10p0e0,d0e0
x e4,x000v0,x0li =020p0er0p0Fc(p0 0,00a0 x0 o
0000=0cx0=0at:10c0p0 r0p0Fc(e0 0,00a0 x0 i 0020p0e=0p0ae0p1e0ex0d0 0
x
4,x0=0v0,00li:=020p0e=0p0ae0p1e0,x0a0,x0 o 00=0c0x00c0tt0c0c0e0 r0e0Fc e0 0000a0,x0 o 00=0c0x00c0ae0p1e0,x0d0 0
eo
x0x030v0000lt:=020p0e=0e0ac(p0e00x0d0 0
eo
x0=030x00c0te0c0p0 0,d0d0Fene0 x000a0,x0 i 0020c0x=0c0te0c0p0 0,d0d0
eo
x0=030c00=0tp)10p0e0ed0p0ac p1 0,x0a0 0
o
x0=030x00=0tp)10p0 0,d0d0
en
4000=0cx0x0ai 0020c0e=0c0ae0c0e0 00d0d0
en
4000=0cx0=0tp)10p0e0,d0e0
x e1,x,x0a0 00 o
x0=030x00=0tp)10p0e0,d0e0
x
4,00=0cx000at:=0c0p0 r0c0ae0c1e0 00d0d0
en
x000=0xx000at:10c0e0 r0e0
Arduino!
Arduino!
r�)�����+��/IC������/`��
[Vendor:www.ai-thinker.com Version:0.9.2.4]

ready
��r�)���r�)��
Кракозябры после ready - это я вводил команду AT
На команду AT-RST реагирует перезагружается
https://www.dropbox.com/sh/s2fey6zipz60vaw/AAAdZIWkO3N1c2HWfZM_YlASa?dl=0
 
Последнее редактирование:

JustACat

Moderator
Команда форума
XSmile2008, так а в чем проблема-то?
Судя по логу (особо не всматривался) - прошивка битая. Перепрошейте. Update: это был ответ на первую версию сообщения, после внесения правок этот ответ неактуален :)

PS: картинки грузите, пожалуйста, сюда на форум. Для этого есть кнопка. У вас какие-то полурабочие картинки вышли.
 
Последнее редактирование:

XSmile2008

New member
А как его перепрошить если у меня нет переходиника на UART, только Arduino которой я его и подключаю?
 

JustACat

Moderator
Команда форума
Например, вот так.

Update: вы изменили сообщение позже, я читал недоделанную версию. Так что вопрос о перепрошивке снимается, и встает снова первый вопрос: а в чем проблема-то?
Хотя прошить последнюю прошивку не помешает в любом случае.

Update 2: и еще раз проверьте GPIO 0 и 2. Мне кажется, вы путаетесь в режимах загрузки. (ну и в воздухе их оставлять лучше не стоит в любом случае)
 
Последнее редактирование:
Сверху Снизу