Як ми навчили цифровий двійник розпізнавати воду, удари та небезпечний нахил

14 хвилин читання
EventTwin Guard: від фізичного лабораторного стенда з IoT-сенсорами до його цифрового двійника

EventTwin Guard перетворює сигнали доступних IoT-сенсорів на зрозумілі події, оцінює ризик і за потреби автоматично вмикає захисне реле.

Автор: Олександр Осолінський

Матеріал підготовлено в межах проєкту «Платформа цифрових двійників для моніторингу та оптимізації IoT-систем»

Цифровий двійник, який не просто показує числа
Більшість навчальних IoT-проєктів працює за принципом, коли датчик вимірює температуру, вологість, освітленість або відстань, мікроконтролер передає дані, а користувач бачить на екрані чергове число.
Але саме значення фізичної величини ще не пояснює, що відбувається з фізичним об’єктом. Показник датчика води зріс до 492 умовних одиниць — це випадкова зміна, кілька крапель чи вже ознака протікання? Акселерометр зафіксував різкий стрибок прискорення — стенд нахилили, вдарили чи просто пересунули? Ультразвуковий датчик побачив об’єкт на відстані 10 см — це небезпека чи лише ситуація, яка потребує уваги?
В рамках проєкту «Платформа цифрових двійників для моніторингу та оптимізації IoT-систем» ми створили лабораторний прототип EventTwin Guard. Його завдання — перетворювати потік сирих сенсорних даних на зрозумілі події:

  • біля стенда виявлено об’єкт;
  • на контрольній поверхні з’явилася вода;стенд небезпечно нахилено;
  • зафіксовано сильний механічний удар;
  • виявлено ознаки полум’я.
Читайте також: Компанія без бюрократії, тижневих погоджень і даних, замкнених у різних департаментах, ще недавно звучала як управлінська утопія. Але саме така модель стає одним із ключових сценаріїв для бізнесу на наступне десятиліття, про який розповів Віктор Галасюк на своєму YouTube-каналі.

Для кожної ситуації цифровий двійник визначає один із чотирьох рівнів: NORMAL, ATTENTION, WARNING або DANGER. Після цього він формує коротке пояснення та рекомендацію. Якщо подія є небезпечною, система автоматично активує захисне реле.

сенсор → число → екран

Ми хотіли перейти від цієї схеми до повного циклу

фізична подія → сигнал сенсора → розпізнавання ситуації → оцінювання ризику → пояснення → захисна реакція

EventTwin Guard не є промисловою системою безпеки й не замінює сертифіковану пожежну чи охоронну сигналізацію. Це дослідний лабораторний стенд, на якому ми перевіряли, чи може цифровий двійник, крім відображення даних, інтерпретувати те, що з ним відбувається?

Лабораторний стенд EventTwin Guard з датчиками води, полум’я, наближення, нахилу та механічного впливу

Що ми зібрали на лабораторному стенді
Для прототипу ми обрали доступні компоненти, які часто використовують у навчальних IoT-проєктах. Нам було важливо показати, що подієвий цифровий двійник можна створити без складного промислового обладнання.Основою фізичного стенда стала плата Arduino Leonardo. До неї ми підключили чотири типи сенсорів:

  • датчик рівня води модуль глибиномір для Arduino;
  • інфрачервоний модуль для фіксації ознак полум’я;
  • ультразвуковий датчик HC-SR04 для визначення відстані до об’єкта;
  • MPU6050 з акселерометром і гіроскопом для контролю нахилу та механічних ударів.

Окремо до плати підключили релейний модуль. Він не керує високовольтним навантаженням, а демонструє автоматичну захисну реакцію. Коли система визначає небезпечну подію, реле перемикається, а його стан одночасно відображається у вебінтерфейсі та зберігається в журналі.
Arduino зчитує показники сенсорів, виконує первинну обробку та формує структуроване повідомлення. В ньому передаються числові значення, доступність MPU6050, стан реле та час оновлення.
Далі дані через послідовний порт надходять до сервера на Node.js. Далі сервер порівнює показники, визначає тип події та формує поточний стан EventTwin Guard.
Поточний стан доступний через DigitalTwin API. Окремі маршрути дозволяють отримати модель двійника, останню подію та історію попередніх спрацювань. Для візуалізації ми створили тривимірну модель лабораторної кімнати за допомогою Three.js. На віртуальному столі розміщено модель сенсорного стенда з індикатором стану: зелений — NORMAL, синій — ATTENTION, помаранчевий — WARNING, червоний — DANGER.

Підписуйтеся на наші соцмережі

сенсори → Arduino → Node.js → EventTwin Guard → API → журнал подій → 3D-візуалізація → реле

Шлях від сенсорів і Arduino через Node.js до цифрового двійника, API, журналу подій, 3D-візуалізації та захисного реле

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

