Зависание Nano+ESP от помехи
- Войдите на сайт для отправки комментариев
Доброго времени суток всем
Порядка года использую связку Nano+ESP для контроля работы локальной очистной установки ТОПАС. При переключении компрессоров отпадает подключение к wi-fi.
Кратко все это опишу. ТОПАС - содержит два воздушных компрессора (по 80Вт), которые аэрируют сточные воды и переключаются в зависимости от уровня воды в приемной камере поплавковым переключателем.
Девайс - связка Наны и ESP, контролирует уровень воды в приемной камере (еще один аварийный поплавок – сигнализация о переливе), температуру (ds18b20), работу каждого компрессора (по наличию сетевого напряжения на нем, развязка через оптопару PC817), потребляемый установкой ток (ACS712 5a). Данные каждую минуту выдаются на сервер IoT и по UDP в домашнюю сеть. Питается все это безобразие от HLK-PM01, 3,3 вольта для ESP получаю с конвертера на LM2596.
Собственно проблема: все работает хорошо, до момента переключения компрессоров поплавковым переключателем. В этот момент ESP в 40-60% случаев отваливается от сети, подключение восстанавливается только минуты через 3-4. Иногда подключается через пару часов, иногда вообще больше не подключается до сброса питания. Повторное подключение к сети WI-FI в коде предусмотрено, в процедуре дополнительно "передергивается CH_PD" + после подается AT+RST. Активирован ВатчДог. По коду бесконечный цикл предусмотрен только в ожидании подключения к WI-FI. Код и схему могу выложить для анализа, но подозреваю что не в нем дело. Самое печальное, что непонятно что виснет: ESP, нанка или и то и другое.
Вопрос: как бороться с данной помехой? Поставить варистор, LC-фильтр со стороны 220в? Есть вероятность, что помеха не по питанию, а какие то наводки в сигнальных кабелях (кабели на аварийный поплавок и на датчик температуры довольно длинные)? Радикальным решением было бы вообще коммутировать компрессоры симисторами с контролем нуля, но не хочется сильно вмешиваться существующую схему, боюсь в надежности потерять.
Извиняюсь за много букв…
а если поставить твердотельные реле на компрессоры?
DenBak, без полной схемы и фотогорафий монтажа тут не о чем разговаривать.
Это не помеха,это код. Ищите ошибку ,сами же написали что включение компрессоров отслеживается Для проверки запивайте схему от аккумулятора или батареек.
Это не помеха,это код. Ищите ошибку ,сами же написали что включение компрессоров отслеживается Для проверки запивайте схему от аккумулятора или батареек.
Код и схему выложу. По поводу запитывания от аккумуляторов - хорошая идея, попробую.
Так включение/отключение компрессора отслеживается просто чтением пина и установкой соотвествующего флага. Состояние каждую минуту опрашивается. Развязка через оптопару.
У меня мысль, что при отключении компрессора (а там приличный электромагнит) идет мощный скачок напряжения, возможно импульс проходит через блок питания и нанка/ESP его не переваривают.
Твердотельные реле - те же симисторы с контролем нуля, крайний вариант - не хочется существенно изменять конструкцию, сейчас мои поделки сбоку прилеплены и в общем то только контролирующую функцию выполняют.
Изначально стояло ESP-01, недавно на ESP-07 поменял с внешней антенной, думал стабильнее будет из-за металлического корпуса, но по ощущениям стало хуже.
Ниже один из графиков - работа компрессоров. Если работает первый - в канал каждую минуту 1 отправляется, если второй, то 2. Видно, что последнее время пару раз оживал во время работы второго компрессора.
я бы сделал так. подключил дисплей или ноут с открытым монитором порта, а в скетче добавил вывод инфы, и дергал бы управляющий поплавок.. все будет видно что зависает, ардуинка или модуль вайфай.
я бы сделал так. подключил дисплей или ноут с открытым монитором порта, а в скетче добавил вывод инфы, и дергал бы управляющий поплавок.. все будет видно что зависает, ардуинка или модуль вайфай.
Тоже вариант, соседи конечно офигеют - уже канализацию с ноутбуком настраивают :)
Update: не получится с буком малой кровью - там нанка с одним портом, он уже занят ESP.
Выкладываю код. В 115-120 строке - программный костыль, из-за слишком большого сопротивления резисторов (или малой емкости конденсатора), не очень уверенно определялось включение компрессоров, пришлось исправлять программно.
Ток считается весьма приблизительно, мне нужно было отслеживать включение насоса, там на порядок ток выше, чем от компрессоров.
DS18B20 (два) подключены к D3, оптопара 1 компрессора к D5, второго к D7, аварийный поплавок D11, датчик тока к A1.
На выходных буду экспериментировать с питанием.
Если есть лишняя ножка просто поставьте светодиод и мигайте с периодом секунд 5-6 с задержкой после включения на 20 - сразу увидите, если зависает МК. Но, скорее всего, проходит бросок по питанию, который ESP портит, а МК не успевает сброситься.
Подключил питание удлинителем от другой фазы. Стабильнее работать не стало...
Отсюда делаю вывод, что все-таки наводки имеют место быть.
Буду пробовать последовательно отключать "периферию". Под основным подозрением - аварийный поплавок (там провод около 3м), выносной термодатчик (провод около 2м) и датчик тока.
Если конечно наводка идет на антенну ESP, тогда вообще печально...
Это ж умный дом, а не хрен собачий! А умный дом - это как-то так
Докладываю общественности :)
Проблема все-таки носила частично программный характер. Решение парадоксальное - отказался от ожидания подключения к WI-FI в цикле. Плюс увеличил время низкого уровня на CH_PD со 100 до 500мс для сброса. Ну и вкорячил варистор 431. Что именно из этого помогло - не стал разбираться ибо холодно уже на улице. Не исключено, что ESP после сброса успевало само подключаться к точке доступа до выдачи явной команды на подключение и команда на подключение к этой же точке выдавала ошибку, за счет этого, функция подключения к WI-FI никогда не возвращала TRUE.
При переключении компрессоров теперь иногда бывает пауза в передаче на пару тройку минут, но наглухо не виснет. Уже 10 дней полет нормальный.