Многие контроллеры компании Kincony кажутся довольно монструозными устройствами — платы невероятных размеров, огромное количество цифровых входов и управляющих выходов, множество интерфейсов и т. д., но это только до тех пор, пока вам не понадобится, например, получать информацию с 64-х цифровых входов и управлять 64-я клапанами или реле.

И тут вдруг оказывается, что существует готовое решение, которое позволяет подключить провода, залить прошивку и (быстро и просто) решить стоящую перед вами задачу по автоматизации.

Сегодня мы как раз и рассмотрим такого монстра, это контроллер Kincony KC868-A64, который занимает почётное место в линейке A4, A6, A8, A16, A32, A64 и позволяет решать сложные и объёмные задачи по автоматизации.

Особенности линейки KC868


По типу управления выходами контроллеры серии KC868 делятся на две категории: устройства с установленными на плате реле (A4, A6, A8, A16S, A32) и устройства с транзисторными (MOSFET) выходами (A16, A64, KC868-Server). Контроллеры с реле дополнительно подразделяются на девайсы с запаянными в плату реле и на устройства с реле, установленными в специальные «кроватки» и позволяющие быстро и без пайки заменять сгоревшие реле.

Каждый из этих вариантов имеет свои преимущества и недостатки: контроллеры с установленными на плате реле легче использовать, ничего не нужно покупать и подключать дополнительно, а контроллеры с транзисторными выходами могут управлять не только реле, но и, например, электромагнитными клапанами. Во втором случае требуется дополнительно покупать и устанавливать отдельные блоки реле, например, блок KC868-E16 или аналогичный.


Дополнительный блок реле KC868-E16

KC868-A64 относится ко второму типу, то есть если в вашем проекте требуется использование реле, то нужно будет дополнительно купить и подключить соответствующие блоки компании Kincony или аналогичные стороннего производителя.

Kincony KC868-A64


Плата Kincony KC868-A64 содержит множество установленных компонентов и подсистем, полный список которых я привожу ниже:

  • ESP32 (ESP-WROOM-32)
  • 64 цифровых опторазвязанных входов («сухой контакт»)
  • 2 аналоговых входа 0–5 В
  • 2 аналоговых входа 4–20 мА
  • 64 MOSFET выходов 12/24 В для управления реле и прочим оборудованием
  • 64 светодиода состояний выходов
  • Возможность подключения нескольких блоков KC868-E16 или аналогичных
  • Интерфейс RS485
  • Два отдельных I2C разъёма
  • Отдельный Serial разъём
  • Ethernet LAN8270A
  • Разъём USB для программирования и заливки прошивок
  • Кнопки «Reset» и «Download»
  • Питание от 12/24 В постоянного тока

Установлено много чего, если всё это суммировать и выделить основные и значимые для построения проектов подсистемы, то получится:

  • Управляющий микроконтроллер ESP32 со всеми его возможностями
  • 64 цифровых входов
  • 4 аналоговых входа
  • 64 MOSFET выходов
  • Интерфейс RS485
  • Ethernet LAN8270A

Другими словами, работаем по беспроводному Wi-Fi и проводному Ethernet, получаем данные с 64-х входов (+ 4 аналоговых), управляем 64-я MOSFET выходами и обмениваемся данными по интерфейсу RS485.

Плюс можем задействовать дополнительное оборудование, подключаемое по I2C и Serial интерфейсам. А это дополнительное оборудование может быть очень разнообразным и значительно расширять базовый функционал контроллера (например, дисплей, различные датчики, коммуникационные модули и т. п.).

В итоге получается, что на базе KC868-A64 можно построить довольно развитую IoT систему, главной «фишкой» которой будет возможность получения данных с 64-х цифровых входов и управление 64-я MOSFET выходами.


KC868-A64 в собранном виде, готовый для установки на DIN-рейку


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


Из-за своих огромных размеров KC868-A64 не поместится ни в один стандартный корпус, поэтому он комплектуется специальным нарезным профилем для установки и крепления на DIN-рейку. Всё разбирается и разбирается довольно просто — достаточно раскрутить несколько шурупов по краям этого профиля.



Фото профиля и боковых заглушек отдельно. Сам контроллер вставляется в профиль сбоку и далее просто фиксируется боковыми ограничителями.



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



