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

ESP-01 и ESP-01S как правильно запускать?

ask1

Member
Не могу понять, как все-таки должно быть. Здесь на сайте написано, что GPIO0 можно никуда не подключать, а на англоязычных сайтах пишут, что через 2k-10k резистор нужно соединять с VCC. Как же на самом деле должно быть, чтобы гарантированно всё работало?

И сразу из этого вытекает второй вопрос. Если GPIO0 должен быть подключен к VCC, то это ведь только для старта (пишут, что так задается загрузка с флеш-памяти). А дальше, после загрузки, он, получается может использовать как угодно? И сразу хочется подцепить к нему Data-ногу DS18B20, в котором требуется соединить Data и питание с помощью резистора 4.7K. Можно ли подключить Data от DS18B20 к GPIO0, соединить VCC с GPIO0 с помощью резистора 4.7K? Вроде как убить двух зайцев. Или так работать не будет?

Другие свободные GPIO пригодятся для I2C, поэтому и возник вопрос про нулевой. Но дальше следует третий вопрос: а модули, которые общаются через I2C не имеют случайно какого-нибудь резистора между SCL/SDA и VCC? То есть не получится ли тут автоматического "запитывания", если подключить SCL или SDA к GPIO0? К примеру, модуль с датчиком BMP180 подключаем к GPIO0 и GPIO2 и там все само собой "законтачивается" на VCC через резисторы, которые стоят на модуле (самый простой возьмем: GY-68 BMP180)? Резисторы там вроде есть, вроде бы даже по номиналу между 2K и 10K.

d18b20-4k7-connect.jpg shema-BMP180.jpgGY-68 BM180.jpg
 

ask1

Member
Еще:
RST через 10K к VCC (если сбрасывать не планируется и никакого deepsleep не будет)
CP_PD через 10K к VCC

Это информация из нескольких источников. Где-то написано, что работает без каких-либо манипуляций. Кто-то пишет, что наводки сбивают работу и эти соединения решают эту проблему.
 

ask1

Member
CodeNameHawk, вопрос возник именно по причине того, что разные источники дают разную информацию. А на главной странице я вижу статьи на разные темы. В какой именно затрагивается этот вопрос?
 

CodeNameHawk

Moderator
Команда форума
В какой именно затрагивается этот вопрос?
Прочтите название темы.

А на главной странице я вижу статьи на разные темы.
Читайте те, что относиться к вашему вопросу.
например https://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#full
https://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#esp8266-connect

Важно, что бы на GPIO0 и GPIO2, гарантированно был нужный уровень во время подачи питания.

Купите плату NodeMcu V3 на CP2102, на ней удобно отладить программу, а потом ее записать в реальное железо.
 

ask1

Member
Спасибо. А что касается вопроса про дополнительные модули? Я так понимаю, что многие из них имеют какой-либо резистор, который увязывает GPIO с питанием, и выходит, что такой модуль будет выполнять все нужные функции - на GPIO0 и GPIO2, гарантированно был нужный уровень во время подачи питания, если к ним подключить GY-68 (BMP180)?

По самой концепции "работа/прошивка" исхожу из идеи сменного модуля. То есть впаивать ESP-01 не планирую, буду просто вставлять в гребенку в два ряда (или сокет 4х2 куплю), а когда надо - вытащу и вставлю в программатор. В принципе NodeMCU v3 таким макаром уже попробовал использовать - ничего не сбоит, всегда можно вытащить и заменить.

NodeMCU v3 есть, правда с CH340, еще Wemos D1 Mini заказал. Но хочется попробовать ESP-01, чтобы помещалось в более компактные корпуса (есть идея по утилизации сломанных БП с евровилкой). Так как другого содержимого там практически нет, только термометр выносной да какой-нибудь датчик влажности, то места много не надо, а сломанных "зарядников" полно.
 

CodeNameHawk

Moderator
Команда форума
Но хочется попробовать ESP-01
Рекомендую вместо ESP-01 ESP-12, удобней, пару деталей и как бонус ОТА, веб сервер засуните внутрь.
Нужен "хороший" блок питания и возможность перезагрузить есп(питанием или кнопкой ресет).
 

ask1

Member
Я понимаю, что выводов больше сделано. Но она сама по себе сложная для меня своими физическими параметрами. Надо какую-то переходную площадку городить и для прошивки и для работы. То есть припаивать обязательно придется, а выводы еще и меньше, чем обычно (в которые я тоже с трудом попадаю из-за кривых рук). ESP-01 понравилась именно своей возможностью "воткнуть" и сразу включить. Вроде бы есть еще похожие с какими-то экзотическими названиями и, кажется, чуть другим микроконтроллером. Думаю, что надо пока научиться с простыми вариантами. Сам по себе ESP-01 выбран из-за габаритов, а не по функционалу, пока только NodeMCU v3 в руках побывал - всё нравится, кроме того, что не везде засунешь, хотя это тоже проблема больше из головы, ведь корпус можно поискать.
Ничего, если все задуманное получится, то буду пробовать другие варианты. Есть и еще меньше, чем ESP-12.
 

