Как стать автором
Обновить

Kincony KC868-A6: A4 на стероидах (по заявкам с Хабра)

Время на прочтение10 мин
Количество просмотров6K


Компания Kincony отличается завидной плодовитостью и «выпекает» новые контроллеры как горячие пирожки — каждый месяц у неё появляются всё новые и новые модели. И, судя по всему, останавливаться она не собирается, в её собственной интерпретации это называется:

“Continuously developing new products.”

То есть она и дальше собирается радовать нас своими новыми девайсами для автоматизации. Это отличная новость, но есть новость ещё лучше: Kincony реагирует на пожелания пользователей по улучшению своих изделий. А в наше время это очень редкое качество — увидеть в железе свои «хотелки» — что-то я вообще не припомню прецедентов, чтобы по моим пожеланиям выпускали серийные контроллеры.

Разработчики Kincony знакомы с моими статьями, а также с комментами Хабро-юзеров под ними, то есть у нас есть реальный шанс (механизм) влияния на начинку новых изделий Kincony. В частности, среди моих пожеланий были добавление в контроллер дисплея, возможность подключения беспроводных модулей LoRa и nRF24, вывод на плату отдельных Serial, I2C и SPI разъёмов, добавление часов реального времени (RTC) — и вот передо мной лежит KC868-A6, в котором все эти пожелания учтены. Вот так просто — заказывали? — получите!

Разумеется, не все наши пожелания учтены в KC868-A6, но сама тенденция радует, а что и как устроено внутри A6 мы с вами разберём дальше…

Kincony KC868-A6


KC868-A6 производит впечатление «KC868-A4 на стероидах» — всё то же самое, но немного лучше, немного больше и «сильнее» — стало больше цифровых входов и реле, больше входов для датчиков, добавились дисплей, возможность подключения беспроводных nRF24 и LoRa модулей, отдельные разъёмы Serial, I2C и SPI интерфейсов, часы реального времени (RTC) и (видимо по многочисленным просьбам Хабро-юзеров) интерфейс RS485.



A4 и A6 для сравнения

Пропажи вроде пьезокерамической пищалки (Buzzer), IR диодов и модулей 433 МГц можно считать несущественными, хотя лично мне пищалку жалко — при помощи неё удобно оповещать о различных событиях.

Несмотря на значительные шаги в правильном направлении, KC868-A6 всё ещё не дотягивает до почётного звания «Народный контроллер нашей мечты» — инженеры Kincony по традиции проигнорировали существование в природе хардверных вачдогов (Watchdog) и многочисленные предложения Хабро-юзеров по улучшению схемотехники контроллера.

Я бы ещё добавил в контроллер что-нибудь вроде Mega 2560 PRO в качестве партнёрского MCU (и больше никогда себе ни в чём не отказывал), возможно, мне когда-нибудь удастся достучаться до разработчиков и донести до них эту благую мысль.

Теперь давайте подробно разберём, что содержится на плате KC868-A6. Как обычно для серии KC868 это модуль ESP32 в модификации ESP-WROOM-32 со всеми присущими ему возможностями (Wi-Fi, Bluetooth, два ядра MCU, 4 МБ EEPROM памяти и т. д.).

Кроме этого, плата KC868-A6 содержит:
  • 6 цифровых опторазвязанных входов («сухой контакт»)
  • 4 аналоговых входа 0–5 В
  • 2 аналоговых выхода (DAC) 0–10 В
  • 6 реле 10А 220В (NO, COM, NC)
  • 2 контакта для подключения температурных и прочих датчиков
  • Разъём Serial
  • Разъём I2C
  • Разъём nRF24L01 (SPI)
  • Разъём LoRa (SPI)
  • Интерфейс RS232 (DB9)
  • Интерфейс RS485
  • Display (SSD1306)
  • RTC DS1307 (+ гнездо для батарейки)

Немного подробнее, что всё это значит и что это даёт нам:

Разъём Serial. Возможность подключения различного оборудования (компонентов), работающего по этому протоколу, а также возможность подключения «партнёрского» MCU.

Разъём I2C. То же самое, что и Serial.

Разъём nRF24L01. Возможность интегрировать в систему десятки (если не сотни) беспроводных DIY датчиков, актуаторов, индикаторов и т. д. А также возможность использовать этот разъём для подключения SPI компонентов (вместо nRF24L01).