Виявлення води
В сухому стані датчик води повертає значення, близьке до нуля. Після появи вологи воно помітно зростає. Невелике зростання означає попередження, а перевищення критичного порога створює подію water.detected і переводить цифровий двійник у DANGER. Користувач отримує повідомлення «На контрольній поверхні виявлено воду» та рекомендацію перевірити можливе протікання.

Наближення об’єкта
HC-SR04 вимірює відстань за часом повернення ультразвукового імпульсу. Коли об’єкт з’являється ближче, ніж за 20 см, EventTwin Guard створює подію object.nearby. Під час тесту предмет на відстані 10,3 см було правильно розпізнано як наближення. Стан змінився на ATTENTION, але реле залишилося вимкненим. Це принциповий момент, тому що система не повинна сприймати кожну зміну як аварію. Наближення людини або предмета потребує уваги, але саме по собі не є небезпечним.

Стан ATTENTION, подія object.nearby, захисне реле не активується було виявлено об’єкт на відстані 9,6 см

Контроль нахилу
MPU6050 дає змогу визначати просторове положення стенда. Після запуску система запам’ятовує початкову орієнтацію і далі оцінює відхилення від неї. У прототипі нахил приблизно від 7° формує попередження, а перевищення 15° створює подію tilt.danger, переводить систему в DANGER і вмикає реле.
Під час одного з тестів кут нахилу досягнув 17,9°. У вебінтерфейсі з’явилося повідомлення «Стенд небезпечно нахилено». Після повернення конструкції у вихідне положення система автоматично відновила стан NORMAL і вимкнула реле.

Стан DANGER, подія tilt.danger, кут 17,9° та автоматичне ввімкнення реле, було виявлено небезпечний нахил стенда

Виявлення механічного удару
Для удару ми аналізуємо різку зміну прискорення. Невеликі коливання ігноруються, оскільки вони можуть виникати під час звичайної роботи або переміщення проводів. Якщо зміна перевищує заданий поріг, EventTwin Guard формує подію impact.strong.
Під час лабораторного тесту система зафіксувала механічний вплив 0,59 g, установила стан DANGER, сформувала повідомлення про сильний удар і ввімкнула реле. Через кілька секунд значення знизилося до 0,01 g, після чого цифровий двійник повернувся до нормального режиму.

Ознаки полум’я
Інфрачервоний сенсор реагує на ІЧ-випромінювання. Перед роботою ми визначаємо фоновий рівень сигналу й оцінюємо відхилення від нього. Якщо зміна перевищує встановлений поріг, формуються подія flame.detected і стан DANGER.Такий сенсор корисний для навчального прототипу, але не може замінити сертифіковану пожежну сигналізацію. Він потребує калібрування і залежить від розташування, освітлення та характеристик конкретного модуля.

Пріоритет подій
Кілька умов можуть виникати одночасно. Наприклад, біля стенда може перебувати об’єкт, а на датчику води — з’явитися волога. У такому разі EventTwin Guard вибирає найвищий рівень ризику:

NORMAL → ATTENTION → WARNING → DANGER

Тобто, подія наближення не може «перекрити» небезпечне протікання або сильний удар. Завдяки цим правилам цифровий двійник відповідає не лише на запитання «яке значення показує сенсор?», а що сталося і наскільки це небезпечно?

Значення 492, подія water.detected і ввімкнення захисного реле було виявлено воду на контрольній поверхні

Що відбувається після виявлення небезпеки
Коли цифровий двійник визначає небезпечний стан, він одночасно змінює рівень на DANGER, формує зрозуміле повідомлення, додає рекомендацію, вмикає захисне реле, змінює колір індикатора у 3D-моделі на червоний і записує подію до постійного журналу.
Наприклад, під час сильного механічного удару EventTwin Guard показав значення 0,59 g. Система створила подію impact.strong, повідомила про сильний механічний вплив і ввімкнула реле.
В реальному застосуванні до реле можна під’єднати зовнішній виконавчий механізм, наприклад, світлову або звукову сигналізацію, систему аварійного вимкнення живлення чи інший захисний пристрій. В нашому стенді силові контакти не підключалися до високовольтного навантаження — ми перевіряли сам факт автоматичного перемикання.

Зміна прискорення 0,59 g, стан DANGER, подія impact.strong та ввімкнення реле, було виявлено сильний механічний удар

Повернення до нормального стану
Після зникнення небезпеки EventTwin Guard продовжує спостерігати за сенсорами. Під час тесту удару через кілька секунд показник механічного впливу знизився з 0,59 g до 0,01 g. Стан змінився з DANGER на NORMAL, подія завершилася, реле вимкнулося, а індикатор у 3D-моделі знову став зеленим.

спостереження → виявлення події → оцінювання ризику → захисна реакція → контроль повернення до норми

