Шлюзы и координаторы
Какие бывают шлюзы и другие координаторы Zigbee-сети. Как собрать, где купить и заказать
Шлюзы
Шлюзы - это устройства, которые позволяют внешним приложениям взаимодействовать с Zigbee-устройствами и сетью вцелом.
Обычно, каждый производитель Zigbee-устройств поставляет также собственный шлюз. Такой шлюз организует сеть, управляет устройствами и их подключением, а также отправляет куда-то в облака все данные с этих устройств. Всё для того, чтобы мобильное приложение тоже смогло получить эти данные и вы смогли их использовать.
Некоторые щедрые производители дают возможность подключаться к своим шлюзам локально (developer mode, не обращаясь в облако) и получать данные об устройствах внутри локальной сети. С такими шлюзами очень хорошо можно интегрироваться и именно это их свойство используют при подключении их к системам "умного дома".
В большинстве случаев, шлюзы могут обслуживать только устройства своего производителя. Поэтому, для организации сети из разнородных устройств, придётся создавать несколько различных сетей на различных шлюзах.
Универсальные Zigbee-шлюзы
Но в природе существуют и универсальные шлюзы, которые поддерживают работу с устройствами разных производителей и не шлют данные куда-то далеко, а предоставляют их локально в сети (по wifi в основном) или через USB/UART.
Все они отличаются чипами, на которых построены и подходами к реализации.
Аппаратные:
Программные:
- Zigbee2mqtt TI cc253x: cc2531, cc2530, cc2538
- deConz: Raspbee, Conbee
- ZiGate
Координаторы в виде USB "стиков"
Координатор Zigbee V2 (СС2530+CC2592)
Координатор Zigbee V3 (СС2538+CC2592)
Координатор Zigbee от Texas Instruments (СС2531)
http://www.ti.com/tool/CC2531EMK
Устройства на чипах TI cc253x
Что за чипы такие, в чем разница между ними и что за устройства на них делают.
Для Zigbee-устройств используют в основном 3 вида чипа компании TI:
- cc2530 - дешевый и проверенный чип с 8Кб памяти
- cc2531 - такой же дешевый и проверенный чип с 8Кб памяти, но имеющий контроллер USB на борту
- cc2538 - с процессором Cortex-M3 и 32Кб памяти
Но на самом деле есть еще cc2630, cc2650, cc2652r. Это уже относительно новые чипы, поэтому дорогие и не проверенные.
Чипы cc253x привлекательны своей низкой ценой и имеют свою нишу в линейке чипов поддерживающих Zigbee. Именно поэтому достаточно много китайских Zigbee-устройств сделаны на этом чипе.
Сами чипы не сильно интересны. Больше интересны уже готовые модули и устройства. В модулях к чипам добавляют различные усилители, соответственно появляющиеся устройства бывают либо с усилителями, либо без.
Для работы с этими чипами есть специальный SDK (код на основе которого пишутся прошивки) - Z-Stack. В нем реализованы как функции координатора, так и функции роутера и конечного устройства. Есть несколько примеров для изучения.
Координаторы и роутеры
cc2531
cc2531 - самый популярный вариант Zigbee-стика с подключением в USB порт. Его преимущество в том что он продается в готовом для эксплуатации виде (нужно только прошить прошивку).
Наличие USB позволяет использовать стик практически с любой системой. Выпускаемые виды стиков в основном используют антенну на плате и поэтому имеют не очень большой радиус действия 5-10м. в помещении.
В последнее время появились в продаже стики с внешней антенной.
С соответствующей прошивкой может выступать как координатором, так и роутером. Так же это популярный инструмент для изучения Zigbee сети.
cc2530
cc2530 выпускается в виде различных модулей, как с внешней, так и с внутренней антенной. Внешняя антенная дает дополнительное преимущество и увеличивает радиус действия устройства. Используются антенны для частоты 2.4GHz.
Для работы с этими модулями используется UART-соединение, либо напрямую, либо через UART TTL - USB.
С соответствующей прошивкой может выступать координатором, роутером и конечным устройством.
сс2530 + PA
Для чипов cc2530 часто применяют усилители сигнала (PA, Power Amplifier) для увеличения дальности распространения сигнала (зоны покрытия) и повышения чувствительности. Обычные модули cc2530 и cc2531 работают с мощностью 4dBm, с усилителями можно достичь показателей в 20dBm.
В основном применяются 3 вида усилителей:
- cc2590 усилитель до 14dBm
- сс2591 предыдущая версия усилителя до 22dBm (не рекомендуется TI, но еще применяется в модулях и устройствах)
- сс2592 усилитель до 22dBm, рекомендуется вместо cc2591
- RFX2401 или RFX2401C - усилитель до 22dBm, применяется некоторыми производителями
Все эти усилители поддерживаются Z-Stack. Программное управление этими усилителями реализуется разными способами. Поэтому при использовании таких модулей следует использовать прошивки, собранные специально для указанных усилителей.
Также, бывают случаи когда разработчик модуля отклонился от рекомендации TI по управлению усилителем и подключил усилитель к другим пинам чипа - нужна пошивка, в которой указаны соответствующие пины модуля.
Вот пример сравнительной таблицы модулей от компании EBYTE, где видно различную мощность усилителей и дальность работы (в идеальных условиях конечно):
Устройства и модули с усилителями потребляют больше энергии и поэтому при их использовании необходим более мощный блок питания!
Примеры
Усилитель RFX2401 |
Усилитель cc2592 |
Усилитель cc2591 |
с модулем GBAN, усилитель cc2591/RFX2401 |
Усилитель cc2591 |
Усилитель cc2592 |
cc2538
На этот чип обратили внимание относительно недавно, как на следующий этап развития линейки cc2530/cc2531.
Его особенность в том (относительно предыдущих чипов), что значительно изменилась архитектура процессора (теперь тут Cortex-M3) и увеличилась доступная оперативная память (32Кб). Это даёт прирост в производительности и объеме обрабатываемых данных - можно значительно увеличить размер сети с координатором на этом чипе.
И еще одна особенность - модули и устройства на этом чипе значительно менее распространены в розничной продаже.
Существуют модули как без усилителя, так и с ним (в основном используется усилитель cc2592).
ZESP
Этот шлюз-координатор задумывался как самостоятельное устройство для поднятия zigbee сети и возможности управления ею без использования систем УД, но для большей совместимости добавили трансляцию данных через MQTT
Схема устройства достаточно проста при наличии готовых модулей потребуется минут 10, соединяем согласно таблице выводы есп32 и сс2530
примерно так позже будет своя платка для устройства
Прошиваем с помощью нашего мультифлешера в два этапа, скачиваем и распаковываем флешер
заходим на вкладку ZESP
выбираем ком порт на котором села наша плата с есп и жмем
процесс ни как не визуализируется поэтому ждем пока исчезнут песочные часики, не более трех минут
прошивка уже содержит в себе агента для работы с модулем сс253х, активируется он перемычкой между выводом IO21 и GND в ЕСП32, в общем ставим перемычку и переходим на вкладку [arduino CC]
в архиве флешера уже содержится прошивка для модуля сс2530 в папке VLK_DIY_Multi_Flasher\firmware\ZESP ее и выбираем, ну а далее все как в инструкции к флешеру подключаемся кнопкой [Connect], стираем чип кнопкой [Chip Erase] далее [Write]. все просто...
После прошивки снимаем перемычку с IO21, жмем ресет или выключаем включаем модуль, после перезапуска наш шлюз готов к настройке и работе.
Кто уже работал с чипами ESP тот знает что он может работать как в режиме точки доступа(создает свою сеть) так и в общей сети, не настроенный шлюз создает свою точку доступа с названием ZESPXXXX находим ее
и подключаемся, пароль adminxxxx где хххх цифры из названия сети в моем случае admin5D21
открываем браузер и переходим по адресу 192.168.4.1 для первичной настройки сети
сохраняем и перезагружаем устройство, если все правильно ввели то перейдя по адресу который вы назначили откроется вебинтерфейс
жмем меню и заходим в настройки
настраиваем подключение к MQTT активируем его если надо, сохраняем и перегружаемся
так как у нас свежепрошитый модуль СС2530 его нужно инициализировать жмем меню
после окончания процесса наш шлюз готов полностью к работе, для работы устройств в сети zigbee их необходимо пригласить в сеть жмем кнопку
и поочереди активируем каждое устройство(как смотрим инструкцию к нему) к примеру keypad_20 на текущий момент активируется длинным удержанием кнопки 1 до характерного звука зумера и быстрого моргания светодиодом(очистка памяти перезагрузка), после нужно отпустить кнопку дождаться включения светодиода и однократным нажатием активировать привязку, как только устройство привяжется (появится в списке) нажать любую кнопку она отправит свое состояние и уйдет в спячку до следующего нажатия.(прошивка будет обновляться поэтому возможно изменю процесс, но пока как есть)
после подключения устройства оно сможет отсылать данные внутри сети
устройство находится в стадии разработки поэтому функционал и интерфейс будут меняться если есть конструктивные предложения или пожелания присоединяйтесь к группе в телеграмм https://t.me/zesp32
UPdate:
добавили функцию прошивки модулей непосредственно из интерфейса, компьютер больше не нужен :)
SLS Zigbee Gateway
Общие сведения
Шлюз выполняет роль координатора Zigbee и позволяет:
1) Использовать большинство доступного Zigbee оборудования. Список поддерживаемого и протестированного обрудования доступен по ссылке. Новое оборудование может быть добавлено после обсуждения с нами.
2) Отказаться от необходимости использования облаков производителей устройств. В качестве альтернативы, предлагается использовать облачный сервис Smart Logic System, либо нативные приложения для Android и Apple iPhone (в разработке).
3) Использовать распространенные локальные системы автоматизации, такие как MajorDomo, ioBroker Smarthome, HomeAssisiant, Node-Red и др. Для интеграции с этими системами используется протокол MQTT. Структура топиков протокола MQTT идентична проекту zigbee2mqtt, поэтому для использования и интеграции шлюза нет необходимости изучать скриптовые языки указанных выше систем, так как протокол в основном уже доступен с помощью модулей расширения.
Самостоятельная сборка шлюза
В качестве аппаратной начинки шлюза используется современный микроконтроллер ESP32-WROVER-B от Espressif, который согласно даташиту с сайта производителя может одновременно работать с WiFi и BLE, имеет достаточный для работы шлюза объем оперативной памяти и хорошую производительность. Еще одной полезной особенностью данного чипа является доступность написания кода в Arduino IDE или PlatformIO, а также его цена.
Работоспособность протокола zigbee в шлюзе обеспечивает трансивер от Texas Instruments сс2538 с усилителем сс2592.
Пользователем @Nick7zmail разработан корпус для печати на 3D-принтере.
Более подробная информация по сборке шлюза описана на сайте modkam.ru
Прошивка шлюза
После сборки платы необходимо с помощью программатора j-link прошить трансивер сс2538+сс2592. Более подробно информация по перепрошивке разобрана в статье Прошиваем СС2538 с помощью J-Link на сайте modkam.ru. Прошивку трансивера для работы через UART можно взять тут
Далее необходимо с помощью micro-usb кабеля прошить чип ESP32.
После подключения шлюза к персональному компьютеру с помощью micro-usb кабеля, в обязательном порядке должен появиться COM-порт. Если порт не обнаруживается в системе, то необходимо проверить в ОС наличие драйверов для сh340.
Актуальные прошивки SLS шлюза можно найти в канале новостей или в официально github проекта.
Если прошивка установилась корректно, необходимо настроить WiFi, и провести конфигурирование портов GPIO, шлюз готов к работе.
Сопряжение устройств
Для добавления устройств, выберите режим сопряжения из меню Zigbee -> Join.
Карта сети
Логическая карта сети доступна из меню Zigbee-> Map
Скрипты и автоматизации
В шлюзе SLS Zigbee Gateway доступны следующие виды автоматизаций:
1) SimpleBind
2) Скрипты Lua
3) Binding средствами протокола Zigbee
Интеграция с системами умного дома
Для интеграции с MajorDoMo разработано дополнение. Интеграция с Home-assistant описана в инструкции. В скором времени будет реализован механизм discovery для home-assistant. Также доступен вариант управления устройствами шлюза через HTTP API. В среднесрочной перспективе будет реализована работа с оборудованием BLE.
Полезные ссылки
Руководство по использованию шлюза