Статті бази ▾ ← Усі бази знань
Автоматика oCBot
Концепція та філософія12 Ласкаво просимо до екосистеми oCBotЗвідки взявся oCBotІдеологія oCBotСфери призначення та режими роботиПериферійні пристроїСвобода периферіїБазові скрипти автоматизаціїВіртуальні панелі оператораСкладні сценарії та логіка автоматизаціїМультиконтролерністьЗагальний огляд автоматики oCBotАрхітектура та опис
Підтримувані контролери18 Контролер Kincony KC868-A6Підключення живлення й USB на KC868-A6Реле й аналогові виходи KC868-A6Сухі контакти й аналогові входи KC868-A6Шини й роз'єми KC868-A6: RS485, I2C, 1-Wire і рештаЩо зайнято на ESP32 у KC868-A6: карта GPIOЯк зібрати щиток на KC868-A6Як прогнати сценарії без куба: тестовий стенд для KC868-A6Контролер Kincony KC868-A16Підключення живлення й USB на KC868-A16Силові виходи KC868-A16: MOSFET замість релеСухі контакти й аналогові входи KC868-A16Шини й мережа KC868-A16: Ethernet, RS485, I2C, 1-WireЩо зайнято на ESP32 у KC868-A16: карта GPIOЯк зібрати щиток на KC868-A16Як прогнати сценарії без куба: тестовий стенд для KC868-A16Контролер WT32-ETH01Універсальний ESP32 DevKit (Custom)
Каталог периферійних пристроїв9 Датчики температуриДатчики тискуДатчики рівня рідиниДатчики потоку (витратоміри)Виконавчі механізми (Клапани, Насоси, ТЕНи)Датчики середовища (Вологість, Світло, Тиск)Датчики електричні та вагиОргани керування (Кнопки, Енкодери)Електродвигуни та вентилятори
Складання та Перший запуск (DIY)20 Збирання контролера oCBot своїми рукамиПервинне прошивання та запуск контролераШвидке підключення Wi-Fi через BluetoothПідключення ТЕНів та регуляторів потужностіВибір та підключення електромагнітних клапанівКілька плат PCA9685 на одній шиніПін OE — апаратне зняття всіх виходівПлата PCA9685 зблизька — що на ній є і навіщоПлата розширення PCA9685 — 16 каналів ШІМСервопривід і плата розширення — чому це не працюєТвердотілки на платі розширенняПідключення LCD та OLED дисплеїв по шині I2CДвигун і частотний перетворювач: силове підключенняПромисловий протокол RS485 (Modbus RTU)Частотник AE200 (Yingshida) по Modbus: клеми, параметри й регістр завдання частотиЧастотник CFM310 по Modbus: панель RS485, сервісне меню і три регістриЧастотник Ennera FCE по Modbus: налаштування і діагностикаЧастотник без Modbus (900E): пуск реле й оберти 0–10 ВКалібрування ваг на тензодатчиках (HX711)Усунення типових несправностей
Робота з веб-інтерфейсом17 Головна сторінка (Home)Діаграма процесу (Flow)Сценарії автоматизаціїРедактор скриптівПульти оператораДизайнер пультів HMI DesignerПериферіяПлати та шиниЗагальні налаштуванняОбладнанняТочки монтажуНалаштування графіківОновлення прошивкиНалаштування Wi-FiЛогиПорталПро програму
Написання сценаріїв (C++ Скрипти)10 Огляд скриптівМій перший сценарій: Крок за крокомШІМ-відбір: Як налаштувати клапан правильноНалаштування ПІД-регулятора для стабілізаціїАвтоматизація температурних пауз при затиранні солодуСкрипт ББКРегулювання тискуРозрахунок ABV за температурою париСкрипт «Розрахунок ABV»ABV у сценаріях
Безпека, Хмара та Інтеграція5 Система безпеки oCBot: Захист від аварійСтворення хмарного кабінету UA DistilleryЯк опублікувати звіт про перегонкуШеринг кастомних пультів оператора (HMI)Інтеграція з Home Assistant та MQTT
База знаньАвтоматика oCBotКонцепція та філософія

Звідки взявся oCBot

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


Перший апарат#

