Купить свисток CC2531 можно тут: http://alli.pub/5lekma
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Вступление.
Был у меня Xiaomi gatway второй версии и купленные к нему zigbee датчики. А именно датчик температуры и влажности, датчик открытия дверей и окон. И датчик движения.
Но у меня попросили данный шлюз и датчик температуры. Я его и подарил. А два датчика остались. Плюсом так как я начал увлекаться системой умного дома Home Assistant и видя сколько на рынке всяких устройств работающих по протоколу Zigbee (не только от компании Xiaomi). Понял что покупать Zigbee шлюзы от разных компаний и плодить их, не самое лучшее решение. По этому решил посмотреть есть ли на рынке универсальные устройства.
Как оказалось их довольно не много. И они довольно дорогие. Мой взгляд упал на самый дешевый из них, это CC2531 usb dongle. Версии бывают данного стика разные. Например с RCA антенной отельной или же размазанной на плате. Также данные устройства продают с программатором. Дело в том, что изначально CC2531 прошиты с завода не совместимой прошивкой с Home Assistant. И программаторы какраз служат для того чтоб прошить первый раз для работы с HA.
Но я решил сэкономить и с мыслями (я прошивал все что прошивается и даже больше. Неужели я не прошью данный свисток без программатора?) заказал чисто свисток без программатора.
Перепрошивка.
Стик пришел. Попробовав его подключить к Home Assistant. Конечно ничего не получилось. Так, надо перепрошить. И тут начались проблемы. Первое. У стика очень тонкие контакты. И стандартные для arduino контактные провода не подходят. Вот для примера картинка, как отгибают контакты и припаивают провода, чтоб подключиться:
Ну не беда, подумал я, ведь у меня есть вот такие щупы, очень цепкие и как-раз легко могут зацепиться за данные контакты не отгибая их:
Кстати очень удобные проводочки. Я их покупал для осциллографа на arduino. Купить можно тут: http://alli.pub/5l1nph
Хорошо, с подключением к контактной гребенке разобрались. Теперь давайте разберемся как его прошить.
Существуют несколько Вариантов.
Первый вариант который я попробовал, но к сожалению он у меня не получился из-за того что у меня стоял Python 3+ а данный способ под python 2.7. Так вот этот способ описан тут: https://github.com/kirovilya/CCLib . В этом способе описана прошивка через arduino. Но тут есть несколько неудобств.
Первое, в ардуино 5 вольтовая логика, а в cc2531 3.3 вольтовая. И если напрямую подключить, то контроллер на cc2531 скорее всего сгорит. Чтоб этого не произошло используют делитель напряжения 100ком и 200ком. На странице гитхаба показана схема. Но можно использовать esp8266 в ней 3.3 вольтовая логика и тогда городить с делителем напряжения ничего не нужно.
Второе. Это скрипты python. Они написаны под версию 2.7 И у меня с ней проблемы, потому что у меня многое работает на 3+ и удалять я 3тий не собираюсь. В итоге я пытался доставить не достающие библиотеки. Читал ошибки и увидел комментарий, что прошить через raspberry pi гораздо проще.
По этому я отложил эту затею и решил попробовать способ прошивки через raspberry pi. Вот данный способ я здесь и опишу полностью по шагам.
Для начла давайте подключим проводами raspberry pi и стик cc2531 по вот такой схеме:
Левая часть это контакты CC2531. А правая контакты raspberry pi. Ниже прикладываю распиновку контактов плат
CC2531:
Raspberry pi:
После подключения контактов, вставим стик в usb raspberry pi к которому она подключена контактами и зайдем по ssh на raspberry pi. У меня Raspberry pi под управление rasbian.
Сначала нам нужно скачать папку с программой прошивки со страницы github: https://github.com/jmichault/flash_cc2531.git
Для этого введем команду:
git clone https://github.com/jmichault/flash_cc2531.git
Далее перейдем в скаченную папку:
cd flash_cc2531.git
Теперь давайте проверим видит ли raspberry pi наш стик
Для этого введем команду:
./cc_chipid
Вывести должно id устройства. например так:
ID = b534.
Теперь давайте сохраним прошивку в .Hex файл. Которая сейчас залита в zigbee stick. Для этого введем следующую команду:
./cc_read save.hex
Где “save.hex” это имя прошивки.
Далее прежде чем залить новую прошивку нам нужно очистить память cc2531. Для этого введем:
./cc_erase
После очистки памяти, давайте скачаем прошивку по адресу: https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_3.0.x/bin/CC2531_20190425.zip
Чтоб скачать архив можно выполнить команду:
wget https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_3.0.x/bin/CC2531_20190425.zip
А потом
unzip CC2531_20190425.zip
Но у меня написало ошибку при разархивировании. По этому я скачал данный архив себе на компьютер. Далее запустил программу WinSCP и через нее зашел в папку с файлами прошивки и перетащил туда .hex файл из архива.
После разархивирования введем команду которая запустит прошивку стика:
./cc_write CC2531ZNP-with-SBL.hex
И дождемся окончания заливки прошивки.
Все теперь у нас прошился стик. Как данным CC2531 управлять в home assistant можно узнать в этой статье тут.
Также все перечисленные шаги выполнены в видео: