Приставку H96max на RK3318 можно приобрести тут: https://alii.pub/6ten7r?erid=2SDnjeHU55r
CC2652p: https://alii.pub/6u0uj7?erid=2SDnjeSa7Ut
USB/TTL конвертор: https://alii.pub/6u0umb?erid=2SDnjcaMMPe
Антенна Wi-fi: https://alii.pub/6u0uo2?erid=2SDnjdaAsP6
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В прошлой статье, я Описал, как установить сервер умного дома Home Assistant на приставку (TVBOX) H96max с процессором rockchip RK3318. И когда сделал видео еще по этому поводу, сказал, что могу сделать встроенный zigbee на приставке. И многим – эта идея понравилась. Вот сейчас в этой статье Вам и расскажу как это сделать.
Идея следующая: Взять ZIgbee контроллер CC2652P. Подключить его к UART интерфейсу приставки (внутри на плате). И все это будет работать в закрытом корпусе и usb еще останутся свободные.
ну что-ж приступим.
Подготовка контроллера CC2652P.
Контроллер cc2652p нужно прошить, прошивкой, которая сделает из контроллера координатор. А уже в качестве координатора мы настроем его в программе zigbee2mqtt.
Как прошить zigbee контроллер cc2652p, я описал в отдельной статье, так как данный контроллер можно не только использовать в связке с приставкой.
В общем подготавливаем контроллер как координатор по вот этой статье:
Прошивка Zigbee контроллера CC2652P с помощью USB/TTL программатора.
После того как все прошьете, приступим к следующему шагу.
Подключение Zigbee контроллера CC2652P к UART интерфейсу приставки H96MAX.
Сначала давайте все-же найдем uart интерфейс на плате TVBOX приставки H96max. Вот фото платы, и там помечены 3 пина:
Это фото мне прислали из форумов в интернете, и тут описаны 3 пина uart интерфейса.
Но они у меня перепутаны местами. У меня выглядит распиновка следующим образом RX, GND, TX – в таком порядке если смотреть на фото.
Я все-же склоняюсь, что тут просто подписали какие пины подключать usb/ttl конвертора. Так что ориентируйтесь на мою сноску RX, GND, TX.
По питанию Вариант рабочий но устаревший, новый будет ниже:
Но, 3х пинов нам мало, нам же нужно еще питать контроллер CC2652P. Питается он от 3.3 вольт.
Я нашел питание, где 4 контакта. Там 2 средних контакта, это 3.3 вольта. Но при подключении питания на cc2652p, напряжение падает, до 2.2 в. И их мало, для нормальной работы стика.
По этому, я взял 5 вольт, возле питания основного. И с помощью dc-dc преобразователя, понизил питание с 5 вольт до 3.3 вольт.
Преобразователь питания я взял вот такой: https://alii.pub/6u0wvs?erid=2SDnjcXSjeG
Подключить такой dc-dc преобразователь очень просто. Нужно Взять землю с платы приставки H96max и подключить к среднему контакту dc-dc преобразователя.
К пину V1 Dc-dc преобразователя, нужно подключить 5вольт которые я беру рядом с основным питанием платы приставки.
А на выходе dc-dc преобразователя, на пине Vo, будет как-раз наши необходимые 3.3 вольта, которые мы подключаем к Zigbee контроллеру cc2652p.
Ниже показываю где взять на плате еще одну землю GND и +5 вольт:
Ну и по итогу у меня получилась вот такая каша из жёстких проводов витой пары, так как не нашел мягких под рукой. У Вас наверняка будет гораздо аккуратнее:
Так-же прикладываю распиновку zigbee контроллера CC2652P:
НУ и конечно же таблицу подключений нам надо по итогу:
TV BOX H96MAX RK3318 | CC2652P |
RX | DIO_13 |
TX | DIO_12 |
3.3 вольта преобразованные из 5 вольт | VCC |
GND | GND |
Все подключили по схеме, теперь переходим к следующему этапу.
Новый вариант подключения Zigbee модуля cc2652p:
Ну и как обычно водится с хорошими проектами, ребята уже сами его улучшают. Так собственно и тут вышло. Нашли все-же питание 3.3 вольта на плате, по этому городить с dc-dc преобразователем ненужно ничего.
Схема с подключением модуля cc2652p сразу на плате с подписью пинов (это обратная сторона платы), тут:
Так-же у одного человека пришла приставка на зеленой плате и там таких контактов небыло. Но распиновку тоже узнали уарта на ней, по этому если у когото такая же плата то прикладываю ее рапиновку:
Установка Операционной системы Armbian и сервера умного дома Home Assistant.
Как установить ОС Armbian, а в последующем на нее установить Home Assitant, я уже описал в статье, на которую просто оставлю тут ссылку. Так что этот шаг нужно проделать перейдя по ссылке:
Установка Armbian и Home Assistant на TV Box H96 Max на процессоре Rockchip RK3318
Ну а далее, после установки Home Assitant и Armbian приступаем к следующему шагу
Отключение Debug на uart интерфейсе приставки H96max на RK3318.
Значит, смотрите. Тот UART интерфейс который выведен на приставке предназначен, для того, чтоб подключиться к консоли приставки, авторизироваться и производить настройки. Так-же видеть этапы загрузки и ошибки, если они появляются, до включения монитора.
Особенность UART интерфейса, такая, что к нему можно подключиться только одному устройству или программе. Так как этот интерфейс работает в режиме вывода консоли, то он у нас всегда в системе занят.
Наша задача его освободить. Делается это очень просто. Нужно просто ввести пару команд в операционной системе armbian.
В общем debug этот интерфейс имеет название /dev/ttyS2 . Вот его и будем высвобождать.
Итак, сначала вводим команду:
sudo lsof -n | grep /dev/ttyS2
Она выведет нам, занят ли чем-то интерфейс ttyS2 или нет. Если ничего не вывело, то он свободен, но в нашем случае он занят.
Из приведенного скрина выше видим, что порт ttyS2 действительно занят программой agetty. А вот порт для примера ttyS3 свободен и ничего не вывел.
В общем далее приступаем к отключению программы aggety от порта ttyS2.
Преходим в папку systemd:
cd /etc/systemd/system
В этой папке нам нужно отключить службу serial-getty@ttyS2.service
systemctl stop serial-getty@ttyS2.service
Командой выше мы останавливаем serial-getty и он больше не держит наш интерфейс ttyS2. Но после перезагрузки, он снова его схватит. По этому нужно еще выполнить следующую команду:
systemctl mask serial-getty@ttyS2.service
после ввода этой команды, перезагрузка уже не запустит serial-getty и порт ttyS2 будет всегда свободен.
Установка и настройка Mosquitto brocker.
Следующие шаги уже будем проводить в Home Assistant.
А именно нужно установить и настроить MQTT сервер Mosquitto brocker.
Для этого в Home Assistant переходим в Настройки-> Дополнения -> Магазин дополнений и устанавливаем оттуда Mosquitto Brocker.
После установки Mosquitto brocker и перед его запуском, нужно зайти во вкладку “Конфигурация” этого аддона и прописать там логин и пароль для подключения к mqtt.
задаем там логин и пароль и нажимаем кнопку сохранить.
После этого запускаем дополнение Mosquitto Brocker.
Теперь переходим в Настройки -> Интеграции -> добавить новую интеграцию -> MQTT
Ну и тут Вводим в графе “Брокер” ip адрес самого сервера Home Assistant.
Порт 1883
Логин и пароль – те которые задали выше. В моем случае это mqtt mqtt.
Ну и нажимаем кнопочку Подтвердить.
Все на этом настройка MQTT закончена и переходим к настройке Zigbee2mqtt.
Настройка Zigbee2mqtt.
Для начала нам нужно зайти в настройки -> Дополнения -> Магазин дополнений -> там нажать вверху троеточие и добавить новый репозиторий.
Сама ссылка которую нужно вставить вот: https://github.com/zigbee2mqtt/hassio-zigbee2mqtt
После этого нужно перезагрузить Home Assitant и в магазине Дополнений появится наше дополнение Zigbee2mqtt, которое нам нужно будет установить.
Ну и после установки, zigbee2mqtt не запускаем, а переходим в Конфигурацию этого дополнения и нам тут нужно прописать порт. В графе Serial
А именно:
port: /dev/ttyS2
После этого все сохраняем и запускаем аддон Zigbee2mqtt. И все у Вас должно работать.
Вот для примера я добавил датчик открытия двери:
В совокупности из этих 3х статей мы получаем дешевую приставку как сервер умного дома со встроенным Zigbee.
Единственный минус, это то, что не работает встроенный блютуз. Его я победить не смог((( может у когото из Вас получится.
Если получится обязательно напишите и я добавлю это в инструкцию.