Kincony KC868-A8: старший брат из Ханчжоу. Часть 1. ESP32 + Ethernet

ewocz_rnnlhpkyy3uryr_6rasjo.jpeg

Пока мы с вами разбирались с универсальным контроллером начального уровня на ESP32 для DIY автоматизации Kincony KC868-A4 1, 2, 3 «подъехал» его старший брат Kincony KC868-A8 — значительно более серьёзное устройство с 8-ю оптоизолированными цифровыми входами, 8-ю реле на борту для управления различным оборудованием, выведенным на плату I2C разъёмом, встроенным Ethernet-интерфейсом на LAN8270A и прочими интересными возможностями.

В этой статье мы подробно разберём устройство этого контроллера, но сразу хочется отметить, что одновременное наличие и сочетание двух интерфейсов — беспроводного Wi-Fi и проводного Ethernet делает KC868-A8 очень интересным решением — контроллер может работать по Wi-Fi или Ethernet и использовать альтернативный интерфейс как резервный или работать одновременно по двум интерфейсам (проводному и беспроводному) и взаимодействовать с разными сетями и т. д.

В общем, устраивайтесь поудобнее — вас ожидает очередное увлекательное путешествие в удивительный мир микроконтроллеров и DIY автоматизации…

В предыдущих сериях


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

Почитать о тонкостях работы ESP32 с чипом Ethernet-интерфейса LAN8270A можно в статье Через тернии к звёздам или LILYGO TTGO T-Internet-POE ESP32 LAN8270A, в которой я подробно разобрал эту проблематику.

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

Kincony KC868-A8


Прежде всего познакомимся со списком установленных на плате компонентов и набором функциональных блоков, которые предоставляет в наше распоряжение Kincony KC868-A8. В первую очередь это модуль ESP32 в модификации ESP-WROOM-32 со всеми присущими ему возможностями (Wi-Fi, Bluetooth, два ядра MCU, 4 МБ EEPROM памяти и т. д.).

Кроме ESP32 модуля, плата Kincony KC868-A8 содержит:

  • 8 цифровых опторазвязанных входов («сухой контакт»);
  • 2 аналоговых входа 0–5 В;
  • 8 реле 10А 220В;
  • 4 контакта для подключения температурных и прочих датчиков;
  • Модули приёмника/передатчика 433 МГц;
  • Разъём I2C;
  • Ethernet LAN8270A.


Что мы потеряли по сравнению с KC868-A4:

  • 2 аналоговых входа 4–20 мА;
  • 2 аналоговых выхода (DAC) 0–10 В;
  • DB9 разъём RS232;
  • Инфракрасные (IR) приёмник и передатчик;
  • Пьезокерамическая пищалка (Buzzer).


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

Что мы приобрели (по сравнению с Kincony KC868-A4):

  • 4 цифровых опторазвязанных входа («сухой контакт»);
  • 4 реле 10А 220В;
  • 2 контакта для подключения датчиков;
  • Разъём I2C;
  • Ethernet LAN8270A.


Здесь ситуация прямо противоположная: казалось бы, приобретений не так много, но на самом деле они добавляют «мощи» контроллеру и выводят его на более высокий уровень и значительно расширяют круг его возможностей. Хотя всё, конечно, зависит от потребностей конкретного проекта — в каких-то проектах A4 будет даже предпочтительнее, чем A8.

ayt7ohov6i6eyi1momgnbrjzbnq.jpegA4 и A8: два представителя славного семейства ESP32-контроллеров

Кстати, A8 — это ещё не венец креативной инженерной мысли компании Kincony, у него есть пара «кузенов из Ханчжоу» — A16 и A32. Так что нам с вами будет чем заняться длинными зимними (а также весенними, летними и осенними) вечерами, сначала изучая спецификации KC868-A серии, а затем программируя и инсталлируя проекты на этих контроллерах.

Портрет в интерьере


