![](https://habrastorage.org/webt/zj/dh/pw/zjdhpwo6_ur_sltzd7nslvmrwg8.jpeg)
Сегодня мы поговорим об ещё одном изобретении сумрачного китайского гения — устройстве под кодовым номером KC868-ASR. Судя по самоназванию «Sensor Record Extension», компания Kincony предполагает использование этого устройства в качестве беспроводного сенсора с возможностью записи данных на microSD карту памяти, но наличие на борту часов реального времени (RTC), двух реле, microSD карты памяти, свободных GPIO, да и самого микроконтроллера ESP32 как бы намекает нам, что использование его в этом качестве — это что-то вроде стрельбы из пушки по воробьям.
Я бы сказал, что это скорее ESP32 нода с настолько широким диапазоном ролей использования, насколько хватит вашей фантазии, креатива и квалификации в программировании. Тонким местом тут, как всегда, является фантазия (смайл), поскольку возможностей для интеграции в вашу IoT инфраструктуру (у вас ведь есть своя IoT инфраструктура?) у KC868-ASR предостаточно.
Обо всём этом мы и поговорим далее.
❯ Что под капотом
Для начала давайте познакомимся с формальными ТТХ KC868-ASR и расставим всё по полочкам, чтобы потом хорошо представлять о чём идёт речь и какой набор функций мы имеем в своём распоряжении.
Плата KC868- ASR содержит:
- Микроконтроллер ESP32 (ESP-WROOM-32E)
- Колодка для подключения датчиков (или сетей 1-Wire) T1, T2, 3V3, GND
- 2 свободно программируемых светодиода
- 2 реле 10А 250В (NO, COM)
- Разъём для microSD карты
- RTC DS3231
- Разъём для батарейки CR1220
- Пьезокерамическая пищалка (Buzzer)
- Разъём Free GPIO (2 GPIO)
- USB разъём Type-C
- Кнопки «Reset» и «Download»
- Разъём питания 12 (9-18) В
- Светодиод наличия питания
Всё это хозяйство можно разделить на четыре основные функциональные части:
Ядро:
- Микроконтроллер ESP32 (ESP-WROOM-32E)
- Разъём для microSD карты памяти
- RTC DS3231
Ввод/вывод:
- Колодка для подключения датчиков (или сетей 1-Wire) T1, T2, 3V3, GND
- Разъём Free GPIO (2 GPIO)
Управление:
- 2 реле 10А 250В (NO, COM)
Индикация:
- 2 свободно программируемых светодиода
- Пьезокерамическая пищалка (Buzzer)
Так всё становится значительно понятнее, теперь перейдём к «функциональному анализу» возможных ролей KC868-ASR как с точки зрения производителя, так и с нашей (скромной) точки зрения.
❯ Sensor Record Extension
Зная номенклатурный ряд продукции компании Kincony, можно реконструировать ход мысли их инженеров: когда речь зашла о создании беспроводного сенсора — они просто урезали функционал (и печатную плату) своих типовых контроллеров на ESP32 и добавили пару «фишек», которые по их мнению должны присутствовать в таком сенсоре.
И в целом это сработало: на KC868-ASR можно создать беспроводной Wi-Fi сенсор с 1-2 датчиками или 1-2 1-Wire сетями датчиков, например температуры на популярном DS18B20.
Можно также снабдить этот сенсор возможностью создания логов сбора показаний датчиков и сделать его автономным в плане работы с реальным временем.
Другое дело, что возникают вопросы: зачем точное автономное время и microSD карта памяти на борту сенсора, когда он подключается по Wi-Fi и может спокойно сбрасывать любые данные и синхронизировать время с базовым контроллером? Получается, что тут расчёт на какой-то (странный) случай нестабильной работы Wi-Fi (чтобы иметь возможность сохранить большой массив данных на карте) или на то, что KC868-ASR будет являться «сам себе» базой и самостоятельно обрабатывать получаемые данные.
❯ Мой взгляд на проблему
Что касается беспроводных IoT сенсоров, например, температуры, влажности и т. п., то лично я уже давно перешёл на использование батарейных долгоживущих решений (nRF24, LoRa и т. п.) и подобный монстр на ESP32 в качестве беспроводного сенсора для меня выглядит немного диковато — что-то вроде стрельбы из пушки по воробьям (тем более, что к нему нужно проводить стационарное питание).
Для справки: связка ATmega328 (aka доработанная Arduino Pro Mini) + nRF24 (LoRa) в спящем режиме потребляет 4-10 мкА, что позволяет делать на ней любые (по функционалу) долгоживущие батарейные сенсоры (температура, влажность, контакт, расход воды и т. д. и т. п. ).
Для меня KC868-ASR скорее похож на базу для беспроводных батарейных сенсоров — у него на борту есть всё необходимое для этого — мощный микроконтроллер для анализа и визуализации данных, автономное время, возможность хранить на карте памяти не только данные, но и множество страниц развитого веб-интерфейса и т. д.
Простой ход — подключение к KC868-ASR модуля nRF24L01 или типового SPI LoRa модуля могло бы сразу расширить количество подключаемых датчиков с двух до нескольких десятков и это была бы уже совсем другая история.
Почему этого не сделала компания Kincony? Потому, что этот сценарий вообще не входит в круг понятий их инженеров и потому, что это требует довольно изощрённого программирования как на стороне базы, так и на стороне беспроводных сенсоров, а готового решения «включил и забыл» на рынке не существует.
Поэтому by default мы будем рассматривать «унылый» сценарий использования KC868-ASR как Wi-Fi сенсора на два датчика, а для себя (когда мне это понадобится) я бы сделал из KC868-ASR самодостаточную IoT базу на несколько десятков беспроводных nRF24 или LoRa сенсоров.
(Или это можете сделать вы для своих проектов, если обладаете достаточной квалификацией.)
❯ Немного актуатор
Пока мы разбирались с функциональным назначением KC868-ASR, мы немного упустили ещё одну его ипостась: он имеет на борту два реле и может «немножечко чем-нибудь поуправлять». С двумя реле далеко не разбежишься, но подобная возможность «здесь и сейчас» может оказаться весьма полезной.
Кстати, беспроводные nRF24 или LoRa мини-контроллеры не обязаны быть именно сенсорами, никто не мешает сделать их беспроводными актуаторами (реле, серво, RS485 и т. д. и т. п. и вообще всё, что угодно) и создать небольшое IoT облако с KC868-ASR в центре и несколькими десятками беспроводных сенсоров и актуаторов «на объекте» (почувствуйте, как говорится, разницу с его дефолтным предназначением).
❯ Вишенка на торте
Всю эту благостную картину в качестве вишенки на торте венчают 2 свободно программируемых светодиода и пьезокерамическая пищалка (Buzzer), которыми можно весело помигать и попищать (в нужные, разумеется, моменты) и значительно оживить суровый на вид KC868-ASR.
❯ Корпус на DIN-рейку
Корпус KC868-ASR можно оценить на 10 из 10 по шкале брутальности, как говориться, брутальнее некуда — видимо используется какой-то недорогой типовой корпус на DIN-рейку. С другой стороны, если сделать приличную с точки зрения дизайна наклейку-шильдик, то выглядеть всё будет более-менее пристойно и не испортит вид типового щита автоматики.
![](https://habrastorage.org/webt/4i/se/7x/4ise7xj5d0_kbfzvtifs0wkomjq.jpeg)
❯ Вскрываем пациента
Поскольку корпус типовой, без дизайнерских излишеств, то разбирается всё просто и без особых усилий. В поддоне мы видим примерно то, что и ожидалось увидеть — плату а-ля Wi-Fi реле Sonoff, только в несколько более продвинутом варианте.
![](https://habrastorage.org/webt/_m/2j/_n/_m2j_nqhh3tg6n7ascjovbq61c8.jpeg)
Вид платы сверху, на котором хорошо видно расположение всех частей контроллера (сенсора, по версии самого производителя). Все детали на месте, не припаян только разъём J4 с двумя «Free GPIO». Если возникнет желание имплантировать сюда nRF24 или LoRa модуль, то придётся немного поработать паяльником и скальпелем (ну и перед этим ещё и головой конечно же).
![](https://habrastorage.org/webt/ox/sk/me/oxskmesehmbsyz9s_mz7buce9xk.jpeg)
По традиции компании Kincony, на обратной стороне платы ничего нет (только разъём для батарейки питания часов реального времени).
![](https://habrastorage.org/webt/_c/ur/pd/_curpductf4-gsxaaglwwid_dow.jpeg)
❯ Схемотехника
Теперь переходим к рассмотрению схемотехники KC868-ASR и разберём что и как там устройство с точки зрения электроники.
Питание
Питание контроллера KC868-ASR подаётся на совмещённую колодку J2 (контакты 1-2), далее следует Step-Down конвертер BL8032CB6TR (на ток до 2 А), который преобразует входное напряжение до 5 вольт. 3,3-вольтовое питание обеспечивает линейный стабилизатор AMS1117-3.3. В его выходной цепи присутствует светодиод-индикатор подачи питания.
![](https://habrastorage.org/webt/cd/4q/2k/cd4q2kjnqlpshtnn7vhkmne3rhe.jpeg)
Ядро ESP32
Распиновка ядра ESP32 по версии производителя. Ниже будет представлена моя, несколько более читабельная и информативная версия.
![](https://habrastorage.org/webt/xk/e1/2h/xke12hbcvh2sppkcn0jj09lhvno.jpeg)
USB-UART
Подсистема USB-UART в контроллере KC868-ASR сделана в традиционном для Kincony стиле на чипе CH340, правда схема распайки транзисторов Q1, Q2, Q3 и линий EN, IO0, IO2, DTR, RTS выглядит несколько более хитрозакрученной, чем ожидалось — начинающие схемотехники могут поупражняться в разборе принципов работы этого узла.
![](https://habrastorage.org/webt/xn/vj/21/xnvj21hj0iikfhnce0cq0l-8fku.jpeg)
Реле и Buzzer
Управление двумя реле и пьезокерамической пищалкой (OUT0, OUT1, BEEP) заведено на матрицу транзисторов Дарлингтона ULN2001. К сожалению, у реле доступны только два выхода COM и NO.
![](https://habrastorage.org/webt/-k/ws/1u/-kws1uadqz-es_adpnbf8svjmly.jpeg)
Картридер microSD
Схема подключения картридера для microSD карт памяти. Обратите внимание на то, что линия DAT0 (IO2) дополнительно завязана на транзистор Q3, а линия WP не подключена к ESP32 и фактически является ещё одним свободным GPIO.
![](https://habrastorage.org/webt/yz/08/m_/yz08m_12kinjrqzku099yopgqra.jpeg)
RTC DS3231
Чип RTC DS3231 не испортит ни один контроллер. Ранее компания Kincony пыталась ставить в свои изделия более простые и дешёвые чипы DS1307 (а ещё раньше вообще игнорировало подсистему RTC в контроллерах), но нам с вами совместными усилиями удалось убедить её сначала в том, что RTC в контроллере никак не помешает, а затем в том, что DS3231 — это более правильное решение, чем DS1307.
![](https://habrastorage.org/webt/ya/ii/gr/yaiigrkahlfrynuwe5_xcbyi2uy.jpeg)
Индикаторные светодиоды
Вообще, два светодиода для индикации режимов работы контроллера и происходящих в системе событий — это хорошо. Но, в случае необходимости подключения к KC868-ASR дополнительных компонентов, светодиодами можно пожертвовать и получить в своё распоряжение ещё два свободных GPIO.
![](https://habrastorage.org/webt/x0/lj/e2/x0lje2evgn1t_mt8kpwxjsqmb4i.jpeg)
Разъём Free GPIO
Два свободных GPIO и можно себе ни в чём не отказывать (смайл).
![](https://habrastorage.org/webt/np/xj/js/npxjjsejkp90s6mpcmbbhmcvggk.jpeg)
❯ Распиновка
Несколько более информативная распиновка KC868-ASR (его ядра ESP32) с указанием того что, куда и зачем подключено.
![](https://habrastorage.org/webt/hf/bn/n8/hfbnn8tyznldbdgrwcrrnplwbky.jpeg)
❯ Схема внешних подключений
Немного окультуренная схема внешних подключений контроллера KC868-ASR от производителя:
![](https://habrastorage.org/webt/lw/xp/ue/lwxpuesskwmo454otorwypgcmne.jpeg)
Указан диапазон входного питающего напряжения 9-24 вольт, но в даташите на BL8032CB6TR написано «9-18V», так что я бы поостерёгся подавать на KC868-ASR больше 18 вольт.
❯ Заключение
Роль KC868-ASR by default: Wi-Fi (Bluetooth) сенсор со стационарным питанием на два датчика и возможностью хранения данных на microSD карте памяти.
Роль KC868-ASR как «базы»: самодостаточная Wi-Fi база с подсистемами получения, хранения, анализа и визуализации данных с десятков беспроводных nRF24 (LoRa) сенсоров/актуаторов. Пример: раскидали по теплице беспроводные сенсоры/актуаторы, установили «базу» KC868-ASR в теплице или в здании рядом и получили полную автоматизацию этой теплицы. Правда для реализации этого сценария нужна «железная» доработка KC868-ASR и соответствующий софт — поэтому этот сценарий доступен только для DIY-щиков с достаточной квалификацией (и с достаточно креативным мышлением).
Возможно, захочется почитать и это:
- ➤ Lavritech L1: полная версия контроллера на платформе LavriBoard7
- ➤ Starting Electronics: руководство по веб-серверам на Arduino. HTML теги, CSS и JavaScript
- ➤ Наследник АЦПУ внутри калькулятора
- ➤ Причуды эволюции: необычное «железо», которое не должно было появиться
- ➤ Как создавалась System Shock
Комментарии (17)
SUNsung
04.10.2023 08:49+3Хрень какая то
У ttgo давно есть ведрами модули esp32 на любой вкус, цвет и задачу.
Тут именно интересно что сразу с коробки оно идет на din-рейку,но функционал убог, а учитывая специфику (рейку) нужна как минимум внешняя антена если подразумевалась работа по воздуху (потому как с проводным функционалом вава)
Из плюсов - пищалка и независимые часы. Но учитывая скудость внешних аналоговых портов и стандартную антену (которая будет тыквой в глубине шкафа) смысла в такой гравицапе ноль.
smart_alex Автор
04.10.2023 08:49Да, дефолтное назначение устройства весьма специфично, мне оно в таком качестве совершенно не интересно (я об этом написал в статье), хотя кому-то может и пригодиться для решения своих задач.
А вот в качестве ноды для беспроводного облака nRF24/LoRa — на мой взгляд отличная база для соответствующей DIY доработки.
sav13
04.10.2023 08:49Для LoRa/Zigbee точно не ESP32 нужен с его гигантским потреблением и режимом сна через одно место
В принципе, попробовал ESP32C3 с SX1262 - можно достичь 5мкА в режиме сна, но пробуждение тоже так себе и GPIO мало. Зато цена получается отличная
BARSRAB
04.10.2023 08:49Тонким местом тут, как всегда, является фантазия
Тонким местом тут является отсутствие JTAG разъема, а значит и возможности отладки хоть сколько-нибудь сложной прошивки. А все, что тут можно сделать - поиграться с ардуйней.
А вот в качестве ноды для беспроводного облака nRF24/LoRa
Вся проблема в отсутствии там как nRF24/LoRa, так и возможности их подключения....
smart_alex Автор
04.10.2023 08:49Там отсутствует «штатная» возможность подключения nRF24/LoRa (что, безусловно, плохо), но при помощи хирургических DIY методов подключить к KC868-ASR беспроводной модуль не составит большой проблемы.
См. пример подобной инвазии в KC868-Uair:
https://habr.com/ru/companies/ruvds/articles/656281/
BARSRAB
04.10.2023 08:49+1Понятно, что дендро-фекальным методом можно подключить что угодно и куда угодно. Но штатной возможности при этом нет. Да и как-то странно подключать радиомодули при наличии WiFi/Bt на борту...
smart_alex Автор
04.10.2023 08:49Модули можно и не подключать — это только один из возможных примеров использования KC868-ASR.
smart_pic
04.10.2023 08:49мощный микроконтроллер для анализа и визуализации данных, автономное время, возможность хранить на карте памяти не только данные, но и множество страниц развитого веб-интерфейса
Прошу , ну покажите хоть один пример этого самого развитого веб-интерфейса
smart_alex Автор
04.10.2023 08:49smart_pic
04.10.2023 08:49если это показ специально созданного
самого развитого веб-интерфейса
то там смотреть нечего.
smart_alex Автор
04.10.2023 08:49Номинально там есть всё: «взрослые» HTML, CSS, JavaScript, Ajax, ThreeJs, сайты, темы, графики, виджеты, адаптивный дизайн, интеракив в реальном времени, реальная 3D графика и т. д. и т. п. Легче сказать чего там нет.
Так вот вопрос к вам: что вы там ещё ожидали увидеть и чего вам ещё не хватает для «самого развитого веб-интерфейса»? Или вы не туда смотрели?
sav13
04.10.2023 08:49Что касается беспроводных IoT сенсоров, например, температуры, влажности и т. п., то лично я уже давно перешёл на использование батарейных долгоживущих решений (nRF24, LoRa и т. п.) и подобный монстр на ESP32 в качестве беспроводного сенсора для меня выглядит немного диковато — что-то вроде стрельбы из пушки по воробьям (тем более, что к нему нужно проводить стационарное питание).
Нашел интересный модуль Heltec HT-CT62
https://heltec.org/project/ht-ct62/
ESP32C3 + SX1262 (LoRa/LoRaWAN). В режиме сна кушает 5-6мкА и прекрасно живет на Li-SOCL2 батарейках 3.6В. Правда свободных GPIO там маловато, но в ноде и подключается как правило 1-2 датчика
sim2q
для ЛЛ : 4500р + 1400р доставка