ZigBee - jak zkonstruovat vlastní snímač

Při svých pokusech s chytrou domácností jsem přemýšlel, jak by bylo možné vytvořit vlastní zařízení, které by se dalo připojit do ZigBee sítě. To mě zajímalo z toho důvodu, že výrobci takovýchto zařízení nedisponují výrobky, které by postihly všechny aplikace, které bych chtěl v této síti realizovat, popř. je řeší ne zcela vyhovujícím způsobem, nebo jsou finančně náročné. Dlouho se mi nedařilo najít nic, co by mi dávalo smysl, až jsem narazil na projekt PTVO, který se mi jeví jako velmi zajímavé řešení. Využívá (tedy alespoň primárně) vývojové desky postavené na bázi MCU CC2530.

Mám v plánu pořídit si na Aliexpessu nějakou vývojovou desku + programátor a pokusit se o zprovoznění nejakého zařízení. Pokud se mi zadaří vytvořit něco smysluplného, podělím se o výsledky i na tomto webu (popř. zaktualizuji tento článek).

Co PTVO umí a k čemu slouží

Hlavní "výstupem" projektu je utilitka (Firmware Configuration), která po správném nastavení dokáže vygenerovat firmware (soubor HEX) pro naflešování do vývojové desky s čipem CC2530. Taková deska pak může sloužit třeba jako koordinátor sítě ZigBee, nebo jako snímač (či jiné zařízení) v rámci této sítě, MCU desku lze nakonfigurovat pro vyčtení dat z různých druhů čidel (DH11, DH22, DS18B20, HX711, různých I2C snímačů a zařízení, ale i třeba měřidla energie PZEM-004T či HLW8032, zařízení MODBUS RTU, samozřejmě prostého analogového měření a mnoho dalšího) a nebo pro ovládání výstupních zařízení (relé, LED pásky, PWM výstupy...).

Otázkou pro mě je, bude-li možné takto vytvořené zařízení připojit třeba i do takové sítě jako je Lidl Home, Immax, SonOff apod. Na stránkách projektu na toto téma není žádná indicie (kromě toho, že v jednom z nejstarších článků na webu PTVO lze zjistit, že autor zřejmě začínal se sítí od Xiaomi), autor zřejmě pracuje pouze se sítí systému Home Assistant.
V tomto je jistou nápovědou text v kapitole "
Jak vybrat správný firmware" v odstavci 3., kde se píše o nutnosti parametrizace sítě. To by nasvědčovalo tomu, že PTVO-based zařízení si tyto parametry nenabírá při párování, ale zadávají se ručně při konfiguraci FW. To asi bude pro funkci v proprietální síti (Lidl Home) problém.

Po vlastním naflešování je v některých případech třeba ještě zařízení dodatečně nastavit (kalibrovat rozsahy apod.), což, pokud jsem to správně pochopil, se dá realizovat např. pomocí PC koordinátoru, pomocí Zigbee2MQTT příkazů přes terminál.

Vlastní flešování se pak provádí pomocí nástroje SmartRF flash programmer (ne V2) z webu https://www.ti.com/tool/FLASH-PROGRAMMER#downloads (ke stažení je vyžadováno vytvoření účtu). Dále je k flešování potřeba mít programátor - např.  SmartRF04EB  (popř. včetně příslušné kabeláže v závislosti na provedení MCU desky s CC2530).

Rozcestník webu PTVO:
- základní popis vlastností
podrobný přehled možností vytvořeného firmware
- odkazy na realizovaná zařízení

Níže připojuji překlad se základními informacemi o projektu PTVO, tj. jak vybrat desku pro projekt a jak ji správně zprovoznit. Jedná se o překlad textu z https://ptvo.info/how-to-select-and-flash-cc2530-144/ pomocí překladače Deepl s minimálními úpravami (náhradou nefunkčních odkazů apod.).

Jak vybrat a flashovat CC2530

Jak vybrat desku CC2530