Kincony KC868-A8 комплектуется таким же корпусом, как и контроллер KC868-A4 (см. подробное описание корпуса в предыдущих статьях). Привожу несколько фотографий «в интерьере», чтобы вы представляли себе, как контроллер будет выглядеть «в сборе». Вид на разъёмы реле:

cwisobnvxoandrdo3hpmrux3n44.jpeg

Вид на разъёмы входов, питания контроллера и подключения к Ethernet сети. Также видны кнопки «Reset» и «User» и Mini-USB разъём для подключения к компьютеру и программирования. Учитывая наличие разъёма I2C интерфейса на плате Kincony KC868-A8, у этого корпуса появляется реальный шанс обзавестись каким-нибудь дисплеем. Согласитесь, что контроллер с дисплеем — это гораздо интереснее, чем такой же контроллер, но без дисплея.

is3_ueqqktatywe13yghkju_iik.jpeg

И ещё несколько фотографий контроллера. Со снятой верхней крышкой корпуса:

ceafv8d2irmfsulyasuvdjqwq-w.jpeg

Сама плата без корпуса. Кстати, никто не заставляет использовать комплектный корпус и DIN-рейку, вы можете закрепить плату так, как вам больше нравится и в соответствии с требованиями вашего проекта.

uzm8001mhl-mvctmuwm7cmlyypa.jpeg

Плата KC868-A8


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

qvnqeewrrn8tbzaxpbuvaisi8m8.jpeg

Вид снизу. Тут особо комментировать нечего, как всегда, ожидаем мнения профессиональных железячников (как показывает практика, им всегда есть что сказать).

rukcdbebpbnlmdebbiqnlztrikk.jpeg

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


Рассматривать схемотехнику KC868-A8 мы будем по тому же принципу, который использовали для описания KC868-A4: фото компонентов на плате контроллера, принципиальная схема подсистемы и мои комментарии в вольном стиле об этой подсистеме.

Поскольку контроллеры KC868-A8 и KC868-A4 являются представителями одного семейства, то, естественно, их схемотехника очень похожа и в процессе разбора устройства KC868-A8 я буду сравнивать его с его «младшим братом» KC868-A4.

▍ Питание


Ядро подсистемы — система питания контроллера KC868-A8 не претерпело каких-либо серьёзных изменений по сравнению с подсистемой питания KC868-A4 — это всё та же микросхема понижающего DC-DC преобразователя XL1509–5 для формирования напряжений 12 В и 5 В и линейный регулятор LM117–3V3 для формирования напряжения 3,3 В (с соответствующей обвязкой).

q7owd7abpkaxnyozsfsv_gqcya0.jpeg

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

vlakylckd_mtlpep5buiqoyw2z0.png

▍ Ядро ESP32


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

og47ivaat2kebqnt-cdweesmg7q.jpeg

Принципиальная схема и распиновка ядра (ESP32) контроллера. Обратите внимание, что в различных ревизиях платы есть отличия в распиновке контактов ESP32: серым цветом отдельно отмечены изменения в версии 1.4.

k04fexvrmsyp-nyvabaqe7erueu.png

О распиновке, распределении GPIO и программировании мы поговорим в следующей статье этого цикла.

▍ USB/CH340


Дизайн подсистемы подключения к компьютеру и программирования KC868-A8 практически полностью повторяет соответствующую подсистему KC868-A4 (за мелкими исключениями). Здесь тот же Mini-USB разъём, чип CH340C и две кнопки — «RESET» и «USER».

m1kmt_y2pq8wsqr2igxmu0y1tkq.jpeg

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

qxrx410r-gxaitovijizdqp8qcm.png

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


Плата Kincony KC868-A8 имеет 8 цифровых оптоизолированных входов на оптронах EL357. Светодиоды, которые были на KC868-A4, видимо пропали из-за отсутствия свободного места на плате. Это жалко, потому что было очень удобно визуально контролировать состояние входов.

Также в KC868-A8 применён расширитель цифровых входов/выходов c I2C интерфейсом PCF8574P, что на плате с ESP32 с его (драматически) ограниченным количеством GPIO можно только приветствовать.