p-a-h-a

Member
Читал что в старых ревизиях ESP01 нет встроенного подтягивающего резистора на En. Про Gpio0 не скажу.
Те что попадались (ESP01S)- все с резисторами. Причем на Gpio0 12k. Проверить очень легко мультиметром прозвонив Gpio0 с Vcc. Недавно сваял метеостанцию где на Gpio0 посадил DS18b20 без дополнительных подтягивающих резисторов, пользовался встроенным на 12k. Все работало.
Для i2c использовал RX, TX. Gpio2 использовал для измерения освещенности с фоторезистора методом измерения времени RC цепи. Итого занял все лапы ESP.
для deepsleep впаял перемычку через SMD резистор 100-300 Ом. Без резистора програматор не может нормально сбросить контроллер.
перем.jpg
Еще один лайфхак - можно посадить трехконтактный геркон на EN или RST. При срабатывании ESP будет перезагружаться. При соединении с EN RTC память затирается. Так можно определить что срабатывание было от геркона. Ну или узнать причину перезагрузки.
геркон.png

Вот полная схема метеостанции:
фото.png
 

pvvx

Активный участник сообщества
Не могу понять, как все-таки должно быть. Здесь на сайте написано, что GPIO0 можно никуда не подключать, а на англоязычных сайтах пишут, что через 2k-10k резистор нужно соединять с VCC. Как же на самом деле должно быть, чтобы гарантированно всё работало?
GPIO0after reset, the default is function5 to export the clock
Основная часть подробно описана в 2014 году в 'pin_reg.xlsx' и повторять каждому и каждый год уже нет смысла - ESP8266 морально устарел - это как собирать АЛУ на K155ЛА3...

По старту, по стробу сигнала RESET состояние всех 16 пинов защелкивается в Strapping биты - старшие 16 бит 32-х битного регистра чтения состояния GPIO.
По этим значениям и несколькими дополнительными опросами уже при страте кода в ROM производится выбор типа загрузки. Некоторые GPIO программно опрашиваются путем подключения подтяжки к Vcc или GND.
10 кОм не хватает, т.к. получается неустойчивое состояние и любая емкость на выводе к сотне пФ всё собьет.
ESP8266 рассчитана и на работу от SDIO и SPI как тупой контроллер - аналог ESP8089. По этому задействовано много ног и их состояний.
В итоге свободных от этого безобразия у ESP8266 только 2 GPIO.
RESET без емкости подключать бесполезно - он чувствителен к импульсам менее 1 нс с половиной напряжения питания. А при большей длительности срабатывает и при меньшей амплитуде. Т.е. без емкости в сотню нФ с ним возиться нет смысла.

Но вам то всё равно, т.к. и других глюков у ESP хватает и можно плюнуть - всё равно зависнет, не от ног, так от другого и перезагружать придется.
 

pvvx

Активный участник сообщества
Еще один лайфхак - можно посадить трехконтактный геркон на EN или RST. При срабатывании ESP будет перезагружаться. При соединении с EN RTC память затирается. Так можно определить что срабатывание было от геркона. Ну или узнать причину перезагрузки.
Вы считаете себя великим изобретателем? За более чем 7 лет думаете не все варианты народ перебрал?
Подсказываю - узнать причину перезагрузки можно по специальным регистрам в чипе, а состояние всех 16 GPIO при сигнале RESET защелкнуты аппаратно в регистре описанном в выше посте, но Ардуинщики до этого ещё не дошли....
Чтобы обеспечить стабильность работы ESP8266 требуется подключение управляющего MCU с набором деталек превышающим стоимость ESP8266 в несколько раз.
 

ask1

Member
Те что попадались (ESP01S)- все с резисторами. Причем на Gpio0 12k. Проверить очень легко мультиметром прозвонив Gpio0 с Vcc.
Проверил, действительно, GPIoO c VCC соединен через 12 КОм резистор в ESP-01S. И EN c VCC так же соединены. Спасибо, теперь проблема с этими моментами снимается, что не может не радовать.

Про резистор на deepsleep - полезная информация, спасибо. Тоже думал на эту тему, как будет процесс прошивки происходить.
Очень не хочется паять каждый раз. Правда пока задач с deepsleep пока нет, но в будущем планируеся.
 

Muhin555

New member
Недавно сваял метеостанцию где на Gpio0 посадил DS18b20 без дополнительных подтягивающих резисторов, пользовался встроенным на 12k. Все работало.
Для i2c использовал RX, TX. Gpio2 использовал для измерения освещенности с фоторезистора методом измерения времени RC цепи. Итого занял все лапы ESP.
для deepsleep впаял перемычку через SMD резистор 100-300 Ом. Без резистора програматор не может нормально сбросить контроллер.
Посмотреть вложение 10540
Вот полная схема метеостанции:
Посмотреть вложение 10541
Интересно было бы и прошивку увидеть на такого"монстра" ))))
 
Сверху Снизу