KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо

в 9:00, , рубрики: arduino, diy или сделай сам, esp32, IoT, KC868-Uair, Kincony, ruvds_статьи, smart home, автоматизация, Блог компании RUVDS.com, Интернет вещей, микроконтроллеры, Программирование, программирование микроконтроллеров, Разработка для интернета вещей, Разработка под Arduino
KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 1

Сегодня мы немного отвлечёмся от исследования серьёзных контроллеров серии 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.

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 2

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 3

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 4KC868-Uair задумался о чём-то своём

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 5

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 6

Сама плата

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 7

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 8

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 9

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 10

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

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

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 11

▍ Питание

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 12

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 13

▍ Ядро ESP32

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 14

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 15

▍ USB/CH340

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 16

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 17

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 18

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 19

▍ Buzzer

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 20

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 21

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

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

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 22

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 23

▍ Модули 433 МГц

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 24

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 25

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

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 26

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 27

▍ Интерфейсы

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

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 28

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

KC868-Uair: пролетая над гнездом кукушки. Часть 1. Гнездо - 29

Заключение

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

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

Автор:
smart_alex

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js