Перший апарат був задовго до будь-якої автоматики. Дядько працював у Донецьку на аерокосмічному факультеті і мав доступ до титану, нержавійки й правильних зварювальників. Тому перший апарат — звичайна «буква Г» на молочному бідоні, охолодження трубкою з крана, на кухні.

У 2014-му, після переїзду до Львова, з'явилась перша колона: 30-літровий куб і двохдюймова царга з магазинних деталей. Частину вузлів довелося замовляти за власними кресленнями — те, що продавалось, було скопійоване з російських форумів і за фізикою працювати не могло. Автоматики не було й не треба було: інженерна освіта і досвід дозволяють вести процес руками. І зараз дозволяють.

Коли постало питання автоматики#

Коли настоянкам знадобився чистіший продукт, куб став на 80 літрів, а ректифікація тримала під добу. Стояти добу біля колони — уже не хобі.

Альтернатив тоді не було. Найпередовіше з відкритого — контролер з форуму, який зібрав кум-електронник. Далі очікування зіткнулися з реаліями: сотні людей на форумі обговорювали ті самі проблеми. Електрику вирішили своєю платою — вона працювала як годинник, десяток-два розійшлися по друзях. А от код виявився таким, що додати в нього своє було неможливо: друг-програміст витратив кілька тижнів і сказав, що спершу треба вигребти все сміття. Вирішили, що воно того не варте.

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

Рішення: інструмент, а не прошивка під задачу#

У якийсь момент рішення стало стратегічним: не писати прошивку під конкретну дію чи задачу, а написати інструмент, який закриє будь-яку забаганку. А коли з'явилась перша власна збірка, кожна розмова з друзями, колегами і клієнтами показувала одне й те саме: у кожного своя каструля, своя периферія, свої обмеження по електриці й воді, свої можливості. Так замість прошивки з'явилась операційна система.

Шість свобод, під які писався інструмент#

  1. Будь-яка периферія. Не два клапани на один вихід як костиль, а стільки датчиків і виконавчих пристроїв, скільки треба. ESP32 із платами розширення це дозволяє. Див. Свобода периферії.
  2. Свобода інтерфейсів. Пристрій — це пристрій, а не «шнурок, підключений до конкретного порту». Поміняти порт, замінити датчик, перенести клапан — без перепрошивки.
  3. Пульт поза сценарієм. Окремо ввімкнути воду, окремо глянути датчик, окремо запустити двигун — без складної автоматизації. Див. Віртуальні панелі оператора.
  4. Математика між периферією. Зв'язки задаються калькуляторами: між термометром і ТЕНом, між обертами насоса і наповненням куба. Об'єм можна міряти рівнем, витратоміром, вагою або ємністю — людина обирає, як саме. Див. Базові скрипти.
  5. Керувати станами, а не діями. Скрипт — математична модель взаємодії периферії без етапів, початку й кінця. Сценарій лише каже скрипту, на які параметри вийти. Це оркестрація, і саме вона дозволила об'єднати кілька контролерів в одну систему. Див. Сценарії і Мультиконтролерність.
  6. Безпека на рівні периферії. На ринку аварія живе в сценарії. Тут будь-який датчик, навіть не дотичний до сценарію, може бути умовою аварії або блокувати силову частину. Див. розділ про безпеку в Сценаріях.

Коли стало зрозуміло, що контролерів може бути кілька, зникла й потреба у власній платі: на ринку є готові контролери за розумні гроші, і прошивка підтримує їх як базові. Купив, прошив, користуєшся. Див. KC868-A16 і KC868-A6.

Апетит: пам'ять#

Після цього шляху з'явився апетит на те, чого не дає жоден контролер, — пам'ять. Нотатки під час прогону, логування, паспорт прогону з витратами електрики й води, плеєр, який прокручує прогін як відео. Про це — Пам'ять прогону у базі «Портал».

Чесна ціна#

За все це заплачено часом користувача. Операційна система потребує більше часу, щоб розібратися й налаштувати, ніж маленька базова прошивка. Натомість нове з'являється без «костилів» під кожну задачу: потрібна модель — з'являється калькулятор; потрібна периферія — додається елемент; потрібна логіка — новий скрипт, який підхоплюють усі сценарії. Це і є режим «крок за кроком», у якому проєкт живе дотепер.


Що далі?#