Jste zde

Testování funkčnosti Zigbee zařízení II.

Bezdrátových systémů pro řízení inteligentní domácnosti je v poslední době hodně. Postavit univerzální testovací systém, který bude sloužit při vývoji, pro dlouhodobé testy a pak pomůže při řešení problémů u zákazníky není jednoduché, ale není to nereálné. Vždy se vyskytnou situace, se kterýma se nepočítá, nicméně tester je tu od toho, aby našel způsob, jakým způsobem spolehlivě testovat.

V "Prvním díle testovaní funkčnosti zigbee zařízení" jsme se věnovali teorii a teď se budeme věnovat praxi. Za úkol máme otestovat tři typy zařízení pro automatizaci budov, které komunikují po Zigbee – Dimmer, Shutter a Switch (Stmívač, Ovládání žaluzíí a Spínač). Každé zařízení je ovládáno tlačítky a má buď jeden nebo dva výstupy. Pro ovládání je také možno použít speciální vstup - Side Control, na který se může přivést 230V napětí z externího tlačítka.

Základem testování je sestavní testovacího pracoviště tzv. Test Bench. Pro automatizované testy jsme zvolili nástroj TestStand od National Instrumets, který se také používá ve výrobních linkách na tzv. End of Line testy – čili výrobní testy. TestStand mocný nástroj, který dokáže spouštět scripty napsané v různých programovacích jazycích. My budeme využívat Labview a Python skripty.

Labview využijeme pro ovládání měřících karet od National Instruments – Analogové a digitální vstupy a výstupy. Dále ho využijeme pro komunikaci s HomeLynkem. HomeLynk je zařízení, které se používá pro automatizaci budov pomocí sběrnice KNX. Komunikace probíhá pomocí http requestů. KNX zařízení jsme zvolili kvůli tomu, že se věnujeme vývoji a testování KNX zařízení, a tak máme zásoby vzorků, které lez využít.

KNX Switch actuatory ( relé ) použijeme pro simulaci spínání tlačítka a pro ovládání napájení jednotlivých testovaných zařízení. KNX Binární vstupy využijeme pro detekci výstupu. Obvykle je k výstupu připojena žárovka na 230V. Na výstup shutteru také připojíme žárovky, kde budeme signalizovat pohyb žaluzií dolů nebo pohyb nahoru. Pro chování stmívače použijeme transducer. Na jeho výstupu je umístěn rezistor, na kterém budeme snímat napětí analogovým vstupem. Tím přesně víme, jaký proud protéká výstupem čili na jaké úrovni je stmívač nastaven.

Python skripty využijeme pro komunikaci se speciálním serverem ZAB, který přes dongle v USB komunikuje se zařízením po Zigbee. Přes Zigbee lze vyčítat a nastavovat tzv. atributy, které poskytují informace o daném zařízení. Například lze vyčíst na jaké úrovni je nastaven stmívač. Všechny atributy mají své meze a ty se musí také otestovat. Switch nemusí mít jen funkci spínání, ale pomocí atributů ho lze nastavit jako časové tlačítko. Jednoduchý switch má cca 50 attributů, které se musí otestovat.

Celý testovací systém je přehledně znázorněn na obrázku. DUT je naše testované zařízení – Device Under Test.

 

Ovládání pomocí tlačítek lze jednoduše nasimulovat pomocí relé. Pro ovládání rotačního stmívače bylo zapotřebí otáčet tzv. knobem požadovaným směrem.  První myšlenkou bylo simulovat impulzy z rotačního enkodéru pomocí Labview. Nicméně to má své úskalí. Stmívač si vytváří svou zem, jelikož se připojuje jen pomocí dvou drátů. Fáze a výstup. Při pokusu jsem si napájecí napětí počítače, osciloskopu a stmívače odizoloval pomocí oddělovacího relé. Uvedl jsem je na stejný potenciál. Po připojení karty došlo k výbuchu, jelikož jsem zapomněl na USB počítače, které jsem měl připojeno ke kolegovi do Hubu a on oddělen bohužel nebyl. Výsledek byl zničený vzorek stmívače viz. obrázek a zničené porty na základní desce v pc. Proto jsme volili bezpečnější metodu nastavení stmívače - mechanicky.

 

Použili jsme malý servo motorek, který jsme si upravili tak, aby se dle šířky impulsu točil doprava nebo doleva. Úprava spočívala v odstranění koncových dorazů na mechanických dílech a nahrazení zpětné vazby potenciometrem. Pomocí něj si lze nastavit mezní šířku pulzu, kdy se převrací směr otáček. Podrobný návod naleznete zde. Servo pohon je napájen 5V a řídící signály se generují pomocí měřící karty USB - 6210 a skriptu v Labview, který není složitý. Tento skript se spouští v TestStandu.

Připevnění servomotru na hřídel stmívače již bylo jednoduché. Důležité je umístění do středu osy otáčení.

 

Úplný automatický proces se docílí následujícím způsobem. Vše řídí nástroj Jenkins. Člověk pouze v Testlinku nastaví, které testovací kroky se mají v příslušné verzi fimware spustit. Vývojáři nahrají své části kódu na příslušné místo. Jenkins z nich provede build a zavolá Python skript, který si pomocí Testandu a příslušného testovacího kroku nahraje danou verzi firmware do zařízení. Dle nastaveného testovacího plánu v Testlinku spustí příslušné testy a jejich výsledky uloží zpět Testlinku. Po vykonání celého procesu tester projde testovací kroky, které selhali a chyby vloží do Bugs tracking systému popřípadě provede podrobnou analýzu. Celý proces se podařilo automatizovat díky nástroji TestStand, který má silnou podporu API. Nejen, že dokáže spouštět a řídit skripty v jiných programovacích jazycích, ale může být ovládán jinými aplikacemi pomocí svého API.

Závěr

Automatizace testů je důležité nejen během vývoje, ale také po uvedení produktu do prodeje. Testy by měli pokrýt celou funkcionalitu, ale v dnešní době není možné tohoto cíle dosáhnout. Snaha je se přiblížit 100% pokrytí. I tak se stane, že zákazník narazí na problém, který je potřeba odstranit, popřípadě přidat novou funkcionalitu a zopakovat celé testy znovu.

Uvedený postup se týká testování jednoduchého zařízení - spínač ovládaný přes Zigbee či mobilní aplikaci, které sepne světlo či nastaví žaluzie do požadované úrovně. Správně navržený systém testování je důležitý pro úspěšný vývoj a zároveň poskytuje podporu v řešení problémů u zákazníků. Použitý chip pro komunikaci Zigbee, lze přepnout do Bluetooth a tím zařízení získá nové funkce. Systém je adaptivní. Místo použití skriptů pro komunikaci Zigbee se použijí skripty pro Bluetooth. Vytvoří se plán v Testlinku pro Bluetooth, napíší se skripty pro Bluetooth a může se začít testovat, Univerzálnost je hlavní vlastností celého testovacího systému, jelikož nikdy nevíte, co po vás v budoucnu budou chtít.

Hodnocení článku: