Попалось тут мне загадочное изделие под названием «ESP32 Tuya IoT adapter», оценить неординарность его внешнего вида вы можете по фотографии выше. Мне лично это напоминает что-то среднее между артефактом, отвалившимся от летающей тарелки при неумеренно резком манёвре в 500 g, и торсионным генератором последней модели.

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

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

Что такое Tuya


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



Если верить информации из интернета, Tuya — это невероятно популярная вещь, в её экосистеме имеются множество пользователей и разработчиков, на рынке присутствует огромное количество готовых Tuya-совместимых устройств (датчики, розетки и т. п.). Само-собой есть приложение для смартфонов, сайт, подробная онлайн документация, канал на Youtube, библиотека (SDK) для Arduino и т. д.

При таком ажиотаже вокруг этой технологии немного странным кажется практически полная тишина и почти полное отсутствие информации о Tuya в наших палестинах. То ли новомодное веяние ещё не добралось до нас, то ли что…

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

ESP32 Tuya IoT adapter


ESP32 Tuya IoT adapter представляет собой решение (переходник, мост) для подключения и добавления к вашей системе (умного дома) возможности работы облаком (экосистемой) Tuya. С одной стороны он имеет интерфейсы RS232 и RS485, а с другой — связь с облаком Tuya.

Изначально ESP32 Tuya IoT adapter предназначен для работы с довольно продвинутыми контроллерами Kincony, но никто не мешает подключить этот адаптер посредством RS232 или RS485 интерфейса к вашему любимому контроллеру умного дома.

Другими словами, ESP32 Tuya IoT adapter — это решение по быстрому и простому добавлению работы с экосистемой Tuya в ваш умный дом (или любую другую IoT систему).

Работа адаптера с Tuya облаком обеспечивается специализированным чипом CBU-IPEX, о котором мы подробно поговорим ниже. На борту также присутствует всеми любимый ESP32 (куда же без него), что превращает скромный «адаптер» в гораздо более функциональное устройство, фактически полноценный IoT контроллер, функционал которого зависит только от вашей фантазии и квалификации в программировании.

ESP32 Tuya IoT adapter содержит:

  • Микроконтроллер ESP32-WROOM-32UE
  • SMA разъём и антенну для ESP32
  • Кнопки DOWNLOAD и RESET
  • Разъём с 7-ю свободными GPIO ESP32
  • Джампер переключения режимов RS232/RS485
  • Tuya чип CBU-IPEX
  • SMA разъём и антенну для CBU-IPEX
  • Кнопку S1
  • 5 индикаторных светодиодов
  • Разъём RS232 интерфейса
  • Разъём RS485 интерфейса
  • USB Type-C разъём
  • Разъём и колодку питания 9-24 В

Внешний вид и крепление


Комплект состоит из платы ESP32 Tuya IoT adapter, двух антенн и двух креплений на DIN-рейку. Плату можно установить на DIN-рейку, закрепить при помощи соответствующих отверстий или даже просто «повесить» на разъём интерфейса RS232 (в последнем случае нужно проследить, чтобы в креплении не было механических напряжений, иначе можно повредить разъём).



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



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


Вид ESP32 Tuya IoT adapter сверху. На плате можно заметить альтернативное название адаптера — KC868-ATC.



Обратная сторона платы, традиционно для Kincony, не содержит никаких электронных компонентов. При желании можно немного поработать растворителем и смыть остатки флюса на контактах разъёмов.



Питание


Подсистема питания состоит из микросхемы понижающего DC-DC преобразователя XL1509-5 для формирования напряжений 12 В и 5 В и линейного регулятора LM117-3V3 для формирования напряжения 3,3 В. Запитать адаптер можно напряжением 9-24 В либо через круглый разъём «а-ля Arduino», либо через два соседних контакта колодки.



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



ESP32


ESP32 Tuya IoT adapter содержит модуль ESP32-WROOM-32UE в качестве «мозга» системы и связующего хаба между её элементами. С одной стороны к ESP32 (по UART3 интерфейсу) подключён Tuya чип CBU-IPEX, а с другой — по UART2, «запараллеленные» RS232 и RS485 интерфейсы.

Под «запараллеленностью» RS232 и RS485 интерфейсов я понимаю их одновременное физическое подключение к ESP32 внутри адаптера и программную настройку и выбор одного из интерфейсов в коде (это предполагает, что вы можете работать либо с RS232, либо с RS485, но не с обоими интерфейсами одновременно).

Кроме связующего звена между частями адаптера, ESP32 может решать ещё множество задач: обслуживать веб-интерфейс, принимать и посылать данные по Wi-Fi и работать мостом Wi-Fi-Tuya, обслуживать выведенные на плату свободные GPIO, обрабатывать информацию и т. д. Другими словами, из ESP32 Tuya IoT adapter можно сделать очень и очень продвинутое в функциональном плане устройство.



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



Tuya CBU-IPEX


Пожалуй, о CBU-IPEX не скажешь лучше, чем написано в официальной документации, цитата:

CBU-IPEX is a low-power embedded Wi-Fi module that Tuya has developed. It consists of a highly integrated RF chip BK7231N and a few peripherals, and not only supports the AP and STA dual-network-connection manner but supports the Bluetooth LE network connection manner.

CBU-IPEX is built-in with a 32-bit MCU with a running speed of up to 120 MHz, 2Mbyte flash, and 256-KB RAM, to support the Tuya IoT cloud connection. The MCU’s specially extended instructions for processing signals can effectively implement audio encoding and decoding. Besides, it has rich peripherals, such as PWM, UART, and SPI. The five 32-bit PWM output makes the chip very suitable for high-quality LED control.