Навіщо потрібен журнал подій
Поточний стан показує лише те, що відбувається зараз. Для аналізу важливо знати, що відбувалося раніше. Тому кожен суттєвий перехід EventTwin Guard записує до JSON-журналу. Для події зберігаються дата й час, рівень стану, тип події, повідомлення та стан реле.
Це дозволяє переглядати історію випробувань, перевіряти правильність реакції та надалі аналізувати частоту подій.

Після impact.strong з активним реле система автоматично повернулася до NORMAL і вимкнула реле

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

Як ми перевіряли EventTwin Guard
Працездатність системи ми перевіряли на реальному лабораторному стенді. Спочатку контролювали нормальний режим, коли за відсутності небезпечних впливів EventTwin Guard показував NORMAL, повідомляв про нормальну роботу і тримав реле вимкненим.
Далі послідовно моделювали наближення об’єкта, нахил, появу води, сильний механічний удар і ознаки полум’я. Під час кожного випробування контролювали повний цикл: фізичний вплив, сигнал сенсора, визначення типу події, перехід у відповідний стан, повідомлення, рекомендацію, реакцію реле, зміну 3D-індикатора та запис у журнал.

Результати 20 контрольних випробувань

Сценарій
Кількість тестів
Подію виявлено
Реле активовано
Небезпечний нахил
5
5
5
Поява води
5
5
5
Виявлення полум’я
5
5
5
Сильний механічний удар
5
5
5
Разом
20
20
20

В цій контрольованій серії всі 20 впливів були розпізнані, а для кожної небезпечної події система виконала передбачену захисну реакцію. Окремо перевірено сценарій наближення, і EventTwin Guard установив ATTENTION, але не активував реле, що також було правильним результатом.
Показник 100% описує цю демонстраційну серію і не є універсальною оцінкою точності. Для промислового застосування потрібні тривалі випробування, значно більша кількість повторень, різні умови освітлення та температури, а також окрема оцінка помилкових спрацювань.

Що виявилося складнішим, ніж ми очікували
Найскладнішою частиною виявилася не побудова 3D-моделі і не передавання JSON через API, а стабільна інтерпретація сигналів від сенсорів.
Кожен модуль потребує калібрування і два однакові датчики можуть мати різні фонові значення, а зміна освітлення або положення сенсора впливає на результат. Особливо це помітно для інфрачервоного модуля полум’я.
Короткочасна фізична подія може створити кілька послідовних вимірювань. Тому журнал не повинен безконтрольно зберігати сотні однакових записів. Ми додали логіку фіксації переходів між станами та обмеження розміру історії.
Ще один момент, що потрібно виявити зміну але і правильно визначити її рівень. Якщо кожне наближення людини вмикатиме аварійне реле, система швидко стане непрактичною. Тому ми розділили інформаційні події, попередження і реальну небезпеку.
Крім того, цифровий двійник повинен залишатися зрозумілим користувачеві. Назва події по прикладу impact.strong корисна для API, але в інтерфейсі поряд має бути просте пояснення: «Зафіксовано сильний механічний удар» і конкретна рекомендація.

Де такий підхід може бути корисним
EventTwin Guard створювався як лабораторний прототип, але сама ідея подієвого цифрового двійника має ширше застосування.

  • навчальні лабораторії — контроль стану стендів і демонстрація принципів IoT;
  • серверні та технічні приміщення — виявлення води, ударів, відкривання або переміщення обладнання;
  • склади — контроль наближення, нахилу, падіння або механічного впливу;
  • невеликі виробничі зони — локальне виявлення небезпечних ситуацій і запуск виконавчих механізмів;
  • дослідні установки — накопичення історії станів для подальшого аналізу.

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

Що плануємо додати далі
Наступним кроком може стати підключення додаткових сенсорів: диму, газу, звуку, відкривання дверей або втрати живлення. Корисними будуть віддалені сповіщення через електронну пошту та месенджер, а також вебпанель зі статистикою за день, тиждень або місяць.
Окремий напрям — аналіз довгої історії подій. Замість жорстко заданих правил система зможе виявляти незвичайні комбінації сигналів, наприклад, невеликий нахил разом із повторними ударами або появою води.
У перспективі до EventTwin Guard будуть додані алгоритми машинного навчання. Штучний інтелект не повинен замінювати базові правила безпеки, а має доповнювати їх прогнозуванням і виявленням аномалій.

Від моніторингу до розуміння ситуації
EventTwin Guard показує, що навіть прості й доступні IoT-сенсори можуть стати основою цифрового двійника, який не тільки відображає показники, а й розпізнає події, визначає рівень ризику, пояснює ситуацію та запускає захисну реакцію.
Для нас важливим результатом став не окремий сенсор і не реле, а наскрізний зв’язок між фізичним об’єктом і його цифровим представленням.

Примітка: EventTwin Guard є навчально-дослідним прототипом. Використані сенсори та реле не є сертифікованими засобами промислової або пожежної безпеки