Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Включение с подключенным к реле GPIO 0

Тема в разделе "Железные вопросы по esp8266", создана пользователем Serenity, 14 апр 2015.

Метки:
  1. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Здравствуйте дорогие друзья,

    Модуль ESP - 01 подключен при страте к реле GPIO_0 и GND и не стартует, если реле отключить - стартует нормально. Это грустно, потому как хотелось бы иметь полностью готовую платформу, а так после потери питания не стартанет, сталкивался кто?

    И да, сейчас вы будете орать, но, у меня отлично работает от 5v (я проверял с 3.3 тоже самое, кстати на 3.3 грелся на 5 не греется), никаких резисторов никуда не подтянуто(и да, я подключал 10к 5к 3к и 250 везде где можно было, и работает модуль точно также) Единственное, что я так и не завел его с помощью TTL эмулятора, все прошивания и другие операции выполнял через Arduino(кому надо расскажу как).

    Благодарю за ответ зарание.

    p.s.
    Кстати, Victor я так понял вы перешли с AT и NodeMCU на что то другое, не расскажите что сподвигло, в чем преимущества?
     
  2. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Привет.
    Конечно, документация про это знает ESP8266_Module Application Design Guide.pdf - страница 16. При старте модуля GPIO0 и GPIO2 обязательно должны быть в 1. А потом можно их использовать и по-другому.
    Не будем, мы вообще тут орем редко, тем более, что это запрещено правилами форума :)
    Что ж, хорошо, что вам так везет.
    Да вроде уже рассказано вот тут: http://esp8266.ru/esp8266-podkluchenie-obnovlenie-proshivki/#esp8266-arduino-connect Но если хотите - мы от информации никогда не отказываемся. Будем рады.

    PS: и да, если вам именно решение нужно, то можно что-нибудь попробовать сколхозить с резистором подтягивающим. То есть подтянуть GPIO0 дополнительно резистором кОм на 5 к питанию. А вот если вам надо, чтобы оно было обяазтельно в 0, т.к. ваше реле именно в 0 находится в нужном вам состоянии - тогда можно поставить еще элемент НЕ чтобы он инвертировал 1 в 0. Либо взять другой модуль реле, который будет в правильном состоянии именно в 1. Большинство модулей с реле на моей памяти имеют вообще 3 контакта, то есть 1 из них переключается между двумя другими, так что вообще без проблем.
     
    ShouseD нравится это.
  3. Victor

    Victor Administrator Команда форума

    Сообщения:
    2.212
    Симпатии:
    387
    у меня также :) но долго так не работает (может вам повезет?), попробуйте оставить хотя бы на ночь.
    мне нельзя никуда переходить - я должен быть практически везде :)

    А если серьезно, то если у вас невысокий скилл программирования на С (как у меня, например. а таких людей очень много, кстати)
    То нам недоступно написание прошивки используя всякие тулчайны и SDK в разумные сроки.
    Недоступно и кастомизация под свои потребности существующих прошивок типа NodeMCU или прошивок от @pvvx.
    А вот подергать GPIO или сделать еще что-то, написав прошивку в UDK+Sming или Arduino IDE очень даже возможно за короткое время.
    Эти три проекта UDK, Sming и Arduino IDE очень обнадеживают и открывают значительные возможности, недоступные нам ранее.

    NodeMCU уже в тупике по памяти (зависла на SDK 0.9.6, разделили float и integer, но и это все не спасает).
    Если SDK будет и дальше так же отъедать оперативку с каждым релизом, то и остальные проекты зайдут в тупик, пока не придет PVVX-SDK :)
     
    ShouseD и JustACat нравится это.
  4. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Аминь! :)
     
  5. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Спасибо большое за ответы,

    Я прочитал документацию, тем не менее я так и не понял, почему модуль не стартует когда к ноге что-либо подключено. Для меня нет проблемы в том что реле сработает при старте, проблема в том, что с подключенной ногой 8266 не стартует. И это равносильно не только для реле, с симистором та же беда.

    Спасибо за ответ заранее.

    p.s. с 5v проработало 3 дня, 3 дня я тестировал выключатель удаленный, и все отлично держалось, пока я не выключил фильтр сетевой -> обратно модуль(8266) не загрузился(с 3.3v таже песня).

    Сама схема у меня очень простая, ну та что с реле, с симистором сложнее.

    Схема.png

    Код (Lua):
    1. gpio.mode(3, gpio.OUTPUT)
    2. function onoff()
    3. if gpio.read(3) == 0 then gpio.write(3, gpio.HIGH) else gpio.write(3, gpio.LOW) end
    4. end
    5.  
    6. wifi.setmode(wifi.STATION)
    7. wifi.sta.config("NETID","PASS")
    8. print(wifi.sta.getip())
    9.  
    10. srv=net.createServer(net.TCP)
    11. srv:listen(80,function(conn)
    12. conn:on("receive",function(conn, payload)
    13. print(payload)
    14. node.input(payload)
    15. if gpio.read(3) == 0 then gpstatus = "offline" else gpstatus = "online" end
    16. conn:send(gpstatus)
    17. end)
    18. collectgarbage()
    19. end)
    Любым TCP сендером ASCII отправляю onoff() на адрес esp:80 порт, он меняет ногу с HIGH на LOW, можно команду целиком отправлять, но меньше пакет - меньше проблем.

    Но эта собака (esp) отказывается загружаться если к ноге уже подключено реле, отцепляю реле, стартую модуль, цепляю реле - все отлично, до следующего падения сети.
     
  6. Alex

    Alex Читатель

    Сообщения:
    85
    Симпатии:
    8
    То что реле подключено напрямую к модулю я промолчу :). Так как не знаю что за реле.
    Подключите реле одним концом к + питания а другим на модуль. И проинвертируйте в программу эту ногу.
     
  7. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    Скорее всего в реле стоит какая-то схема (биполярный транзистор например) у которой есть ток утечки (будем так называть) на землю и модуль входит в режим BOOT, нога GPIO0 у нас такая. В связи с этим два предложения - перевесить на другую ногу esp реле или поставить какой-нибудь буфер КМОП между esp и реле.
     
  8. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Или, как я уже сказал: хотя бы просто подтянуть, блин, GPIO0 резистором к 3.3 вольтам. Для начала. Неужто нету резистора на 5-10 кОм?
    Потому что так решили разработчики и так спроектировали GPIO0 и GPIO2 - при старте сначала попадаем в бутлоадер, который эти ноги использует по-другому. А именно - он читает на них состояния, чтобы выбрать нужный режим загрузки.
    И если у вас на этих двух ногах не 1 при старте - то модуль стартует не в штатном режиме. И это четко прописано как в документации, так и в миллионе мест на форуме.
    Так что, вы конечно простите, но как так получается, что вы документацию читали, а этого не увидели - я не понимаю...

    Вот и получается, что, когда вы напрямую подключаете какую-то вундервафлю к ногам этим, то эта самая вундервафля при старте может на ничем не подтянутой ноге ESP создать любой уровень. Тем более, что при подаче питания происходит куча физических переходных процессов. Я уж молчу о том, что вы модуль при 5 вольтах эксплуатируете, что явно выходит за его номиналы допустимые.
    Даже просто кусок провода длинный подключить к GPIO0 (висящей в воздухе), и модуль может стартовать через раз.
     
    Последнее редактирование: 15 апр 2015
    ShouseD нравится это.
  9. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Спасибо большое за ответы.

    Реле совершенно простое TRIL-5VDC-SD-1CH-R , не секрет. Может быть вы как-раз знаете решение? Как по-вашему оно должно быть подключено? 5кОм?

    Спасибо за пояснения, другую ногу я пробовал, результат еще более печальный, постоянно горит синий диод, не подскажете какой КМОП вы имели ввиду?

    Здравствуйте, я пробовал подтягивать с резистором, на 5 кОм, на 10кОм, на 300Ом, 1кОм, никакой разницы нету, более того, объясните мне пожалуйста, каким образом резистор, может помочь в этой ситуации? Какой вообще магии везде пытаются добиться резисторами?
    Вы совершенно правы, я не уточнил этот момент, к сожалению. Често но говоря, то,
    что вы описали, звучит довольно странно, поскольку модуль стартует отлично при пустых ногах, попробовал подтянуть GPIO0 через 5кОм, не помогло, пробовал GPIO0 и 2 подтягивать через резисторы - 0 разницы.

    Я буду эксперементировать дальше, отпишу если что выйдет, но если у кого есть добрые идеи, - презентуйте :)

    С уважением.
     
  10. Alex

    Alex Читатель

    Сообщения:
    85
    Симпатии:
    8
  11. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    Ну вы блин даете! (с) Особенности русской охоты. Получается, что у вас нога замыкается через обмотку реле на землю и модуль входит в режим BOOT (загрузка прошивки), а кроме того получается при включении ток через ногу esp равен примерно 50мА.
    Тут простым буфером не отделаться, ставте транзисторный ключ.
     
    JustACat нравится это.
  12. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Напрямую что ли? О_о А ничего, что у него по докам номинальный ток катушки аж 80 mA при максимально допустимом для ESP на ноге токе в 12 mA?
    Я молчу о том, что он на 5 вольт рассчитан. Но тут раз вы сам ESP на 5 запитываете, то все "нормально" =)
    Думаю, Alex имел ввиду, что может у вас реле подключено все таки модулем неким, ну, например, таким. Со всей необходимой обвязкой.
    А вот запускать реле напрямую от ножки бедного МК, даже для АВР-ок - это перебор, а у ESP и вовсе с ногами плохо.
    Но, судя по тому, что у вас оно как-то работает - вам везет. Что ж, я искренне рад (серьезно, не сарказм).
    В данном случае я писал про подтяжку, думая, что у вас реле модулем (как по ссылке выше), а не голое. Если голое, то тут уже, боюсь, одним резистором не обойдешься.
    Очень просто - стабилизировать некий уровень напряжения на контакте. Чтобы на нем не было черти чего.

    Раз вы так считаете, то у меня возникает ощущение, что вы вообще плюете на всю аналоговую часть схемотехники. Это так? Я понимаю, что МК - это штука цифровая, 0 и 1, все дела. Но питание и еще куча всего - аналоговое же. Да и распознавание 0 и 1 на МК происходит на определенных уровнях вольтажа. Обычно это некий порядок от VCC. Но это если VCC по документации не превышает каких-то пределов...

    Если все так, то вам надо ознакомиться с чем-то таким:
    Подключение микроконтроллера. Ликбез.
    Управление мощной нагрузкой постоянного тока. Часть 1
    Управление мощной нагрузкой постоянного тока. Часть 2
    Управление мощной нагрузкой постоянного тока. Часть 3
    Управление мощной нагрузкой переменного тока
    Возможно, еще и вот этот вот цикл статей.
     
    Serenity нравится это.
  13. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    А уж какие тут у DI HALT'а картинки! Мммм!
    Пример про порты (раскрыть)
    [​IMG]

    И там таких много :)
     
  14. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Это очень мило, обязательно воспользуюсь. К сожалению, подключение резисторов ничего не дало, а вот инвертация ноги, по вашему совету, очень помогла, спасибо. Теперь работает безотказно. Проверю на стабильность.
     
  15. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    не ну вы че!? питать от 5 В да еще и на нагрузку 60 Ом. Выключайте пока не лишились модуля!
     
  16. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Спасибо большое за ответы.
    Ну в общем то да, пока плюю, т.к. не сталкивался с проблемами по этой части, однажды я уверен, аналоговая часть будет чудесно работать. Инвертация помогла, собственно теперь схема выглядит так. Схема.png

    LUA соответственно

    Код (Lua):
    1. gpio.mode(3, gpio.INPUT)
    2. function onoff()
    3. if gpio.read(3) == 0 then gpio.write(3, gpio.HIGH) else gpio.write(3, gpio.LOW) end
    4. end
    5.  
    6. wifi.setmode(wifi.STATION)
    7. wifi.sta.config("IT-commune","IT@comm9")
    8. print(wifi.sta.getip())
    9.  
    10. srv=net.createServer(net.TCP)
    11. srv:listen(80,function(conn)
    12. conn:on("receive",function(conn, payload)
    13. print(payload)
    14. node.input(payload)
    15. conn:send(gpio.read(3))
    16. end)
    17. collectgarbage()
    18. end)
    19.  
    Пока работает.

    За ликбез и картинки огромное спасибо, обязательно к прочтению!

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

    С уважением.
     
    GlavbuhHG и JustACat нравится это.
  17. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Andy Korg, забейте :) У человека все работает. Пусть учится на своих ошибках - это нормально. Многим нужно самостоятельно пройтись по граблям.
    Serenity, без обид, я вас не пытаюсь хоть каким-либо образом принизить или что-то такое, а то мало ли надумаете себе. Все люди разные, и у каждого свой путь.
     
  18. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Спасибо за беспокойство, но, к сожалению, когда модуль рабоатет от 3.3 он жутко греется, причем от 5 - нет. Если он умрет, я обязательно отпишу об этом.
     
    Andy Korg нравится это.
  19. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    414
    Симпатии:
    75
    И правда, но хоть чип пощупайте! Пожалуйста! :)
    ...греется, причем от 5 - нет....
    Я вообще ссусь! Без обид, но в самом деле очень смешно :)
     
  20. Serenity

    Serenity Читатель

    Сообщения:
    12
    Симпатии:
    8
    Не думал обижаться, вы совершенно правы, по граблям пройтись не против, грабли тут небольшие. И да у меня работает, может быть не на долго, посмотрим. Я уверен что все тут люди не глупые и вы прекрасно понимаете что, почему, и как должно работать, я погуляю чуть вокруг, может там еще что есть.
     
    Andy Korg и JustACat нравится это.

Поделиться этой страницей