Обновляем шлюз 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 то это не проблема, плату можно использовать автономно. Для этого сделал проект корпуса под 3D печать с полупрозрачным  элементом  из  акрила.и субплату со светодиодамино, так как окончательно не собрал и не испытал файлов пока не будет. По корпусу будет скорее всего отдельная статья.

 

Запись опубликована в рубрике handmade, Железо с метками , , , . Добавьте в закладки постоянную ссылку.

9 комментариев на «Обновляем шлюз Xiaomi»

  1. nail163 говорит:

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

  2. AvdeevSV говорит:

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

    • Jager говорит:

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

  3. vladimir karpenko говорит:

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

    • Jager говорит:

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

      • AvdeevSV говорит:

        А щелчки в начале/конце воспроизведения это аппаратный косяк?

        • Jager говорит:

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

  4. Oleg говорит:

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

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

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