Плата контроллера KC868-A64 отдельно. Видны специальные отверстия для крепления на любую подходящую поверхность — контроллер не обязательно устанавливать именно на DIN-рейку.



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


Переходим к схемотехнике KC868-A64. Для начала вид платы сверху. Всё в лучших традициях Kincony и серии KC868. Постоянные читатели моего блога уже могут различить отдельные функциональные блоки контроллера.



Более подробный вид обратной стороны платы. Всё сделано аккуратно, но жидкость для отмывки флюса мне всё-таки понадобилась.



Питание


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



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



ESP32


Ядром (мозгом) контроллера Kincony KC868-A64 является всем нам хорошо знакомый модуль ESP32 (в модификации ESP-WROOM-32).



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



USB/CH340


Стандартная (для серии) реализация USB-UART подсистемы на микросхеме CH340C плюс брутальный вертикальный USB разъём. Здесь же присутствуют две кнопки — «RESET» и «DOWNLOAD».



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



Цифровые входы


64 цифровых оптоизолированных входа «сухой контакт» на оптронах EL357, распределённых на 8 колодок по 8 контактов. Для обеспечения их работы в связке с ESP32 в KC868-A64 применены расширители цифровых входов/выходов c I2C интерфейсом на 4-х микросхемах PCF8575TS.



Принципиальная схема подсистемы цифровых входов. Для наглядности на схеме показан только один из восьми блоков опотронов (остальные полностью ему аналогичны).



Аналоговые входы


Плата KC868-A64 имеет 2 аналоговых входа для сигналов 0–5 B и два входа для сигналов 4-20 мА. Формирование напряжения производят входные каскады, счетверённый операционный усилитель LM324 и диоды Шоттки BAT54S.

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



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



MOSFET выходы


Самая большая подсистема контроллера KC868-A64, взаимодействие которой с микроконтроллером ESP32 осуществляется при помощи 4-х расширителей цифровых входов/выходов c I2C интерфейсом PCF8575TS. Далее управляющие сигналы поступают на оптопары TLP181, которые в свою очередь управляют 64-я мосфетами NCE60P10K.

Здесь же присутствуют индикаторные светодиоды, по свечению которых можно определить текущее состояние выходов контроллера KC868-A64.



Принципиальная схема подсистемы MOSFET выходов. Для наглядности на схеме показан только один из восьми MOSFET блоков (остальные полностью ему аналогичны).



Ethernet


Ethernet интерфейс, значение которого трудно переоценить. Выполнен на стандартном для ESP32 чипе LAN8270A и по типовой схеме. Видимо чтобы не отставать от USB подсистемы, здесь тоже применён брутальный вертикальный Ethernet разъём.



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



RS485


Работа подсистемы RS485 обеспечивается драйвером интерфейса MAX13487EESA, буфером 74LVC1G125 и соответствующими элементами обвязки.



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



Разъёмы I2C


Два очень полезных для подключения различных дополнительных компонентов разъёма I2C. К ним можно подключить, например, дисплей, дополнительные сенсоры и прочие элементы.



Принципиальная схема подсистемы (разъёмов) I2C:



Serial разъём


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



Принципиальная схема подсистемы (разъёма) Serial:



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


Немного доработанная оригинальная схема разъёмов и внешних подключений контроллера KC868-A64 от производителя.



Проекты на KC868-A64


В завершение приведу имеющуюся в моём распоряжении схему тестового проекта на KC868-A16. Электрические подключения контроллеров A16 и A64 аналогичны и этот пример можно использовать для KC868-A64. На этой схеме хорошо видны все паттерны подключений различного оборудования — как запитывается сам контроллер, как к нему подключается блок реле, как управляются исполнительные устройства и т. д.



Распиновка


Распиновка KC868-A64. Всё, что может предоставить нам ESP32 по GPIO. Вообще, на мой взгляд, катастрофически малое количество GPIO — это самый большой (и обидный) недостаток ESP32.



Заключение


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

