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

Нужна помощь NodeMCU v3 + Relay - зависания, перезагрузка

corpse

New member
Добрый день!

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

Есть NodeMCU V3 и 4-х канальный блок реле, питающийся 5в. На борту блока - стандартная развязка на каждый канал: 817-й оптрон, транзистор, пара резисторов и диод для гашения ЭДС самоиндукции. Реле управляется низким уровнем.
Есть миниатюрный блок питания TSP-05. 220в AC -> 5v/1a DC. Соответственно, +5в с БП идут на плюс блока реле и на +5в NodeMCU, земля общая.
Понимаю, что неправильно, но в качестве теста собираю на коленке - входы блока реле подключаю к пинам NodeMCU напрямую, на выходах NodeMCU высокий уровень - всё работает. Реле щёлкают, статусы на пинах меняются. Понимаю, что это неправильный вариант - получается, что на пины NodeMCU, которые толерантны к 3.3в прилетает теоретически до 5в с реле (рассчитывал на то, что падение напряжения на оптроне и резисторе позволят NodeMCU это пережить). При подаче на пятивольтовый модуль 3.3в в качестве питания - не вывозит - статусные светодиоды на модуле загораются, но для срыва якоря уже не хватает, что неудивительно, поэтому пока оставил 5в. Тем не менее оставил в режиме включение/выключение раз в минуту последовательно каждого канала. Реле замыкают выводы, которые уходят на PCF8514 через резистор, esp включает себе канал, проверяет, что статус на порту PCF изменился, если не изменился - должен дёргать за хвост систему мониторинга, мол, не работает. Трое суток - всё стабильно, ни одной проблемы. Пробую подключить нагрузку. Светодиодная лампа - включение, выключение - всё стабильно. Включаю напольный вентилятор - всё прекрасно. Выключаю - в половине случаев esp зависает наглухо, в половине - перезагружается. Ровно такая же ситуация с небольшими компьютерными колонками.

Вопрос номер раз: почему такое происходит? Ведь на модуле реле есть опторазвязка.

Пробовал поставить между выходами реле и есп по 10к резистору - не работает, даже статусные светодиоды не загораются.

Вопрос номер два: есп прижимает свою ногу к земле, на стороне реле +5в, т.е. получается замкнутая цепь с резистором между +5в и землёй. Почему перестаёт работать? Не хватает силы тока на стороне модуля реле для открытия оптрона? 10к наверное действительно многовато, просто под рукою оказались.

Убираю резисторы, для защиты от скачков ставлю электролит на 470 микрофарад 16в недалеко от +5в входа NodeMCU - ситуация не меняется никак.

Подскажите пожалуйста, как сделать правильно?
 

corpse

New member
Хорошо бы схему и все снова но последовательно, по одному вопросу.
Что касается реле, то не понятно - про какие пять вольт если у вас оптроны перед реле?
Ну вот, схему для одного канала примерно набросал, по крайней мере я так понимаю её устройство, номиналов не знаю, не прозванивал.
IMG_20180706_223709.jpg

Если кратко: При включении/выключении реле всё работает. При включении/выключении лампы через реле всё работает. При включении вентилятора/колонок от компьютера через реле - всё ок, при выключении - есп зависает, либо перезагружается.


Может быть при отключении вентилятора всплеск идёт по сети переменного тока и в этот момент плохеет ac/dc преобразователю? Они с одной фазы подключены.
 

corpse

New member
1) резистор R2 при желании можно и на .3.3 в включить но пересчитать значение и/или выкинуть светодиод.
--------------------------
2) Если схему собирали сами (а не купили готовый модуль) то оптрон лишний. Я включаю реле через транзистор на пин ESP.
Т е выкидываем r2 оптрон и светодиод.
Нет, схему не собирал, это готовый модуль. Но исходя из компонентов и дорожек на плате, в меру своих сил воспроизвёл его схему.

3) Так как Вы включаете и выключаете в произвольный момент фазы напр, то может быть и в момент максимума.
кроме того вентилятор - это двигатель т е реактивная нагрузка а это дополнительные помехи..
Это я понимаю. Помехи бывают высокочастотные и низкочастотные. Обычно для высокочастотных ставят керамику 104, для низкочастотных - электролит. Но на самой плате NodeMCU стоит танталовый конденсатор. Номинал разобрать к сожалению, не могу, очень мелко. Плюс вижу две керамики - одна рядом с 5в пином, вторая после AMS1117. Что в вентиляторе обмотки двигателя, что в колонках катушки в динамике - реактивная нагрузка, да. Меня удивляет то, что блок питания для есп оказался настолько чувствительным к помехам при выключении.

можно для проверки запитать ESP на плате от батарейки 2 шт AAA . Напряжение может быть от 2.6 до 3.6.
----------------------
еще рекомендуют повесить ,если нет, два кондера 0.1 мкф керамический и 1000 мкф электролит.
Эм... Прямо саму есп? Я так понимаю, имеется в виду запитать NodeMCU автономно. В принципе, я это могу - подцепить её с пауербанка, завтра проверю.

Керамический не ставил, ибо на самой плате их два. Один на 5в линии, второй похоже, после AMS. Ставил электролит на 470мф. Совершенно никак не повлияло на ситуацию. 470 мало? Нужно больше?

Я вот как-то смотрел даташит на moc3083 и там в схеме рекомендуемой обвязки с тиристором на куске схемы был показан высоковольтный керамический конденсатор, который рекомендовали включать в разрыв при управлении индуктивной нагрузкой. Вот тут он с резистором на 39ом: http://mega-avr.com.ua/wp-content/uploads/2013/07/moc3043-.gif
Может быть мне нужно что-то подобное поставить на каждую управляемую розетку?
 

corpse

New member
обычно включают резистор и конденсатор - это называется снабберная цепь.
---------------------
По хорошему надо поставить детектор нуля (я про это уже говорил тут на форуме при обсуждении подобной проблемы) и управлять включением и выключением синхронно. еще лучше перейти на симистор вместо реле. цена такая же но можно управлять всем правда программа сложнее.
Про детектор нуля интересно. Сможете ссылку найти? Я почитаю. Я правильно понимаю, что включать/выключать нагрузку предлагается в момент перехода через ноль, включать на спаде, выключать на росте синусоиды? А для детекта придётся использовать что-то вроде стабилитрона?

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

Кстати, да, а чем управление симистором с программной точки зрения будет отличаться от управления тем же реле?
 
Последнее редактирование:

corpse

New member
Относительно схемы.
Посмотрите в инете схему управление семистором без встроенного детектора нуля в чип.
Как правило - это тот же оптрон, что у вас но включенный наоборот.
Т е его вход через гасящие резисторы и если надо диодный мостик к сети а выход на пин контроллера.
--------------------------------
Разница между реле и симистором - в скорости переключения и уровне шума при переключении.
На семисторе можно плавно управлять потребляемой мощностью с любой динамикой.
У семистора нет искр в контактах, а при больших токах реле становиться передатчиком Попова, особенно в Вашем варианте управления.
Огромное спасибо! Вовсю изучаю схемы фазового управления симистором. Теперь есть стимул собрать свой "велосипед" на какой-нибудь attiny с управлением через uart, с интегральным рассчётом мощности и прочими шахматами и поэтессами. А коммуникацию реализовать уже на esp.
 
Сверху Снизу