Более простыми словами: CBU-IPEX — это специализированный Tuya модуль, которой имеет беспроводные интерфейсы и содержит внутри прошивку, поддерживающую специфические Tuya функции как для работы с подключённым оборудованием, так и с Tuya облаком (самой платформой).

Для нас это означает, что мы можем залить в ESP32 соответствующую прошивку, и наша система «волшебным» образом станет поддерживать Tuya, либо мы можем скачать SDK (библиотеку) для Arduino и создать прошивку с поддержкой работы с CBU-IPEX (Tuya) для ESP32 самостоятельно.

Разбор того, как работать с Tuya и как создавать такие прошивки — это, определённо, тема для отдельной статьи (и скорее всего не одной).



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



USB-UART


Подсистема USB-UART для связи с компьютером и программирования реализована на микросхеме CH340C и имеет разъём USB Type-C. Здесь же присутствуют две кнопки — RESET и DOWNLOAD под псевдонимами «RST» и «D.L.».



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



Интерфейс RS232


Интерфейс RS232 реализован на микросхеме SP232EEN, которая подключена к буферам 74LVC1G08 и 74AHCT1G125 (см. схему RS485 ниже) которые, в свою очередь, подключены к ESP32 по UART2 интерфейсу (GPIO16 и GPIO17).



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



Интерфейс RS485


Интерфейс RS485 реализован на микросхеме MAX13487EESA, которая также подключена к буферам 74LVC1G08 и 74AHCT1G125 и «запараллелен» с RS232 (см. выше). Выбор работы с тем или иным интерфейсом производится программно (об этом будет рассказано чуть ниже).



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



Индикаторные светодиоды


Сбоку платы расположен блок из 5-и индикаторных светодиодов. Из них один показывает наличие напряжения питания (D6), а остальные подключены к ESP32 и свободно программируются.



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



Свободные GPIO и джампер RS232/RS485


Компания Kincony вняла нашим пожеланиям и начала выводить свободные GPIO в разъёмы. Это простое действие даёт возможность значительно расширить функционал ESP32 Tuya IoT adapter и подключить к нему нужное вам дополнительное оборудование.

Плата имеет 7 свободных GPIO и один джампер GPIO23-GND для программного определения режима работы RS232/RS485.



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



Схема подключений


Ниже представлена официальная схема разъёмов, компонентов и подключений от производителя Kincony. Программно определяемые вещи, например назначение индикаторных светодиодов, даны условно — вы можете их переопределить в своём скетче.



Распиновка


Ещё немного ясности в устройство ESP32 Tuya IoT adapter может внести распиновка, представленная ниже. Незадействованными остались только GPIO2 и GPI34, 35, 36, 39.



Заключение


С устройством, назначением и схемотехникой ESP32 Tuya IoT adapter всё более-менее понятно, осталось только разобраться с его программированием и работой с самим облаком Tuya, но это, как говорится, уже совсем другая история… (Оставайтесь с нами.)

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


  1. HepoH
    24.10.2022 13:35
    +1

    Спасибо за статью!
    Если честно, по прочтению я так и не понял — это просто очередной хаб? Если мои устройства туя из коробки заведены в HA, что мне даст мост к облаку с их ИскИнами? Или тут речь о том, чтобы свои собственные поделки после того как ты еще и ПО сверху под этого зверя для них выкатил выглядели как продукт туи?


    1. smart_alex Автор
      24.10.2022 13:58
      -1

      Я тоже не очень понял вопрос и как конкретно ваши устройства "заведены" в НА и как все это у вас работает с Tuya.

      А адаптер предназначен для подключения контроллеров без поддержуи Tuya к облаку Tuya и интеграции с их экосистемой.


      1. HepoH
        24.10.2022 15:31

        Через интеграцию localtuya, вестимо. Просто в чем "поддержка tuya" заключается? В том что из приложения можно через облако делать вкл/выкл? Мне всегда казалось, что tuya -- это просто прозводитель, как тот же xiaomi, yeelight и т.п. У некоторых производителей их устройства можно контроллировать локально (без всяких облаков) — в этом случае вам не нужно даже знать что такое tuya: вот выключатель — он выключает. А после абзаца "что такое tuya" сложилось впечатление, что это не "то же самое что и приложение mi home, только tuya smart", а нечто большее, и вот для этого "большего" необходим данный мост.
        Но кажется я понял, видимо идея и правда состоит в том, чтобы пробросить стороннее устройство внутрь приложения tuya smart.


        1. lenz1986
          24.10.2022 18:23

          А какой практический смысл пробрасывать девайс в тую?


          1. HepoH
            24.10.2022 18:44

            Вот я собственно и задаюсь этим вопросом — зачем это конечному пользователю. Видимо, на случай, если туя используется как хаб вместо HA.


  1. wwladimir
    24.10.2022 16:39

    Я так и не понял, зачем но нем одновременно два Wi-Fi&BLE модуля? (ESP32 и CBU-IPEX который BK7231N). Авиационное резервирование на случай отказа?

    По поводу редкости TUYA на отечественных просторах- они у нас маскируются под "умные" Яндксы, Сберы, и иже с ними помельче...


    1. smart_alex Автор
      24.10.2022 16:52

      CBU - это специализированный Tuya чип, а ESP32 - это универсальный, к которому подключены CBU, RS232 и RS485 и который мы можем свободно программировать.

      Соответственно, мы можем как угодно гонять данные между CBU и RS232/RS485/Wi-Fi и BT ESP32.

      Плюс мы можем повесить любое дополнительное оборудование на свободные GPIO ESP32 и гонять данные в сторону подключённого оборудования (и обратно).