Підключення периферії до KC868-A16
Написано для прошивки 0.2.213 (коміт 35e8a03) · порталу 0.0.267Можливо, застаріло: поточна прошивка 0.2.232, поточний портал 0.0.312
Статті про окремі давачі — температуру, тиск, рівень, потік — кажуть, що за прилад і як його калібрувати, але не на яку клему його садити: на A16 це інакше, ніж на A6 — інші адреси I2C, інший пін RS485, і вільних ніжок майже немає. Ця стаття — одна точка відповіді на «куди»: сім груп клем, через що кожна працює в прошивці, і типовий датчик чи пристрій на ній. Деталі кожного вузла — у статтях нижче за посиланнями; тут — лише карта.
Таблиця: тип датчика → роз'єм → через що#
| Тип датчика чи пристрою | Роз'єм на платі | Через що |
|---|---|---|
| сухий контакт: поплавок, пресостат, кнопка | Digital Input 1…16 + GND |
розширювачі PCF8574 на 0x22 (1–8), 0x21 (9–16), опитування ≈0,5 с |
| датчик тиску, вологості 0–5 В | Analog Input 1…4 + GND |
внутрішній АЦП; дільник 5,1к/10к уже на платі |
| витратомір Холла (імпульсний) | одна з Analog Input 1…4 |
той самий пін, але апаратний лічильник PCNT, не АЦП |
| DS18B20 (температура) | GPIO's 1…3 + 3.3V + GND |
три незалежні шини 1-Wire: GPIO 33 (HT2), 32 (HT1), 14 (HT3) |
| твердотілка ТЕНа | нема власного DA — через плату розширення | PCA9685 + буфер ULN2803 по I2C |
| драйвер помпи з ШІМ | те саме | PCA9685 по I2C |
| частотник, лічильник PZEM, модуль PT100 | RS485 A1, B1 |
Modbus, автонапрям, TX GPIO 13 / RX GPIO 16 |
| плата PCA9685, вага NAU7802, дисплей | I²C (4 незапаяні майданчики) |
I2C, SDA GPIO 4 / SCL GPIO 5 |
| дротова мережа порталу | Ethernet (RJ45) |
LAN8720 на RMII — не периферія датчиків |
| клапан, контактор, вхід твердотілки, блок E16 | Output 1…16, кожна зі своєю 12/24V |
розширювачі PCF8574 на 0x24 (1–8), 0x25 (9–16), MOSFET-ключ у плюсі |
Витратомір і аналоговий датчик тиску ділять один пул із чотирьох клем
Analog Input 1…4: апаратний лічильник імпульсів сидить на тих самих
GPIO, що й АЦП — зайняти всі чотири одразу й аналоговими датчиками, й
витратоміром не вийде.
Дискретні входи: сухий контакт, не для імпульсів#
Дві колодки, 1–8 і 9–16, кожна зі своїм розширювачем PCF8574 (0x22 і
0x21) по спільній шині I2C — опитування раз на півсекунди. Для
поплавка, пресостата чи кнопки цього достатньо. Для імпульсного
сигналу — ні: швидкість I2C не дозволить порахувати швидкі імпульси
витратоміра (чому саме — у статті про витратоміри).
Живлення на контакт подає сама плата, полярності немає. Хто сідає на ці входи по типах датчика — рівень, тиск; саму колодку й дільник — у статті про входи A16.
Частотні й аналогові входи: один пул на чотири клеми#
Analog Input 1…4 ведуть на внутрішній АЦП ESP32, GPIO 36, 34, 35, 39.
Дільник 5,1 кОм на 10 кОм уже на платі — зовнішній на ці клеми не ставити.
Апаратний лічильник імпульсів (PCNT) рахує на цих же чотирьох GPIO, тож витратомір і аналоговий датчик тиску фізично ділять одне місце. Дільник плати розрахований на 5 В для обох випадків: і датчик Холла, і промисловий датчик тиску 0–5 В сідають напряму, без перетворювача рівнів (витратомір, тиск).
Нумерація каналів АЦП = нумерація клем лише з прошивки 0.2.213 і новіших (ain_adc_channel у board_peripheral_map.cpp). На старіших прошивках канали 2–4 читали клеми в іншому порядку — деталі й що робити після оновлення.
DAC/PWM: власного виходу немає#
На A16 аналогових виходів нуль (dac = IO_NONE у розкладці плати).
Регульований нагрів і помпа з ШІМ ідуть не на клему плати, а на плату
розширення PCA9685 по I2C, через буфер ULN2803 — обов'язковий комплект,
якщо потрібен плавний нагрів. Чому напряму не можна і як підключити —
плата PCA9685, буфер ULN2803.
Власний вихід плати в цій схемі лишається під клапани, помпи «увімкнено/
вимкнено» й аварійну твердотілку (виходи A16).
1-Wire: три роз'єми, порядок важливий#
GPIO's 1…3 — три незалежні шини: GPIO 33 (роз'єм HT2, шина 0,
історичний пін), GPIO 32 (HT1, шина 1), GPIO 14 (HT3, шина 2). Підтяжка
4,7 кОм уже на платі. Детально — шини A16, чому
датчики губляться на апараті — проводка DS18B20.
RS485: один майстер на всю шину#
A1, B1 — Modbus з автоматичним напрямом, TX GPIO 13, RX GPIO 16 (на A6
інші піни — TX 27, RX 14). Частотник мішалки, лічильник PZEM, модуль PT100
— кожен своїм slave-id (шини A16,
кілька пристроїв на шині).
I2C: чотири незапаяні майданчики#
Роз'єму як такого немає — чотири отвори 3V3, GND, SCL, SDA між
розширювачами, паяти самому. SDA GPIO 4, SCL GPIO 5; адреси 0x21, 0x22,
0x24, 0x25 зайняті власними розширювачами плати — зовнішній модуль
перемикайте на вільну (повний список — шини A16).
Ethernet: мережа порталу, не периферія#
Роз'єм Ethernet веде на LAN8720 і забирає девʼять ніжок ESP32 — звідси й
нуль вільних GPIO на платі. Це дротова мережа для зв'язку з порталом, а не
вхід чи вихід для датчика; і в неї є власна пастка після перезапуску —
деталі в статті про шини.
Виходи: ключ у плюсі, не сухий контакт#
Output 1…16, кожна колодка зі своєю клемою 12/24V, — MOSFET-ключі, а
не реле: на клему подається плюс, навантаження — між виходом і мінусом.
220 В напряму не комутувати. Деталі, блок реле KC868-E16 і межі ключа —
статті про виходи.
Схеми підключення датчиків: повний перелік#
Усі типи периферії, які знає прошивка (rb_environment_parts.h,
enum rb_speripheral_type), і де на KC868-A16 шукати схему підключення
кожного. Рядок є для кожного типу, навіть якщо окремої схеми ще нема —
тоді позначка «готується». Типи без фізичного підключення (логічні
вузли сценарію — перемикач, таймер, компаратор, системний пристрій,
стан) до переліку не входять: підключати в них нічого.
| Тип периферії (прошивка) | Приклад | Схема підключення | Стан |
|---|---|---|---|
| температура | DS18B20, NTC/PTC | Датчики температури | є |
| дискретний вхід (загальний) | кнопка, сухий контакт | Дискретні входи | є |
| аналоговий вхід (загальний) | будь-який датчик 0–5 В | Аналогові входи | є |
| потік (витратомір) | датчик Холла | Датчики потоку, схема для A6 і A16 | є |
| тиск | аналоговий, пресостат | Датчики тиску | є |
| рівень | поплавок, геркон, електроди, XH-M203 | Датчики рівня, щупи через оптопару | є |
| насос | вихід A16 + драйвер, або ШІМ через PCA9685 | Виконавчі механізми | є |
| нагрівач (ТЕН) | власного DA немає — через PCA9685 і буфер ULN2803 | Виконавчі механізми | є |
| клапан | вихід A16 напряму | Виконавчі механізми | є |
| реле (загальний вихід) | блок KC868-E16, контактор | Виходи | є |
| атмосферний тиск | барометр BME280 | Датчики середовища | є |
| струм | лічильник PZEM на RS485 | Датчики електричні та ваги | є |
| напруга | лічильник PZEM | Датчики електричні та ваги | є |
| вологість | DHT22, BME280 | Датчики середовища | є |
| рух | PIR-давач | — | готується |
| вага | тензодатчик через NAU7802 | Датчики електричні та ваги | є |
| охолодження (вентилятор радіатора) | 12/24 В на виході | Електродвигуни та вентилятори | є |
| вентилятор | те саме | Електродвигуни та вентилятори | є |
| освітленість | фоторезистор, BH1750 | Датчики середовища | є |
| зумер | пищалка на виході | Органи керування | є |
| мішалка | частотник по RS485 | Електродвигуни та вентилятори | є |
| кнопка | фізична кнопка на вході | Органи керування | є |
| індикатор | лампа, світлодіод на виході | Органи керування | є |
| енкодер | поворотний енкодер на аналоговому вході | Органи керування | є |
| сервопривід | через плату PCA9685 | Сервопривід на PCA9685 | є |
| кроковий двигун | 28BYJ-48 + ULN2003 через PCA9685 | — | готується |
| кінцевик | сухий вхід «дійшов до краю» | — | готується |
| геркон (загальний) | дверцята, кришка, положення без контакту | Датчики рівня, розділ про поплавки — та сама схема, інший вхід | є |
| протікання | електродний модуль на підлозі | Датчики рівня | є |
| CO₂, ppm | SCD40/41 по I2C або RS485-трансмітер | — | готується |
| потужність | лічильник PZEM | Датчики електричні та ваги | є |
| енергія | лічильник PZEM | Датчики електричні та ваги | є |
Плати розширення на шині I2C:
| Плата | Навіщо | Схема підключення | Стан |
|---|---|---|---|
| PCA9685 | плавний нагрів (обов'язково для ТЕНа на A16), сервоприводи, кроковики | Плата PCA9685 | є |
| NAU7802 | тензодатчик ваги | Датчики електричні та ваги | є |
| SCD4x | CO₂ по I2C | — | готується |
| PCF8574 | додаткові дискретні входи чи виходи | I2C | є |
| Modbus-пресети на RS485 | PZEM, PT100, частотники | Налаштування Modbus | є |
Суміжні статті#
- Контролер Kincony KC868-A16 — огляд плати й решта серії.
- Сухі контакти й аналогові входи — дільники, струм, пастка нумерації каналів АЦП.
- Силові виходи — MOSFET-ключ, блок E16, межі.
- Шини й мережа — Ethernet і його пастка, RS485, I2C, три шини 1-Wire.
- Підключення периферії до KC868-A6 — та сама карта для молодшої плати.
- Щуп рівня через платку оптопари і витратомір — схеми «провід → клема» для цієї плати.