Comments 20
При отключении городской электросети и переходе на дизель генератор и обратно оборудование уходит в ошибку
Всё-таки кажется, что бороться надо было с первопричиной. А почему это происходит? Переключение не моментальное? - так ставим какой-нибудь самый дохлый UPS или вообще конденсатор. Генератор вместо синусоиды выдаёт непойми что? - так ставим стабилизатор.
Только не с этой и не так, если нельзя организовать непрерывное питание, а при мощностях в сотни киловатт это не легко то для механики и двигателей нужно сделать паузу в электропитании для остановки и штатного запуска, а плк запрограммировать на нормальный старт.
Основная задача была мониторить, а остальное уже было сделано поскольку были подведены провода параллелящие кнопки.
Причину пропадания эл.энергии устранить невозможно т.к. мы потребитель 3й категории. Дизель генератор заводится и это занимает секунд 30 т.к. он выдает по 500А на фазу. А эта штука esp32 управляет 3мя разными шкафами, если ставить ups то нужно чтобы он питал только цепи управления. Поэтому был выбран самый легкий с моей точки зрения вариант и если он нам не подойдет его демонтаж займет от силы пол часа.
А если после пропадания электричества действительно какая нть аварийная ситуация случится, а вы ее сбросите автоматикой?
А в чëм сакральный смысл отваливаться в ошибку при пропадании питания?
Неожиданно. Для частного дома прикольно, но для промышленного оборудования есть огромное количество готовых решений, а еще проще перепрограммировать ПЛК. Но плюс однозначно.
Это была частная инициатива, а так конечно есть плк с облачными сервисами, но они стоят тысяч 40, а эта штука тысячи 2
"Облачные сервисы" к ПЛК обычный роутер на openwrt перешитый добавляет. Вай-фай на объекте у вас уже есть, судя по всему.
В районе четырех тысяч полно готовых решений для умных домов например GSM реле SimPal-D210. Но я так понял что оборудование дорогое и надо подходить системно, как уже тут писали защитить ПЛК и другое микропроцессорное оборудование УПС-ом, перепрограммировать алгоритмы ПЛК для нормального запуска при переходе на дизель. Если нужен удаленный мониторинг и управление установить устройство телемеханики. Но как частная инициатива, я бы дал премию.
Странное впечатление от статьи. Всё вроде по делу, но не покидает ощущение перебора.
Если надежность высокая не нужна то хороший вариант. От себя могу порекомендовать что бы есп периодически что-то скидывала в бота. Типа статусы какие-то что бы понимать что сама есп работает исправно. Сваливание в ошибку после пропадания питания наверное и сделано что бы человек проконтролировал нормальное восстановление. Бактерии то могут погибнуть-)
Часть кода
FB_Time t = bot.getTime(3); //Записываем время в UNIX в локальную переменную t
String vremya = t.timeString(); //записываем текущее время в формате чч:мм:сс в переменную vremya
if (millis() - time_utro >= 600000){ //делаем фильтр для того чтобы контроллер не начал спамить в 10:00:00
if (vremya == "10:00:00" || vremya == "10:00:01"){ //условие если каким то образом пропустили 10:00:00
if (!status_14_1 && status_14_2) bot.sendMessage("14.1 Включен \U00002705 в " + time_izm_14_1 + " " + date_izm_14_1 + "\n14.2 Выключен \U0000274c в " + time_izm_14_2 + " " + date_izm_14_2, CHAT_ID);
if (status_14_1 && !status_14_2) bot.sendMessage("14.1 Выключен \U0000274c в " + time_izm_14_1 + " " + date_izm_14_1 + "\n14.2 Включен \U00002705 в " + time_izm_14_2 + " " + date_izm_14_2, CHAT_ID);
if (status_14_1 && status_14_2) bot.sendMessage("ВНИМАНИЕ! \n14.1 Выключен \U0000274c в " + time_izm_14_1 + " " + date_izm_14_1 + "\n14.2 Выключен \U0000274c в " + time_izm_14_2 + " " + date_izm_14_2 + "\nНеработают " + time_kompr_min + " минут(ы),\nАВТО сброс=" + String(auto_sbros), CHAT_ID);
if (!status_14_1 && !status_14_2) bot.sendMessage("СТРАННО! \n14.1 Включен \U00002705 в " + time_izm_14_1 + " " + date_izm_14_1 + "\n14.2 Включен \U00002705 в " + time_izm_14_2 + " " + date_izm_14_2, CHAT_ID);
if (!status_gorodset) bot.sendMessage("\U00002705 ЕСТЬ городская сеть c " + time_izm_gorset + " " + date_izm_gorset + "\nАВТО сброс=" + String(auto_sbros), CHAT_ID);
if (status_gorodset) bot.sendMessage("\U0000274c НЕТ городской сети c " + time_izm_gorset + " " + date_izm_gorset + "\nАВТО сброс=" + String(auto_sbros), CHAT_ID);
delay(2000); //задержка, можно убрать т.к. выше установлен таймер на 10ть минут
time_utro = millis(); //сброс таймера после отправки сообщения в 10:00:00
}
}
В 10 утра бот шлет сообщения о статусе гор.сети и компрессоров
Friendly advice:
Использование вместо unsigned short -> uint16_t, unsigned long -> uint64_t, unsigned int -> uint32_t
Даёт гарантию того, что тип будет именно столько бит вне зависимости от платформы.
А у вас в коде токен виден.
Меню не стали реализовывать? Библиотека позволяет. Вообще, большое спасибо за статью, собирался пилить какой-нибудь сервис после того, как почил в бозе blynk, бот - отличная замена.
Telegram бот на ESP32 для удаленного мониторинга и управления насосной станцией