Коли офіційний застосунок не замало: DIY-моніторинг інвертора Deye на базі ESP32 та 3D-друку

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

У моєму випадку використовується інвертор Deye з акумулятором ємністю 5 кВт⋅год. Формально це дає автономність, але на практиці виникла інша проблема: не завжди є розуміння, що електроенергія з мережі вже зникла і система працює від акумулятора і потрібно зменшити електроспоживання, не користуватись індукційною плитою, вимкнути бойлер, вимкнути пральну машину та посудомийку. Відповідно, споживання не зменшується вчасно, що призводить до швидкого розряду батареї.

Інформація про стан інвертора доступна через мобільний застосунок на Android. Він показує поточне споживання, режими роботи та інші параметри. Але на практиці цей інструмент виявився незручним з кількох причин:

  1. дані приходять із затримкою приблизно 10 хвилин;
  2. інформація не завжди оновлюється автоматично;
  3. для отримання актуального стану потрібно вручну відкривати застосунок;
  4. відсутні надійні та оперативні сповіщення.

Фактично, застосунок не вирішує основної задачі — швидко повідомити про відключення електроенергії.

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

Першим етапом стало з’ясування базового питання: чи можливо взагалі отримувати дані з інвертора напряму, без використання офіційного мобільного застосунку.

Для цього я скористався нейронною мережею та інструментом Trae, сформулював відповідні запити й у результаті отримав Python-скрипт. Скрипт працював у локальній мережі, знаходив інвертор за серійним номером і опитував його напряму.

У процесі роботи з’ясувалося, що інвертор надає дані через набір регістрів. Документації з описом цих регістрів у відкритому доступі знайти не вдалося, тому їх призначення довелося визначати експериментальним шляхом. Після серії перевірок було встановлено регістр, що відповідає за наявність напруги на вході мережі.

Таким чином, технічна можливість отримувати критично важливу інформацію напряму з інвертора була підтверджена.

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

Проаналізувавши наявні на AliExpress зарядки, я поклав свій вибір на ESP32. Знайшов ще один дуже недорогий варіант за 120 гривень — з 0,42-дюймовим екранчиком. Замовив його, замовив червоні світлодіоди, світлодіодну стрічку і почав чекати.

Щоб інформування було дохідливішим, я вирішив, використати світлову індикацію. Червоний колір — міської мережі нема, жовтий або білий — є.

А щоб це виглядало більш-менш естетично, задумав надрукувати на 3D-принтері якусь фігурку-бюст і розмістити в ній світлодіоди. Коли я переглядав доступні моделі на MakerWorld від Bambu Lab, натрапив на бюст Медузи Горгони. Скачав фігурку.

Тут виникла проблема. Щоб нормально вивести червоні світлодіоди в очі, фігурку треба було модифікувати. Я не хотів друкувати її, а потім доробляти свердлом чи ще чимось. Хотів, щоб уже в моделі були готові технологічні отвори саме там, де мені потрібно.

На жаль, ні FreeCAD (який я спочатку пробував), ні Fusion 360 не змогли нормально відкрити цю модель для редагування. Файл відкривався з величезною кількістю полігонів, програма гальмувала, навіть просто повертати камеру було важко. Перепробував ще кілька програм — але простого і зрозумілого інструменту, щоб швидко зробити отвори, так і не знайшов.

А потім мій погляд упав на iPad Pro і на програму Shapr3D, яку я колись ставив. Як виявилося, саме в Shapr3D можна дуже легко відкрити STL, швидко моделювати потрібні отвори інструментами вирізання — все інтуїтивно. Зробив отвори під світлодіоди в очах і паз під стрічку на шиї, експортував назад у STL.

Після цього завантажив модель у Bambu Studio, відправив на дук. Це була моя перша спроба серйозно редагувати готові STL-файли, тому я був дуже задоволений результатом.

Оскільки з Arduino і подібними платами я востаннє працював років 10 тому, скористався допомогою нейромережі. Дав їй задачу, потратив приблизно дві години на відладку скрипта, найбільше часу пішло на розшифрування відповіді інвертора. Десь на 15–16 версії отримав робочий прототип.

Логіка вийшла така:

при відсутності напруги від міської мережі в очах Медузи Горгони горять червоні світлодіоди, якщо напруга є — замість очей загоряється намисто (стрічка) на шиї. Причому стрічка не просто світиться постійно, а плавно загоряється і гасне в ритмі дихання сплячої людини — щоб і світлодіоди не перегрівалися, і не дратувала занадто яскрава постійна підсвітка.

Після написання скрипта залишився останній етап — спаяти все на плату і розмістити електроніку всередині надрукованого бюста.

В результаті вийшов проект вихідного дня, за допомогою якого одразу видно: є зараз світло чи нема, і чи можна спокійно користуватися побутовими приладами, чи краще поки від цього утриматися, особисто мені він корисний зразу видно коли позапланове відключення чи включення світла. наприклад вчора після 8 годин без світла дали його на 50 хвилин, а потім було позапланове відключення ще на годину і якби не «медуза» я б про це дізнався лише постфактум.




Гортайте вбік, щоб подивитися всі зображення

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось6
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Ваше основне питання «коли зменшити споживання електроенергії», єдине рішення — його треба зменшити перманентно.

хм. стандартний донгл опитую кожну секунду. він навіть повисає. є гарний проджект для HomeAssistant на пайтоні і без ШІ. github.com/...​pan/ha-solarman/tree/main

Ну було б логічним продовженням поста викласти тоді ваш скрипт десь на гіті. Або продавати бажаючим за донат на ЗСУ. А так пост вийшов накшталт: дивіться який я класний а ви ніщеброди:)))

Ви праві, не врахував, github.com/kosmovski/deye_esp32 зауважу код не мій а нейромережі :-) , але працюючий, зараз мене оперативно інформує, ось тільки що світло на годину раніше дали

Підписатись на коментарі