Использование пинов esp-01

Добрый день! сейчас работает есп01 в режиме термометра, задействован пин Gpio2. Есть желание, как говорил классик, задействовать пин Gpio0 для реле, но как известно пин используется для перевода в режим прошивки.
Начал гуглить и наткнулся на диспут где один из учатстников настаивал, что пин этот использовать как пин не рекомендуется, так как на него может прилететь 1 и устройство перейдет в режим прошивки. В итоге дискуссии каждый остался при своем.

Так можно ли использовать gpio0 под реле или нет? Спасибо

Бутстраппер переводит МК в режим прошивки, если при запуске обнаруживает на нём GND. После того, как бутстраппер передал управление основной программе, GPIO0 становится обычным входом/выходом.

Подтягиваете его к VCC, при необходимости активации подаёте LOW. Релейный модуль должен управляться соответственно.

2 лайка

ок, спасибо. Все понятно. Можно. к VCC подтягивать программно или резистор паять?

только осторожно!
притянутый пин и модуль реле управляемый HIGH - срабатывание на некоторое время при включении/перезагрузке.
тоже самое при реле управляемый LOW и попытке перепрошивки.

2 лайка

еще поясню, мое реле будет подключено через биполярный транзистор, Gpio0 -1кОМ-База транзистора, Эмиттер на массу, в Коллекторе реле. Т.е это не китайский релейный модуль на полевике. Это что-то меняет?

Программный пуллап сработает после окончания работы бутстраппера. До этого момента на GPIO0 будет неопределенность.
Если это устраивает - не паяйте.

1 лайк

Ничего. Диод параллельно обмотке реле не забудьте

1 лайк

какой номинал посоветуете в качестве подтяжки? 3к-5-10?

Для подтяжки номинал не сильно критичен. Можно и 5кОм, можно и 10. При большой нужде и от 3кОм не поплохеет.

1 лайк

Так на ESP-01 есть ещё свободные пины, только они не распаяны и висят на чипе. Помню было дело 4 пина точно выводил на планку и всё работало.


как то так, и не надо трогать нулевой пин от греха переходных процессов подальше

так в этом и вопрос, паять или не паять.
я бы взял например wemos d1 mini (150р), чем колхозить.

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

конденсатор напаяй, ноги нарасти, да ну нах, забыл о них давным давно.
но думаю да, он пихает ее в какой то шилд.

esp-12. Правда, там с контактами сложнее - шаг 2мм вместо 2,54 ))
Да и флеша на esp-01 поменее

вот нашел любопытный мануал, тут и про реле и про светодиод

For example attaching a led with resistor to ground will prohibit starting because the level of the pin is pulled to low. It is better to design all the io functionality using a high level for the inactive state and have a resistor in place to pull the default level to high.

оказывается нельзя с этого пина моргать диодом на землю?

На esp моргают низким уровнем на пине

1 лайк

Ну все понятно как моргать низким на Gpio0

int ledState = LOW;

unsigned long previousMillis = 0;
const long interval = 1000;

void setup() {
  pinMode(0, OUTPUT);

digitalWrite(0, ledState);  
delay(5000);

}

void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    if (ledState == LOW) {
      ledState = HIGH;  // Note that this switches the LED *off*
    } else {
      ledState = LOW;  // Note that this switches the LED *on*
    }
    digitalWrite(0, ledState);
  }
}

и релюха должна низким управляться , а это еще один транзистор

и на кнопку прошивки при работе теперь нажимать не стоит, можно сжечь пин?

Я бы не стал её жмакать, она же нетокоограничена, стало быть делает КЗ.

Но, есть вариант: т.к. кнопка садит на GND и опасная ситуация складывается только когда выход в режиме OUTPUT+HIGH, то ее нужно обойти, например через INPUT+LOW, который отпустит выход. Резистор же, в свою очередь, притянет его к VCC, дав HIGH на базе транзистора.

Стало быть, манипулируя режимами INPUT/OUTPUT вместо HIGH/LOW, снижаем вероятность поджарить ногу МК.