Комментарии (18)


  1. 13werwolf13
    20.09.2022 12:15
    +1

    у меня есть стойкое ощущение что эту статью слово в слово но от другого автора я уже читал на хабре n месяцев назад..


    1. smart_alex Автор
      20.09.2022 12:38

      Зайдите в мой блог - там куча статей по различным контроллерам.


  1. electron_gr
    20.09.2022 13:30

    Приветствую, автор.

    А пробовали вы загружать в нее прошивку TASMOTA и управлять по MQTT и есть ли примеры кода для чтения/записи в порты?


    1. smart_alex Автор
      20.09.2022 13:34

      Для ESP32 существует множество доступных (платных и бесплатных) прошивок на любой вкус, лично мне они неинтересны, поскольку я сам для своих проектов создаю прошивки. Поэтому по TASMOTA не могу сказать ничего содержательного.


      1. electron_gr
        20.09.2022 13:38

        Хорошо, а как происходит адресация выбора порта, есть примеры кода?


        1. smart_alex Автор
          20.09.2022 13:42

          Не совсем понял ваш вопрос. Для создания прошивок я использую Arduino, там всё просто - подключаете соответствующую библиотеку и используете её функции - всё прекрасно работает.


          1. electron_gr
            20.09.2022 13:43

            Есть ссылочка что бы не мучать тебя? )


            1. smart_alex Автор
              20.09.2022 13:46

              Ссылочка на MQTT клиента? :) Просто вбиваете в поисковике "arduino mqtt client lib".


              1. electron_gr
                20.09.2022 13:48

                Интересует пример доступа ко всем 64 портам ввода и 64 портам вывода.


                1. smart_alex Автор
                  20.09.2022 13:54

                  Так это вообще общий вопрос программирования. Посмотрите в моём блоге статьи по программированю контроллеров A4 и A8 или посмотрите примеры на форуме произволителя.


                  1. electron_gr
                    20.09.2022 14:02

                    Алекс, спасибо за много букв. Хорошего дня.


                    1. smart_alex Автор
                      20.09.2022 14:10

                      Всегда рад помочь, возможно я даже напишу отдельную статью по программированию A64 - мне это сделать нетрудно, вопрос только в интересе аудитории Хабра.


    1. beho1der
      20.09.2022 16:13

      можно попробовать загрузить https://wifi-iot.com/ там ethernet и расширители поддерживаются


  1. SlavaS80
    22.09.2022 09:26

    Интересная платка. А на каком из промышленных языков программирования (ST, LD, FBD, SFC, IL) её можно запрограммировать?


    1. smart_alex Автор
      22.09.2022 09:31

      Там "голый" ESP32, его можно программировать как угодно, я это делаю в среде Arduino.

      По поводу промышленных языков не подскажу - никогда этим не занимался.


      1. SlavaS80
        22.09.2022 14:39

        Тогда - как его можно использовать где - нибудь серьезнее освещения и полива теплицы?

        Без сертификации среды исполнения, гарантии производителя? Вы понимаете, что любой вменяемый системный интегратор не допустит в промышленность такое устройство?

        И ещё вопрос - Arduino подобная среда - это конечно интересно программистам поиграться, а как быть инженерам-электрикам, которым подавай релейную логику, на крайний случай они понимают CFC - расширенную версию FBD.

        Надеюсь, что эта железяка поддерживает хотя-бы FlowCode. Иначе это вообще не для промышленности.


        1. smart_alex Автор
          22.09.2022 15:10

          Тогда - как его можно использовать где - нибудь серьезнее освещения и полива теплицы?

          Так именно в этом смысл — вы не представляете себе какому количеству людей (миллионам) нужно решать свои простые практические задачи — автоматизировать теплицы и курятники, следить за расходом электричества и т. д. и т. п. Подобных задач огромное количество.

          Здесь речь не идёт об управлении атомными электростанциями и ответственным оборудованием.


          1. SlavaS80
            22.09.2022 17:21

            Тогда зачем 64 канала дискретного ввода-вывода? IMHO это реально излишне. При условии отсутствия возможности адекватной отладки технологического процесса. Без возможности визуального программирования.

            Я сам неплохо знаю Си. Знаю Ассемблер для PIC16/18, а также AVR, MSP430, X51, x86 (игрался лет 15 назад с реальным режимом).

            И прекрасно понимаю, что такое срыв стека или баг в библиотеке, особенно без возможности подключения нормального отладчика и средств профилирования кода.