Обновляем шлюз Xiaomi

У меня, собственно как и у многих, знакомство с zigbee началось именно с шлюза Xiaomi, нескольких кнопок и датчиков. При всех его плюсах быстро обнаружились и недостатки, невозможность добавлять в сеть устройства других производителей, привязка к китайскому облаку и т.д.

Как альтернатива этому шлюзу появились координаторы в виде USB «стиков» второй или третьей версии. Свободные от недостатков шлюза Xiaomi, но требующие для своей работы дополнительное аппаратное и программное обеспечение. Но время не стоит на месте, появились проекты автономных шлюзов на ESP32,  это ZESP от @DJONvl и SLS от @avenit. Эти проекты дали толчок к идее модернизации оригинального шлюза Xiaomi, путем замены платы управления на собственную.

Разборка шлюза не составляет особых проблем при наличии специального инструмента (можно использовать отвертку с прямым шлицем, в котором надо сделать пропил)

Разобранный шлюз выглядит так. Видно две платы, одна с блоком питания и светодиодами, вторая с модулем WiFi+процессор от Marvell, за zigbee отвечает JN5169. Ее и будем менять.

В основе новой схемы лежит модуль ESP32-Wrover-B, со стороны zigbee предусмотрен выбор из нескольких готовых модулей, СС2538+СС2592, E75-2G4M10S, E75-2G4M20S, E18-MS1PA1-PCB. На плате разведен USB-UART на CH340E, который можно использовать как для прошивки ESP32, так и для взаимодействия с модулями zigbee напрямую, выбор осуществляется распайкой перемычек. Так же на плате есть аудио усилитель SSM2211 для использования штатного динамика. Для построения шлюза в минимальной конфигурации, достаточно распаять только ESP32 и модуль zigbee, прошивку ESP32 можно осуществить внешним USB-UART адаптером через соответствующий разъем. Для прошивки модулей необходимы cc-debugger SmartRF04EB для СС2530 и JTAG программатор для СС2538
Плату проектировал в EasyEDAЗаказывал на jlcpcb  (5 плат с доставкой $8)Примерка, с размерами нет проблем.Все направляющие и защелки на своих местах.Первая встреча с оригиналомМожно приступать к пайкеПроверка результатаНа модулях есть антенны на платах и разъемы ipx, если нужно улучшить условия приема/передачи. Удобно использовать антенны такого типа, гибкие на самоклеющейся основе.

Для тестов в плату была загружена прошивка шлюза SLS. Интерфейс с подключенными устройствами выглядит так в текущей версии реализована локальная логика, т.е. можно настроить взаимодействие между устройствами zigbee разных производителей без использования УД.

Примеры

  • single, lamp_1, state, TOGGLE — Для кнопки, при одиночном нажатии переключает режим lamp_1
  • ON, 0x00158D00007350D9, state, OFF; OFF, 0xABCD, state, ON — Для выключателя, инвертирует режим для реле
  • single, door_lock, state, LOCK; double, door_lock, state, UNLOCK — Закрывает замок при клике, открывает при двойном
  • torsher_lamp — Передает в torsher_lamp текущее состояние
  • <40, humidifier, state, ON; >60, humidifier, state, OFF — Для датчика влажности, включает увлажнитель если влажность меньше 40% и выключает если больше 60%

Для связи с серверами «умного дома» используется протокол MQTT. Данный протокол поддерживается практически всеми системами ориентированными на управление IoT.

Например в MajorDoMo, стараниями @Dmitrii_Sannikov в его модуле  ваши устройства через этот шлюз будут выглядеть так

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

Можно оценить качество звука

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

  • ESP32+zigbee модуль = универсальный шлюз zigbee
  • Модуль zigbee+usb-uart = координатор zigbee для использования с zigbee2mqtt, ioBroker и т.д.
  • ESP32 + усилитель = Интернет-радио, светильник RGB

Так как файлы платы были предоставлены некоторым лицам заранее, то @avenit так же успел собрать плату в зеленом дизайнеДля желающих повторить, gerber файлы для заказа плат (толщина платы 1мм.), BOM

На текущий момент проверена работа с модулями на чипах СС2538 и СС2530.

Устройство можно обсудить в профильном чате телеграм.

Небольшое дополнение. По сборке нет особых тонкостей, кроме разве что разъема. Модель указанная в BOM короче оригинальной, по причине того что на aliexpress не нашлась в таком размере. По этой причине, для надежного контакта, ее нужно запаивать не на всю глубину, подложив временную прокладку.

