Сегодня мы немного отвлечёмся от исследования серьёзных контроллеров серии KC868 (KC868-A4, KC868-A8) и займёмся совершенно несерьёзным (на первый взгляд) контроллером Kincony KC868-Uair. KC868-Uair — это эдакая «неведома зверушка с лампочками», с которой непонятно что вообще нужно делать — то ли это погодная станция, то ли устройство инфракрасного (IR) управления бытовой аппаратурой, то ли хаб умного дома, то ли ещё что.

В результате разбора и хирургического исследования KC868-Uair с применением паяльника выяснилось, что это больше всего напоминает универсальную беспроводную (Wi-Fi, Bluetooth) базу для «лёгкой» домашней автоматизации с возможностью добавления поддержки nRF24, LoRa и прочих беспроводных интерфейсов, что делает устройство крайне интересным и потенциально весьма полезным в домашнем хозяйстве.

А симпатичный внешний вид, наличие полноцветной индикации событий, встроенной пьезоэлектрической пищалки, поддержки беспроводной связи 433 МГц, возможности подключения дисплея и наличие свободного места в корпусе для добавления собственных плат-расширений делает KC868-Uair устройством мимо которого мы, как креативные гики, никак не можем пройти.

Kincony KC868-Uair


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

  • Встроенный датчик температуры DS18B20.
  • Инфракрасные (IR) приёмник и передатчик.
  • Модули приёмника/передатчика 433 МГц.
  • Пьезокерамическая пищалка (Buzzer).
  • 2 блока (1/4 шт.) индикаторных светодиодов WS2812.
  • Разъём для подключения внешних I2C датчиков и IR светодиода.
  • Внутренний разъём с 12-ю свободными GPIO.
  • Mini-USB разъём для питания/связи с компьютером.

Как видно из представленного выше списка, KC868-Uair уже из коробки является довольно функциональным устройством и позволяет измерять температуру как в месте установки Uair, так и на расстоянии при помощи выносного датчика, управлять бытовой аппаратурой по IR каналу, получать данные и отправлять команды беспроводным устройствам 433 МГц, озвучивать происходящие события при помощи Buzzer-а, индицировать различные состояния системы при помощи двух (независимых) линеек полноцветных светодиодов WS2812, подключать к устройству выносные датчики и т. д. А если учесть, что всё это работает под управлением довольно мощного микроконтроллера ESP32 c Wi-Fi и Bluetooth на борту, то, очевидно, что тут «узким местом» будут не возможности устройства, а ваша фантазия и квалификация в программировании.

Но это ещё не всё, KC868-Uair имеет внутренний разъём с 12-ю свободными пинами ESP32 (наконец-то!) и 70% свободного места в корпусе, что позволяет оснастить вашу Smart-станцию (назовём её так) любыми нужными вам дополнительными компонентами. А поскольку список дополнительных компонентов, которые можно таким способом подключить к KC868-Uair, практически бесконечен, то практически бесконечны и ваши возможности по модернизации KC868-Uair.

Забегая немного вперёд, скажу, что немного поработав паяльником (а в некоторых случаях и без паяльника), можно получить доступ к пинам интерфейсов SPI и I2C на плате контроллера, что позволяет оснастить KC868-Uair дисплеем, беспроводными nRF24 или LoRa интерфейсами и создать поистине могучее IoT устройство в компактном и симпатичном корпусе KC868-Uair.

Веб-интерфейс


Отдельно хочется сказать о веб-интерфейсе. ESP32 это довольно мощный микроконтроллер, который позволяет обслуживать полноценный (в смысле использования «взрослых» HTML, CSS, Ajax, Websocket и т. д.) веб-интерфейс. Поэтому наша Smart-станция на KC868-Uair может обладать роскошным интерфейсом с десятками веб-страниц, интерактивным интерфейсом управления подключённым оборудованием и настройками, может выдавать красочную аналитику и графики и т. д.

То есть быть самодостаточным устройством, которому не нужны никакие управляющие Linux-компьютеры на Raspberry Pi и (во многих случаях) брокеры MQTT (сравните цену и энергопотребление ESP32 и Raspberry Pi). KC868-Uair может быть сам управляющим контроллером со своим user-friendly веб-интерфейсом.

NRF24 и LoRa


Теперь давайте представим: в лице KC868-Uair мы уже имеем довольно функциональное устройство само по себе, которое может ещё и получать данные и посылать команды беспроводным устройствам на 433 МГц (Уже неплохо). Но что будет, если мы добавим нашей Smart-станции возможность работы ещё и по nRF24 и/или LoRa? — возможности нашей станции возрастут в геометрической прогрессии и наше скромное на вид «гнездо кукушки» превратится просто в «кольцо всевластия» с десятками, если не сотнями, подключёнными беспроводными датчиками и актуаторами.

Круто? Мне кажется, что очень, особенно для такого скромного на вид устройства, как KC868-Uair.

Что и как нужно делать, чтобы оснастить KC868-Uair поддержкой беспроводной nRF24 и/или LoRa связи я расскажу в следующей статье, там же я дам подробные распиновки, инструкции по перепайке, ссылки на необходимые библиотеки, примеры кода и т. д.

Питание


Питание и связь с компьютером KC868-Uair осуществляется при помощи Mini-USB разъёма. Соответственно, это 5 вольт от любого качественного USB разъёма компьютера или мини-блока питания. На мой взгляд, это простое и удобное решение — подключить KC868-Uair не составляет никаких проблем. Правда, проблемы могут возникнуть, если вы захотите оснастить KC868-Uair каким-то «прожорливым» дополнительным оборудованием — но это специфический вопрос и мы здесь не будем на нём останавливаться.

Особый шарм этому решению придаёт возможность запитать KC868-Uair от любого пауэрбанка и включить вашу Smart-станцию прямо в поле. А что? Включили станцию от пауэрбанка и раскидали по «полю» десяток нужных вам датчиков — получили мобильный «умный дом».

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


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

Индикация сделана тоже грамотно и функционально — есть горизонтальная опоясывающая полоса (4 независимых полноцветных светодиода WS2812) и вертикальная полоса (1 светодиод WS2812) — эта комбинация позволяет наглядно (и красиво) отображать любые события в системе.

Ниже представлено фото KC868-Uair в сравнении с уже известным вам контроллером KC868-A8.



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

При необходимости в корпусе можно сделать дополнительные отверстия для лучшей циркуляции воздуха.



Правда, инженеры компании Kincony умудрились допустить косяк космических масштабов, сделав разъём для подключения внешних датчиков в виде стандартного Mini-USB разъёма, да ещё и расположив эти разъёмы рядом, да ещё и никак не промаркировав их — рано или поздно ошибка подключения с соответствующими последствиями гарантирована.

KC868-Uair задумался о чём-то своём

Подробнее о корпусе


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



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



Сама плата


Для начала, фото установленной внутри корпуса платы KC868-Uair. Это вид снизу, со снятой нижней крышкой и полоской световода для четырёх WS2812. Видны крепёжные штанги для шурупов, направляющие для крепления печатной платы и просветы для циркуляции воздуха внутри корпуса.



Ну и извлечённая из корпуса плата со стороны ESP32 и большей части установленных электронных компонентов.



И вид платы с обратной стороны, где установлены беспроводные модули 433 МГц, пищалка, датчик температуры, светодиод WS2812 и IR приёмник. Производитель любезно снабдил беспроводные модули антеннами.



Схемотехника платы Kincony KC868-Uair


Теперь переходим к разбору схемотехники платы Kincony KC868-Uair. Вид сверху и крупный план установленных компонентов.



Вид снизу. За антенной виден разъём со свободными для подключения контактами GPIO. Как вы видите, в изначальном состоянии пины разъёма не припаяны и, если вы хотите серьёзно работать с этим контроллером, вам придётся вспомнить свои навыки пайки и распаять их.

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

Пока я занимался пайкой, у меня возник вопрос: а зачем вообще запаивать этот модуль, когда вместо него можно впаять 3-контактный разъём и вставлять в него беспроводной модуль, когда он реально нужен? Я так и поступил и в теперь в моём распоряжении появился ещё один свободный GPIO.

Также можно и модуль приёмника 433 МГц вместо пайки посадить на 4-контактный разъём.



▍ Питание


Подсистема питания Kincony KC868-Uair экстремально проста, в ней используется только линейный регулятор LM117-3V3 с соответствующей обвязкой для формирования напряжения 3,3 В.



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



▍ Ядро ESP32


В качестве ядра контроллера Kincony KC868-Uair использован модуль ESP-WROOM-32, о котором мы уже говорили ранее. В состав этого функционального блока входят ещё 2 фильтрующих конденсатора, расположенных в непосредственной близости от ESP32.



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



▍ USB/CH340


Для подключения к компьютеру, программирования и заливки прошивок в ESP32 на плате присутствует Mini-USB разъём и микросхема USB/Serial преобразователя CH340C, а также соответствующая обвязка для автоматизации загрузки скетчей. Кнопки «RESET» и «USER» отсутствуют, но при необходимости их можно добавить (расчехлив паяльник).



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



▍ Датчик температуры


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



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



▍ Buzzer


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



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



▍ Инфракрасный приёмо/передатчик


Плата Kincony KC868-Uair оснащена инфракрасным приёмником и излучателем. В качестве IR приёмника используется датчик VS1838B с обвязкой. А в качестве излучателей применяются 4 излучающих IR диода.

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

Также на схеме видно, что есть выход для внешнего излучающего IR диода на соответствующем Mini-USB разъёме.



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



▍ Модули 433 МГц


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

