И вот мы, наконец, добрались до вершины технического творчества компании Kincony — её флагманского контроллера 868-й серии KC868-Server. Когда я первый раз увидел этот контроллер, у меня просто не было слов — кажется, это воплощённая мечта любого «автоматизатора» и гика — чего там только нет: ESP32, Raspberry Pi и ARM Cortex M3 в одном флаконе и всё это снабжено кучей периферии, разъёмов, антенн и т. д.

Подобная платформа может стать основой для разработки любого, даже самого изощрённого проекта по автоматизации — такой концентрации возможностей на одной плате я просто не встречал ранее, одних только модулей Wi-Fi на KC868-Server 3 штуки, 2 проводных Ethernet, 2 MCU и плюс полноценный Linux-компьютер — как говорил один известный персонаж «да это просто праздник какой-то».

Я бы сказал, что Kincony KC868-Server — это не контроллер, а просто атомная бомба и, конечно, мы не сможем отказать себе в удовольствии поближе с ним познакомиться, разобрать его устройство и, возможно, даже «запилить» на нём несколько умопомрачительных IoT проектов.

Итак, начнём…

Гибридизация контроллеров


Начну издалека… При разработке DIY проектов по автоматизации часто встречаются ситуации, когда возможностей одного отдельно взятого контроллера уже не хватает. Хорошим примером тут могут служить популярные модули ESP8266 и ESP32 — у них катастрофически не хватает свободных GPIO выводов. Для обхода этого ограничения приходится либо «колхозить» различные расширители портов, либо использовать в связке с ESP32 «партнёрский» контроллер, например, Mega 2560.

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

Если сравнивать варианты использования расширителей портов или партнёрского MCU, то второй вариант мне ближе — мы получаем не только возможность использовать дополнительные GPIO, но и «бесплатно» получаем все возможности дополнительного контроллера.

В общем, в своих проектах я часто использую гибридные DIY контроллеры и Kincony KC868-Server отлично вписывается в эту концепцию — в нём на одной плате соседствуют 3 разных контроллера: ESP32, Raspberry Pi и ARM Cortex M3, причём все эти части связаны коммуникациями и могут взаимодействовать друг с другом.

Тут уместно будет вспомнить ещё одно «заумное» слово — синергия. 3 контроллера на одной плате — это не просто 3 контроллера, эта связка обладает синергетическим эффектом и не просто складывает возможности отдельных частей, а значительно их приумножает. Не будет преувеличением сказать, что KC868-Server позволит реализовать почти любой ваш IoT каприз.

Внешний вид


Внешний вид Kincony KC868-Server вызывает уважение — металлический корпус, приличные размеры и вес, 8 (!) отверстий для установки антенн, огромное количество разъёмов — всё говорит о том, что мы имеем дело с серьёзным устройством.



Вид с обратной стороны контроллера. Видна линейка разъёмов и только один разъём для подключения антенны — всего в моей конфигурации задействовано 4 антенны. С обратной стороны KC868-Server выглядит так же внушительно, как и с передней.



Фото для сравнения размеров Kincony KC868-Server со своим младшим братом KC868-A4. Кстати, Server как раз и предназначен (в первую очередь) для управления многочисленными контроллерами семейства KC868.


Для сравнения Server рядом с «младшим братом» A4

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



Вид металлических панелей корпуса отдельно. Всё разбирается очень просто, без каких-либо проблем. На основании видны крепления на DIN-рейку.



И, наконец, фото отдельной платы KC868-Server, извлечённой из корпуса. Видны 3 Wi-Fi антенны и одна антенна модуля приёмника 433 МГц (модуль передатчика 433 МГц почему-то совсем не запаян).



Составные части KC868-Server


Теперь поговорим об устройстве KC868-Server и его составных частях. Начнём с формального перечисления ресурсов каждой части KC868-Server. Условно контроллер можно разделить на 3 составляющие:

  • ESP32 контроллер
  • Raspberry Pi (CM4) Linux-миникомпьютер
  • ARM Cortex M3 контроллер