Portály eBay a Aliexpress nabízejí několik desek s čipem CC2530 (klíčové slovo: CC2530). Můžete si vybrat libovolnou desku, ale použijte následující kritéria:

  1. Deska musí mít čip CC2530F256 (obr. 3). Klíčové číslo je zde 256 a znamená 256 KB paměti flash. Většina firmwaru byla zkompilována pro 256K paměť.
  2. Deska může mít mnoho pinů nebo kontaktů. Pokud nemáte páječku, vyberte desku s hlavičkami. Doporučuji vybrat desku, kde má každý pin odpovídající označení. Na různých deskách se může označení mírně lišit: P0.2, P02, P0_2 jsou stejné piny. Deska musí mít alespoň následující piny:

    a) P0.2, P0.3, P2.0 - slouží pro rozhraní UART. Pokud plánujete použít tuto desku místo CC2531 a připojit ji k SBC, jako je Raspberry Pi, pak tyto piny potřebujete. Pokud do této desky nahrajete firmware routeru, pak jsou tyto piny volitelné.
    b) P2.1, P2.2, RST - slouží k nahrávání firmwaru.
    c) GND - uzemnění.
    e) Zdroj napájení (VCC) - může být 3,3 V, 5 V nebo obojí. Tento pin může být označen pouze VCC. Interně čip CC2530 používá napětí 3,3 V, ale výrobce může na desku přidat regulátor napětí a vy můžete použít jakékoliv podporované napětí (3,3 V nebo 5 V, bez rozdílu). Pozorně si přečtěte popis desky ohledně napětí.

  3. Deska může obsahovat další malý čip (obr. 5). S největší pravděpodobností se jedná o zesilovač bezdrátového signálu. Obvykle tyto desky obsahují v popisu "Long-range", "RF front-end", "RF amplifier", "CC2591", "RXF2401". Tyto desky vyžadují speciální firmware. Doporučuji vybrat tuto desku, pokud opravdu máte firmware pro tuto kombinaci hlavního čipu (CC2530) a čipu RF front-end.

  4. Deska může obsahovat vestavěnou anténu (obr. 2, 3, 6) nebo konektor pro externí anténu (obr. 1, 3, 4, 5). Deska s externí anténou bude ve většině případů fungovat lépe.

  5. Některé desky mohou mít kovové stínění nad hlavním čipem a/nebo RF front-endem. Toto stínění chrání desku před rádiovým šumem (dobré). Doporučuji však kupovat tuto desku pouze u prověřených prodejců, protože si nemůžete být jisti čipy pod tímto krytem.

  6. Vzácné desky založené na CC2530 mohou obsahovat rozhraní USB (obr. 6). CC2530 nemá kromě CC2531 nativní podporu USB. Výrobce proto na desku přidává další čip. Přídavný čip implementuje rozhraní USB a ladicí program CC. Proto lze na tuto desku nahrát firmware bez speciálního ladicího programu (CC debugger nebo SmartRF04EB).  Proto na vašem pracovním stole zabere málo místa. Může být užitečná pro vývojáře. Pokud potřebujete pouze jednu desku CC2530 nebo CC2531 pro roli koordinátora, můžete ušetřit. Přečtěte si prosím popis desky, protože rozhraní USB a čip mohou být použity k jinému účelu. Proto tuto desku nemohu doporučit začátečníkům.

 
Ebyte TBH E18 Moje oblíbená: deska s výkonovým zesilovačem a externí anténou EBYTE E18-MS1PA1-IPX (zřejmě nahrazeno E18-MS1PA2-IPX)
 + deska pro snadné pájení a montáž + kompaktní napájecí zdroj (varianta 1 nebo varianta 2) + externí anténa
Kompaktní deska s externí anténou
cc2530 kit  Sada CC2530 s "flešrem" a ladicím zařízením.
Deska s interní anténou, místem pro konektor externí antény a konektorem ladicího rozhraní (kompatibilní s kabelem CC debuggeru, kabel DuPont není nutný).
Kompaktní deska s interní keramickou anténou a konektorem pro externí anténu
Kompaktní deska s externí anténou. Černé provedení.
Deska CC2530 s RF front-endem
cc2530 with USB (exotic) Obr. 7 Deska CC2530 s konektorem USB a přídavným čipem 8051
Předpoklady

