avatar_Serhiy

Сова — система комплексної безпеки дистиляції та ректифікації

Автор Serhiy, 25-03-2026, 18:52:02

Попередня тема - Наступна тема

0 Користувачі і 1 Гість дивляться цю тему.

SerhiyTopic starter

Цитата: ГОГа від 26-03-2026, 07:02:01Вструмлю своїх 5-ть копійок)))
Зауваження цілком слушне.Проблема надійності складних систем — це справді палиця з двома кінцями.Поясню, чому в моєму випадку "язик" залишається м'яким, а система — робочою.
Перше - Розділення контурів (Автономність). Ти абсолютно правий щодо "підняти кіпіш". Саме тому Сова — це окремий пристрій. Якщо вилетить один із 16 датчиків безпеки, це ніяк не вплине на роботу Струмка чи Роси. Процесс триватиме, просто я отримаю сповіщення про несправність самого датчика.
Друге - Логіка "2 з 3" та верифікація. У відповідальних вузлах (як-от контроль температури) вихід одного датчика за межі "коридору" без підтвердження іншими не завжди веде до зупинки. Система спочатку запитує сусідні вузли.
Третє - Відмова в безпечний стан (Fail-safe). Моя логіка проста: якщо датчик ламається — система вважає, що сталася аварія, і вимикає нагрів. Так, це може бути "загублений час", але це ніколи не буде "загублена квартира". Краще один раз помилково встати з дивана, ніж один раз не прокинутися від запаху спирту.

Частина з цих 16 сенсорів — це саме ті "інформаційні" датчики, про які ти пишеш. Вони збирають статистику для вдосконалення алгоритмів PID і не мають права зупиняти систему.
Стосовно анекдоту — згоден, у всьому потрібна міра. Але коли мова йде про 50 літрів гарячого спирту в житловому приміщенні (округлив в більшу сторону :)  ), я краще перестрахуюся зайвими датчиком протікання, ніж буду потім працювати рашпілем, вичищаючи наслідки аварії.
Всегда

ДимаС

А у веб-інтерфейсі для кожного датчика окрім встановлення меж, за якими попередження і меж де вже аварія (або одна межа, не знаю як реалізовано), теж можна увімкнути чи вимкнути як тригер спрацювання відключення по безпеці?
Най будуть кожному дані граблі по розміру лобу його...

SerhiyTopic starter

Логіка обробки даних у Сові розділена на двва типа залежно від природи датчиків.Аналогові (параметричні) датчики (це 4 термодатчикі та один датчик тиску видають скалярні значення). Саме для цих п'яти сенсорів у веб-інтерфейсі задається коридор(мінімум та максимум), вихід за межі якого система розцінює як загрозу.
Решта 11 датчиків дискретні (порогові) (датчикі рівня, протікання, парів спирту тощо) працюють за принципом "0" або "1" (норма/аварія). Вони не потребують налаштування коридорів, оскільки сам факт їхнього спрацювання вже свідчить про позаштатну ситуацію.
Для кожного з 16 датчиків можна встановити індивідуальний час затримки — Off Delay. Це працює так - Якщо Off Delay = 0 При виникненні аварії система обмежиться лише локальною сигналізацією та сповіщенням у Telegram. Живлення Роси при цьому не вимикається. Це режим чистого моніторингу.
Якщо Off Delay > 0 система відрахує вказану кількість секунд після фіксації аварії й автоматично вимкне Росу.
Всегда

ДимаС

Най будуть кожному дані граблі по розміру лобу його...

SerhiyTopic starter

При необхідності запланується.
Система все ще перебуває в розробці. Це вже набагато більше, ніж просто прототип, проте окремі деталі потребують остаточного узгодження. Ось так на даний момент виглядає вікно налаштування датчиків.
Guests are not allowed to view images in posts, please Register or Login

Всегда

ДимаС

Гарненько, акуратно, сучасно виглядає.
Тримай будь ласка у курсі, якщо буде Сова та Струмок готові версії.
Най будуть кожному дані граблі по розміру лобу його...

SerhiyTopic starter

Друзі, поглянув на Сову під іншим кутом ізробив кілька кроків у напрямку її кастомізації.
Якщо ще минулого тижня пристрій працював лише з ескізами моїх двоповерхових установок і мав жорстко прошитий у коді набір датчиків то тепер користувач може самостійно налаштувати візуальну частину. Ви можете намалювати схему, або сфотографувати власну установку, або просто схему накреслену відруки, завантажити зображення в енергонезалежну память Совиі далі працювати безпосередньо з ним.

Що нового -користувач тепер сам обирає набір сенсорів для кожного контуру охорони. До режимів Дистиляція та Ректифікація додано третій обєкт моніторингу . Для моїх потреб вистачало й двох, але для колег, які, наприклад, займаються пивоварінням, це буде актуально. Або, можна поставити під охорону якісь приміщення в будинку (ваннукімнату і кухню, щоб в випадку потопу або витіку газу вчасно зреагувати) (Безглузду робочу назву режиму — «Денацифікація» — за бажанням завжди можна змінити).
Guests are not allowed to view images in posts, please Register or Login

Всегда

SerhiyTopic starter

Як це працює на практиці  -  У вебінтерфейсі зявилася нова кнопка Макет, що відкриває доступ до налаштувань візуалізації. У центрі екрана відображається завантажений вами ескіз або фото об'єкта. Зліва розташована колонка з 16 датчиків. Галочками ви відмічаєте саме ті, що залучені до моніторингу. Можна активувати як один будь-який сенсор, так і всі 16 одночасно.
Тепер користувач може самостійно за допомогою миші розставити датчики на ескізі макета саме в ті позиції, які вважає за потрібні. Це дозволяє створити максимально наочну схему своєї установки, де кожен віртуальний маркер точно відповідає реальному фізичному розташуванню сенсора на обладнані
Guests are not allowed to view images in posts, please Register or Login
Всегда

SerhiyTopic starter

Кожному активному датчику на схемі відповідає кольоровий маркер.Усі датчики промарковані за назвою та кольором відповідно до їхнього типу.На головному екрані показники відображаються на відповідних дисплеях та дублюються маркерами на ескізі.
У разі аварії маркер аварійного датчика та його дисплей починають в унісон з зумером блимати рожевим кольором, виводячи критичні цифри або повідомлення.
Якщо датчик деактивовано — його маркер зникає зі схеми, а відповідний дисплей стає неактивним.
Guests are not allowed to view images in posts, please Register or Login

Всегда

ДимаС

А на зображенні обладнання не може писати назву датчика коротку?
Най будуть кожному дані граблі по розміру лобу його...

SerhiyTopic starter

Слушне зауваження! Звісно, користувач який власноруч розставляв маркери на макеті, зазвичай має знати, який саме і де стоїть.. Проте людська пам'ять не бездоганна, або не завжди бездоганна (аби нікого не образити), томув Сові реалізовано систему підказок - варто лише навести курсор на маркер, як у ньому спливає повна назва датчика.
Чому я не зробив ці назви перманентними? Ймовірно на інтуїтивному рівні спрацювало прагнення уникнути перевантаження інтерфейсу. Мені здається, що він і без того досить насичений, а зайві текстові блоки можуть лише відволікати.
Але, то таке.. При необхідності назву датчика можна закріпити на постійній основі. Або можна додати в налаштуванях тумблер, який дозволить користувачу самостійно вирішувати — приховувати підписи чи ні.
Всегда

SerhiyTopic starter

Взагалі, в будьякій зоні інтерфейса можна виводити будь яку інформацію. Тому не соромтеся, вмикайте фантазію та пропонуйте! Якщо ідея не суперечитиме здоровому глузду та технічній логіці — ми обовязково розглянемо її впровадженя .
Всегда

SerhiyTopic starter

Ось так виглядає підказка на маркері датчика переливу при наведенні на нього курсора миші.
Guests are not allowed to view images in posts, please Register or Login
Всегда

SerhiyTopic starter

А так виглядає сам датчик переливу на пляшці. Взагалі це версія датчика для бутля.  Для пляшки резинка має бути тугішою, датчик буде кріпитися на саме горлишко і відповідно фіксувати перелив пізніше.
Guests are not allowed to view images in posts, please Register or Login
Всегда

SerhiyTopic starter

Для тих, хто стежить за розвитком проекту, маю цікаві новини. За останній час у Сові було реалізовано декілька критично важливих рішень.
Перше і найголовніше — ми «повністю» нейтралізували проблему зависання температурних датчиків DS18B20.Связка OneWire + DallasTemperature, яку я використовував раніше, має суттєвий недолік - функція requestTemperatures() блокує виконання коду на 750 мс для кожного датчика. У моєму випадку це сумарно забирало до 3 секунд! Через таку тривалу паузу спрацьовував Watchdog, а за прешкод на лінії була ймовірність відвалювання бібліотеки.
Перехід на OneWireNg і ручний контроль CRC дозволили розв'язати цю проблемму. Дякуючи асинхронному опитуванню тепер зчитування даних відбувається без блокування основного циклу програми. Також реалізовано перевірку цілостності даних, що значно підвищило стійкість до перешкод. Це зробило систему набагато чутливішою та стабільнішою, що вкрай важливо для головного контуру безпеки.
Guests are not allowed to view images in posts, please Register or Login


Всегда

SMF spam blocked by CleanTalk