▍ ESP32 контроллер


Как понятно из названия, эта часть основана на ESP32 и имеет все присущие ему возможности — Wi-Fi, Bluetooth, 2 ядра MCU и т. д., кроме этого, ESP32 часть имеет:

  • Инфракрасные (IR) приёмник и передатчик
  • 433 МГц приёмник и передатчик
  • Вывод на колодку 4 GPIO
  • Вывод на разъём 2 GPIO
  • USB разъём Type-C
  • 2 кнопки Reset и User
  • Встроенную связь по Serial с частью ARM Cortex M3

Другими словами, ESP32 часть может осуществлять беспроводную связь по Wi-Fi и/или Bluetooth, иметь собственный сервер и веб-интерфейс, управлять оборудованием по IR и обмениваться информацией с 433 МГц устройствами, а также может взаимодействовать с датчиками и прочими компонентами при помощи подключения к свободным GPIO, выведенным на колодку и разъёмы на плате.

▍ Raspberry Pi (CM4) Linux-миникомпьютер


Вторая часть KC868-Server содержит модуль Raspberry Pi Compute Module 4 (CM4) и его соответствующую обвязку и расширения на самой плате KC868-Server. Это полноценный Linux-миникомпьютер со всеми возможностями, характерными для подобных систем:

  • Pi CM4 (Wi-Fi, Bluetooth)
  • Картридер для microSD
  • HDMI выход
  • Порт RS485
  • Разъём с 26 GPIO
  • Разъём USB Type-C
  • 4 USB 2.0 (и возможность подключения к ним любых USB-донглов)
  • Ethernet разъём
  • Возможность загрузки с SD или USB C

Тут мы имеем (на борту!) не что иное, как целый Raspberry Pi 4 Model B, дополненный возможностью работы с RS485 интерфейсом. Соответственно, мы имеем в своём распоряжении все возможности RPi 4 (почти безграничные в контексте IoT применения), плюс возможность подключения к системе любых USB-донглов, например, контроллера беспроводной сети Zigbee и т. п. устройств.

▍ ARM Cortex M3 контроллер


В принципе, двух первых частей более чем достаточно для создания мощного IoT контроллера, но компании Kincony этого показалось мало и она добавила на плату ARM Cortex M3 с кучей периферии подключённых компонентов:

  • GigaDevice GD32F103VCT6 (108 МГц, 48 кБ SRAM, 256 кБ Flash)
  • 16 Dry Contact + 8 Digital Input
  • Аналоговые входы: 2 (0-5 В) + 2 (4-40 мА)
  • 16 MOSFET выходов
  • Интерфейс RS232
  • Интерфейс RS485
  • Модуль Wi-Fi (HF-LPT230)
  • Ethernet (W5500)
  • Память AT24C02 (2 кб)
  • Разъём 3.3, INT, SDA2, SCL2, AGND
  • Разъём 3.3, RST, CLK, DIO, GND
  • Кнопки: Wi-Fi Mode, Ethernet Mode, Wi-Fi Reset

ARM часть выполнена на «приличном» аналоге популярного STM микроконтроллера — GigaDevice GD32F103VCT6, тут мы видим цифровые и аналоговые входы, MOSFET выходы, проводные и беспроводные интерфейсы и т. д., то есть полный джентльменский набор возможностей современного IoT контроллера.

Сказать, что у компании Kincony получился мощный контроллер — это ничего не сказать. У компании Kincony получился просто галактический IoT крейсер в корпусе KC868-Server.

Роль KC868-Server




Само название KC868-Server прямо говорит о предназначении этого контроллера — быть сервером вашего IoT решения и у него есть для этого все возможности и ресурсы. Тут скорее даже трудно представить задачу, которую не смог бы решить этот контроллер.