Ещё подробнее: если на борту контроллера есть nRF24, то KC868-A6, например, поддерживает уже не 6 реле, а может поддерживать работу десятков (сотен) беспроводных реле. Что выводит сам контроллер и его возможности на совершенно другой уровень.

И ещё подробнее: при соответствующей программной поддержке (контроль доставки пакетов, повторные посылки, шифрование и т. д.) беспроводные nRF24 (а также LoRa) соединения могут быть практически такими же надёжными, как проводные.

Разъём LoRa. То же самое, что и nRF24, плюс весь комплекс возможностей, связанный с LoRa-спецификой: большие расстояния связи и т. д.

Интерфейс RS485. Без комментариев.

Display. Как я уже заметил ранее в одной из статей, «контроллер с дисплеем — это гораздо интереснее, чем такой же контроллер, но без дисплея». Далее дело остаётся только за вашими дизайнерскими и конструкторскими способностями (чтобы решить что, когда и как выводить на него).

RTC DS1307. Долгожданный RTC на борту (кто делал реальные проекты, тот сможет по достоинству оценить его наличие). Правда реализация немного подкачала, но об этом мы подробно поговорим чуть ниже.

ESP32. Про ESP32 и его (веб-)интерфейсные и коммуникационные возможности я даже не упоминаю — всё это мы подробно разбирали в предыдущих статьях.

В общем, KC868-A6 в умелых руках — это страшное оружие DIY автоматизации (главное, чтобы руки были достаточно умелыми). А теперь переходим к знакомству с внешним видом и устройством KC868-A6.

Внешний вид и устройство


Как говориться, «скромно, но со вкусом», внешний вид Kincony KC868-A6 ничем не выделяется, но при этом контроллер выглядит вполне симпатично и функционально. Мне лично корпус нравится как с точки зрения дизайна, так и с точки зрения функциональности: заглушки для внешних разъёмов, место для дисплея, удобные крепления и простота разборки, качественная пластмасса, металлические крепления для болтов и вентиляционные отверстия, возможность установки на DIN-рейку или любую поверхность — всё очень и очень неплохо, если не сказать «хорошо и отлично».

Правда в комментариях к предыдущим статьям кто-то высказал мнение, что корпус имеет нестандартную геометрию и это плохо, но по совокупности достоинств я бы закрыл глаза на его «нестандартную» форму.



Вид контроллера со снятой крышкой — внутри мы наблюдаем всё тот же подход к проектированию устройств компании Kincony: всё сделано аккуратно и функционально. Особо радует наличие свободного места в корпусе — можно спокойно разместить дополнительную плату с нужными компонентами, прикрепив её к верхней крышке и соединив с основной платой шлейфами.



Вид платы KC868-A6 в «поддоне» корпуса с обратной стороны — видны разъёмы цифровых и аналоговых входов, DAC, интерфейсов RS232 и RS485, а также крепёжные пластины для фиксации контроллера на DIN-рейку.



Сама плата KC868-A6. Можно не пользоваться комплектным корпусом, а закрепить её при помощи специальных отверстий (выемок) на любой подходящей поверхности или внутри вашего DIY устройства автоматизации чего-либо.



Схемотехника


Теперь переходим к более близкому знакомству с KC868-A6 и разбору схемотехники этого контроллера. Для начала вид сверху. Сразу бросаются в глаза многочисленные дополнения и улучшения, по сравнению с A4.



Вид платы снизу. Комментировать особо нечего, всё видно как на ладони. Правда, близко познакомившись с модельным рядом контроллеров серии KC868, могу заметить, что некоторые модели идут чистыми, с хорошо отмытым флюсом, а некоторые содержат остатки плохо смытого флюса. A6 относится к последним — перед съёмкой обратной стороны платы, мне пришлось её вручную отмывать от остатков флюса.



Питание


Стандартное для серии KC868 исполнение подсистемы питания: используется микросхема понижающего DC-DC преобразователя XL1509-5 для формирования напряжений 12 В и 5 В и линейный регулятор LM117-3V3 для формирования напряжения 3,3 В.

Колодка для подключения проводов питания переместилась с верхней стороны платы на нижнюю — Kincony демонстрирует лёгкость манипулирования расположением элементов на плате и дизайном разъёмов для подключения оборудования к контроллеру.