z-i_yfqlyjxht-dbffzf7z7qak8.jpeg

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

k0hc6pk3exrpkqsccttjjawmtmg.png

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


На аналоговом фронте плата KC868-A8 понесла значительные потери и лишилась двух из четырёх аналоговых входов, остались только 2 входа для сигналов 0–5 B. Это, конечно, печально, но в большинстве случаев не смертельно. Формирование сигналов доверено входным каскадам, сдвоенному операционному усилителю LM258D и диодам Шоттки BAT54S.

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

rj8lbvodloatl8ol9kzndnbpema.jpeg

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

qiohxebxhpxumrrf1gf16v_j86q.png

▍ Реле


На фотографии хорошо видно, что подсистема реле занимает больше половины контроллера Kincony KC868-A8. Обслуживанием работы 8-и реле занимаются микросхемы 74HCT14 с инвертирующими триггерами Шмитта и ULN2003A с матрицами транзисторов Дарлингтона. По обоим краям платы расположены группы индикаторных светодиодов.

Само взаимодействие с микроконтроллером ESP32 осуществляется при помощи pасширителя цифровых входов/выходов c I2C интерфейсом PCF8574P (так же, как и в случае с цифровыми входами).

dlpartesrzc1dq0w4gmymp9kkhs.jpeg

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

l9ka9ckyiyhgdousihf3xzjc46a.png

▍ Датчики температуры/влажности


Здесь мы имеем 6-контактную колодку с 4-я разъёмами для подключения температурных и прочих датчиков. Это большой шаг вперёд по сравнению с аналогичным одним контактом контроллера KC868-A4. Тут у нас полная свобода действий — можно подключать любые подходящие датчики или сети из нескольких датчиков.

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

rdwewzio2zodmh2wx5_1puxo8ey.jpeg

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

mufogm3nyl9qwvipjetvjpzz9lk.png

▍ Модули 433 МГц


Здесь мы видим нераспаянные разъёмы для подключения модулей на 433 МГц (см. подробности в цикле о KC868-A4). Можно подключить модули и получить связь на 433 МГц, но далеко не всем нужны такие беспроводные соединения — можно к этим контактам вместо модулей на 433 МГц подключить что-то другое, что нужно вам в конкретном проекте.

8wvfsfv6l-vsyqvwr3gw8inrjnq.jpeg

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

z2xg66uk1ginpredejokzcjjj9c.png

▍ Ethernet


И вот, наконец, главная «фишка» контроллера Kincony KC868-A8 — Ethernet на чипе LAN8270A. Это прекрасно работающая на ESP32 технология и в данном случае мы получаем возможность подключать контроллер по Wi-Fi, или Ethernet, или одновременно по двум интерфейсам, или использовать второй интерфейс как резервный и т. д. Здесь возможности ограничены только вашим воображением (воображением программиста прошивки для KC868-A8).

Из недостатков использования LAN8270A в составе контроллера на ESP32 можно назвать то, что Ethernet чип занимает аж 9 GPIO из и без того крайне скудного количества свободных контактов этого микроконтроллера. В данном случае положение спасают расширители портов для входов и реле.

zhbhmgopnyi3qskapzka9pvczoe.jpeg

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

uyahjm9uaqwous_uatydd1ywdqc.png

▍ I2C


Большим подарком от разработчиков контроллера Kincony KC868-A8 стал разъём для подключения I2C оборудования. Благодаря этому, вы можете подключить к контроллеру какие-то свои I2C-совместимые компоненты, как минимум дисплей, что положительно скажется как на внешнем виде, так и на удобстве использования вашего контроллера.

apsbvsdljnz0xqmlwy8lrqvfzym.jpeg

Заключение


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

А в следующей статье мы разберём по косточкам распиновку KC868-A8 и научимся программировать его составные части (функциональные блоки).

oug5kh6sjydt9llengsiebnp40w.png

© Habrahabr.ru