В базовом варианте KC868-Server предназначен для управления «родственными» контроллерами серии KC868, графически это можно представить в виде следующей иллюстрации.


«Звезда смерти» KC868-Server

Но это не догма и KC868-Server может управлять любым другим набором IoT устройств, а также работать самостоятельно, в единственном числе (если этого требует ваш конкретный проект).

Кроме того, в рекламных проспектах Kincony мелькает упоминание о некоем «Kincony Cloud», так что при желании часть функционала вашего проекта можно завязать на облако производителя контроллера.

Внутренние коммуникации


Теперь разберём ещё один важный момент для понимания концепции работы KC868-Server. Речь идёт о межсистемных коммуникациях внутри самого контроллера между его ESP32, Raspberry Pi и ARM Cortex M3 частями.

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

В базовом варианте компанией Kincony предполагается 2 вида межсистемного взаимодействия:

1. Коммуникация ESP32 — ARM при помощи Serial соединения. Этот тип связи реализован на плате в виде дорожек, соединяющих соответствующие GPIO обеих частей контроллера.



2. Коммуникация Pi CM4 — ARM при помощи RS485 интерфейса. Этот тип связи предполагается реализовывать в виде отдельных внешних соединений.



Тут нужно понимать, что нам доступна как сама плата KC868-Server, так и свободные GPIO её различных частей (контроллеров), поэтому мы можем не ограничиваться стандартными, предусмотренными компанией Kincony, межсистемными соединениями, а организовать любые свои (на что хватит фантазии и квалификации).

Кстати, хорошим примером для тренировки может послужить соединение ESP32 и RPi CM4 частей KC868-Server, которое не предусмотрено в базовом варианте от производителя.

Плата KC868-Server


Вид сверху на плату KC868-Server и установленные на ней компоненты. Что мне нравится в изделиях компании Kincony — это аккуратность в их проектировании и изготовлении — всё сделано аккуратно и, что самое главное, всё это работает так, как и заявлялось производителем.



Вид платы с обратной стороны платы. Это первый контроллер из серии KC868, у которого задействована обратная сторона платы для установки электронных компонентов (не считая «мелких» контроллеров Uair и AG). В основном все эти компоненты относятся к ARM части контроллера.



Ложка дёгтя в бочке мёда


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

Компания Kincony по какой-то причине решила оставить открытыми ESP32 и Pi CM4 части контроллера и закрыть (схемотехнику и прошивку) ARM части (тут немая сцена). На мой прямой вопрос «зачем?!» в компании ответили «потому, что программирование ARM части слишком сложное».

С моей точки зрения, это концептуальная ошибка — контроллер для DIY рынка должен быть полностью открыт. Мотивировка тоже более чем сомнительная — что значит «слишком сложное»? Для кого «слишком сложное»? Хорошо, для тех, кому это «слишком сложно», можно оставить возможность пользоваться готовой ARM прошивкой, но зачем нужно закрывать часть контроллера для всех остальных?

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

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


Поскольку размер статьи не резиновый, да и материала для осмысления очень много, поэтому далее я разберу схемотехнику ESP32 части контроллера KC868-Server, а разбор Pi CM4 и ARM Cortex M3 частей оставлю для следующих статей.


ESP32 часть контроллера KC868-Server

▍ Питание


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

В KC868-Server подсистема питания ESP32 части получает входное напряжение от общей вводной колодки, от которой питаются и две других (ARM и CM4) части контроллера. На фото выше виден этот разъём с маркировкой GND/12V.

Для того чтобы «просто» запитать контроллер, производителем рекомендуется блок питания 12В/2,5А, а для обеспечения работы контроллера вместе с дополнительным блоком управляющих реле — 12В/4,5А.



▍ Ядро ESP32 части


В Kincony KC868-Server установлен модуль ESP32 в модификации ESP-WROOM-32. На плате присутствует разъём P24 с выведенными в него GPIO14 и GPIO27. Не совсем понятно его предназначение, но в любом случае, мы можем его использовать для своих нужд.

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