Принципиальная схема подсистемы питания KC868-A6:



Ядро ESP32


Тут всё просто — стандартное, ставшее уже классическим для серии KC868, расположение модуля ESP-WROOM-32 на плате. Плюс фильтрующие конденсаторы по питанию, расположенные вблизи ESP32.

Антенна Wi-Fi модуля расположена близко от антенны nRF24L01 (при его использовании) — тут нужно убедиться, что они не создают помех друг для друга при работе, поскольку оба модуля работают в диапазоне 2,4 ГГц.



Принципиальная схема и распиновка ядра ESP32 контроллера:



USB/CH340


Подсистема подключения к компьютеру и программирования контроллера. Разъём Mini-USB заменён на более современный Type-C, далее идут CH340C с соответствующей обвязкой и две кнопки — «RESET» и «USER» («DOWNLOAD»).



Принципиальная схема подсистемы USB/CH340 контроллера:



Цифровые входы (DI)


6 входов это определённо лучше, чем 4 на KC868-A4. KC868-A6 имеет 6 цифровых оптоизолированных входов на оптронах EL357. Взаимодействием с ESP32 занимается pасширитель цифровых входов/выходов c I2C интерфейсом PCF8574P, что экономит дефицитные GPIO, правда ухудшает быстродействие входов KC868-A6 и несколько усложняет программирование.



Принципиальная схема подсистемы цифровых входов:



Аналоговые входы (ADC)


KC868-A6 имеет 4 аналоговых входа 0–5 B. Формирование сигналов производится входными каскадами, счетверённым операционным усилителем LM224 и диодами Шоттки BAT54S.

Тут же формируется напряжение VCC_12V_1.



Принципиальная схема подсистемы аналоговых входов:



DAC


Формированием выходных аналоговых сигналов 0–10 В занимается сдвоенный операционный усилитель LM258DR с соответствующей обвязкой и питанием от 12V_1/AGND. В колодке P6 выходы DAC совмещены со входами датчиков (температуры и т. п.).



Принципиальная схема DAC подсистемы контроллера:



Реле


Подсистема реле занимает половину контроллера Kincony KC868-A6. Обслуживанием работы 6-и реле занимается микросхема 74HCT14 с инвертирующими триггерами Шмитта и ULN2003A с матрицами транзисторов Дарлингтона. На плате присутствуют индикаторные светодиоды, сигнализирующие о текущем состоянии реле.

Взаимодействие с микроконтроллером ESP32 осуществляется при помощи pасширителя цифровых входов/выходов c I2C интерфейсом PCF8574P.

Выходы реле имеют все 3 контакта (NO, COM, NC), что позволяет полноценно использовать их в различных схемах включения/выключения нагрузок. Также в этой версии контроллера колодки реле заменены на более мощные, по сравнению с колодками KC868-A4.



Принципиальная схема подсистемы реле:



Датчики (температуры/влажности)


KC868-A6 имеет 2 разъёма для подключения температурных и прочих датчиков (можно подключать любые подходящие датчики или сети из нескольких датчиков, нужно только помнить, что все контакты подтянуты на плате к напряжению 3 В). В крайнем случае можно удалить с платы подтягивающие резисторы и получить «чистые» GPIO, к которым можно подключить нужное вам оборудование.



Принципиальная схема подсистемы подключения датчиков:



Serial


Отдельный Serial разъём (GPIO12, 13) для подключения соответствующего оборудования (любые компоненты, работающие по этому протоколу или «партнёрский» MCU). Отдельные разъёмы с различными интерфейсами на плате — это всегда хорошо и можно только поприветствовать появление отдельного Serial разъёма у KC868-A6.



Принципиальная схема Serial подключения:



RS232


Несмотря на появление в контроллере KC868-A6 интерфейса RS485, разработчики оставили на плате компоненты (чип SP3232EEN) и DB9 разъём интерфейса RS232. Видимо это связано с какой-то китайской спецификой и популярностью там оборудования с интерфейсом RS232.



Принципиальная схема подсистемы интерфейса RS232:



RS485


Отсутствие поддержки интерфейса RS485 в KC868-A4 вызвало много нареканий к комментах к статьям об этом контроллере — в KC868-A6 разработчики учли эти пожелания и добавили RS485 на плату. Работа этой подсистемы обеспечивается драйвером интерфейса MAX13487EESA и буфером 74LVC1G125.



