Підключення периферії до KC868-A6
Написано для прошивки 0.2.213 (коміт 35e8a03) · порталу 0.0.267Можливо, застаріло: поточна прошивка 0.2.232, поточний портал 0.0.312
Статті про окремі давачі — температуру, тиск, рівень, потік — кажуть, що за прилад і як його калібрувати, але не на яку саме клему його садити: це залежить від плати. Ця стаття — одна точка відповіді на «куди» для KC868-A6: сім груп клем, через що кожна працює в прошивці, і типовий датчик чи пристрій на ній. Деталі кожного вузла — у статтях нижче за посиланнями; тут — лише карта.
Таблиця: тип датчика → роз'єм → через що#
| Тип датчика чи пристрою | Роз'єм на платі | Через що |
|---|---|---|
| сухий контакт: поплавок, пресостат, кнопка | DI1…DI6 + GND |
розширювач PCF8574 на 0x22 (I2C), опитування ≈0,5 с |
| датчик тиску, вологості 0–5 В | A1…A4 + GND |
внутрішній АЦП; дільник 5,1к/10к уже на платі |
| витратомір Холла (імпульсний) | одна з A1…A4 |
той самий пін, але апаратний лічильник PCNT, не АЦП |
| DS18B20 (температура) | IO-1, IO-2 + 3V + GND |
1-Wire, GPIO 32 і 33 |
| твердотілка ТЕНа | DA-1 + GND |
ШІМ 4 кГц, часо-пропорційно з 0.2.7 |
| драйвер помпи IBT-2 | DA-2 + GND |
ШІМ 4 кГц через резисторний дільник |
| частотник, лічильник PZEM, модуль PT100 | RS485 A, B |
Modbus, автонапрям, TX GPIO 27 / RX GPIO 14 |
| плата PCA9685, вага NAU7802, дисплей | IIC (4 pin) |
I2C, SDA GPIO 4 / SCL GPIO 15 |
| клапан, контактор, аварійна твердотілка | Output 1…6 (NO/COM/NC) |
розширювач PCF8574 на 0x24 (I2C), active-low |
Витратомір і аналоговий датчик тиску ділять один пул із чотирьох клем
A1…A4: апаратний лічильник імпульсів сидить на тих самих GPIO, що й
АЦП, тому зайняти всі чотири аналоговими датчиками й витратоміром одразу
не вийде — рахуйте їх разом до закупівлі.
Дискретні входи: сухий контакт, не для імпульсів#
DI1…DI6 читає розширювач PCF8574 на адресі 0x22 по шині I2C — опитування
раз на півсекунди (debounce_ms і головний цикл периферії, rb_environment.cpp).
Для поплавка, пресостата чи кнопки цього достатньо з запасом. Для
імпульсного сигналу — ні: швидкість I2C не дозволить порахувати швидкі
імпульси витратоміра, і похибка виміру буде величезною
(чому саме — у статті про витратоміри).
Живлення на контакт подає сама плата, живлення зовнішнє не потрібне, полярності немає. Хто саме сідає на ці входи — поплавки, пресостати, електродні модулі на зразок XH-M203 — розібрано по типах датчика в статтях про рівень і про тиск; саму колодку й дільник — у статті про входи A6.
Частотні й аналогові входи: один пул на чотири клеми#
A1…A4 ведуть на внутрішній АЦП ESP32, GPIO 36, 39, 34, 35. Дільник
5,1 кОм на 10 кОм, що переводить 5 В датчика в 3,3 В піна, уже стоїть на
платі — зовнішній на ці клеми не ставити, він ріже шкалу вдвічі.
Апаратний лічильник імпульсів (PCNT) рахує на цих же чотирьох GPIO — тому порт для витратоміра і порт для аналогового датчика тиску фізично одне й те саме місце, просто в різному режимі. На A6 і там, і там дільник плати вже розрахований на 5 В, тож і датчик Холла з живленням 5 В, і промисловий датчик тиску 0–5 В сідають напряму, без перетворювача рівнів (деталі про витратомір, про тиск).
DAC/PWM: два виходи, обидва ШІМ#
DA-1 і DA-2 — не постійна напруга, а ШІМ 4 кГц на GPIO 25 і 26. Що на
клемі насправді і як прошивка веде нагрівач часо-пропорційно — у
статті про виходи; куди саме дріт від твердотілки й
драйвера помпи — у схемі колодки DA/IO.
1-Wire: два роз'єми, дві незалежні шини#
IO-1 (GPIO 32, шина 1) і IO-2 (GPIO 33, шина 0) — під DS18B20, з
підтяжкою 4,7 кОм уже на платі. Обидві працюють одночасно, на кожній —
кілька датчиків паралельно. Детально — шини A6,
проводка екранованим кабелем — колодка DA/IO,
чому датчики губляться на апараті — проводка DS18B20.
RS485: один майстер на всю шину#
A, B — Modbus з автоматичним напрямом, TX GPIO 27, RX GPIO 14. Сюди
йдуть частотник мішалки, лічильник енергії PZEM, модуль PT100 для
гарячих точок — кожен своїм slave-id (шини A6,
кілька пристроїв на шині).
I2C: плата розширення, не зовнішні реле#
Роз'єм IIC — SDA GPIO 4, SCL GPIO 15. Сюди сідає плата PCA9685 (плавний
нагрів, додаткові ШІМ) і плата NAU7802 (тензодатчик ваги); адреси 0x22 і
0x24 вже зайняті власними розширювачами плати — зовнішній модуль
перемикайте на вільну (повний список адрес — шини A6).
Виходи: сухий контакт, байдуже до навантаження#
Output 1…6 (NO/COM/NC) — шість реле через розширювач 0x24.
Контакт сухий і перекидний, тому одне й те саме реле вмикає і 220 В, і
12 В — деталі, межа струму й схема в статті про виходи.
Схеми підключення датчиків: повний перелік#
Усі типи периферії, які знає прошивка (rb_environment_parts.h,
enum rb_speripheral_type), і де на KC868-A6 шукати схему підключення
кожного. Рядок є для кожного типу, навіть якщо окремої схеми ще нема —
тоді позначка «готується». Типи без фізичного підключення (логічні
вузли сценарію — перемикач, таймер, компаратор, системний пристрій,
стан) до переліку не входять: підключати в них нічого.
| Тип периферії (прошивка) | Приклад | Схема підключення | Стан |
|---|---|---|---|
| температура | DS18B20, NTC/PTC | Датчики температури | є |
| дискретний вхід (загальний) | кнопка, сухий контакт | Дискретні входи | є |
| аналоговий вхід (загальний) | будь-який датчик 0–5 В | Аналогові входи | є |
| потік (витратомір) | датчик Холла | Датчики потоку, схема для A6 і A16 | є |
| тиск | аналоговий, пресостат | Датчики тиску | є |
| рівень | поплавок, геркон, електроди, XH-M203 | Датчики рівня, щупи через оптопару | є |
| насос | реле або ШІМ-драйвер на DA |
Виконавчі механізми | є |
| нагрівач (ТЕН) | твердотілка на DA-1 |
Виконавчі механізми | є |
| клапан | реле | Виконавчі механізми | є |
| реле (загальний вихід) | контактор, аварійна твердотілка | Виходи | є |
| атмосферний тиск | барометр BME280 | Датчики середовища | є |
| струм | лічильник PZEM на RS485 | Датчики електричні та ваги | є |
| напруга | лічильник PZEM | Датчики електричні та ваги | є |
| вологість | DHT22, BME280 | Датчики середовища | є |
| рух | PIR-давач | — | готується |
| вага | тензодатчик через NAU7802 | Датчики електричні та ваги | є |
| охолодження (вентилятор радіатора) | 12 В на виході | Електродвигуни та вентилятори | є |
| вентилятор | те саме | Електродвигуни та вентилятори | є |
| освітленість | фоторезистор, BH1750 | Датчики середовища | є |
| зумер | пищалка на виході | Органи керування | є |
| мішалка | частотник по RS485 | Електродвигуни та вентилятори | є |
| кнопка | фізична кнопка на вході | Органи керування | є |
| індикатор | лампа, світлодіод на виході | Органи керування | є |
| енкодер | поворотний енкодер на аналоговому вході | Органи керування | є |
| сервопривід | через плату PCA9685 | Сервопривід на PCA9685 | є |
| кроковий двигун | 28BYJ-48 + ULN2003 через PCA9685 | — | готується |
| кінцевик | сухий вхід «дійшов до краю» | — | готується |
| геркон (загальний) | дверцята, кришка, положення без контакту | Датчики рівня, розділ про поплавки — та сама схема, інший вхід | є |
| протікання | електродний модуль на підлозі | Датчики рівня | є |
| CO₂, ppm | SCD40/41 по I2C або RS485-трансмітер | — | готується |
| потужність | лічильник PZEM | Датчики електричні та ваги | є |
| енергія | лічильник PZEM | Датчики електричні та ваги | є |
Плати розширення на шині I2C:
| Плата | Навіщо | Схема підключення | Стан |
|---|---|---|---|
| PCA9685 | плавний нагрів, сервоприводи, кроковики | Плата PCA9685 | є |
| NAU7802 | тензодатчик ваги | Датчики електричні та ваги | є |
| SCD4x | CO₂ по I2C | — | готується |
| PCF8574 | додаткові дискретні входи чи виходи | I2C | є |
| Modbus-пресети на RS485 | PZEM, PT100, частотники | Налаштування Modbus | є |
Суміжні статті#
- Контролер Kincony KC868-A6 — огляд плати й решта серії.
- Сухі контакти й аналогові входи — дільники, струм, NPN проти PNP.
- Реле й аналогові виходи — що на клемі
DAнасправді і межа контакту реле. - Шини й роз'єми — RS485, I2C з адресами, 1-Wire.
- Щуп рівня через платку оптопари і витратомір — схеми «провід → клема» для цієї плати.