Если у вас нет шлюза Xiaomi то это не проблема, плату можно использовать автономно. @nick7zmail спроектировал корпус для печати на 3D принтере.В связи с появлением поддержки SD карты в SlS Gateway публикую файлы gerber  и схему давно спроектированной платы с картой.Так же теперь доступны файлы субплаты с адресными светодиодами WS2812. Для ее использования основной разъем на плате шилда необходимо распаять со стороны деталей.

 

87 комментариев для “Обновляем шлюз Xiaomi

  1. А будет ли возможность приобрести окончательный вариант в корпусе?

  2. Запаянные esp и zigbee модули можно прошить? Или сначала прошиваем, а только потом припаиваем?

    1. Конечно можно, у сс2530 и сс2538 выведены пины под прошивку, JN5168/69 шьется через esp.

  3. Если не секрет, какая прошивка залита в ESP32 во втором видео, где проверяется работа динамика?
    Каким образом реализовано воспроизведение?

    1. В данном видео демонстрация возможностей аппаратной части аудиотракта, звук буде в sls в ближайших обновлениях.

        1. Это просто демо «по быстрому», делал автор шлюза sls. Усилитель там управляемый, возможно щелчок это переходные процессы при включении/выключении, в таком случае его можно будет вообще не отключать. Но возможно что это артефакты синтеза голоса.

  4. Тоже воюю с этим железом…
    Мдя… куча гигантских компаний выпускают всякую недоработанную херню за деньги.
    И тут приходит один из толпы и в два штриха выпускает то, чего эти монстры никак не выпустят…
    И так во всем.

    Странно как то.

  5. Добрый день!
    Вроде как, существуют как минимум 2 версии шлюза Xiaomi: одна как у вас, и одна с кольцевым расположением текста, нанесённого на заднюю сторону устройства. Ваша разработка может использоваться в обеих версиях этого девайса?

    1. Их больше 2 версий + еще акара. Версия которая на фото, самая распространенная. Что там внутри в версии с другим расположением текста я не знаю, у меня нет такого шлюза.

  6. Приветствую!
    А можно чуть подробнее описать назначение перемычек?
    И еще, если я собираюсь использовать плату непосредственно в шлюзе, какую обвязку не обязательно распаивать?

    1. Перемычки нарисованы на схеме, там два положения или на uart esp32 или на uart модулей.
      В минимальной конфигурации это esp32+модуль зигби. Прошивать esp32 через внешний адаптер, как и модули. Если нужен звук распаиваете усилитель с обвязкой.

  7. Здравствуйте, у меня нет шлюза от ксиоми, интересует вопрос с питанием платы

  8. Шлюза нет. Корпус нарисую и распечатаю. Питание тоже приторочить не проблема. Объясните как работают светодиоды и где взять для них файлы? Ну или хотя бы распиновку вот этого 14pin коннектора можно посмотреть?
    Я так понимаю, логика работы светодиодов уже есть в прошивке?
    И еще вопрос, а питания через USB для диодов хватит?

    1. Распиновка разъема есть на схеме. Логика работы светодиодов зависит от того что вы прошьете в есп. В usb вы можете подключить в случае необходимости бп на 1-2 ампера.

  9. Здравствуйте. посоветуйте, что лучше взять: JN5169, JN5168 или CC2538 для модернизации хаба и чем они отличаются? и чем шьется JN5168?

    1. JN5168 полностью поддерживается хабом? у него мощность выше чем у cc2538 и ценник ниже

      1. Это зависит от ПО которое вы загрузите. Ссылки на 2 версии гейта есть в статье, поддерживают ли они полноценно nxp можно спросить у авторов.

    2. СС2538 точно проверен, модули от nxp в процессе. Шьются они через uart.

  10. Добрый день. Заказал плату в JCBPCB. мне пришло сообщение, что не могут изготовить — необходимо исправить файл.

    «Check the audit failed reason:

    the spacing between slot to slot or outline require 3mm at least in case of break off , kindly replace with new file .»
    Как его исправить?

    1. Напишите что так и должно быть, пусть запускают в производство.

      1. китайцы упираются :

        The spacing between slot to slot or outline require 3mm at least in case of break off.if you cannot fix the file it is out of our capability,we only cancel this order

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

        1. Десяток человек заказали эти платы на jlcpcb без всяких проблем. Можете отправить им фото готовых плат с указанием что они сделаны по этим файлам у них.

          1. Вот так ответили из jlcpcb на мое письмо с фото готовых плат:

            In order to avoid complaint, we are stop to accept this kind of boards as our rule ,because it is east to broken

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

      2. можете мне прислать файл в формате .json для EasyEDA?
        Я сам исправлю.

  11. Может кто-нибудь предоставить информацию, как загрузить и настроить ZESP на этой плате? Я хотел бы попробовать это, но кажется, что GPIO не совместимы, и трудно найти информацию

    1. Для ZESP нужна SD карта. На сегодняшний день на этой плате прекрасно работает SLS Gateway

    1. У меня нет прямоугольной версии, поэтому ничем помочь не могу.

    1. подскажите пожалуйста зачем в схеме 4 кнопки sw1, можно обойтись одной?

      1. SW1 там одна. Странный вопрос конечно…из серии «зачем в автомобиле 4 колеса, можно одним обойтись?» Они там не просто так.

  12. Какие micro-Usb стоят на плате с поддержки SD карты? Они отличаются от разъемов для первой версии платы и в BOM файле нет ссылки на них.

    1. Не отличаются, можно запаивать и от первой версии. В версии с картой изменен футпринт что бы можно было так же использовать micro USB с «ножками»

  13. Подскажите пожалуйста проверял ли кто работу с e18-2g4z27si модулем?

  14. Подскажите типоразмер светодиодов на суб плату. По каким ключевым словам искать?

  15. Будет ли данный шлюз определяться, как устройство Xiaomi? И возможно ли его будет привязать к Яндекс- станции с новыми zigbee устройствами?

      1. Jager, спасибо но у меня на pcbway есть купон на 5$, платы получатся без платно, только доставка.

      2. Пожалуйста, исправьте в easyeda в исходниках это не сложно.
        Спасибо, С ув. Александр

  16. Имею 10 не нужных СС2538+СС2592 где бы их использовать кроме координатора или SLS.

  17. Очень интересная разработка!
    Не планируете ли вы добавить RJ45 в SLS?
    У меня в квартире на 2.4. ГГц очень много помех от соседских сетей (40 шт!) С удовольствием бы отказался от Wi-Fi шлюза в пользу проводного Ethernet.

  18. Какая разница между версиями с флеш картой и без нее? Если у меня модуль на 16Мб то нужно ли заморачиваться с флеш картой, или она на перспективу развития проекта нужна будет?

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

  19. E75-2G4M10S, E75-2G4M20S эти модули поддерживаются или только в проекте?

    1. Нет, не поддерживаются и теперь смысла уже нет, есть более современные чипы.

  20. Доброго времени суток можете подсказать на микро USB какое сопротивление при правильной сборке на VCC GND ?

  21. Доброго времени суток всем! Два вопроса: 1.Ток потребления SLS без светодиодов? 2, На схеме увидел точку 5V входное, а где она на плате? Хочу запитать без USB- micro. Спасибо.

  22. Jn516x по какому интерфейсу соединён? В ДШ вижу, что SPI, а в схеме только miso подключён, отсюда взаимодействия по SPI не будет работать

  23. Приветствую. Вопрос как звуковой тракт проверить? , на свежеобтесанной плате..

  24. запело, вот так: btn_sw1.lua — audio.setvolume(100)
    audio.playurl(«http://funny-dog.surge.sh/door_bell.mp3»)

  25. Друзья, подскажите, как называется аудио разьем, распаяный на оригинальной плате сяоми и на зеленой плате в статье?

  26. Создание виртуальных свойств
    zigbee.add(IEEE, «myproperies», type)….
    для большинства устройств не работает !!!
    свойство создается но значение пустое и не меняется, в частности для реле-устройств.

  27. После перехода на z2m остались без дела 4 шлюза и я задумался дать им новую жизнь 🙂

    Почитал комментарии и понял, что стоит использовать CC2652, что стоит учитывать при использовании этого чипа, распиновка такая самая, что изначально на плате?
    Есть ли возможность, например, оставшиеся три шлюза распаять в той же комплектации, что и первый координатор, но использовать как рутер с использованием динамика и подсветки?

  28. Добрый день! Сделал устройство на e18 ms1 pcb, которое должно отслеживать нажатие кнопки. Прошивку сделал с помощью Zigbee Configurable Firmware v2.5 с сайта ptvo.info. К шлюзу SLS подключается. Что бы я не изменял в прошивке, во вкладке «states» только 2 параметра linkquality и trSeqNum, который увеличивается при каждом нажатии кнопки. А состояния «вкл/выкл» нет. Во вкладке «info» есть input clusters GEN_ON_OFF.
    Куда смотреть, что я делаю не так?

    1. Сконфигурировать правильно прошивку ptvo. Лучше обсуждать в чате ptvo в телеграм.

  29. На схеме E18-MS1PA-PCB, P2_0 — подключен к GND — зачем ?
    Или где про это прочитать ?

    1. Это были особенности прошивки на тот момент, сейчас собирать эту плату с E18 нет никакого смысла.

  30. Добрый день. Можна использовать Е72 на модуле с картой микро СД?

Добавить комментарий