Принципиальная схема подсистемы интерфейса RS485:



I2C


Как я уже заметил выше, отдельные разъёмы с интерфейсами на плате — это всегда хорошо. Отдельный разъём I2C — это просто отлично: к нему можно подключить любые дополнительные I2C-совместимые компоненты и значительно расширить функционал контроллера.



Принципиальная схема I2C подключения:



Wireless (nRF24 и LoRa)


На мой взгляд главная «фишка» KC868-A6 — возможность подключения nRF24 и LoRa модулей. Это значительно расширяет функционал контроллера — ему становится доступным управление десятками и сотнями беспроводных датчиков и актуаторов.

Как вы видите, одновременно использовать и nRF24 и LoRa нельзя, их можно использовать только по отдельности. То есть вы должны выбрать использование той или иной беспроводной сети. С другой стороны, если очень нужно, то можно попробовать один модуль вставить в соответствующий разъём, а второй подключить при помощи проводов (шлейфа) — что из этого получится и как это будет работать нужно проверять отдельно, я пока не проводил таких экспериментов.



Ещё можно заметить, что оба разъёма содержат выводы интерфейса SPI и можно попробовать использовать их для подключения какого-либо SPI оборудования, вместо беспроводных nRF24 и LoRa модулей (если по проекту вам нужно подключить к контроллеру какое-то оборудование с SPI интерфейсом).

Принципиальная схема подключения беспроводных nRF24 и LoRa модулей (SPI интерфейс):



Популярный и всеми любимый модуль nRF24L01, который (успешно) используется в тысячах DIY проектов.



Не менее популярный и не менее горячо любимый LoRa модуль, который также успешно используется во множестве DIY проектов.



И теперь эти замечательные модули вы можете подключить к KC868-A6 и сделать его повелителем вашей беспроводной IoT сети (беспроводных IoT сетей).

Display (SSD1306)


Дисплей — это то, чего так сильно не хватало контроллерам Kincony, и теперь вы можете подключить к KC868-A6 популярный дисплей SSD1306 и выводить на него всю необходимую информацию. Кстати, не обязательно использовать именно SSD1306, можно подключить любой дисплей с I2C интерфейсом. Например, какой-нибудь дисплей с большим, чем у SSD1306 экраном.

А также можно использовать разъём дисплея для подключения другого I2C оборудования, если дисплей в вашем проекте не нужен.



Принципиальная схема подключения дисплея:



Сам I2C дисплей SSD1306. Тоже популярный и использующийся во множестве DIY проектов. Доступный, недорогой и имеющий поддержку в виде библиотек.



RTC


Ещё одна изюминка KC868-A6 — RTC (часы реального времени). Наконец-то компания Kincony нас услышала и добавила на свою плату эту подсистему. О значении RTC в реальных проектах я говорить не буду, замечу только, что это крайне полезная и даже необходимая функция во многих случаях.

Из недостатков реализации можно отметить использование чипа DS1307, который славится своей неточностью и большими отклонениями отсчёта времени от реального значения. Это ограничивает применение данного решения, хотя такой RTC — это всё же лучше, чем никакого.

Но есть и хорошая новость: компания Kincony обещала исправиться и в следующих ревизиях платы поставить нормальный RTC чип DS3231 с точным отсчётом времени. Оба чипа совместимы программно, так что переход на новую плату будет безболезненным. Ждём-с.



Принципиальная схема подсистемы часов реального времени:



Распиновка


Далее привожу распиновку, которая даёт исчерпывающее представление о том, что и как подключено на плате контроллера KC868-A6.



Схема внешних подключений


И, по традиции, привожу немного окультуренную схему внешних подключений от производителя.



Заключение


Я думаю, что ознакомившись с информацией из этой статьи, у вас не должно остаться никаких вопросов о том, что представляет собой KC868-A6. За кадром остались вопросы программирования и использования этого контроллера — с этим тоже нет никаких проблем — при наличии интереса можно подробно разобрать программирование как отдельных подсистем, так и работу с готовыми прошивками для ESP32, а также создание практических проектов по автоматизации на KC868-A6.

На этом на сегодня всё, успешного вам программирования и интересных проектов!
Теги:
Хабы:
+7
Комментарии10

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн