Home Assistant - Zigbee2MQTT (CC2531 za 4$) i programowanie przez nodeMCU

Home Assistant - Zigbee2MQTT (CC2531 za 4$) i programowanie przez nodeMCU

Jak najtaniej podłączyć urządzenia Zigbee do Home Assistant? Użyć płytki CC2531 za niecałe 4$ (z wysyłką z Chin) najlepiej wersję bez dodatkowej anteny aby było najtaniej jak to możliwe. Do tego aby zaprogramować płytkę użyjemy nodeMCU za niecałe 3$ zamiast "drogiego" CC debugger za prawie 10$ - który potem się nam do niczego nie przyda! 

Ten artykuł pokazuje wyłącznie jak zaprogramować CC2531 wszystkie informacje znajdziesz w artykule: Home Assistant - Zigbee2mqtt (CC2531) konfiguracja

Zasięg

Nie obawiaj się, przeczytaj ten artykuł: jak to jest z tym zasięgiem CC2531 bez anteny?

Co potrzebujemy? 

Ja wybrałem Zigbee2MQTT na CC2531 ze względu minimalne koszta zakupu, mieszkanie 60m2 oraz możliwości. 

Przygotowanie płytki CC2531 - lutujemy!

Home Assistant - Zigbee2mqtt CC2531_1

Czekam na Wasze pozytywne komentarze jak ładnie to zrobiłem :P 

Przygotowujemy firmware

Ściągamy aktualną wersję programowania dla CC2531

Rozpakowujemy firmware i w następnym kroku, konwertujemy plik hex do binary używając objcopy (nie używamy załączonego pliku binary!)

Na Windows: ściągamy objcopy.exe stąd - link jest w odpowiedzi na StackOverflow. Na stronie docelowej, ściągnij wersję która ma najwięcej pobrań. 

Kopiujemy oba pliki do jednego folderu (pamiętaj, bez oryginalnego pliku binary - którego nie używamy) i wykonujemy w CMD następujące polecenie (oczywiście musimy być w folderze gdzie jest plik objcopy.exe oraz CC2531ZNP-Prod.hex czyli używamy CD nazwa folderu aby się tam znaleźć na następnie wprowadzamy to polecenie: 

objcopy.exe --gap-fill 0xFF --pad-to 0x040000 -I ihex CC2531ZNP-Prod.hex -O binary CC2531ZNP-Prod.bin

Może wyskoczyć nam błąd, o braku jakiegoś pliku dll, ściągamy go z internetu i umieszczamy w folderze gdzie znajduje się plik objcopy.exe

Po zakończonej operacji zostawcie włączona konsolę w tym folderze gdzie jesteście.

Przygotowanie CCLoader

Pobieramy i rozpakowujemy CCLoader

Wchodzimy w folder pobrania a następnie katalog Windows gdzie znajdziemy plik CCloader.exe 

Kopiujemy do niego utworzony plik CC2531ZNP-Prod.bin

Przygotowanie Arduino IDE

Instalujemy z Microsoft Store aplikację Arduino IDE - uwaga: biblioteka ArduinoJson ma być wersją 5 - w żadnym wypadku nie instalujemy wersji 6!

Aby płytka została rozpoznana musimy doinstalować jej biblioteki obsługujące płytkę: Plik -> preferencje-> Dodatkowe adresy URL... wklejamy ten link: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Teraz możemy z listy wybrać naszą płytkę NodeMCU 1.0 (ESP-12E module) - koniecznie sprawdźcie port po dołączeniu nodeMCU, będzie nam potrzebny później

Otwieramy w aplikacji Arduino\CCLoader\CCLoader.ino i zmieniamy na następujące wartości przyporządkowanie pinów: 

// Debug control pins & the indicate LED
int DD = 14;
int DC = 4;
int RESET = 5;
int LED = 2;

Pamiętajcie, że numery pinów nie odpowiadają oznaczeniom na płytce, nie sugerujcie się tym, tylko zróbcie dokładnie według zdjęć. 

Programujemy - nodeMCU

W pierwszej kolejności musimy skompilować i wgrać przed chwilą skompilowane oprogramowanie do nodeMCU - robimy to podłączając pod USB płytkę a następnie używamy przycisku wgraj (ten ze strzałką w prawo), po chwili będzie gotowe! Pamiętaj o sprawdzeniu czy na COM6 wykrywa płytkę! W tym kroku nie podłączamy jeszcze CC2531.

Podłączamy

Czas na podłączenie CC2531 do nodeMCU - zgodnie ze schematem, sprawdźcie to 2x, na szczęście nic nie możemy spalić bo zasilanie weźmiemy sobie z USB. CC2531 również musimy zasilić, więc wpinamy do dowolnego portu USB. 

NodeMCU - opis poniżej

Home Assistant - Zigbee2mqtt CC2531_2 Home Assistant - Zigbee2mqtt CC2531_5

NodeMCU CC Pin CC Name
GND 1 GND
D4 7 RESETn
D5 3 DC (Debug Clock)
D6 4 DD (Debug Data)

 

CC2531 - lutowanie wyżej

Home Assistant - Zigbee2mqtt CC2531_4

CC2531 CC Pin CC Name
GND 1 GND
D1/GPIO5 7 RESETn
D2/GPIO4 3 DC (Debug Clock)
D5/GPIO14 4 DD (Debug Data)

Programujemy - CC2531

Oba pliki CCloader.exe i utworzony plik CC2531ZNP-Prod.bin musimy mieć w jednym folderze, wprowadzamy polecenie: 

CCLoader_x86_64.exe [tutaj podaj odczytany w Arduino IDE port COM] CC2531ZNP-Prod.bin 0

Programowanie będzie gotowe za kilka minut. 

Jeżeli coś się zawiesi na dłużej np. Request sent already! Waiting for respond... - rozłącz, wyłącz CMD i spróbuj ponownie zmieniać na  1 wartość 0 jako ostatni parametr.

Może wyskoczyć nam błąd, o braku jakiegoś pliku dll, ściągamy go z internetu i umieszczamy w folderze gdzie znajduje się plik CCloader.exe 

Jeżeli wszystko się udało, to dioda na płytce CC2531 musi się świecić na czerwono - jak nie świeci to coś poszło nie tak. Programujemy jeszcze raz. 

Konfiguracja na Home Assistant

Skoro mamy już przygotowaną płytkę, przejdź do artykułu: Home Assistant - Zigbee2mqtt (CC2531) konfiguracja


Chcesz wiedzieć więcej? Dołącz do naszej grupy na FB - będzie nam też miło jak polubisz nasz Fanpage!