Свобода периферії та динамічне призначення портів
Як підключити та налаштувати периферію без перепрошивки?
Одна з найпотужніших і найунікальніших переваг oCBot — ви самі вирішуєте, куди підключити кожен давач, клапан чи кнопку. Вам не потрібно перепрошивати контролер, щоб змінити призначення порту. Усе робиться через веб-інтерфейс за кілька кліків.
Ця стаття — про те, як працює свобода периферії та як динамічне призначення портів змінює підхід до автоматизації.
Про що ця стаття#
Це — практичний посібник, який показує, як гнучкість oCBot полегшує життя користувача.
ТУТ НЕ БУДЕ#
- ❌ Схем розпиновки для конкретних контролерів — вони залежать від вашого заліза.
- ❌ Інструкцій з паяння чи монтажу — це виходить за межі бази знань.
- ❌ Прив'язки до конкретних моделей периферії.
ТУТ БУДЕ#
- ✅ Пояснення концепції "програмного мапінгу" (Software Mapping).
- ✅ Як працює "гаряча заміна" давачів.
- ✅ Налаштування полярності (Active High / Active Low) без перепаювання.
- ✅ Інструкція з додавання периферії в інтерфейсі.
Ключова думка цього тексту: У більшості систем ви купуєте контролер із зашитими портами: давач 1 → GPIO 2, клапан 2 → GPIO 4. Якщо ви хочете змінити це — вам потрібно перепрограмувати контролер. У oCBot все інакше: ви просто призначаєте функцію будь-якому порту через веб-інтерфейс. Без коду, без перепрошивки, без паяльника.
Концепція вільного мапінгу (Software Mapping)#
Що це таке?
У більшості комерційних контролерів плата розведена так, що давач 1 має бути підключений строго до гнізда А, а клапан 2 — строго до гнізда Б. Це називається фіксоване призначення (hardware mapping).
У oCBot це працює інакше:
- Будь-яка функція на будь-який пін: Ви можете призначити цифровий вихід клапана відбору на GPIO 12, GPIO 14 або навіть на вихід розширювача PCF8574.
- Зміна в один клік: Якщо ви вирішили перенести клапан на інший порт — просто зміньть призначення в інтерфейсі. Контролер перезавантажувати не потрібно.
- Призначення ролей: Ви не просто підключаєте пристрій — ви призначаєте йому логічну роль (наприклад, "Температура куба", "Клапан відбору", "Кнопка Старт").
Як це виглядає в інтерфейсі#
1. Додавання нового пристрою#
- Перейдіть у розділ "Периферія" у веб-інтерфейсі.
- Натисніть "Додати периферію".
- Оберіть Тип пристрою зі списку (термодатчик, датчик витрати, насос, клапан тощо).
- Введіть Назву пристрою (наприклад, "Температура куба").
- Оберіть Колір для візуальної ідентифікації.
- Вкажіть фізичний пін або адресу на шині, до якої підключено пристрій.
- Якщо пристрій може сигналізувати аварію — позначте відповідний прапорець.
- Натисніть "Зберегти".
2. Зміна призначення існуючого пристрою#
- У списку периферії знайдіть потрібний пристрій.
- Натисніть кнопку редагування (олівець).
- Змініть пін, адресу або будь-які інші параметри.
- Натисніть "Зберегти".
Зміна призначення відбувається миттєво. Контролер не перезавантажується, сценарії не зупиняються. Це особливо важливо, якщо ви правите налаштування під час робочого процесу.
Гаряча заміна давачів (Hot Swap)#
Якщо під час процесу згорів або пошкодився давач температури, oCBot дозволяє замінити його без зупинки та перепрошивки.
Алгоритм дій:
- Від'єднайте пошкоджений давач від шини OneWire.
- Підключіть новий давач на ту саму шину.
- Зайдіть у веб-інтерфейс → розділ "Периферія".
- Натисніть "Автосканування" — система знайде новий давач за його унікальною адресою.
- Призначте йому ту саму логічну роль, яку мав старий давач.
- Система продовжує роботу з новим давачем.
Вам не потрібно перепрошивати ESP32. Усе робиться через інтерфейс. Ви навіть не потребуєте доступу до коду.
Налаштування полярності (Active High / Active Low)#
Іноді реле-модулі працюють "навпаки": одні спрацьовують від високого рівня (5V), інші — від низького (0V). У більшості систем це означає перепаювання або зміну коду.
У oCBot це вирішується одним прапорцем:
- Пряма логіка (Active High): Високий рівень — ввімкнено.
- Інверсна логіка (Active Low): Низький рівень — ввімкнено.
Ви просто обираєте потрібний варіант у налаштуваннях пристрою. Якщо ваше реле спрацьовує від 0V — ставите прапорець «Інверсія» в налаштуваннях. Без перепаювання, без зміни коду.
Призначення кількох функцій одному пристрою#
Деякі пристрої можуть виконувати кілька функцій одночасно. Наприклад:
- Світлодіодний індикатор може сигналізувати про роботу, попередження або аварію різними кольорами.
- Кнопка може виконувати різні дії залежно від тривалості натискання (коротке, довге, подвійне).
У oCBot ви можете призначити кілька логічних ролей одному фізичному пристрою, якщо це підтримується його функціоналом.
Що дає свобода мапінгу на практиці?#
| Ситуація | Як це працює в oCBot |
|---|---|
| Ви випадково підключили давач не в той порт | Просто змінюєте призначення в інтерфейсі — без перепаювання та перезаливання прошивки. |
| Вам потрібно додати ще один давач | Підключаєте його до будь-якого вільного порту та призначаєте роль. |
| У вас зламався давач | Підключаєте новий, запускаєте автосканування, призначаєте ту саму роль — процес триває. |
| Реле спрацьовує навпаки | Ставите прапорець "Інверсія" в налаштуваннях — без перепаювання. |
| Ви вирішили перенести клапан на інший порт | Змінюєте пін у налаштуваннях — і все працює. |
Практичний приклад: зміна призначення піна#
Припустимо, ви підключили клапан відбору до GPIO 12, але виявилося, що цей пін вам потрібен для іншого пристрою. Ось як ви переносите клапан на GPIO 14:
Крок 1: Зайдіть у веб-інтерфейс oCBot.
Крок 2: Перейдіть у розділ "Периферія".
Крок 3: Знайдіть пристрій "Клапан відбору" у списку.
Крок 4: Натисніть кнопку редагування (олівець).
Крок 5: Змініть поле "Пін" з GPIO 12 на GPIO 14.
Крок 6: Натисніть "Зберегти".
Готово! Клапан тепер керується через GPIO 14. Контролер не перезавантажувався, сценарій не зупинявся.
Підказки для безпечного налаштування#
Перед призначенням фізичних пінів ESP32 перевірте по таблиці розпиновки, чи не є обраний пін зарезервованим для системних потреб.
Деякі піни ESP32 мають особливе призначення при старті:
| Пін | Призначення | Чи можна використовувати? |
|---|---|---|
| GPIO 0 | Boot mode | ❌ Не рекомендується (впливає на завантаження) |
| GPIO 2 | Built-in LED / Boot | ⚠️ З обережністю |
| GPIO 12 | Boot mode | ❌ Не рекомендується (впливає на напругу) |
| GPIO 15 | Boot mode | ❌ Не рекомендується (впливає на завантаження) |
| GPIO 5, 16, 17 | Загального призначення | ✅ Можна використовувати |
Ми рекомендуємо використовувати піни, які не впливають на запуск контролера: GPIO 4, 5, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26, 27, 32, 33.
Часті запитання (FAQ)#
Що таке "Software Mapping"?
Це підхід, за якого функціональність пристрою не прив'язана до конкретного фізичного порту. Ви самі вирішуєте, який порт для чого використовувати, і змінюєте це через програмний інтерфейс.
Чи потрібно перезавантажувати контролер після зміни призначення?
Ні. Зміна відбувається миттєво. Контролер не перезавантажується, сценарії не зупиняються.
Чи можна змінювати призначення під час роботи сценарію?
Так, але будьте уважні. Якщо ви зміните призначення пристрою, який активний у поточному сценарії, це може вплинути на процес. Рекомендуємо робити такі зміни між запусками.
Як дізнатися адресу давача DS18B20?
Використовуйте функцію "Автосканування" у веб-інтерфейсі. Система сама знайде всі підключені давачі та покаже їхні адреси.
Що робити, якщо я помилився з піном?
Просто змініть призначення в інтерфейсі. Нічого не зламається. Якщо пін зарезервований для системних потреб — система попередить вас.
Чи можна підключати периферію до розширювача PCF8574 так само вільно?
Так. У налаштуваннях пристрою ви вказуєте, що він підключений через PCF8574, та обираєте номер порту на цій платі.
Що далі? (Навігація по базі знань)#
Тепер, коли ви знаєте, як налаштовувати периферію без перепрошивки, переходьте до наступного розділу:
- Сценарії та автоматизація — як створити власний алгоритм роботи.
Запрошення до діалогу: Ви вже спробували підключити периферію до oCBot? Розкажіть про свій досвід. Якщо виникли запитання — ми завжди поруч, щоб допомогти.