▍ USB/CH340


В подсистеме подключения к компьютеру и программирования ESP32 части KC868-Server используется USB разъём Type-C. Работа этого блока обеспечивается микросхемой CH340C. Здесь же присутствуют две кнопки S4 (RESET) и S5 (USER).



▍ Свободные GPIO


На контактную колодку выведены 4 GPIO c ESP32 части контроллера KC868-Server. Все эти контакты могут использоваться по вашему желанию (для подключения сенсоров или других компонентов), нужно только помнить, что на плате они уже подтянуты к напряжению 3 В.



▍ IR


Плата Kincony KC868-Server оснащена инфракрасными приёмником и излучателем. В качестве IR приёмника используется датчик VS1838B, установленный на плате, а для подключения IR излучающего диода предусмотрен специальный разъём (P15).



▍ 433 МГц


Плата KC868-Server предусматривает установку беспроводных модулей приёмника и передатчика на 433 МГц. В моём варианте почему-то присутствует только приёмник 433 МГц, а передатчик вообще не запаян. Зато приёмник прямо «из коробки» снабжён полноценной выносной антенной.

Для формирования и подачи на контроллер входного сигнала с приёмника используется буферный элемент 74LVC1G125, а выходной сигнал на передатчик подаётся напрямую.



▍ Интерфейс с ARM


Связь ESP32 с ARM частью KC868-Server осуществляется при помощи Serial соединения U2T/U2R (GPIO16 и GPIO17). Здесь ничего дополнительно делать не нужно — соединение между ESP32 и ARM уже проложено на плате в виде дорожек.



Распиновка ESP32 части


И в заключение рассмотрения схемотехники ESP32 части контроллера KC868-Server я привожу таблицу распиновки модуля ESP32 и всех компонентов и оборудования, подключённых к нему.



Тут видно, что не используется куча свободных GPIO. Я бы вывел их в отдельный разъём на плате — лишних GPIO в нашем деле не бывает и их всегда можно было бы использовать в своих проектах.

Чего мне не хватает в KC868-Server


Да, я умудрился найти недостатки даже в таком торте, как KC868-Server. Лично мне хотелось бы видеть в нём несколько вещей, хотя по большому счёту, все мои претензии можно назвать придирками.

  1. Компания Kincony по какой-то причине игнорирует наличие RTC (часов реального времени) в своих контроллерах. Я могу только предположить, что разработчики Kincony — это хорошие электронщики, но они ни разу не делали реальных проектов на своих контроллерах, — иначе они обязательно добавили бы RTC, тем более в такой флагманский контроллер, как KC868-Server. С другой стороны, самостоятельно «подцепить» модуль RTC к KC868-Server не составляет никаких проблем.
  2. Точно та же ситуация с Watchdog. Похоже разработчики, о существовании хардверных Watchdog-ов — узнали только от меня (шутка). Но и здесь подключить отдельный модуль Watchdog к KC868-Server не составляет особой проблемы. Или можно изобрести квази-Watchdog, используя они части (встроенные контроллеры) KC868-Server для слежения за работоспособностью других.
  3. Было бы вообще роскошно, если бы разработчики в базовом варианте предусмотрели какой-нибудь дисплей и несколько кнопок на передней панели (верхней крышке) KC868-Server, чтобы не колхозить всё это самому.
  4. Ещё можно было бы вывести отдельные разъёмы SPI и I2C и добавить возможность подключения nRF24 и/или LoRa модулей. Но и это всё можно сделать самостоятельно, немного поизучав схему и поработав паяльником.

Заключение


На этом я заканчиваю первую часть рассмотрения воистину грандиозного IoT контроллера Kincony KC868-Server и прощаюсь с вами до следующей статьи. Во второй статье этого цикла мы познакомимся с устройством и схемотехникой RPi CM4 части контроллера и ужаснёмся той мощи и возможностям, которые скрыты под металлической крышкой KC868-Server.

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


  1. usego
    13.06.2022 12:23
    +3

    eMMC бы ещё вместо всех этих флешек...


    1. smart_alex Автор
      13.06.2022 12:39

      Я пока не разбирался с этим вопросом, но в официальной документации на KC868-Server упоминается eMMC.


    1. smart_alex Автор
      14.06.2022 08:43
      +1

      Официальный ответ от производителя (думаю перевод не требуется):

      There is 8G eMMC on the Pi inside. on the board already, If want to use, use USB cable connect type-c USB of Pi to your computer. Set the jumper to "right", so that computer will have a removable disk. Then you can install software. Before use eMMC, need install USB driver of computer.

      То есть eMMC присутствует на плате, размер — 8G.


  1. smart_pic
    13.06.2022 13:28
    +1

    Температурный диапазон работы. От минус 30 до плюс 60 градусов будет работать?

    Или только комнатный вариант?

    Это реальный диапазон Т для Нижнего Новгорода при работе устройства в установленном на улице шкафу.


    1. smart_alex Автор
      13.06.2022 13:36

      Задал вопрос производителю - как только получу официальный ответ - отпишусь здесь.


    1. DanilinS
      13.06.2022 16:23
      +1

      Производитель пишет:

      Рабочая температура: -20...+70 С

      Влажность: 20%RH...80%RH

      В Нижнем в шкафу с утеплением фольгированной теплоизоляцией и подогревателем будет норм.


    1. PTM
      14.06.2022 13:25
      +1

      по хорошему(если это не для себя), то оборудование в шкафу на улице в россии должно удовлетворять УХЛ1 (-60...+40) за редким исключением...


      1. hw_store
        15.06.2022 13:27

        По хорошему, оборудование, которое содержит тепловыделяющие электронные компоненты, само по себе греется (тем более что разработчики стараются скомпоновать изделия покомпактнее). Поэтому в сторону минуса ему нужен, скорее, аппаратный контроллер холодного старта. Ибо большинство компонентов с высокой степенью интеграции рассчитаны на 0...+70С. А вот в сторону плюса - в любом шкафу без климат-контроля летом запросто может быть и 45, и 50, особенно если забыли поставить козырёк от солнца, благодаря чему многие компоненты на плате могут приблизиться к предельно допустимой температуре. Впрочем, интеловская мат.плата (с охлаждением процессора на корпус) проработала на крыше в герметичном ящике полтора года, и ничего. Как раз в 2010-м, жарком году.


    1. nckcpr
      15.06.2022 09:21

      На сайте производителя есть вся информация – https://www.kincony.com/home-automation-local-server.html


  1. edo1h
    13.06.2022 14:16
    +12

    Когда я первый раз увидел этот контроллер, у меня просто не было слов — кажется, это воплощённая мечта любого «автоматизатора» и гика — чего там только нет: ESP32, Raspberry Pi и ARM Cortex M4 в одном флаконе…
    … одних только модулей Wi-Fi на KC868-Server 3 штуки

    по мне это не мечта, а трэш какой-то.
    если esp и arm ещё как-то можно объяснить (на arm будет крутиться линукс, у которого с рилтаймовстью не очень хорошо; плюс у esp может быть больше интерфейсов), то наличие двух arm и трёх wifi вызывает полное непонимание.


    1. smart_alex Автор
      13.06.2022 14:41
      +1

      Там много чего вызывает вопросы - со всем этим я и собираюсь разобраться в ближайших статьях - сначала с CM4, затем с ARM частью.


      1. DanilinS
        13.06.2022 16:42
        +1

        Поддерживаю. Выглядит как минимум странно. Странная комбинация вычислительных модулей и интерфейсов.


        1. smart_alex Автор
          13.06.2022 17:04

          По моим наблюдениям, компания Kincony делает свои контроллеры исходя из своего внутреннего понимания этой проблематики - нам не всегда понятны её решения и я, например, многое сделал бы иначе.

          Тут ещё важно понимать, что функционально это Server и все, что там наворочено - это не "обязанности", а "возможности", которые можно задействовать (или не задействовать) в соответствии с вашим конкретным проектом.


  1. GreyPhantom
    13.06.2022 16:29
    +17

    А где фонарик?


    1. smart_alex Автор
      13.06.2022 18:00
      +1

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


  1. agalakhov
    13.06.2022 17:03
    +3

    GD32F103 — не Cortex M4, а Cortex M3.


    1. smart_alex Автор
      13.06.2022 17:20

      Спасибо, поправил.


  1. DrPass
    13.06.2022 17:36
    +5

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


    1. smart_alex Автор
      13.06.2022 17:55

      Да, «напихали» много чего и не всегда логично, с нашей точки зрения, но какие проблемы с применением? На мой взгляд, как главный сервер, например, «умного дома» или «умного чего угодно» — более чем.


      1. DrPass
        13.06.2022 18:05
        +1

        Я считаю, например, что строить архитектуру на нескольких типах контроллеров, совершенно разных, само по себе неправильно. Повесить на DIN-рейку какой-то из них для красоты… ну, можно. Но зачем? И ладно бы здесь была какая-то синергия от этих устройств. Но нет, никаких средств для их интеграции нет в принципе, это три совершенно независимых девайса в одном корпусе, каждый — со своей обвязкой, и все дублируют функции друг друга. В общем, это тот вариант избыточности, который не имеет практической пользы, кроме как в режиме девборды.


        1. smart_alex Автор
          13.06.2022 18:44

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

          Вы когда-нибудь проектировали архитектуру сложных IoT систем? С сотнями распределённых сущностей, зависимостей, интерфейсов, протоколов передачи данных, шифрования и т. д.? — я думаю KC868-Server — это отличное решение для ядра любой «умной системы».

          (Это не значит, что KC868-Server идеально спроектирован — там есть куча всего, что можно переделать, изменить и улучшить.)


          1. DrPass
            13.06.2022 19:02

            любая «синергия» — это вопрос только нашей фантазии и нашей квалификации.

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

            Вы когда-нибудь проектировали архитектуру сложных IoT систем? С сотнями распределённых сущностей, зависимостей, интерфейсов, протоколов передачи данных, шифрования и т. д.?

            Ну что такое «сложная IoT» система? Если мы говорим про IoT, это в первую очередь автоматизация дома. А это значит, это освещение, отопление/климат, управление котлом, домофон/безопасность, ну и всякие мелочи по вкусу вроде электрокарнизов. Наворотить при желании можно что угодно, но я абсолютно искренне считаю, что если у вас там сотни распределённых сущностей, зависимостей, интерфейсов и протоколов передачи данных, то так делать не надо было. Подобная автоматизация делается не для использования её результатов конечным потребителем, а скорее для развлечения собственно, кхм, автоматизатора. Развлечения самим процессом разработки/реализации.


            1. smart_alex Автор
              13.06.2022 19:19
              +1

              Почему только «автоматизация дома»? Существуют ещё дачи, посёлки, склады, гаражные хозяйства, цеха, оранжереи, теплицы, курятники и т. д. и т. п., а также существует бесконечное число задач для IoT систем.


              1. DrPass
                13.06.2022 19:26

                Ну какая разница? Я автоматизацию дома привёл как самый сложный кейс для IoT, где у кондиционера один протокол, у сервоголов тёплого пола другой, а у кубика Сяоми третий. В теплице и курятнике вообще одного ESP32 хватит на всё про всё. И я не слишком ошибусь, если скажу, что какую бы реальную задачу IoT вы сейчас не сформулируете, ей такой трехголовый контроллер не понадобится :)


                1. smart_alex Автор
                  13.06.2022 19:35

                  Уважаемый DrPass, мне кажется, что наша дискуссия несколько зашла в тупик. Предлагаю на этом пока остановиться, тем более, что и ваше и моё мнение выражено достаточно ясно.


                1. TimsTims
                  14.06.2022 12:21
                  +2

                  Я автоматизацию дома привёл как самый сложный кейс для IoT

                  На каком-нибудь заводе с конвейерной линией автоматизация всё-же посложнее (и ответственней) , чем автоматизация дома.

                  ей такой трехголовый контроллер не понадобится

                  Ну блин, если такой штукой будет проще и быстрее всё автоматизировать, то почему нет? Кроме того, останется ещё и запас на будущие хотелки. Понятно, что эта штука - overkill , и не все функции такого монстра нужны, но и компьютеры покупают с запасом, а не чтобы тютелька-в-тютельку входило.

                  Плюс не всегда сразу заказчик может очень точно сказать, чего хочет на выходе, а если у тебя всё рассчитано до самого последнего датчика, то и расширяться будет проблематично. А такая штука будет хорошим твоим планом Б на случай если придётся добавлять новые очень разные устройства. Вместо ответа заказчику: "это невозможно", или "нужно всё переделывать" просто отвечаешь: "Подержи моё пиво"...


                  1. smart_alex Автор
                    14.06.2022 12:47
                    +1

                    Золотые слова.


                  1. DrPass
                    14.06.2022 15:13
                    +2

                    На каком-нибудь заводе с конвейерной линией автоматизация всё-же посложнее (и ответственней), чем автоматизация дома.

                    Я это прекрасно понимаю, но в принципе ничего подобного не упоминал просто потому, что этот контроллер никакого отношения к промышленной автоматизации не имеет. Это гаджет для гиков, а не промышленное устройство.
                    Ну блин, если такой штукой будет проще и быстрее всё автоматизировать, то почему нет?

                    Я абсолютно с вами согласен, что если проще и быстрее — то да. Это очевидно. Мои возражения были лишь про то, что я не могу придумать ни единой реальной задачи, которую было бы проще и быстрее автоматизировать таким странным Франкенштейном. Я даже спросил у автора статьи, может, он знает такие задачи. Но он тоже не знает. Т.е. мы имеем забавную навороченную хренотень, которая вроде бы интересная, но при этом куда и зачем её прикрутить, никто понятия не имеет. В моём понимании, малинка, ESP32 и контроллер на STM, не распаянные на одной плате, а в отдельных корпусах, обладают всеми преимуществами данного девайса, и в то же время обладают бесконечно большей гибкостью конфигурирования, нежели этот девайс.


                    1. osmanpasha
                      16.06.2022 05:49

                      Вот-вот, никто не будет ставить на завод эту вундер-ваффе, поставят ПЛК с Ethernet/wifi и будут уверены, что девайс пригоден для промышленных условий, сделан проверенным производителем, а также что произвольно взятый пусконаладчик/автоматизатор сумеет его запрограммировать и настроить через пару лет после покупки.


        1. semennikov
          14.06.2022 12:11

          Ну например это можно рассматривать как полный модуль для управления станком с ЧПУ, наша стойка включает стандартный комп + Cortex M3 а тут все в одном.


          1. NetBUG
            15.06.2022 16:49

            Про ARM-часть вопрос пока открытый (можно ли какой-нибудь Marlin будет завести без секса с переназначением всех аппаратных возможностей на несколько месяцев), а вот комп без какого-либо экрана выглядит очень грустно: придётся добавлять панель с собственным контроллером.

            На примере того же Marlin/smoothieware/GRBL это выглядит довольно грустно, serial-интерфейс тормозной и не годится для оперативного управления станком, включая внезапный Halt посреди операций по ручному перемещению (jog).


            1. semennikov
              16.06.2022 01:11

              Так у него же есть выход на монитор судя по описаниям KC868-Server для блока под linux или я чего то не понял? А при ручном перемещении/управлении вполне достаточно 0,1 сек, все равно человек реагирует не быстрее 0,3-0,5 сек


          1. osmanpasha
            16.06.2022 05:59

            Вот только из статьи следует, что Cortex M3 вам не дадут запрограммировать, а связь Rpi--cortex вам надо делать самому внешними компонентами(?!). Такое себе устройство, по-моему.

            Ещё вопрос, заведется ли ваш софт для станка на ARM.


  1. smart_pic
    13.06.2022 20:12
    +2

    Есть ли хоть один готовый из коробки вариант использования данного сервера?

    Например есть ИК управление. Есть реле , есть входы и т.д. Почему не сделали простое конфигурирование через веб интерфейс различных вариантов использования.

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

    Но так не выйдет . Потому что как ни крути, получается паровоз Ардуино , с одной максимум двумя функциями, так как начнутся конфликты внутренних ресурсов. А пилить придется много.

    Получилось что то непонятное: это и не ПЛК, и не контроллер для домашней автоматизации типа Crestron, и не контроллер имеющий сугубо практический функционал. А набор плат в одном корпусе , которые и так продаются по отдельности.


    1. smart_alex Автор
      13.06.2022 20:23
      +1

      Насколько я понял, производитель сделал следующее: он закрыл схемотехнику ARM части и сделал готовую закрытую прошивку, которой комплектуется контроллер. ESP32 и CM4 части он сделал открытыми в плане схемотехники, а программирование этих частей оставил на откуп пользователя.

      На мой взгляд это странное решение наполовину открыть контроллер, а наполовину — закрыть. Я специально их об этом спросил — их ответ есть в статье.

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


  1. Dark_Purple
    14.06.2022 08:20
    +3

    Трешь, угар, содомия.


    1. smart_alex Автор
      14.06.2022 08:25
      +6

      «Треш» пишется без мягкого знака. Остальные слова написаны без ошибок :)


      1. barbaris76
        14.06.2022 13:59
        +2

        Вероятно, в данном случае "трешь" - это глагол. В повелительном наклонении.


  1. NetBUG
    15.06.2022 16:50

    Важный для понимания апдейт: этот котопёс стоит порядка $350.

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


  1. osmanpasha
    16.06.2022 06:05

    Можете пояснить часть про RS485 на внешних компонентах? Rpi исходно никак не подключена к МК, хотя они разведены на одной плате, и если кто-то хочет использовать входы/выходы с Rpi (а судя по рисунку, собственные gpio rpi никуда не выведены), то должен вешать дополнительную лапшу между двумя чипами?


    1. smart_alex Автор
      16.06.2022 06:30

      По задумке производителя, нужно внешними проводами соединить разъёмы RS485 RPi и ARM частей.

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

      Я бы скорее соединил GPIO RPi и ARM внутри контроллера и организовал связь по какому-нибудь протоколу, возможно самописному.

      Но подробно я с этим пока не разбирался - нужно сначала провести эксперименты по вскрытию ARM части и написанию для неё собственной прошивки.


      1. osmanpasha
        16.06.2022 07:49

        Независимо от того, насколько это вменяемое решение, по-моему это пример архитектурного идиотизма. По-сути, у Rpi отобрали возможность удобного GPIO, так что по возможностям взаимодействия с железом она близка к обычному десктопу или ноутбуку - можно подключить МК внешними проводами (USB или в данном случае, rs485).


        1. smart_alex Автор
          16.06.2022 07:59

          Насколько я понял логику производителя:

          - функционально это Server и RPi там нужен для решения соответствующих «тяжёлых» задач типа поддержки SQL базы данных системы, обслуживания логики верхнего архитектурного уровня (тысяч) датчиков, предоставления развитого веб-интерфейса и т. д.

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