Zde je příklad pro nejjednodušší případ, kdy jsou všechny piny připájeny na desce a opatřeny štítky (obr. 1).

  1. Deska CC2530.
  2. Kabel DuPont (5 vodičů, samice-samice).
  3. CC-debugger nebo SmartRF04EB (vypadají velmi podobně).
  4. Kabel USB mezi ladičkou a počítačem (obvykle se dodává s ladičkou, USB-A <-> USB-mini).
  5. Počítač s operačním systémem Windows.
  6. Programátor Flash V1 (V2 nefunguje).
Jak připojit CC2530 k ladicímu modulu
Je to jednoduché. Použijte kabel DuPont a připojte piny na konektoru ladicí jednotky k odpovídajícím pinům na desce.

Poznámka: pokud CC-debugger nedokáže detekovat vaši desku, zkuste navíc připojit pin č. 2 na 3,3 V.

smartrf04eb-pinout.png (536×294)

Deska z obr. 2 je kompatibilní s plochým bílým kabelem obvykle dodávaným s CC-debuggerem nebo SmartRF04EB. Tento plochý kabel lze připojit ke žlutému headeru (červený vodič by měl být připojen ke kolíku č. 1 tohoto headeru).

Poznámka: pokud má vaše deska pouze 5V napájecí pin, musíte k odpovídajícím pinům na desce připojit externí zdroj napájení (5V a GND) namísto 3,3V z ladicího modulu. GND ladicí jednotky a zdroj napájení musí být připojeny současně.

Jak připojit CC-debugger k počítači

Připojte ladicí jednotku k portu USB počítače pomocí standardního kabelu USB. Ve Správci zařízení v počítači by se mělo objevit nové zařízení USB. Pokud jste již dříve nainstalovali program Texas Instruments Flash Programmer, ovladače pro nové zařízení USB se nainstalují automaticky. Ve Správci zařízení byste měli vidět něco jako "SmartRF04EB" nebo "CC-debugger".

Jak vybrat správný firmware

Zde jsou uvedeny příklady pro obecné případy použití. Všechny tyto příklady mohou mít výjimky.

  1. Výběr firmwaru pro správný čip: V našem případě CC2530.
  2. Pokud má vaše deska RF front-end čip, pak musíte vybrat firmware pro kombinaci hlavního čipu a RF čipu (například CC2530 + RXF2401). Například CC2530ZNP-Pro-Secure_LinkKeyJoin_RXF2401.hex.
  3. Vyberte firmware pro síť Zigbee. Zařízení s různými parametry sítě jsou nekompatibilní (nemohou spolu komunikovat). Každá síť Zigbee má následující klíčové parametry:
    - Identifikace sítě (PanId).
    - Bezpečnostní klíč.
    - Číslo rádiového kanálu. Tento požadavek není přísný. Mnoho zařízení Zigbee může skenovat kanály a najít správné číslo kanálu. Některá zařízení Zigbee však pracují pouze s předem definovaným číslem kanálu.
  4. Vyberte firmware pro typ zařízení, který chcete získat z desky CC2530:
    Koordinátor: měl by být připojen k počítači nebo SBC (Raspberry Pi, BananaPi, OrangePi atd.), protože ve většině případů pracuje pod kontrolou počítače. Název nebo popis souboru firmwaru může obsahovat klíčová slova: "koordinátor", "ZNP". Například CC2530ZNP-Pro-Secure_LinkKeyJoin.hex. Firmware ZNP je univerzální, protože pracuje pod kontrolou počítače a může desku konfigurovat podle potřeby, pravděpodobně pro jakoukoli síť Zigbee.
    Směrovač: pracuje samostatně (není propojen s počítačem) a rozšiřuje pokrytí sítě Zigbee. Například CC2530-router.hex.

Můj firmware pro koordinátor a router Xiaomi si můžete stáhnout zde.

Jak flashovat (nahrát) firmware

Ok. Připojili jste debugger a desku.

  1. Spusťte programátor Flash. Váš debugger by měl být v seznamu. Pokud se tam debugger neobjeví, zkuste na debuggeru stisknout tlačítko "Reset".
  2. Vyberte soubor firmwaru pomocí tlačítka "...".
  3. Vyberte následující možnosti.
  4. Klikněte na tlačítko "Provést akce".
flash-programmer-v1.png (704×615)