Тут нужно сказать, что беспроводная связь на 433 МГц нужна далеко не всем и далеко не всегда, поэтому можно просто «посадить» эти модули на разъёмы (я об этом уже упоминал выше) и использовать освободившиеся GPIO для подключения нужного вам оборудования.



Принципиальная схема подсистемы подключения беспроводных модулей на 433 МГц:



▍ Индикаторы на WS2812


Как вы помните, Kincony KC868-Uair снабжён двумя индикаторными линейками на «умных» светодиодах WS2812. Расположение линеек и их устройство хорошо видно на представленных ниже иллюстрациях. На одной стороне платы расположены 4 «опоясывающих» светодиода, а на другой — 1 для подсветки вертикальной полосы.

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



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



▍ Интерфейсы


У Kincony KC868-Uair интерфейс I2C выведен на внешний Mini-USB разъём, но при желании можно немного поработать паяльником и получить к нему доступ внутри контроллера.

Также на фото и принципиальной схеме видна распиновка разъёма с 12-ю свободными GPIO, «землёй» и напряжением 3,3 В к которому вы можете подключать своё дополнительное оборудование и компоненты.



Принципиальная схема разъёмов:



Заключение


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

А в следующей статье мы разберёмся с подключением к KC868-Uair модулей беспроводной nRF24/LoRa связи и научимся их программировать — и тогда в нашем уютном гнезде поселится IoT кукушка.

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


  1. DanilinS
    14.03.2022 12:38

    рано или поздно ошибка подключения с соответствующими последствиями гарантирована.

    Если цепи питания грамотно реализованы - последствий быть не должно.


    1. iig
      14.03.2022 12:53

      Было бы очень интересно услышать ответ на вопрос: ЗАЧЕМ????

      Скорее всего, дядюшка Ляо нашел пыльную коробку с неподписанными разьемами, и решил что это что-то неиспользуемое ;)


    1. smart_alex Автор
      14.03.2022 12:54
      +1

      Даже если с подключением там всё в порядке (я пока не проверял), то очень неудобно смотреть на одинаковые разъёмы и вспоминать где там USB, а где подключение датчиков. Вообще одинаковые разъёмы с разным функционалом — это моветон, так никто никогда не делает. Если бы они как-то подписали эти разъёмы, то было бы ещё более-менее приемлемо...


    1. GDI
      16.03.2022 22:20

      Там первая нога разъема подключена на 3,3В, так что, если туда воткнуть кабель USB, то на шину 3,3в будет подано 5В. Если разъем не используется для подключения внешних устройств, то лучше его закрыть какой то заглушкой или заклеить, чтобы случайно не воткнуть туда USB. А если датчики подключены на постоянку, то разъем всегда будет занят и проблемы при обычном использовании не будет. Проблема есть только если датчики I2C подключаются периодически, либо при каких то регламентных работах, когда производятся переподключения. Но отсутствие маркировки - это несомненно косяк производителя.


  1. RTFM13
    15.03.2022 03:55

    отдельный «вертикальный» светодиод работает некорректно — у него перепутана распайка красного и зелёного канала

    Где? Внутри корпуса светодиода?

    Может, это всё же глюк софта?


    1. smart_alex Автор
      15.03.2022 07:35

      Где? Внутри корпуса светодиода?

      Почему внутри? Скорее всего перепутаны дорожки при разводке платы.

      Может, это всё же глюк софта?

      Ну, я не знаю, судите сами: один и тот же код работает корректно для горизонтальной линейки и некорректно для вертикальной — явно проблема с подключением диода. А в софте, да, это скорее всего можно исправить.


      1. RTFM13
        15.03.2022 13:59

        Скорее всего перепутаны дорожки при разводке платы.

        Вы можете показать на схеме эти дорожки?

        Кстати, что там за прошивка по умолчанию идёт?


        1. smart_alex Автор
          15.03.2022 16:02

          На оба вопроса ответил ниже.


    1. smart_alex Автор
      15.03.2022 08:20

      Ещё немного подумал — скорее всего там дело не в разводке дорожек, а в том, что не совпадает тип «горизонтальных» и «вертикальных» диодов (их внутренняя организация). И это (по идее) должно задаваться в настройках софта.


  1. Boris_92
    15.03.2022 11:54

    Есть ли возможность обновить прошивку на данном устройстве? Если да, то поддерживается ли обновение через Bluetooth?


    1. smart_alex Автор
      15.03.2022 16:01

      Там просто ESP32, соответственно прошить можно что угодно. С завода KC868-Uair идёт вообще без прошивки — там залит тестовый скетч. По поводу Bluetooth не знаю — никогда не заморачивался прошивкой через Bluetooth.


  1. RTFM13
    15.03.2022 14:02

    Через блютус не знаю, а через USB прошивается одной кнопкой. Далее всё зависит от прошивки.

    Тасмота прошивается прям из хрома с их сайта.