České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačového inženýrství
Bakalářská práce
Nízkonákladové spínání a kontrola spotřebičů
Vedoucí práce: Ing. Tomáš Vaňát
18. května 2014
Poděkování Děkuji tímto vedoucímu mé bakalářské práce Ing. Tomáši Vaňátovi za cenné metodické připomínky a rady při vypracování této práce. Také bych chtěl poděkovat své rodině za podporu a umožnění studia na vysoké škole.
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval(a) samostatně a že jsem uvedl(a) veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů. V souladu s ust. § 46 odst. 6 tohoto zákona tímto uděluji nevýhradní oprávnění (licenci) k užití této své práce, a to včetně všech počítačových programů, jež jsou její součástí či přílohou, a veškeré jejich dokumentace (dále souhrnně jen „Dílo“), a to všem osobám, které si přejí Dílo užít. Tyto osoby jsou oprávněny Dílo užít jakýmkoli způsobem, který nesnižuje hodnotu Díla, a za jakýmkoli účelem (včetně užití k výdělečným účelům). Toto oprávnění je časově, teritoriálně i množstevně neomezené. Každá osoba, která využije výše uvedenou licenci, se však zavazuje udělit ke každému dílu, které vznikne (byť jen zčásti) na základě Díla, úpravou Díla, spojením Díla s jiným dílem, zařazením Díla do díla souborného či zpracováním Díla (včetně překladu), licenci alespoň ve výše uvedeném rozsahu a zároveň zpřístupnit zdrojový kód takového díla alespoň srovnatelným způsobem a ve srovnatelném rozsahu, jako je zpřístupněn zdrojový kód Díla.
V Praze dne 18. května 2014
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2014 Jan Vojíř. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Vojíř, Jan. Nízkonákladové spínání a kontrola spotřebičů. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2014.
Abstrakt Cílem práce je dostatečně komplexně analyzovat a navrhnout řešení komunikace mezi spotřebiči v rámci jednoho bloku domu nebo větší haly. Řešení se ve svých základech odráží od existujících aplikací a navazuje na ně rozšířením funkcí a zlepšením integrace. Klíčová slova inteligentní dům, komunikace po silovém vodiči, vzdálené spínání spotřebičů, vzdálení kontrola spotřebičů, Java EE, Energia, mikrokontrolér, MSP430
Abstract The aim of this work is to sufficiently analyze and propose solutions to communication between power devices within one block of the house or a larger hall. Solution to its foundations reflects the existing applications and builds on their bases by extending and improving the integration of functions. Keywords intelligent building, communication over powerline, remote switching of power devices, remote control of power devices, Java EE, Energia, microcontroller, MSP430
ix
Obsah Úvod
1
1 Datové komunikace mezi spotřebiči 1.1 Požadované funkce . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Funkční celek . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Využití . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 4 5 6
2 Existující řešení 2.1 X10 Home automation 2.2 KNX . . . . . . . . . . 2.3 DALI . . . . . . . . . R . . . . . . 2.4 Poseidon
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
9 10 12 14 16
3 Možnosti vlastního řešení 3.1 Wifi . . . . . . . . . . . . . . . 3.2 Ethernet . . . . . . . . . . . . . 3.3 Modulace silového vodiče 230V 3.4 Vlastní sběrnice . . . . . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
19 19 22 24 26
. . . .
. . . .
. . . .
. . . .
4 Vlastní řešení 29 4.1 Použitý HW klienta . . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 4.3 Požadavky na SW . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 Výsledné řešení 43 5.1 Testování . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2 Výstupy fungujícího systému . . . . . . . . . . . . . . . . . . . 45 5.3 Cena řešení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Závěr
47 xi
Literatura
49
A Seznam použitých zkratek
55
B Schéma zpapojení klienta a serveru
57
C Diagramy komunikací po sběrnici
61
D Obsah přiloženého CD
63
xii
Seznam obrázků 1.1 1.2
Příklad komunikace spínačů . . . . . . . . . . . . . . . . . . . . . . Master – slave příklad komunikace . . . . . . . . . . . . . . . . . .
2.1 2.2 2.3 2.4 2.5 2.6
Ukáza časování u sinusové nosné vlny . . . . . . . . . . . Příklad protokolu X10 . . . . . . . . . . . . . . . . . . . . Jedno z možných připojení sběrnice KNX . . . . . . . . . Porovnání sběrnice DALI a technologie 0-10V . . . . . . . Porovnání propojení světel s DALI a bez DALI sběrnice. . R DALI. Příklad vzájemné komunikace systému Poseidon s
. . . . . .
11 12 13 14 15 17
3.1 3.2
Blokové schéma realizace powerline komunikace bez IC. . . . . . . Ukázka komunikace opakovače ve vlastní sběrnici . . . . . . . . . .
25 27
4.1 4.2 4.3 4.4 4.5 4.6
30 31 33 34 35
4.7
Blokové schéma propojení hardwaru vlastní implementace . . . . . Schéma zapojení IC TDA5051 do obvodu . . . . . . . . . . . . . . Schéma zapojení mikrokontroléru se senzory . . . . . . . . . . . . . Schéma nejjednoduššího zapojení relé RM50 . . . . . . . . . . . . . Schéma zapojení hallovy sondy ACS712 do obvodu . . . . . . . . . Graf závislosti měřeného proudu na výstupním napětí hallovy sondy ACS712. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Blokové zapojení serveru ke sběrnici . . . . . . . . . . . . . . . . .
5.1
Ukázka grafu ve webové aplikaci vygenerovaného serverem . . . . .
45
B.1 Schéma zapojení klienta s TDA5051, MSP430G2553, displejem, senzory a přepínačem. . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Schéma zapojení serveru pro propojení s počítačem. . . . . . . . .
58 59
C.1 Diagram komunikace klienta se serverem 1. část. . . . . . . . . . . C.2 Diagram komunikace klienta se serverem 2. část. . . . . . . . . . .
61 62
xiii
. . . . . .
. . . . . .
. . . . . .
. . . . . .
4 6
35 37
Seznam tabulek 2.1 2.2
Tabulka ovládacích příkazů X10 . . . . . . . . . . . . . . . . . . . Příklady útlumu signálu 868 MHz . . . . . . . . . . . . . . . . . .
10 16
3.1 3.2 3.3
Příklady Wifi modulů na trhu. . . . . . . . . . . . . . . . . . . . . Příklady Ethernet modulů na trhu. . . . . . . . . . . . . . . . . . . Příklady powerline řešení na trhu. . . . . . . . . . . . . . . . . . .
22 24 26
4.1
Příkazy linuxového serveru pro server na mikroprocesoru přes sériovou linku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
Kalkulace ceny systému s 1 serverem a 5 klienty. . . . . . . . . . .
46
5.1
xv
Úvod Komunikace mezi různými zařízeními již dnes nikoho nepřekvapí. Kvůli stále zvyšujícím se požadavkům zákazníků se výrobci stále snaží posouvat hranice dále a můžeme se klidně setkat s komunikací mobilního telefonu a pračky. Pokud bychom chtěli mluvit o realizaci takového spojení, můžeme přijít na spoustu řešení. Zpravidla se výrobci snaží tlačit cenu co nejníže a tak do svých zařízení vkládají jednoduché WiFi (či Bluetooth) moduly, které se v lepším případě 1 připojí k domácí WiFi síti a na ní pak komunikují například s mobilním telefonem. Toto spojení je mnohdy nedostatečně stabilní, a příliš ani nenaplňuje požadavky levného řešení. V této práci rozeberu různé alternativy spínání a kontrol takových zařízení. Porovnám existující řešení a analyzuji jejich nevýhody. Jako hlavní nevýhodou existujících řešení je cena, která se může vyšplhat až k 30 000 Kč 2 , což je vzhledem ke schopnostem opravdu hodně. Jelikož jsem nenašel uspokojivé řešení spínání a kontroly spotřebičů, které by garantovalo stabilní komunikaci a nevyžadovalo velké náklady, rozhodl jsem se s řešením přijít sám. Moje řešení již v základu slibuje nadstandartní vlastnosti a velké možnosti rozšíření. Protokol jako takový je dále škálovatelný a rychlostí schopný přenášet mnohem více informací než po něm v mé práci chci (viz. 5.1.3), proto je také otevřený dalšímu rozšíření a novým možnostem. Takto vytvořený systém se dá zasadit do buď již existujícího systému inteligentního domu jako další modul, nebo může sloužit jako samostatný základní stavební kámen vlastního inteligentního domu.
1 2
V horším případě jde o AdHoc WiFi síť, takže je vzdálenost ovládání dost omezená. Například v případě KNX z 2.2. Kalkulace z 5.2
1
Kapitola
Datové komunikace mezi spotřebiči Předtím, než začneme mluvit o datové komunikaci mezi spotřebiči, musíme si nejprve říci, co myslíme spotřebičem. Elektrický spotřebič v užším významu je elektrotechnická součástka, která mění (spotřebovává) elektrickou energii na jiný druh energie. [1]. Tuto definici omezíme na takové spotřebiče, které pracují na střídavém napětí, které je vyšší než 230V. Budeme se tedy bavit o spotřebičích v domácnostech, svítidlech a zařízeních zpracující elektrockou energii na mechanickou a tepelnou 3 . Tyto spotřebiče jsou navrženy pro obsluhu klientem jejich vlastním rozhraním, které je většinou různé. Pokud bychom chtěli například zapnout světlo v jedné místnosti, které se spíná jednoduchým vypínačem a s tím zárovneň zapnout elektromotor v místnosti druhé, spínané podobným vypínačem jako světlo, nezbývá nám nic jiného, než fyzicky místa prodrátovat, aby reagovala navzájem na své spínání 4 . Jako jedno z řešení by se mohlo jevit efektivnější propojení jejich spínačů, aby navzájem reagovaly na své změny stavů. A právě o takové komunikaci se budeme bavit. Je to jedna z nejnižších uvažovatelných úrovní, protože nekomunikujeme přímo se zařízením, ale spíše s jeho elektrickým přívodem energie. Takže na vlastní ovládání přístroje 5 nebude brán zřetel. Blíže popisuje obrázek 1.1, kde vidíme, že pro naše účely stačí, když komunikace probíhá pouze mezi spínači zařízení, na kterých můžeme stavět další prvky ovládání a kontroly přístroje, které blíže rozvedeme v následující části.
3
Elektromotory nebo topná tělesa a je využívající spotřebiče. Například schodišťovým propojením vypínačů. [2] 5 Myšleno uživatelské ovládání přístroje skrz ovládání 4
3
1
1. Datové komunikace mezi spotřebiči přívod napájení další funkce spínače
Invididuální ovládání zařízení
spínač
další funkce spínače datová komunikace
spínač
zařízení 1
zařízení 2
uživatelské ovládání
uživatelské ovládání
Invididuální ovládání zařízení
Obrázek 1.1: Ukázkové schéma komunikace mezi spínači.
1.1
Požadované funkce
Mluvíme-li o funkcích, které pro vzájemné komunikaci potřebujeme, musíme se omezit pouze na to, co fyzicky ovlivnit můžemet. Je jasné, že nastavovat složitější zařízení, která se nedají nastavit pouze spínáním a rozpínáním napájení, budeme muset řešit invididuálně (viz Obrázek 1.1 - Invididuální ovládání zařízení). Vzniknou pak různé typy ovládacích zařízení, pracujících společně na stejném principu, které mezi s sebou mohou vzájemně komunikovat bez nutnosti používat další systém. Pokud chceme do funkcí zahrnout i výše zmíněné invididuální ovládání, musíme zohlednit možnosti ovládaného zařízení. Dají se najít zařízení, které vedle svého standartního uživatelského ovládání umožňují ovládání i jinou cestou. Můžeme se setkat s RS-232 ovládanými zařízeními například kotli [3], projektory[4], servery [5], nebo CCTV kamerami[6]. Ale i rozsáhlejšími systémy například programovatelná relé, která může spínat a ovládat (i přes A/D převodníky) více na sobě nezávislých zařízení [7]. Zařízení, která nám neumožňují jiný přístup do uživatelského ovládání, než ten standardní, ale chceme jejich chování naším zařízením měnit, můžeme buď rozebrat a například nahradit spínaná tlačítka našimi spínači, nebo se spokojit s jejich nepřístupností a zařízení jenom spínat. Například u svítidel nebo jednoduchých zařízení, které nemají jiné ovládání než on/off. Což se dá využít nejčastěji, hlavně proto, že to lze použít u jakéhokoliv zařízení. Funkce, které můžeme pomocí datové komunikace mezi spotřebiči realizovat: • U všech zařízení můžeme vzdáleně jednoduše odpojovat a připojovat napájení přístroje. U některých složitějších zařízení by mohl být pro4
1.2. Funkční celek blém s náhlým přerušením napájení. Avšak tato funkce může sloužit jako vzdálený restart, pokud by jiné metody selhaly. Podrobněji 4.1.3. • Další funkce, které nezávisí na připojeném zařízení: – Jednou z funkcí které se jednoduše implementují, je měření příkonu. Je to měření nezávislé na připojeném zařízení. Problém může nastat při měření malých příkonů 6 , kdy se nemusí podařit naměřit dostatečný příkon k provedení měření. Toto měření lze ale využít i k ověření funkčnosti spínání z předchozí funkce, nebo k zjištění disfunkce připojeného zařízení. – Můžeme využívat senzorů okolního světa [8], které pomůžou diagnostikovat nefunkčnost zařízení, nebo pouze kontrolovat prostředí, ve kterém se zařízení nachází. Lehce lze navrhnout senzory jako: ∗ Senzor teploty pro kontrolu tepelných podmínek okolo zařízení. Dá se využít i k případným korekcím ostatních senzorů, jejichž funkce se mění s teplotou. ∗ Dalším vhodným senzorem může být senzor okolního světla. Hodí se například pro ověření toho, jestli se světlo stkutečně zapnulo, nebo ne. ∗ Trochu netypickými senzory jsou senzory chemických veličiny. Ty nejjednodušší které by se daly použít, jsou senzoru CO2 7 nebo CO 8 pro kontroly ovzduší, ve kterém zařízení pracuje. Podrobnější definice a implementace senzorů viz. 4.1.4. • Poslední funkcí je výse zmiňované invididuální ovládání zařízení. Taková funkce bude vyžadovat větší úpravy zařízení oproti ostantím definovaným funkcím, které mohou být realizovány vždy.
1.2
Funkční celek
Po definici požadovahých funcí si určíme, jak by měl výsledný systém v praxi fungovat. Fyzickou vrstvu komunikace nyní necháme stranou (tu vyřešíme v části 3) a budeme se bavit pouze o datové komunikaci. Systém by měl být stabilní a počítat s možným datovým rušením jak od připojených zařízení, tak s případným elektromagnetickým rušením po cestě signálu k druhému zařízení, což bude do značné míry záviset na použitém médiu komunikace. Měl by počítat s možností rozšiřitelnosti, aby do něj mohli být přidávány moduly s různými funkcemi. To znamená, že pro systém je 6
Jako například malá nabíječka nebo LED světla. Návrhy řešení tohoto problému viz. 4.1.4.1 7 Oxid uhličitý, vydechují ho živé organismy. [9] 8 Oxid uhelnatý, vzniká při nedokonalém spalování [9]
5
1. Datové komunikace mezi spotřebiči
master odpověď z adresy 2
požadavek na adresu 2
sdílené fyzické médium zahodí zahodí
slave
přijme
odpoví
adresa: 1
slave
slave adresa: 3
adresa: 2
Obrázek 1.2: Ilustrační schéma komunikace mezi master–slave. Master odešle požadavek na sběrnici, která je sdílená přes všechny slave. Odpoveď zašle pouze slave s adresou požadovanou masterem.
nutné navrhnout modul s minimální konfigurací pro fungování spojení a na něm stavět další ovládací komunikaci se zařízením. Tento minimální modul bude obsahovat funkce, které nevyžadují připojením specifického zařízení. Budou do něj spadat první dvě funkční skupiny z předchozí části 1.1, které zahrnují spínání a jednoduché měření. Jako schéma komnunikace se nejvíce hodí komunikace master–slave (klient– server). Kdy master vysílá požadavky na sběrnici pro určitou adresu, kde vyčkávají slave, které pokud požadavek patří jim, odpoví na něj viz. Obrázek 1.2 (podobně jako u I2C[10] sběrnice kromě multimaster vlastnosti). Všekerá logika je obsažena v masteru, který shromažďuje naměřená data ze senzorů. Jednu z možností realizace popisuji v sekci 4.3
1.3
Využití
Možností, kde se dá využít datové komunikace mezi spotřebiči, je velké množství. Hlavně se zaměříme na ta využití, která nelze přímo realizovat vyšší komunikací například pomocí internetu buď kvůli vysoké ceně, nebo kvůli zbytečné složitosti takového řešení. Bude se jednat o systémy, které takovou vyšší komunikaci nepodporují. 6
1.3. Využití • Jako jedno z použití se nabízí využití takového systému v domácnosti. Zde jsou spotřebiče, které je nutné téměř každodenně ovládat, jako kotel, světla, rolety, garážová vrata nebo ohřev vody. Většinou mají různé uživatelské ovládání a jsou rozesety různě po domácnosti. Spojením minimálně jejich spínačů se již dá dosáhnout použitelného řešení, pokud pak přidáme ještě měření spotřeby, teploty a osvětlení, můžeme monitorovat teplotu i sluneční svit v různých částech domu podle umístění zařízení. V kombinaci s kotlem podporujícím rs232 rozhraní [3] se dá celkem rozumně nastavovat teplota v celkém domě podle použitých snímačů. Pokud dobře zabezpečíme server a poskytneme potřebné api, můžeme takto monitorovat dům odkudkoliv. • Dalším příkladem použití takového systému by mohla být výrobní fabrika. Kde propojením výrobních zařízení bychom mohli monitorovat jejich příkon a na základě časových událostí je spínat. Můžeme tak zajistit, že při příchodu zaměstnanců budou již všechny stroje připraveny k práci. • Senzory CO2 [9] a CO [9] mohou monitorovat chemické složení ovzduší v místnosti, kde jsou umístěny. V případě vyšší hladiny CO je pravděpodobné, že v místnosti dochází k nedokonalému spalování a tudíž je místnost nebezpečná. Například kotelna vybavená tímto senzorem může varovat případného topiče na přítomnost tohoto plynu a neumožnit mu vstup do místnosti. Zatím co CO2 senzor monitorující kvalitu vzduchu, může upozornit na špatnou kvalitu vzduchu, například při nedostatečném větrání nebo přítomnosti mnoha osob v místnosti. V součinnosti s otevřením rolet nebo oken může systém rychle reagovat na tuto skutečnost. • Systémy inteligentních budov jsou postaveny na podobných systémech [zdroj?]. Tyto budovy reagují samostatně na naměřené hodnoty mnoha senzorů propojené navzájem datovou komunikací. Budova pak vyhodnotí sama, jak s nastalou situací naloží, a podle toho může upozornit uživatele na vzniklé podněty. • Trochu jednodušší využití se může skrývat v automatických zásuvkách, které komunikují se serverem, který jim přiděluje stavy. Server pak může běžet na webovém rozhranní pro co nejflexibilnější ovládání. Ve výčtu možností využití komunikace mezi spotřebiči bychom mohli pokračovat ještě dlouho, hlavně proto, že je dalším logickým krokem vývoje datové komunikace.
7
Kapitola
Existující řešení Datová komunikace mezi spotřebiči nepatří mezi nové nápady. Je to jeden ze základních stavebních prvků pro stavbu iteligentních budov, avšak její postup není tak rychlý, jak se čekalo. Očekávání byla daleko větší. V roce 2001 Spigel Lynn napsala ve své knize Welcome to the Dreamhouse: „By the 1940s, and after World War II, the home of tomorrow was most typically imagined as a technologically enhanced living space, chock full of “mechanical servants” that promised to liberate housewives from chores while also orchestrating daily activities from home entertainment to waking the kids. . . “ [11] Píše, že už ve 40. letech minulého století se předpkládalo, že se v dohledné budoucnosti o dům budou starat mechaničtí sluhové. To se dodnes nestalo, avšak pokrok v domácí automatizaci přinesl v roce 1973 protokol X10 [12], který ač posunul vývoj dál, žádnou velkou revoluci nezpůsobil. Po něm následovaly další standarty založené buď na podobném principu jako X10 například Intellon CEBus [13] nebo později s větším rozmachem bezdrátových technologií nastupuje HomeRF [14] nebo IEEE 802.11 Wireless LAN [15]. Většina technologií, které byly určeny ke komunikaci mezi spotřebiči, byly postaveny pouze pro tuto komunikaci. Jejich rozšiřitelnost byla většinou malá a pokud bylo potřeba nějakou funkci přidat, řešením byl nový standard. S příchodem IEEE 802.11 a podobných se někteří výrobci rozhodli od vlastních standardů upustit a stavět komunikace na univerzálnějších standardech. [16] Systémy se zaměřují buď na spínání světel, nebo na spínání spotřebičů a některé dokonce umožňují s vhodnými moduly ovládat cokoliv ke komunikaci připraveného. Vhodným krokem je tyto systémy analyzovat a z každého vybrat to nejlepší, aby náš výsledný systém měl pokud možno z každého systému to nejlepší a byl otevřený dalším řešením. Avšak neměli bychom se nachat unést možnostmi. Výběr toho opravdu využitelného, je také těžký. V následujích částech probereme existující řešení, která takovou komunikaci realizují. 9
2
2. Existující řešení Tabulka 2.1: Tabulka se základními příkazy standartu X10 [12] Bitový kód 0 0 0 0 0 0 0 1
Název příkazu Vypnout všechny zařízení Zapnout všechny světla
0 1 1 0
Vypnout všechy světla
0 0 0 0 0 1
Zapnout Vypnout Snížit intenzitu světla Zvýšit intenzitu světla Rozšiřující kód Požadavek na příkaz
0 0 1 1 1 0
1 1 0 0 1 0
0 1 0 1 1 0
1 0 0 1 1 0 1 0
1 1 0 1 1 1 1 0 1 1 1 1
2.1
Odpověď na předchozí zprávu Přednastavit intenzitu světla Odpověď – zapnuto Odpověď – vypnuto Vyžádat status
Popis Vypne všechna zařízení bez ohledu na adresu Zapne všechna světla bez ohledu na adresu Vypne všechna světla bez ohledu na adresu Zapne připojené zařízení Vypne připojené zařízení
Kód pro rozšiřující funkci Požadavek na odpověď od zařízení, které jsou dále definovány
Cest 1 1 1 1 1 1 1 2 2
2 Umožňuje nastavení dvou předdefinovaných úrovní intenzity světla Odpověď na vyžádání statusu Odpověď na vyžádání statusu Vyžádání si stavu zařízení
2
2 2 2
X10 Home automation
X10 je standard vyvinutý v roce 1975 firmou Pico Electronics, který jako komunikační médium využívá silové vodiče. Má mnoho funkcí (viz Tabulka 2.1) jejichž hlavními možnostmi je v základním standardu obsluha světel a spínání spotřebičů – pouze jednostranná komunikace. V průběhu času byl obohacen o další funkční moduly jako o 16 kanálovou ovládací konzoli, lampový modul, aplikační modul, spínací moudl a ke konci roku 1978 přišel první X10 Timer [17]. V následujících 15 letech bylo vyvinuto ještě mnoho dalších modulů obsahujících i senzory zmiňované v 1.2. Standard už od počátku stavěl na tom, že je levný a jednoduchý. Zařízení stačí jenom připojit do zásuvky a s nadstavbou bezdrátového přijímače nám umožňuje ovládání připojených zařízení do vzdálenosti zhruba 30m [18]. I v dnešní době jde tyto zařízení koupit9 X10 přijímací modul + X10 lampový modul + ovladač za cenu okolo 50 $. 9
10
Bohužel určeno pro americký trh, tzn. je normováno pro 120V 60Hz.
2.1. X10 Home automation
Obrázek 2.1: Ukázka časování při sinusové nosné vlně. Synchronizace nastaává když je sinusoida v nule a od ní se odíjí časování dalších hodnot popsaných v obrázku.
Fyzická vrstva standartu X10 je postavená na komunikaci po silovém vodiči, anglicky označovaném jako powerline. Tato technologie nevyžaduje žádné další propojování a proto jsou pořizovací ceny oproti některým dalším technologiím nižší. Využívá amplitudové modulace, která se synchronizuje v nule [19] a užitečná data pošle dvakrát za délku amplitudy nosné vlny – obrázek 2.1. Při průchodu nosné amplitudy nulou se minimálně do 200 mikrosekund musí objevit vysílání, které se zachytí – obrázek2.2 Takovýto přenos dat většinou neprojde skrz tarnsformátory, které jsou většinou umisťovány pro každou ulici zvlášť [20]. Bohužel to, že komunikace probíhá po vodičích, které pro datovou komunikaci nejsou určeny, má za následek výpadky komunikace 10 Pokud uvažujeme o využítí standartu X10 v budoucnosti, i přes vysoký věk se zdaleka nejedná o mrtvou technologii. Aktuální viceprezident společnosti X10 (USA) inc. o jejich technologii prohlásil: „Will last forever. It is the de facto standard for home automation and is used by IBM, RCA, GE, Microsoft, Radio Shack, Magnavox, Leviton, and in fact just about everyone in the HA business.“. Právě tento standart jsem si vybral jako základní stavební kámen mé práce. Obsahuje v základu již mnoho funkcí, ale přesto zaostává rychlost, bezpečnost a jedhoduchá a levná rozšiřitelnost. I přes to je standart X10 tím nejlepším, co se na komunikační vrstvě silových vodičů dá sehnat kvůli jeho stabilitě. Na trhu se můžeme setkat se zařízenímí „Consumer Electronics Bus“ - CEBus, který měl přímo rozšiřovat funkcionalitu X10. Po jeho vypuštění v roce 1992, umožňoval přenosovou rychlost až 7 500 datových bitů za sekundu [13]. Na10 V [17] uvádí, že nevětší problémy jsou se zářivkami a silovými spotřebiči jako jsou elektromotory a velké nabíječky.
11
2. Existující řešení
Obrázek 2.2: První 2 aplitudy reprezentují startovací kód. Další 4 adresu zařízení a posledních 5 bitů obsahuje funkci z tabulky 2.1. [19].
konec se ukázalo, že rozšíření standartu X10 bude postačovat a CEBus na trh tolik nepronikl.
2.2
KNX
KNX protokol je protkol vycházející z EIB (European Installation Bus) a je určen pro inteligentní budovy. Obsahuje mnoho možností, podle [21] umí kontrolovat a ovládat světla, vypínače, zabezpečovací systémy, topení, klimatizaci, monitorovat, alarmovat, ohřev vody, šetřit s energií, meřit domácí prostředí, audio a další viz obrázek 2.3. V dnešní době je používanější než starší X10 i kvůli vyšším přenosovým rychlostem a možnosti využití různých fyzických vrstev zároveň. KNX umožňuje fyzickou komunikaci po [22]: • Kroucených dvoulinkách (zděděno od EIB) • Powerline komunikaci podobně jako X10 (nebo EIB) avšak s jiným časováním a podobnou rychlostí. • Rádiových vlnách (opět zděděno od EIB + EHS11 ) • Infračervených spektrech • Díky unifikovaným službám KNX, lze také použít média založená na IP komunikaci jako Ethernet, Bluetooth, Wifi a jiné. Základní princip KNX protokolu je podobný jako X10. Každý z prvků má svou adresu a reaguje jinak na podměty na médiu. Zařízení se zde rozdělují na senzory a aktory: • Aktor reaguje na povely co příjdou po sběrnici. Zasílat je může jak senzor, tak jiný aktor (například jednotky pro ovládání motorů). 11
12
European Home Systems protokol, postavený hlavně na powerline komunikaci.
2.2. KNX
Dveřní kontakt
Pohybové čidlo
Čidlo větru
Časový spínač
Čidlo slunce
Hlídač špiček
Thermostat
Vypínač
Zámek EZS
IR Vysílač
Čidlo rozbitého skla
Senzory (vysílače povelů) Sběrnice KNX 230V / 400V AC
Aktory (přijímače povelů)
Osvětlení
Elektrický spotřebič
Žaluzie
Ventilátor
Osvětlení
Vytápění
Výstražné světlo
Obrázek 2.3: Příklad různých senzorů na sběrnici. Kombinovaný s powerline komunikací. (překresleno z [22])
• Senzor poskytuje vstupní informace do systému. Mohou to být tlačítka, teplotní čidla, čidla pohybu a mnoho dalšího. Existují i zařízení, která jsou jak aktory, tak senzory, například kontroler motorů Somfy KNX umožňuje jak ovládat připojené motory, tak číst a reagovat na vstupy z jeho A/D převodníků. Protokol KNX (a komunikace mezi spotřebiči obecně) má obrovský poteniciál. Ve studii Bremenské univerzity[23] odhadují, že při efektivní kontrole a spínání spotřebičů v inteligentní budově, můžeme dosáhnout až 50% energetických úspor. Tyto úspory vznikají hlavně kvůli efektivnějšímu plánování topení a osvětlení a v kombinaci s pohybovými čidly dokáže systém kontrolovat, jestli někdo nenechal zapnuté světlo, a případně ho za něj vypnout. Nutno zmínit, že KNX sběrnice zpočátku podporovala pouze zařízení od firmy KNX. Tím se bohužel znemožnila komunikace zařízení od různých výrobců. Tato situace se postupně zlepšovala a v roce 1990 [24] byla založena asociace EIBA 12 ke které se připojilo zhruba 80 výrobců automatických zařízení pro automatizaci, z čehož vznikl decentralizovaný sběrnicový systém, který se od roku 1993, kdy byl vydán, jmenoval European Installation Bus. Protokol KNX je postaven na OSI standardu. Díky tomu lze jednotlivé vrstvy tohoto modelu nahradit bez větších problémů. Nejen kvůli tomu se ale systém stává více komplikovaný a tím pádem je vývoj dalších (vlastních) zařízení nákladnější. 12
European Instalation Bus Association
13
2. Existující řešení
externí relé
L N PE
zařízení
0-10V technologie
DALI
L N PE
zařízení
DALI
Obrázek 2.4: Zatímco u 1-10V technologie musíme mít externí relé připojeno na L13 vodiči, u Dali sběrnice se toto řeší přímo ve spínaném zařízení, stejně tak je to se změnou intenzity.
2.3
DALI
DALI neboli Digital Addressable Lighting Interface je technologií pro ovládání světel. Stejnojmenné sdružení organizací tuto technologii zavedlo a podporuje. Definice proběhla na IEC 60929 [25] dle [26]. Vznikla z velice jednoduchého systému 0-10V, který byl nedostačující kladeným požadavkům. Zatímco 110V technologie rozdělovala spínání a změnu intenzity v technologii, v DALI se toto spínání schovalo celé pod jednu sběrnici. Porovnání obou zapojení viz obrázek 2.4. DALI používá dva vodiče pro komunikaci mezi zařízeními. Pokud nepočítáme fyzické omezení vodičů 14 , maximální délka vodiče mezi zařízeními je 125 m. Zajímavostí je, že je použito tvz. Manchesterské kódování [29]15 , což vylučuje chybu při zapojení vodičů, a nezáleží nám tedy na polaritě této dvouvodičové sběrnice. Na sběrnici můžeme připojovat různé typy DALI zařízení pro ovládání světel. Jejich napájení je řešeno skrz sběrnici, která vyžaduje zdroj s proudovým omezením 250 mA [28], každé zařízení má pak příkon maximálně 2mA. Na sběrnici můžeme najít: • Stmívače a spínače jsou nejdůležitější zařízení na sběrnici. Spínají (nebo stmívají a spínají) světla pouze v reakci na ovládací panel nebo příkaz z DALI routeru. Nemusí být propojeny bezprostředně u světel, je možné jimi nahradit například stávající spínače světel a sběrnici připojit k nim bez nutnosti zasahovat do světel. Většinou se ale umisťují přímo 14 15
14
DALI počítá s maximálním úbytkem napětí na vedení 2V. [28] Stejné jako u experimentálního ethernetu v Kapitole 3.2.
2.3. DALI
220V
LAN
DALI sběrnice 220V
DALI router
Obrázek 2.5: První obrázek ukazuje, jak se zapojují světla při standartních konstrukcích, zatímco u 2. obrázku vidíme propojení světel DALI sběrnicí. Můžeme si naprogramovat vlastní spínání světel, stačí i jeden jednotlačítkový spínač pro více módů (v předchozpím případě bychom museli tahat speciální vodiče).
ke světlům, aby se dala ovládat světla nezávisle na sobě. Tím pak můžeme měnit chování spínání světel až při hotové elektroinstalaci. Příklad takového zapojení viz. 2.5 • Ovládací panely slouží pro interakci s uživatelem. Je jich nepřeberné množství od klasických on/off vypínačů, které se běžně používají ke světlům, po bezdrátové ovládání (podobné jako u standartu X10 2.1v kombinaci s přijímačem). Jejich úkol na sběrnici je jednoduchý - podle pokynů uživatele odešlou pokyny na sběrnici a tím ovládají přednastavená světla. Ovládacími panely můžeme světla zapínat a vypínat, ale i měnit jejich intenzitu 16 • DALI routery jsou zařízení s připojením k LAN síti. Tím můžeme světla připojená ke sběrnici ovládat odkudkoliv z internetu. Obstarávají také překlad adres z jedné DALI sítě do druhé. K jednomu routeru je možné připojit maximálně 64 zařízení a 2 DALI sítě. Na sběrnici je povoleno více routerů než jeden, a to nanejvýš 100. Tím snadno spočítáme, že maximální teoretický počet zařízení na sběrnici je 64∗2∗100 = 12800. DALI se může jevit jako podmnožina z KNX popsaného v 2.2 což bezesporu je. KNX umožňuje nejen ovládání světel, ale i jiných zařízení, s kterými DALI nespolupracuje. U DALI stejně jako u KNX nám stačí pouze dva vodiče, avšak u KNX jsou kladeny větší nároky na průřez kabelu a celkové odrušení sběrnice [30]. U systémů, kde nepočítáme se spínáním něčeho jiného než světel, může být DALI schůdnější cestou. 16
Za předpokladu použití ovládacího panelu a stmívače, které tyto funkce umožňují.
15
2. Existující řešení Tabulka 2.2: Tabulka s orientačními útlumy signálu při průchodu překážkou, reálný dosah záleží na počtu překážek a na případném rušení od jiných zdrojů. [31] Materiál Dřevěné konstrukce, sádrokartony, OSB desky Cihlová zeď Prosklené plochy s běžným sklem Železobetonové konstrukce Ocelové a celokovové konstrukce a plochy
2.4
Útlum 5 - 15 10 - 40 10 - 30 50 - 80 80 - 100
% % % % %
R Poseidon
Systém poseidon není ani tak standardem jako předchozí 3 jmenované technologie, ale spíš konkrétní implementací bezdrátového ovládání spotřebičů. Vyvinula ho firma enika.cz, která čerpá z 20 leté zkušenosti s vývojem RF [31]. Jejich zařízení využívají místo drahých sběrnic rádiovou komunikaci a tím umožňují výrazně snížit počáteční investici. Systém neoplývá žádnou převratnou technologií. Veškerá komunikace probíhá po rádiovém pásmu 868M Hz, kde dle [32] je povolen maximální vyzářený výkon (effective radiated power) 25mW e.r.p. 17 . Toto omezení umožňuje komunikaci na vzdálenost do 150 m ve volném prostoru. Což je například v porovnáním s DALI sběrnicí (2.3) o 20% větší vzdálenost. V bytových prostorech, kde se většinou podobné systémy používají, se ale nedá s volným prostorem skoro vůbec počítat. Útlum signálu popisuje tabulka 2.2, kde si uvědomíme, že například v nových moderních halách a budovách ze železobetonu, které většinou chceme automatizovat, nemůžeme tento systém použít kvůli špatné propustnosti signálu skrz železobetonovou konstrukci. Ovšem díky RF přenosovému médiu je montáž a zprovoznění opravdu jednoduché. Systém se skládá podobně jako KNX ze 2.2 senzorů a aktorů R které mají velice podobnou definici jako zařízení systénu Poseidon : • Vysílače jsou zařízení, která vydávají pokyny jednomu nebo více přijímačům. Narozdíl od všech předchozích řešení18 je zde možné uvažovat o přenosných vysílačích bez potřeby žádného dalšího přeposílacího zařízení, jak to bylo u X10 2.1 i DALI 2.3. Jinak je standartní portfólio stejné jako u DALI s výjimkou toho, že můžeme ovládat i jiná zařízení než světla. Nutno zmínit, že zde exsistují i složitější vysílače, které podporují připojení do sítě LAN 19 , do jisté míry pak fungují jako routery u DALI, které 17
Což je například stejný vysílací výkon jako 2.4GHz i 5GHz Wifi. Vyjma KNX v kombinaci s RF spínači. 19 Posloužit může například zařízení P8 TR IP - Ethernetové rozhraní. 18
16
R 2.4. Poseidon
2
TCP/IP
BMS
5 6
4
3
1
DALI
4
Obrázek 2.6: Na obrázku vidíme Spínače (1,2) které mohou obsluhovat jak R rolety (6) tak různá světla (7), o která se stará DALI/Poseidon přijímač (4). Nad vším stojí ethernetové rozhraní systému (5), které umožňuje ovládat systémy jako spínače z nadřazeného systému po TCP/IP protokolu. Navíc spínač (2) umožňuje snímat teplotní údaje a posílat je k ethernetovému rozhraní (5). Překresleno z [31].
mohou zastoupit bezdrátový spínač a lze na nich postavit další systém založený na Poseidonu. • Přijímače jsou zařízení, která umožují přímo spínat a regulovat připojené zařízení. Funkce je stejná, jako aktor u KNX, ale s tím rozdílem, že zde přijímače neposílají zprávy jiným přijímačům, a stávají se tak nejjednoduššími zařízeními z celého systému. R Protože systém Poseidon nabízí pouze firma enika, je dobře vidět, že spektrum možností, kde je tento systém použitelný, je omezené na sortiment přístrojů od této firmy. Naštěstí může být systém poseidon provozován dohromady se systémem DALI pro spínání světel. Poseidon pak slouží jako takový prostředník mezi uživatelem a DALI sběrnicí. Kombinací těchto dvou technologií můžeme z každé technologie dostat to nejlepší. Na obrázku 2.6 vidíme, jak tyto dva systémy mohou ruku v ruce ovládat nejenom stropní osvětlení. Odpadá nutnost tahat dlouhé a nákladné vodiče DALI sběrnice, které stejně použijeme až u světel. Toto zastoupí např. zařízení P8 R DALI 20 , které slouží R jako most mezi DALI a Poseidonem . 20
Přijímač s DALI výstupem, vestavný
17
2. Existující řešení R Systém Poseidon je schůdnější cestou, jak realizovat komunikaci mezi spotřebiči v místech, kde doteď nebyla. Je jednoduchý, a počáteční náklady jsou oproti předchozím jmenovaným sběrnicím malé. Samotná firma enika poskytuje mnoho rozšiřujících modulů21 , které je možné k tomuto systému připojit. Funkcemi a jednoduchostí tohoto systému jsem se inspiroval v kapitole 4, kde se snažím navrhnout podobný systém, avšak vylepšený o standarty z této kapitoly.
21
18
Senzorové vysílače, spínače kotlů, ohřevu vody a mnoho dalšího viz. [31]
Kapitola
Možnosti vlastního řešení V této kapitole rozebereme možnosti realizace komunikace mezi spotřebiči a možnosti začlenění takové komunikace do vlastního systému. Tento problém je, zdá se, nejpalčivějším, se kterým se výrobci takto komunikujících zařízení setkávají. Buď je upřednostněna cena před rychlostí a spolehlivostí nebo zvítězí cena, kde pak můžeme uvažovat o robustnějším a dražším systému. Fyzickou komunikací rozumíme čistě přenosové médium dat. Možnosti, které je možné na tomto přenostu implementovat, jsme blíže popsali v 1.3. Některé systémy (například KNX z 2.2) nevyužívají pouze jednu možnost komunikace. Dají se kombinovat různé přenosové technologie, a díky tomu vybrat to nejlepší z nich. To ale nebude případ této práce. Vybereme pouze jednu technologii z následujících.
3.1
Wifi
Wifi označení bylo definováno v několika standardech IEEE 802.11 [15]. Využívá rádiové komunikace na frekvencích 2,4GHz a 5GHz které jsou obsaženy v bezlicenčním frekvenčním pásmu [32]. S nadsázkou lze říct, že Wifi nahrazuje klasickou drátovou ethernetovou síť. Je ovšem omezena propustností a vzdáleností. Standarty IEEE 802.11 wifi dále rozšiřují. V roce 1999 jsme se dočkali specifikace 802.11a (54 Mbit/s) a 802.11b (11 Mbit/s) [33]. Potom 802.11g (54 Mbit/s) a nakonec 802.11n který umožňuje prospustnost až 600 Mbit/s. U komunikací mezi spotřebiči nás ale nezajímá ani tak rychlost jako spolehlivost a dostupnost. Wifi je dle [15] rozdělena na dvě síťové struktuy Infrastrucutre WLAN a Ad-Hoc WLAN. Pro komunikaci mezi spotřebiči se více hodí Ad-Hoc WLAN, zařízení komunikují mezi sebou bez prostředníka22 a jsme tedy schopní dostat se i na větší vzdálenosti než u Infrastructure WLAN. 22
Jak je tomu u Infrastructure WLAN, kde komunikace jde přes WiFi router.
19
3
3. Možnosti vlastního řešení Rychlost v komunikaci mezi spotřebiči není také to zásadní. Bohatě bychom si vystačili se specifikací 802.11b, která je stabilnější a poskytuje rychlost 11 Mbit/s. Pokud se ale rozhodneme, zasadit komunikaci mezi spotřebiči již do fungující WiFi sítě, musíme se podřídit existující infrastruktuře. Proto pokud se rozhodneme jít cestou s WiFi, je nutné si uvědomit, že existuje více specifikací, které mezi sebou nemusí být kompatabilní. Což může zvednout cenu takového řešení 23 Pokud chceme do systému komunikace mezi spotřebiči zařadit Wifi funkcionalitu, máme omezené možnosti: • Koupit hotový modul, který wifi komunikaci realizuje. Takové hotové moduly se dají pořídit již velice snadno. Není téměř potřeba znát podrobněji wifi implementaci. Modul většinou obstará vše za nás, jak TCP/IP zapouzdření tak šifrování, přepínání kontextu, vyhledání sítí a pod. Modul se většinou připojuje přes RS232, SPI sběrnici nebo I2C 24 . • Sestavení vlastního modulu pro wifi. Wifi komunikuje po rádiových frekvencích na 2,5GHz a 5GHz a pokud máme vysílač a přijímač takových frekvencí, je teoreticky možné wifi realizovat. Toto řešení je ale naprosto zbytečné, výrobci (např microchip [34]) poskytují čip, kde je více méně vše potřebné, pro realizaci bezdrátové komunikace, hotovo. Oproti předchozímu příkladu je potřeba přidat TCP/IP zapouzdření a řešit šifrování, ale pokud chcete wifi dostat na vlastní desku, je to jediná schůdná možnost.
3.1.1
Klady
Pokud se rozhodneme do našeho systému implementovat WiFi funkcionalitu, rozhodně nebudeme tratit. Klady WiFi jsou očividné: • Wifi je velice rozšířenou technologií. Větší nebo menší síť je ve většině domácností a firem. Tendence rozšiřování bezdrátových sítí je stoupající, v roce 2010 je už 43% domácností připojeno k internetu právě přes WiFi, zatímco v roce 2005 bylo připojeno pouze 18% [35]. • Wifi je bezdrátová. Nemusíme přidávat žádné další vodiče a můžeme uvažovat o nativním25 bezdrátovém ovládání. • Díky pokročilým šifrovacím algoritmům (CCMP, AES) je komunikace bezpečná. Případný útočník by musel prvně prolomit wifi heslo a až poté by mohl odposlouchávat komunikaci mezi spotřebiči a případně vydávat příkazy. 23
I když standarty WiFi jsou zpětně kompatabilní. Dobrý příklad hotového modulu je Spark http://www.spark.io 25 Bez dalších HW modulů. 24
20
3.1. Wifi • Díky tomu, že se WiFi standardně používá pro realizaci domácí LAN sítě, můžeme k zařízením nativně přistupovat z této sítě. Případně lze využít standardních nástrojů a bez větších problémů v případě potřeby routovat zařízení do jiné podsítě nebo rovnou do Internetu.
3.1.2
Zápory
Přes četné klady řešení přes WiFi, má i svoje neduhy, které bychom měli také zmínit. Některé tyto problémy postihují všechny RF systémy, jak bylo zmíněno R u existujícího řešení Poseidon 2.4. • Pokud budeme chtít WiFi použít pro spínání spotřebičů jako jsou elektromotory, spotřebiče pracující s magnetickým polem, nebo s velkým příkonem. Může se objevit rušení, které má za následek zhoršení kvality příjmu při náběhu, nebo pokud zařízení stojí někde na trase mezi vysílačem a přijímačem. • To, že je WiFi technologií pro bezdrátovou síť, jsme zatím brali jako výhodu. Má ale povinnosti, které je třeba dodržet. Při připojení zařízení s WiFi do sítě, musíme (v lepším případě) nastavit statickou IP bránu a masku. Pokud je na síti server DHCP musíme vyžádat adresu od něj a uplatnit. Veškerá komunikace probíhá buď přes TCP protokol nebo jednodušší UDP protokol. Což nám může bránit v použití levnějších a jednodušších procesorů řídících celé zařízení. • Problematika spojená s WiFi sítěmi je rozsáhlá. Systém vznikl primárně pro komunikaci mezi počítači pomocí paketů a není stavěn pro systémy, které zdaleka nevyužívají jeho potenciál. Je na místě se zamyslet, že pokud budeme implementovat jednoduché spínání a vyčítání senzorů, tak jestli opravdu potřebujeme tak rozsáhlou technologii pro komunikaci.
3.1.3
Řešení
Jak jsme si řekli v 3.1.2, WiFi připojení není žádná lehce použitelná technologie. Existuje ovšem mnoho desek, modulů, integrovaných obvodů a hotových příkladů, které nám mohou s realizací pomoci. Vybráno bylo pár obvodů pro jednoduché zasazení do našeho návrhu, jejich ceny uvádí tabulka 3.1. Co se týče cen, je překvapivě nízká. Obvody zpravidla obsahují většinu toho, co je pro komunikaci potřeba, například modul 3. z tabulky obsahuje i malý webserver, kde stačí přes SPI sběrnici nastavit zařízení IP adresu a pak přes web-manager rychle a pohodlně funkce konfigurovat. Cenově zajímavým je také řešení Spark. Obsahuje vlastní mikroprocesor který je možné programovat skrz WiFi, které zařízení poskytuje. Pak stačí pouze připojit periférie, dohrát firware a vývoj je hotový. 21
3. Možnosti vlastního řešení Tabulka 3.1: Tabulka s cenami modulů dostupných na trhu. Od nejjednodušších až po nejpokročilejší moduly pro WiFi komunikaci. Ceny z http: //aliexpress.com. Název
Cena
Microchip IC - MRF24WB0MB
400 Kč
Texas Instruments - CC3000
400 Kč
R Lantronix xPico Wi-Fi
600 Kč
Spark Core
800 Kč
3.1.4
Poznámka Verze s 802.11b, možnost pájení na desku, s deskou Verze s 802.11b/g, bez antény, pouze čip 802.11g, vše na desce, s webserverem 802.11g, s mikroprocesorem, vlastní platforma
Zhodnocení
WiFi je rozsáhlá technologie, která zapadne do mnoha návrhů jako by pro ně byla stvořená. My si ale WiFi pro realizaci komunikace nevybereme. Hlavní důvody jsou vyšší cena, zbytečně složitá implementace, ale hlavně rušení se kterým má při větších vzdálenostech problémy.
3.2
Ethernet
Ethernet je technologie pro LAN (Local Area Network) pro připojení zařízení mezi sebou. Je z standardizována v IEEE 802.3 [36]. Ethernet je poměrně stará technologie, kterou v roce 1973 představil Robert Metclafe [37] který pracoval rychlostí 2.94MBit/s na koaxiálním kabelu. Je vyvíjen dodnes a v typu 100GBASE re dosahuje rychlosti na TP kabelu až 100GBit/s26 [38]. O ethernetu se v komunikaci mezi spotřebiči moc často nemluví. Problém je podobný jako u WiFi z 3.1.2, u které je v některých aplikacích problém řešit všechny náležitosti správneho IP připojení. Plus tady oproti WiFi přibývá problém s kabelem. Ten je pro ethernetové připojení povinný a můžeme si vybrat od koaxiálního kabelu až k optickému. Standardem je ale 8žilový TP kabel, který se dá pořídit levně, dokonce tak levně, že se jeho stíněná varianta může cenově vyrovnat stíněnému kabelu pro standart KNX. Jinak je problematika prakticky stejná, buď postavíme vlastní modul nebo využijeme nějaký z existujících a až na těchto modulech realizujeme komunikaci. I když cena vodičů je srovnatelná s KNX standardem, jejich vedení je zcela odlišné. U ethernetových připojení je při standardní archutektuře sítě potřeba, aby všechna zařízení vedla do jednoho centrálního hubu nebo switche. 26
22
Do délky alespoň 10 metrů, jinak podporují optické kabely.
3.2. Ethernet To znamená, že počet vodičů bude o mnoho vyšší než je to u KNX. Bude tedy potřeba vhodně zvolit umístění tvz. aktivních síťových prvků, abychom minimalizovali spotřebu kabelu.
3.2.1
Klady
Ethernet sdílí většinu výhod, které využívají připojení do sítě LAN s WiFi připojením 3.1.1(1. a 4. bod). Má i některé další vlastnosti, které ho před WiFi zvýhodňují: • Kvalitní ethernetové kabely nám zaručují minimální přeslechy při komunikaci a dlouhou životnost i při extrémních podmínkách, jako je UV záření, teplo, zima, vlhko. • Je velice těžké ho prolomit27 . Potřebovali bychom fyzický přístup k vodičům a naslouchat komunikaci mezi spotřebiči. • Existuje mnoho hotových řešení, jak komunikaci po ethernetu realizovat. Nemusíme stavět na zelené louce a můžeme využít integrovaných obvodů, čipů a desek k realizaci.
3.2.2
Zápory
Ethernet sdílí s WiFi klady i zápory. Ethernet je stále LAN síť a proto body z 3.1.2 2 a 3 jsou také sdílenými problémy obou technologií. Vznikají ovšem nové, které souvisí hlavně se změnou média komunikace: • Je potřeba propojit všechna komunikující zařízení ethernetovým spojením. Je jedno, jaký druh spojení využijeme, ať je to koaxiální kabel nebo TP spojení. Je to výdaj, který nemůžeme přehlédnout, nemluvě o problémech s realizací. • Další věcí je výše zmiňovaný problém, že ethernetové kabely nejsou sběrnice. Každý kabel musí mít svůj začátek v zařízení a končit v aktivním prvku sítě28 . To může také být nemalý výdaj.
3.2.3
Řešení
Při náhledu na ceny realizace ethernetového propojení mezi spotřebiči zanedbáme ceny vodičů. Je to ividididuální náklad a závisí na konkrétním nasazení. Jinak se ethernetové moduly dají sehnat v podobné konfiguraci jako ty WiFi. Jsou levnější, protože jim chybí RF část a jejich zasazení do návrhu je o trochu snažší kvůli absenci antény a podobně složitých konstrukčních prvků. 27
Pokud je síť kombinována s WiFi nebo je v Internetu tak se tato výhoda ztrácí. Aktivní síťový prvek je ten, který slouží potřebám vzájemného propojování v počítačových sítích dle [39] 28
23
3. Možnosti vlastního řešení Tabulka 3.2: Tabulka s cenami ethernetových modulů dostupných na trhu. Ceny z http://aliexpress.com. Název
Cena
Texas Instruments DP83848
100 Kč
WIZnet W5100
150 Kč
ENC28J60
100 Kč
R Lantronix XPort
1100 Kč
Poznámka 10/100Mbit/s, pouze čip, bez TCP/IP [40] 10/100Mbit/s, pouze čip, mnoho technologií již v HW 10/100Mbit/s, hotová deska s TCP/IP stackem 10/100Mbit/s, hotové řešení, s malým webserverem a možností ovládat periférie
Bylo vybráno pár obvodů pro realizaci, které popisuje tabulka 3.2. Obvody 1. a 2. z tabulky jsou pouze čipy, které je možné zasadit do vlastního návrhu, stačí přidat RJ konektor a napájení (příklad např. [40]. Moduly 3. a 4. jsou poskytovány jako plně funkční celky, k modulu 3 stačí pomocí RS232 připojit mikroprocesor a dá se realizovat komunikace. 4. disponuje jednoduchým webserverem (stejně jako 3.1.3 3. položka z tabulky).
3.3
Modulace silového vodiče 230V
Dalším z možných řešení komunikace mezi spotřebiči je médium používané ve standartu X10 z části 2.1. Využívá komunikaci po silových vodičích. Technologie je konkrétně popisována v předchozí kapitole. Hlavní je, že komunikace nepotřebuje kromě již hotových silových rozvodů žádný přídavný fyzický vodič a i přesto těží z jeho výhod. Při realizaci takové komunikace máme několik možností: • Realizovat komunikaci na té nejnižší úrovni, totiž jednoduchým filtrem, který požadovanou komunikaci zakóduje a dekóduje přímo do sinusoidy vedení. Nemusíme se pak spoléhat na existující realizace a tím i maximalizovat rychlost, která je u některých existujících řešení omezená. Příklad, jak by se dala tato komunikace realizovat, popisuje blokové schéma na obrázku 3.1. • Pro přenosy existují již hotové integrované obvody, které se o modulaci a demodulaci postarají, stačí pak galvanicky oddělit od obvodu a poskytnout napájení ze silového vedení. Příklad těchto obvodů jsou 1. a 2. položka z tabulky 3.3. • Je možné ubírat se i mnohem jednodušší cestou. Na trhu jsou dostupné hotové moduly, které stačí připojit do sítě a o všechno se postarají 24
3.3. Modulace silového vodiče 230V
napěťpvé oddělení
Pásmová propust Impedanční hlavní VRO 1 oddělení zesílení
VRO 2
Impedanční FM oddělení demodulátor
f
220V vstup
U
Data - výstup LF ltr
Data - zesílení
SKO
galvanické oddělení
Obrázek 3.1: Obrázek popisuje příjem signálu ze silového vodiče 230V. Kvůli horším pracovním podmínkám (cizí kmitočty na 50Hz) bylo u tohoto přímo zesilujícího přijímače použito tvz. postupné rozložení selektivity v zesilovacím řetězci. Převzato z [41].
samy. Jediné co je potřeba řešit, je pak sériová linka z tohoto zařízení. Toto řešení ale nelze zasadit na vlastní desku, proto je pro nás neužitečné. Jedná se o třetí položku z tabulky 3.3.
3.3.1
Klady
• Nepotřebujeme žádné další signálové a napájecí vodiče. Veškerá komunikace probíhá po již rozvedených vodičích. Stejně tak může každý modul obsahovat vlastní napájení ze silových vodičů. • Powerline by měla fungovat až do prvních transformátorů (většinou pro každou ulici) v závislosti na použitém řešení29 . Snadno tedy svým dosahem předčí RF řešení, které s powerline sdílí výhodu nasazení bez přídavných vodičů. • Řešení s powerline jsou levnější a jednodušší. Nepotřebujeme antény, vodiče, ani speciální protokoly. Pro realizaci nám stačí jeden integrovaný obvod s větším kondenzátorem a pár součástkami, který se připojí přímo na přívod napětí 230V.
3.3.2
Zápory
• Powerline trpí podobným problémem jako RF a WiFi řešení 3.1.2 v bodě 1. U zařízení s vyšším odběrem, elektromotory nebo s vyšším příkonem, musíme předpokládat rušení. • Komunikace je pouze poloduplexní. Data, která odešleme, můžeme na sběrnici zase číst (jde tak o první detekci kolize). To se samozřejmě promítne i v rychlosti a v nutnosti složitějšího návrhu komunikace. 29
Různé naměřené vzdálenosti pro různé technologie přenostu jsou popsány [42]
25
3. Možnosti vlastního řešení Tabulka 3.3: Tabulka řešení powerline komunikace dostupných na trhu. Ceny z http://aliexpress.com. Název
Cena
ST7536 powerline
100 Kč
TDA5051
50 Kč
2412S modul
1600 Kč
Poznámka 1600 baudů max, poloduplexní synchronní, FSK, více kanálům, složitější obvod [43] 1600 baudů max, poloduplexní, ASK, jednoduchý obvod [44] až 19200 baudů díky OFDM, hotové řešení [45]
• Problém může být i velikost součástek. Snažíme se, aby systém byl co nejmenší, ale některé implementace vyžadují velké svitkové AC kondenzátory, které místo rozhodně neušetří.
3.3.3
Řešení
Obvody pro řešení powerline komunikace, které bychom mohli použít, jsou popsány v tabulce 3.3. Obvody 1. a 2. jsou vydané v roce 1998 a stále se prodávají a slouží pro komunikaci. Zatímco 3. je pokročilým modulem, který zvládá až 19200 baudů.
3.4
Vlastní sběrnice
Pokud z nějakého důvodu nechceme využít již připravených sběrnic, můžeme si postavit sběrnici vlastní. Není to až tak velký problém, jak se zdá. Stačí si vytyčit požadavky, co má sběrnice umět a na těchto základech ji postavit. Vyhneme se tak některým povinným schématům komunikace, které požaduje KNX 2.2 nebo DALI 2.3. Navíc i pro relativně jednoduchý systém můžeme využít metod, které se v pokročilejších sběrnicích standartně používají. Budou se nám hodit modely adresace, výpočty útlumu na vodiči a nejvíce zařízení, které po této sběrnici již komunikují, abychom si mohli vytyčit jaké zařízení budou podporovány. Při výběru média komunikace, můžeme opět vyjít ze standartu KNX. V něm je definovány 4 možnosti fyzické komunikace30 . A jestli se jako v KNX rozhodneme následovat OSI architekturu aspoň v transportní vrstvě, můžeme uvažovat o sběrnici, která funguje souběžně i na více médiích komunikace. 30 Pokud nepočítáme unifokované služby, které mohou rozšířit sběrnici i po Ethenretu, Wifi a jiných
26
3.4. Vlastní sběrnice
opakovač dvoulinka
RF spojení IrDA Powerline zařízení 1
zařízení 2
Obrázek 3.2: Příklad komunikace mezi zařízeními, kde zařízení 1 chce komunikovat se zařízením 2, které není připojené stejným médiem jako zařízení jedna. Zařízení 1 přesto pošle zařízení 2 zprávu a opakovač automaticky přepošle na všechny ostatní sběrnice.
Pro správnou funkci na více médiích komunikace budeme potřebovat opakovač, který přepošle komunikaci z jednoho média na druhé a naopak. Tím zajistíme že ať připojíme zařízení jakýmkoliv médiem bude vždy viditelné pro všechny ostatní. Tuto situaci popisuje obrázek 3.2.
3.4.1
Klady
Definice a konstrukce vlastní sběrnice se může v mnoha situacích vyplatit. Pokud stavíme systém na míru a nepostačují nám standartní sběrnice pro komunikaci mezi spotřebiči, můžeme po této možnosti sáhnout. Výhody takového řešení pak jsou: • Dle konkrétních požadavků a situaci na místě, můžeme navrhnout systém, který pracuje s ohledem na prostředí a využívá technologie k tomu nejlepší. Například u spínání elektromotorů nepoužijeme RF připojení a naopak u jednoduchého spínání světel nepoužijeme IrDA. • Náklady na zavedení budou nižší než u aktuálních standartů. Díky tomu, že systém stavíme na míru, můžeme ořezat zbytečné části a nechat pouze ty důležité, a tím stlačit cenu dolů. Zavedené systémy jsou většinou dražší, protože musí splňovat požadavky, které nemusíme potřebovat. • Další výhodou oproti ostaním sběrnicím je to, že pokud v místě, kde má být systém zasazen, existují nějaké rozvody (telefon, koax, síť), můžeme je využít pro naši sběrnici, možnosti jsou neomezené. 27
3. Možnosti vlastního řešení
3.4.2
Zápory
Největším problémem vlastní sběrnice je náročnost implementace. Ať se budeme inspirovat kdekoliv, musíme tomu věnovat o dost více času než u již zavedených sběrnic. • Při implementaci nové sběrnice musíme zajistit problémy, které při komunikaci mohou nastat. Měli bychom definovat případné timeouty, implementovat kontrolní součty nebo vyřešit kolizi na sběrnici. Bude potřeba adresace, predikce velikosti dat a oboucestná komunikace. Je to práce, kterou už za nás udělali v hotových sběrnicích. • Implementovat sběrnici, která bude běžet například jak na kabelu, IrDA, RF i Powerline je dost omezující. Například powerline 3.3.2 umožňuje pouze half-duplex komunikaci, takže data nemůžou jít směrem tam i ven. Zatímco ostatní technologie duplex umožňují. Proto je nutnost omezit rychlost a možnosti komunikace na tu nejpomalejší technologii.
28
Kapitola
Vlastní řešení V předchozích částech byly definovány jak existující řešení, tak možnosti fyzické komunikace mezi zařízeními. V následující kapitole tyto vědomosti spojíme, a navrhneme model, který by měl splňovat požadavky na co nejjednodušší a nejlevnější systém. Požadavky, které mohou být na takový systém kladeny, jsou definovány v 1.1. V mé práci budeme uvažovat pouze první dva, totiž: • Připojování a odpojování spotřebičů od přívodu elektické energie. Bude nás zajímat pouze varianta pracující s 230V. Technologie spínání probereme v 4.1.3. • Dalšími funkcemi které implemetuje, budou měření ze senzorů. Budeme měřit elektické veličiny jako příkon a napětí popsané v 4.1.4.1. Z neelektrických veličin nás bude zajímat teplota a intenzita osvětlení. Jako model komunikace nám poslouží analýza vlastní sběrnice z 3.4, která napovídá, jak uvažovat o více fyzických médiích přenosu bez nutnosti různých softwarových implementací systému. My si ale vybereme pouze jedno médium přenosu a to powerline z 3.3, a to hlavně kvůli jeho relativně jednoduché implementaci a ostatním výhodám definovaných v 3.3.1.
4.1
Použitý HW klienta
S přihlédnutím k požadavkům definovaným výše, můžeme navrhnout hardware, který je bude splňovat. Jako každý obvod lze i náš rozvrhnout do modulů. Jako jednoduchý příklad může posloužit Obrázek 4.1, který znázorňuje blokové schéma modulu pro klienta 31 . 31
Více o členění na klienta – server si povíme v části Požadavky na SW 4.3.
29
4
4. Vlastní řešení Display
Senzor intenzity osvětlení
Senzor teploty
230V/50Hz
Mikrokontrolér MSP430
Senzor proudu
Home automation modem TDA5051
Senzor napětí
Spínač
230V zásuvka
Obrázek 4.1: Blokové schéma připojení modulů hardwarové implementace vlastního řešení komunikace. Bloky z obrázku jsou: senzory popsané v 4.1.4.2, spínače z 4.1.3, modem blíže rozebrán v 4.1.1 a mikrokontrolér MSP430 z 4.1.2. Schéma zapojení součástek tohoto blokového schématu je popsáno na obrázku v příloze B.1.
4.1.1
Home automation modem – TDA5051
Modem pro komunikaci po powerline TDA5051 byl zmíněn v možnostech vlastního řešení v sekci modulace silového vodiče 3.3. Je to zařízení, které se za nás postará o přenos dat po silových vodičích. V celkovém návrhu si pak lze představit tento modem jako vodič, který nás propojuje s ostatními moduly na powerline sběrnici. Jde o poměrně starý integrovaný obvod který ve verzi TDA5051 vyšel v roce 1997 [44] a používá klíčování apmplitudovým posuvem (ASK). My budeme používat jeho revizi TDA5051AT, která kromě opravy některých chyb umožňuje přenosovou rychlost od 600 do 1200 baudů [46]. Co se týče zapojení, nevyžaduje žádné přemýšlení. Jednoduché schéma zapojení nám nabízí už datasheet [46]. V něm máme na výběr ze dvou možností zapojení. Uvažujeme pouze zapojení se zvýšenou senzitivitou. • Buď podle Fig 20 z datasheetu využijeme robustnější možnost, kde pro oddělení zařízení od vysokého napětí využijeme dvou transformátorů. Jeden nám připraví napětí 5V pro napájení modemu a druhý nám poslouží jako galvanické oddělění modulační části od sítě. • My si vybereme Fig 19 z datasheetu. Zapojení je podstatně jednodušší a nepotřebujeme do designu přidávat velké transformátory. V tomto obvodu se o napětí stará velký kondenzátor (2,2 µF ), který omezí společně s diodami napětí na 7,5V, o které se pak postará standartní lineární regulátor napětí 78L05. O oddělení modulační části obvodu se stará 47nF kondenzátor v druhé větvi. Toto zapojení je ovšem velice nebezpečné, obvod není galvanicky oddělen od sítě a proto musíme při stavbě zacházet se zařízením s nejvyšší opatrností. Pokud budeme modem připojovat 30
4.1. Použitý HW klienta P1
handbook, full page
250 V (AC) max
T 630 mA MOV 250 V (AC) C1
R1
U R1
+5 V
D2
1
78L05
U1
2
C11
D3
7V5 (1.3 W)
470 μF (16 V)
C7
VDDD
signalizační led diody
PD
47 μH
L3
10 kΩ
10 8 OSC1
RX_IN 10 nFD5
R4 150 kΩ 10 nF
TX_OUT BC547B D5
3 5 9 12 OSC2 DGND APGND V AGND
C5
1 kΩ
33 kΩ
R6
R5
2.2 MΩ
D5
R7
SA5.0A
XTAL 7.3728 MHz
C8
X 27 pF
C4
R3
DDA
13
TDA5051A
15
L2
47 nF C3 (63 V)
1 mH
14
4 7
C2
1N4006
D1
VDDAP 11
DATA_OUT 1
+5 V
47 μH low RS
1 μF (16 V)
DATA_IN galvanické oddělení
68 Ω 100Ω (2 W) 5W
100 μF (16 V)
C8
MICROCONTROLLER
47 nF/X2 250 V (AC)
1N4006
3
47 nF
+3,3 V
L1
2 μF X2 250 V (AC)
ZD4V7
C9 27 pF
Obrázek 4.2: Schéma zapojení integrovaného obvodu TDA5051 z datasheetu. Červené položky jsou přidány oproti datasheetu. Odpor R2 a dioda D5 jsou oproti datasheetu změněny dle [47]. Přidáno je také galvanické oddělení mikrokontroléru a modemu, aby nedošlo k poškození vyšším napětím.
k něčemu jinému než mikroprocesoru zapojenému ve stejném obvodu, je potřeba galvanicky oddělit výstup optočleny. Toto zapojení popisuje obrázek 4.2. Kde pak podrobněji rozepsané zapojení periferí mikrokontroléru je popsáno na obrázku 4.3.
4.1.2
Mikrokontrolér MSP430
Je mikrokontrolér od Texas Instruments z řady Value line, jde tedy o velice levný a přesto dostatečně výkoný čip. Mikrokontrolér běží na 16MHz a má 512B RAM a 16KB Flash, které pro naše minimální požadavky stačí. Je vybaven funkcemi, ze kterých použijeme hlavně: • A/D převodníky pro sběr dat ze senzorů, které jsou založeny na napěťovích děličích. MSP430 obsahuje 6 takových převodníků. Což by u složitějších aplikací nemuselo stačit. • Hardwarová SPI sběrnice pro komunikaci s displayem připojeným pro zobrazování informací přímo na klientovi. A s ní kombinovaná I2C sběrnice, kterou použijeme pro vyčtení dat z přesného senzoru teploty. Na31
4. Vlastní řešení štěstí tyto sběrnice lze kombinovat, nevyužívají totiž společně jeden a ten samý timer, který je napojen na různé piny. Proto nebudeme muset mezi těmito sběrnicemi přepínat, jako by se nám mohlo stát u jiných obvodů. • 2 interní časovače s přerušením, ze kterých nám jeden poslouží pro deserializaci a serialzaci dat ze sběrnice. Mikrokontrolér MSP430 lze programovat přes tvz. one-wire. Je to technologie pro malé mikropočítače, které se snaží šetřit vývody a umožňují nahrávání firmware přes jeden jediný vodič 32 . MSP430 je dodáván společně s programátorem, který dohromady s čipem výjde na necelých 9 $. K čipu je poskytován zdarma vývojový software Code Composer Studio, který je ve free verzi omezen na maximální velikost programu 16KB. Programuje se v něm podobně jako pro jakýkoliv jiný čip, podporuje debuging, programování v jazyce C, rozdělení programů do sekcí a mnoho příkladů použití. My ale využijeme opensource multiplatformní alternativu s názvem Energia. Ta umožňuje programovat čip v jazyce C++ a používat knihovny napsané pro jiné čipy i od různých firem. Celou implementaci to zjednodušuje, zpřehledňuje a umožňuje nám program modularizovat do funkčních bloků snadněji, než bychom mohli v jazyce C. Existuje mnoho čipů MSP430 řady Value Line, my použijeme ten nejsilnější z G řady v konfiguraci zmíněné výše s označením G2554. Prodává se ve variantách jako 20 (použitelných jako GPIO pouze 16) vývodové tak v 16 vývodové. My použijeme 20 vývodovou variantu, která bude našim požadavkům dostatečně vyhovovat. Procesor pracuje na 3.3V narozdíl od modemu TDA5051, který pracuje na 5V, proto bude potřeba takové napětí na desce připravit vhodným lineárním regulátorem. Schéma připojení mikrokontroléru k periferiím popisuje obrázek 4.3.
4.1.3
Spínač
Spínání bude obstarávat mikroprocesor, který vyšle signál do spínacího zařízení, a to provede sepnutí vyššího napětí, než se kterým mikroprocessor pracuje. Proto bude potřeba použít spínač, který takové spínání umožňuje. Možené realizace jsou: • Využít tvz. triodový spínač střídavého produ (triak) s dostatečně velkým výkonem pro spínání napětí přes 230V řídícím napětím 3.3V . Takový triak nám umožňuje velice rychlé spínání a vypínání ovládaného zařízení a tím nám umožňuje použít například PWM modulaci pro zvyšování nebo snižování intenzity svitu světla. Takto velký tranzistor nicméně 32 Ve skutečnosti jsou to 3 povinné vodiče - Napájení, zem a one-wire. Pokud chceme využít debugovacích nástrojů, můžeme připojit ještě reset.
32
4.1. Použitý HW klienta
,
,
WATT
Obrázek 4.3: Část schémetu propojení mikrokontroléru k periferiím obsahující senzory ACS712-20A pro měření příkonu, senzoru LDR 05-75 pro měření osvětlení a LM92 pro měření teploty.
vyžaduje velké chlazení, což v případě integrace systému do menších prostor nemusí být zajištěno. Také je na místě galvanicky oddělit od obvodu kvůli zpětnému napětí. • Pokud nevyžadujeme rychlé změny stavů, které nám umožňuje předchozí řešení, můžeme využít standardní spínací relé. Na trhu ovšem nejsou varianty s ovládacím napětím 3.3V , kromě toho relé potřebuje pro sepnutí proud aspoň 20mA33 [48] a mikroprocesor může dodávat maximálně 20mA. Proto budeme muset využít varianty se spínacím tranzistorem BC533, abychom napěťové limity relé splňovali. V našem řešení využijeme relé. Je jednodušší a robustnější než tranzistor. Jak ho co nejjedodušeji zapojit, popisuje Obrázek 4.4. Mělo by zvládat zátěž aspoň 10A a být co nejmenší. Postačující řešení nám nabízí firma Repol, která vyrábí miniaturní relé do PCB o velikostech 19 x 15.4 x 15.5mm a umožňuje spínat 230V pěti volty až při 10 ampérovém zatížení. To našim účelům bohatě postačuje.
4.1.4
Senzory
Senzory v naší aplikaci budou minimálně jednou za 2 sekundy kontrolovat a průměrovat hodnoty naměřené v místnosti a na zařízení. Budeme měřit příkon, napětí, luxy a teplotu. Měření samotné je velice jednoduché, stačí využít interních převodníků A/D mikroprocesoru MSP430 z 4.1.2 a vybrat vhodné senzory, které se změnou měrné veličiny mění i svůj odpor. Pak stačí tyto senzory propojit do napěťového děliče s vhodným rezistorem a můžeme vyčítat naměřené hodnoty. 33
Pro relé 5V /220V 10A.
33
gpio 2.5
R7
C1 D1
1N4007
+5V
4. Vlastní řešení
C2 relé cívka T1 2N2222
WATT
k10
Obrázek 4.4: Schéma zapojení relé RM50 s ochranou diodou proti zničení spínacího tranzisotru BC533, který je spínán mikroprocesorem. Pro většinu výpočtů jednotlivých hodnot využijeme vzorec pro napeťový dělič: R2 U2 = U · podíl = U · R1 + R2 Kde U2 je měřené napětí procesorem, U je dělené napětí (v našem případě 3,3V – napětí mikroprocesoru), R1 je odpor zapojený se senzorem do série a R2 je odpor senzoru. 4.1.4.1
Měření příkonu
Pro měření příkonu potřebujeme dvě elektrické veličiny. Je to napětí a proud. Proud se dá měřit velice jednoduše, postačí nám součástka - halova sonda ACS712. Při zapojení s dvěma kondenzátory (Obrázek 4.5) nám umožní na pinu Vout měřit lineární průběh proudu, kde dle [49] je každých 100mV = 1A . Tuto situaci popisuje Obrázek 4.6, kde vidíme (vlevo) křivku průběhu závislosti měřeného proudu na výstupním napětí tohoto senzoru. Uvažujeme-li maximální možné měřené napětí 10A kvůli omezení relé, dostáváme se na maximální napětí, které může sonda při VCC 5V dávat - 3, 5V . To je bohužel o 0, 2V víc, než nám umožňuje měřit mikroprocesor. Proto bude potřeba omezit napětí o alespoň 5,8% abychom mohli měřit proud až do 10A bez poškození mikroprocesoru (obrázek 4.6 vpravo). Pokud využijeme pro měření Vout interní A/D převodník mikroprocesoru, který nám poskytuje 10 bitovou přednost (210 = 1024 dílů) a uvažujemeli omezení napětí o 5,8%, dostáváme vzorec pro maximální přesnost tohoto měření: Irozlišení = 34
1A 100mV v dílech A/D převodníku
(4.1)
4.1. Použitý HW klienta +5nV 1
VCC
IP+
2
IP+ VIOUT
IP
8 7
VOUT
CBYP 0.1 μF
ACS712 3
IP
4
FILTER
IP
GND
6 5
CF 1 nF
Obrázek 4.5: Zapojení hallovy sondy do obvodu se dvěma kondenzátory. Převzato z [49]. Graf s přidaným napěťovým děličem pro ochranu výstupu
5.0 4.5 4.0 3.5 3.0 2.5 2.0 1.5 1.0 0.5
VCC = 5 V
–25 –20 –15 –10
TA (°C) –40 –20 25 85 125 –5
0
IP (A)
5
10
15
20
maximum procesoru
VIOUT (V) . 0,942
VIOUT (V)
Výstupní napětí vs. měřený proud pro 20A
4.71 4.24 3.77 3.29 2.82 2.36 1.88 1.41 0.94 0.47
VCC = 5 V
–25 –20 –15 –10
25
maximum relé
TA (°C) –40 –20 25 85 125 –5
0
IP (A)
5
10
15
20
25
maximum relé
Obrázek 4.6: Graf závislosti měřeného proudu na výstupním napětí hallovy sondy s vyznačenými maximálními hodnotami, které může sonda v naší aplikaci nabývat. Omezena je proudově shora a zdola 10A pro relé a 3,3V pro mikroprocesor. Druhý obrázek ukazuje graf s napěťovým děličem po snížení o 5,8%.
= =
1A
(4.2)
100mV ·podíl deliče 1 vzorek ve V
1A 100mV
U · U2
U2 přesnost A/D
=
1 0,1· 3,3 3,5
. = 0, 0341796 = 34,18 mA
(4.3)
3,3 210
Vypočtená hodnota 34, 18mA nám dává přibližný obraz o přesnosti měření. Pokud uvažujeme napětí 230V , dostáváme se na minimální rozlišení 230V · 0, 03418A = 7, 861W , které není moc velké. Přesnost by bylo možné zvýšit hlavně lepším A/D34 převodníkem nebo hallovou sondou určenou pro nižší proudy. Oproti tomu u měření napětí budeme muset využít více součástek. Nelze pouze rozdělit napětí děličem v požadovaném poměru, usměrnit střídavé na34 Při použití např I2C/SPI A/D převodníků např.: ADS7823 (12bit), ADS1113 (16bit) nebo ADS1281 (24bit) můžeme zvýšit přesnost na 1,97W, 0,12W nebo až 0,4mW.
35
4. Vlastní řešení pětí a měřit. Takové zapojení by bylo nebezpečné. Dá se využít napětí z hlavního transformátoru, který nám vytváří napětí 6V pro TDA5051. Tento transformátor změnší napětí vždy ve stejném poměru, a proto ho při rozdělení napěťovým děličem můžeme měřit A/D převodníkem mikroprocesoru. Napětí v síti se příliš nemění. Například v České republice dle [20] je povolená odchylka mezi fází a nulovým vodičem +-10%, což nám dává rozptyl od 230V ±23V . Takže při použití interního A/D 10 bitového převodníku se dostáváme na odchylku od naměřeného výkonu P ± 0, 7861W . Což se dá u většiny jednodušších aplikací tolerovat a měření napětí neimplementovat vůbec. 4.1.4.2
Měření ostatních hodnot
Další hodnoty, které budeme měřit, budou teplota a osvětlení. Měření bude probíhat podobně, jako měření proudu až na ten rozdíl, že u teploty využijeme senzor s přesností 12-bitů, který komunikuje přes I2C sběrnici. Měření osvětlení je velice jednoduché. Senzor osvětlení se chová jako odpor a se změnou intenzity osvětlení změní i svůj odpor. Jmenuje se fotorezistor. Na trhu jsou i varianty tvz. fotodiody, ty ale v našem návrhu nepoužijeme. Fotorezitor, který použijeme, má označení LDR 05-75 a jeho odpor se může měnit od 75kΩ do 5M Ω. Po zvolení vhodného rezistoru do děliče bude potřeba tento senzor zkalibrovat, protože jeho odpor se v čase mění. Pokud budeme měřit teplotu, využijeme k tomu senzor LM92CIM. Senzor pracuje s interním termistorem a vlastním 12 bitovým A/D převodníkem a data vystaví na sběrnici I2C. Není potřeba řešit kalibrace, senzor má na výstupu přenou hodnotu ve stupních celsia. Hodnota z tohoto procesoru má přesnost 0, 0625◦ C a na čipu je uložena v 13 bitovém registru, kde jsou data uložena v doplňkovém kódu a mohou nabývat hodnot od −55◦ C do 130◦ C. Výpočet hodnoty je dle tabulky z [50] jednoduchý. Stačí 13 bitovou hodnotu vynásobit maximální přesností čidla a získáme požadovanou hodnotu v 12 bitové přesnosti: Tsenzoru = hodnota registru · maximální přesnost ◦
◦
= data · 0, 0625 C = výsledek C
(4.4) (4.5)
Oba dva senzory je potřeba umístit co nejblíže krytu aplikace. Pro senzor osvětlení je potřeba do krytu vyvrtat díru a až potom kalibrovat. Pokud senzor teploty umísítme dál od krytu přístroje, můžeme dostávat až o několik hodin zpožděné hodnoty kvůli tepelným izolačním vlastnostem krytu.
4.2
Server
V předchozí části 4.1 jsme si ujasnili hardware klienta, a tím jsme předdefinovali jeho možnosti. V další části definujeme hardwarové požadavky pro server, které vychází z požadavků na funkci celého systému. Systém bude umět: 36
4.2. Server
Linuxový server Java EE aplikace Mikrokontrolér MSP430
Rs232 Scheduler Uživatelské API Síť
Home automation modem TDA5051
MySQL
výstup do souboru
PHP, MRTG, ...
230V/50Hz
Obrázek 4.7: Blokové schéma zapojení serveru ke sběrnici. Konkrétní schéma propopojení mikrokontroléru a modemu viz. B.2.
• měnit stav spínačů (4.1.3) připojených klientů a kontrolovat, jestli požadavek skutečně proběhl • vyčítat hodnoty senzorů (4.1.4), ukládat je a graficky znázorňovat pro pozdější kontroly • poskytovat aktuální data z připojených klientů v přehledném webovém api • umožňit jednoduchý přístup k aktuálním naměřeným datům například programům jako MRTG apod. Server hraje v naší aplikaci velice důležitou roli. Bez něj by celá sběrnice nemohla správně fungovat, protože klienti nemohou komunikovat samostatně s ostatními klienty s nimi komunikuje pouze server. Tyto podmínky jsou definovány v následující sekci 4.3.2. Aby byly splněny všechny požadavky, bude server postaven na linuxovém systému, ke kterému se bude připojovat sběrnice v podobě powerline pomocí přeposílače v podobě mikroprocesoru MSP430, který bude fungovat podobně, jak je tomu v klientských aplikacích. Blokové schéma společně s moduly, které budou implementovány v SW, jsou na obrázku 4.7. V následující části rozebereme alternativy různých linuxových serverů.
4.2.1
Linuxový server
Pokud chceme vybrat server, musí zvládnout všechny funkce, které jsou znázorněny na obrázku 4.7. To jen tak některý mikroprocesor nesvede, a proto server postavíme na výkonnějším hardwaru a se sběrnicí budeme komunikovat přes rozhraní RS232. Nároky, které budou na server kladeny: 37
4. Vlastní řešení • Musí na něm fungovat nějaký z aplikačních serverů Java EE. Například server GlassFish potřebuje minimálně 1 GB paměti a 250 MB na disku [51]. S tím souvisí i funkční Java SDK, který neběží na každé architektuře. • Musí umožňovat připojení RS232, ať přes USB nebo nativně. • Měl by podporovat některý z databázových serverů pro efektivnější ukládání dat. Java EE umožňuje některé databázové servery spouštět společně, ale my využijeme externího programu pro takovou databázi kvůli přístupu zvenčí. Nejjednodušší variantou bude MySQL, která nevyžaduje ve verzi Comunity Edition takové HW nároky. • Pro přístup zvenčí musí zvládnout standartní internetové připojení, ať přes ethernet nebo WiFi.
4.2.2
Raspberry pi
Raspberry pi je jednojádorvý mikropočítač s 256M B (v revizi 2. 512M B) paměti, taktovaný v základu na 700M Hz a s úložištěm na volitelné paměťové kartě [52]. Lze na něm provozovat port svobodného operačního systému Debian pod názvem Raspbian. Již po instalaci systému můžeme používat nativní RS232 rozhraní, spouštět Java aplikace a opravdu jednoduše nainstalovat MySQL databázi 35 . Bohužel při prvním testování systému narazíme na problém s rychlostí. U testovaného serveru máme k dispozici pouze 256M B RAM paměti, což je opravdu málo. Při běžící MySQL nám zbývá na aplikační server necelých 125M B (reálná zkušenost) což je téměř desetina z minimálního požadovaného prostoru. Stránky poskytované přes Java EE aplikační server se sice načtou, ale čekáme na ně někdy i 30 sekund. Při testován na raspberry pi v revizi 2. dostáváme o něco lepší výsledky. Při běžícím MySQL nám zbývá necelých 330M B paměťi, které i přes doporučení z [51] na běh aplikačního serveru stačí a dostáváme se na 3 sekundy načítání nové stránky. Avšak my při implementaci využijeme server s více RAM pamětí, například starší počítač s Intel Core 2 Duo procesorem a 2GB paměti funguje po připojení externího USB – RS232 převodníku stejně jako raspberry pi. V kalkulaci 5.3 je uvažován raspberry pi B v revizi 2.
4.3
Požadavky na SW
Celý systém bude využívat programovou architekturu známou z I2C nebo SPI sběrnice master-slave36 . Na sběrnici bude jeden master, který bude vyčítat 35 36
38
Příkazem sudo apt-get install mysql-server Částečně vycházíme i ze standartu KNX 2.2.
4.3. Požadavky na SW informace od klientů a zadávat jim příslušné příkazy, které příjdou od uživatele přes internet. Toto schéma komunikace popisuje kapitola 1.2 obrázek 1.2. Konkrétní implementaci komunikace po sběrnici realizují mikroprocesory MSP430, jak na straně serveru, tak na straně klienta. Pro potřeby této práce byla vytvořena knihovna Powerlinecomm.h, která ja napsaná v C++ a je použitelná v programovacím prostření Energia. Realizuje veškeré fyzické přenosy po sběrnici a zajišťuje timeouty, CRC kontroly a kontroly konzistence dat. Tuto knihovnu využívá klient i server, kde poté tato knihovna dodržuje specifické schéma komunikace, které je rozebráno v následujících částech. Její doxygen dokumentaci nalezneme na přiloženém CD.
4.3.1
Klient
Klient je tvz. akční prvek sběrnice. Vykonává příkazy, které pošle server. Má svoji adresu, díky které klienti připojení ke sběrnici poznají, jestli data patří jim nebo ne. Pokud jim data nepatří, datový paket je ignoruje, čímž předchází kolizím, které by mohly na sběrnici vznikat. Klient nekomunikuje s ostatními klienty, pouze se serverem. Jeho hardwarová implementace je rozebrána v 4.1, pro software je pouze potřeba vědět, že klient obsahuje hardwarové periférie jako spínač, senzory a display. Na základě příkazu od serveru vykoná příslušné akce, a v případě potřeby odešle naměřená data. 4.3.1.1
Funkce klienta
Klient má omezenou sadu funkcí, na které může reagovat. Pokud server zašle požadavek, který klient nezná, bude ho ignorovat. Jak je zmíněno výše, veškerou fyzickou komunikaci po sběrnici obstarává knihovna Powerline.h. Pokud je tedy přijat požadavek, na který klient může reagovat, nastane jeden z těchto scénářů: 1. Je přijat paket, který obsahuje příkaz o zaslání aktuálních dat senzorů. Hodnoty senzorů jsou průběžně počítány a průměrovány, odešle se tedy přímo paket s průměrnými hodnotami. Diagram komunikace viz. C.2 2. Přijde paket s novým stavem spínače. Diagram komunikace C.2 3. Server požaduje ohlášení na adrese klienta, aby zjistil, kdo všechno je na sběrnici přítomen. Diagram komunikace C.1
4.3.2
Server
Server se dá rozdělit na dvě části. Je to ta před RS232 a za RS232. Zatímco mikroprocesor se stará o fyzickou vrstvu komunikace a využívá již zmíněnou třídu Powerline.h, linuxový server používá poskytnutá data a posílá skrz mikroprocesor své příkazy ke klientům. Příkazy linuxového serveru vychází 39
4. Vlastní řešení Tabulka 4.1: Tabulka zobrazuje použité příkazy pro java server, který je posílá po sériové lince mikroprocesoru. Diagramy těchto komunikací viz. C.1 a C.2 Vstupní Očekávaná odpověď příkaz s Scanning... FOUND on [addr] notfound on [addr+1] ... Num FOUND: [num] d Data request on which? [addr] **Data request completly... DATA: Rela: [relay state] Watt: [watt] Temp: [temp] Illu: [illu] w Switch on which? [addr] on or off? [new state] Switched to [new state] p Check alive on which address? [addr] FOUND on [addr] Alive. a Switch on debug mode? [new state] Switched [new state]
Poznámka Proskenuje sběrnici a zjistí přítomné klienty.
data ve formě hodnot A/D převodníků
o pro zapnutí, f pro vypnutí relé
Zjistí, jestli je klient stále přítomen na [addr] y zapnout debug, n vypnout debug. Slouží pro měření časů přenosů.
z příkazů implementovaných v mikroprocesoru. Tyto příkazy jsou v tabulce 4.1, kde vidíme, jaké znaky musí server poslat po sériové lince, aby server v mikroprocesoru věděl, co má dělat. V tabulce jsou i odpovídající odpovědi, se kterými bude java server pracovat. Druhá část serverového software je napsána v jazyce Java a slouží k interakci uživatele se systémem. Je poskytnuto standartní webové rozhraní, díky kterému můžeme systém kontrolovat a ovládat ze sítě. Jeho ostaní funkce jsou: • Periodický zápis dat ze systému do databáze a ostatních výstupních souborů (viz. obrázek 4.7). • Spouštění naplánovaných úloh. • Poskytuje rozhraní pro základní nastavení sběrnice, jako je přidávání klientů, pravidla pro spínání nebo rychlosti aktualizací. 40
4.3. Požadavky na SW • Z periodicky zapsaných dat vytváří uživatelské grafy (ukázky viz. 5.2) a stará se o generování statistik. 37 Jako interface s uživatelem slouží jednoduchý web, jehož rozhraní je testováno v 5.1.2. Menu v serverovém programu je členěno následovně: • Aktuální situace - úvodní stránka systému, zobrazuje data přidaných klientů. Je možné přepínat spínače u klientů. • Historie - podobný pohled jako aktuální situace, avšak s tím rozdílem, že je možné zvolit čas z minulých měření. • Statistiky - generování grafů pro přehlednější pohled do minulých měření. Možnost kombinovat data ze senzorů dohromady a nastavení intervalu grafu. • Nastavení - umožňuje nastavovat časy aktualizací a soubory, do kterých jsou aktuální data generována. Dále pak poskytuje možnost nastavení naplánovaných úloh, pro vypnutí zařízení v určitý čas, nebo při překročení určité meze senzoru.
4.3.3
Bezpečnost realizace
Powerline komunikace nepatří mezi nejbezpečnější přenosy dat, je velice jednoduché ji odposlouchávat, a tím i umožnit případným útočníkům přístup do našeho systému. Větším problémem ale může být připojení uživatelského ovládání systému k síti internet. Bezpečnost systému lze zvýšit například: • Opatřením volitelného kódování přenosů, které by se o bezpečnost postaralo za cenu zvýšené režie serveru a klientů. • Komunikace po powerline většinou neprojde skrz transformátory (více 3.3.1), což je v podstatě žádoucí, a také napomáhá bezpečnosti. • Znemožněním přístupu k uživatelskému ovládání z internetu předejdeme chybám vlastní implementace, které by mohly vést k útokům zvenčí. Abychom ale nepřišli o funkci systému, můžeme toto omezení vyřešit například VPN připojením do vnitřní sítě, kde k aplikaci již přístup mít budeme.
37 Systém umožňuje i generování statistik pro MRTG díky pravidelně aktualizovaným externím souborům.
41
Kapitola
Výsledné řešení V následující kapitole nahlédneme do funkce hotového systému. Podíváme se na statistiky, které nám systém generuje a řekneme si, k čemu jejich analýzou dojdeme. Nakonec vypočteme cenu takového systému a tím zjistíme, jestli byla dodržena podmínka nižší ceny, než má konkurence.
5.1
Testování
Abychom odhalili případné chyby ještě před nasazením, měli bychom systém otestovat, aby splňoval to, co od něj očekáváme. Provedeme pár testů, které sice ani nemohou odchytit všechny chyby, ale i tak nám mohou napovědět, že se někde skrývá problém, se kterým jsme nepočítali.
5.1.1
Statická analýza kódu
Ve chvíli, kdy se nám podaří zprovoznit základní funkce programu, přijde na řadu statické testování. Jde o způsob testování, kde programy fyzicky nespouštíme ani nekompulijeme (tento způsob se jmenuje dynamická analýza), ale test proběhne pouze nad zdrojovými kódy [53]. Protože v našem řešení figurují 2 různé programovací jazyky, využijeme různých programů pro jejich analýzu: • Knihovna powerline.h a program pro mikrokontrolér jsou napsány v jazyku C++ a C. Pro tyto účely nám polouží program Cppcheck 38 , díky kterému můžeme odhalit nekonzistenci programu a přístup mimo členské proměné. • Serverová část programu, která je psaná v jazyce Java, byla otestována v programu FindBugs 39 . 38 39
Dostupný z http://cppcheck.sourceforge.net/. Dostupný z http://findbugs.sourceforge.net/.
43
5
5. Výsledné řešení Díky výsledkům jednotlivých testování jsme odhalili pár nezávažných chyb, které byly opraveny.
5.1.2
Uživatelské rozhraní
Správně navržený program by měl kromě správného fungování působit příjemně a lehce se ovládat. K ovládání toho v našem systému není mnoho, ale i tak je dobré vědět, jestli funkcionalitu co jsme navrhli, dokážou uživatelé využít. Asi nejjednodušší variantou jsou metody kognitivního průchodu. Uživatel (tester) se u připravených scénářů snaží rozhodnout, jestli program splňuje kritéria 4 otázek kognitivního průchodu (Q0, Q1, Q2, Q3 viz. [54]). V testu byly použity 3 jednoduché scénáře: 1. Přepnutí relé klienta 0 do stavu zapnuto. 2. Nastavení přepnutí relé do stavu vypnuto, pokud senzor osvětlení zaznamená osvětlení vyšší než 5000 luxů. 3. Vygenerování a uložení obrázku statistik, ve kterém figurují senzory luxů a watů u klienta 0 v časovém rozmezí posledních pěti dní s rozlišením 1 vzorek za 10 minut. Na vzorku 5 testerů byl odhalen problém s nedostatečnou zpětnou vazbou programu u scénáře 2 (u 3 testerů). Tento problém byl odstraněn společně s problémem ukládání grafů do souboru.
5.1.3
Propustnost sběrnice
Sběrnice, která je v implementaci použita, nepatří mezi nejrychlajší. Maximální rychlost 1200 baudů (viz. 4.1.1 = 0, 15kB/s) je malá, a zatím si nejme jisti, jestli naše požadavky sběrnice zvládne. Pomoci nám může jednoduchý výpočet pro efektivitu protokolu v procentech z [55]: E=
data = [%] rychlost · sekund
Uvažujeme-li: • Rychlost sběrnice při 1200 baudech = 150B/s. • Maximální velikost komunikace, která probíhá mezi serverem a klientem je vyčtení dat z diagramu 4.7 a powerline.h 2B request + 6B data + 2B ack serveru + 2B ack klienta = 12B (při zanedbání režijí na procesorech). • V 4.1.4 je definováno, že aktuální data potřebujeme alespoň 2x za sekundu. 44
5.2. Výstupy fungujícího systému
Obrázek 5.1: Ukázka grafu vygenerovaného serverem pro klienta 0 se zobrazením všech hodnot senzorů krome stavu relé.
Pak vzorec pro vytížení linky při jednom klientovi je: E=
12 = 4% 150 · 2
Což je naprosto dostačující pro jednoho klienta. Při aktualizacích jednou za 2 sekundy můžeme takto komunikovat až s 25 klienty. Pokud bychom chtěli zrychlovat, musíme aktualizační interval zvýšit.
5.2
Výstupy fungujícího systému
Funkční systém generuje do databáze MySQL zaznamenaná data a z nich umí vytvořit grafy, které nám mohou poskytnout pěkný přehled připojených klientů. Grafy lze mezi sebou kombinovat a zobrazovat různé klienty vzájemě na sebe. Pro implementaci těchto grafů byl použit java balíček JFreeChart, který umožňuje obrázek uložit jako soubor, který lze pak zobrazit v Java EE aplikaci. Ilustrační ukázka tohoto grafu jsou v obrázku 5.1.
5.3
Cena řešení
Jedním z hlavních požadavků na systém byla jeho cena. Pro realizaci vlastního řešení jsme se rozhodli hlavně kvůli vysoké ceně řešení existujících. V tabulce 5.1 jsou rozepsány ceny našeho řešení při minimální konfiguraci 1 server a 5 minimálních klientů (viz. 1.2) umožňujících spínání, měření watů, osvětlení a teploty. 45
5. Výsledné řešení Tabulka 5.1: Kalkulace //aliexpress.com..
ceny
Pložka modem TDA5051 senzory teploty, osvětlení, příkonu spínače pro klienta display klienta instalační krabice klienta součástky klient + PCB součástky server + PCB server z 4.2.1
vlastního
řešení.
Cena 50 Kč 20 + 20 + 40 Kč 25 Kč 80 Kč 30 Kč 150 Kč 100 Kč 800 Kč
Ceny Počet 6 5 5 5 5 5 1 1
z
http:
Celkem 300 Kč 800 Kč 125 Kč 400 Kč 150 Kč 750 Kč 100 Kč 800 Kč 3420 Kč
Výsledná cena okolo 3500 Kč je oproti ostantím standardům nízká. Například pokud bychom systém s podobnými funkcemi implementovali pomocí systému KNX, bylo by to mnohem nákladnější Přímo v KNX ale není tak jednoduchý systém jako ten náš, musíme kombinovat více zařízení, a tím dosáhneme požadovaného účinku. U KNX bychom potřebovali: • 1x USB interface pro ovládání sběrnice z internetu • 5x light senzor pro kontrolu intenzity osvětlení v místnosti • 5x power senzor pro kontrolu příkonu spotřebičů • 1x spínací relé pro spínání 230V (6 kanálové - potřeba propojit zvlášť se zásuvkami) Celková cena tohoto systému by byla podle cen z http://knxshoponline.co.uk/ přesáhla 30 000Kč.
46
Závěr V práci byla provedena důkladnou analýzu existujících řešení k vytvoření vlastního levnějšího a funkčního systému. Prošla se hotová řešení a odůvodnilo se, jaké fyzické médium komunikace bude pro náš systém nejlepší. Nakonec se rozhodlo pro powerline realizaci (viz. 3.3), která není z nejrychlejších, ale její cena je oproti rychlejším řešením bezkonkurenční. A co se týče vzdálenosti, dosáhne bez problémů po celém bloku domu nebo haly a signál projde i mezi fázemi. Po provedené analýze stávajících řešení a možností realizace byl navržen systém, který splňoval minimální požadavky z 1.1 a v porovnání s existujícím řešení KNX je jeho cena těméř desetinová. Také funkce systému jsou již v základní konfuguraci oproti ostatním řešením nadstandardní. Dá se se zpožděním maximálně 2 sekund vyčítat data jako teplotu, osvětlení a spotřebu, které si při využití jiného řešení vyžádají nemalé náklady. Systém je také možné ovládat přes internet, což jde ruku v ruce se současnými trendy v telekomunikaci a s pohledem na automatizaci. Výstup systému se v podobě statistik dá lehce využít ke kontrole funkčnosti připojených zařízení v čase, nebo i k dalším přidruženým úkolům. Systém poskytuje výstupy v podobě souborů a MySQL databází pro invididuální exporty nebo pro invididuální přístupy externích programů. Celý tento systém byl sestaven, zprovozněn a otestován a je plně funkční. Jeden z cílů práce byl tedy tímto splněn. Hlavním stavebním prvkem hardwarové části je mikroprocesor MSP430, jehož softwarovým vybavením je knihovna powerline, která je psána v C++ pod platformou energia a splňuje předpoklady pro přenositelnost na jiný mikroprocesor. Celá hardwarová část klienta se vejde do standardní elektroinstalační krabice se standardním zásuvkovým vstupem, díky které je instalace systému opravdu jednoduchá. Výsledný systém je pouze základním stavebním prvkem (ve smyslu minimální konfigurace z 1.2) pro otevření možností mnohem větší integrace. Jako rozšíření se dají postaviti specifičtější moduly přímo komunikující s připo47
Závěr jeným zařízením (obrázek 1.1 – invididuální ovládání). Dalším krokem při rozšíření bude umožnit měnit intenzitu připojeného osvětlení nahrazením pomalého relé z 4.1.3 rychlejšími triodovými spínači. Je jasně vidět, že možnosti podobných inteligentních systémů jsou široké a jejich vývoj není zdaleka u konce. Záleží však na každém jednotlivci, zda se rozhodne využívat zařízení usnadňující každodenní úkony ve větší míře.
48
Literatura [1]
Dušil, J.: Elektrické a elektronické spotřebiče v domácnosti. [Citováno 13. 4. 2014]. Dostupné z: http://wrack.ped.muni.cz/portal/ jakVeciPracuji/office/office/jiri_dusil/index1.ppt
[2]
Kunc, J.: Elektroinstalace krok za krokem 2. Grada Publishing a.s., 2010, ISBN 8024768046.
[3]
Viessmann: Bauanleitung LAN-Ethernet. [Citováno 14. 4. 2014]. Dostupné z: http://openv.wikispaces.com/Bauanleitung+LAN-Ethernet
[4]
SANYO North America Corporation: Controlling the projector using a UART Remote Control Device. [Citováno 14. 4. 2014]. Dostupné z: http://us.sanyo.com/dynamic/product/Downloads/ RC232C_Basic_PDG-DSU21N_20N-35686393.pdf
[5]
International Business Machines Corporation: Integrated Management Module - User’s Guide. 2008, [Citováno 16. 4. 2014]. Dostupné z: http://pic.dhe.ibm.com/infocenter/sonasic/sonas1ic/ topic/com.ibm.sonas.doc/imm_users_guide_60y1465.pdf
[6]
Powel, M.: VP-Systems - Remote Controlled Video & Photography. 2013, [Citováno 13. 4. 2014]. Dostupné z: http://vp-systems.eu/ camremote.html
[7]
Siemens, s.r.o.: Mikrosystémy. [Citováno 16. 4. 2014]. Dostupné z: http://stest1.etnetera.cz/ad/current/content/data_files/ automatizacni_systemy/mikrosystemy/logo/zakladni_pristroje/ _manualy/manual_logo-0ba6_11-2008_cz.pdf
[8]
Hlaváč, V.: Senzory pro robotiku, 2004, [Citováno 18. 4. 2014]. Dostupné z: http://cmp.felk.cvut.cz/~hlavac/TeachPresCz/51Robotika/ 51SenzoryRobotika.pdf 49
Literatura [9]
Vacík, R. J.: Přehled středoškolské chemie. SPN, třetí vydání, ISBN 807235-108-7, [Citováno 18. 4. 2014].
[10] Dominique Paret, C. F.: The I2c Bus: From Theory to Practice. John Wiley & Sons, Inc., ISBN 0471962686, [Citováno 25. 4. 2014]. [11] Spigel, L.: Welcome to the Dreamhouse: Popular Media and Postwar Suburbs. Duke University Press, 2001, ISBN 0-8223-2696-5, [Citováno 26. 4. 2014]. [12] X10 Inc.: Home Automation System. [Citováno 16. 4. 2014]. Dostupné z: http://x10.com [13] O’Driscoll, G.: The Essential Guide to Home Networking Technologies. Prentice Hall, 2000, ISBN 978-0-13-019846-4, [Citováno 16. 4. 2014]. [14] HomeRF: wireless networking for the connected home. Personal Communications, IEEE, ročník 7, 2000, ISSN 1070-9916. [15] Lahti, M.-L.: IEEE 802.11 Wireless LAN. 2000, [Citováno 16. 4. 2014]. Dostupné z: http://www.tml.tkk.fi/Opinnot/Tik-110.551/2000/papers/ IEEE_802/wlan.html [16] Feng, X.: Home Networking. report, The Ohio State University, [Citováno 16. 4. 2014]. Dostupné z: http://www.ipcf.org/doc/Xinhua_Feng__Home_Networking.pdf [17] Edward B.Driscoll, J.: A Timeline for Home Automation. 2002, [Citováno 16. 4. 2014]. Dostupné z: http://www.eddriscoll.com/timeline.html [18] X10 Inc.: RF Keychain Remote - KR19A. [Citováno 16. 4. 2014]. Dostupné z: http://www.authinx.com/manuals/X10/KR19A.pdf [19] X10 Inc.: How X10 Works. [Citováno 19. 4. 2014]. Dostupné z: http: //www.smarthomeusa.com/info/x10theory/x10theory/ [20] Pražská energetika, a. s.: Podniková norma JT105. 2008, [Citováno 3. 5. 2014]. Dostupné z: http://www.predistribuce.cz/distribuce/ distribucni-sit/dodavatele-technologii/podnikove-normy/ JT105.html [21] KNX Association: What is KNX? [Citováno 19. 4. 2014]. Dostupné z: http://www.knx.org/knx-en/knx/association/what-is-knx/ index.php [22] Somfy spol. s r.o.: Technické informace o KNX / EIB systému. [Citováno 16. 4. 2014]. Dostupné z: http://www.somfyarchitecture.cz/ downloads/buildings/technicke_informace_o_knx_systemu.pdf 50
Literatura [23] Mevenkamp, M.: 50% Energy Savings by KNX - details and discussion of a promising result. report, Institut für Informatik und Automation, Hochschule Bremmen, 2008, [Citováno 20. 4. 2014]. Dostupné z: http: //www.knx.org/fileadmin/downloads/05%20-%20KNX%20Partners/ 03%20-%20Becoming%20a%20KNX%20Scientific%20Partner/2008-11% 20Conference/presentations/Session1_extension.pdf [24] Robert S. Hastings, M. W.: Sustainable Solar Housing: Volume 1 - Exemplary Buildings and Technologies. Routledge, 2013, [Citováno 20. 4. 2014]. [25] Internation Electrotechnical Commision: Norme Internationale CEI IEC 60929. 2006, [Citováno 22. 4. 2014]. Dostupné z: http:// www.lisungroup.com/IEC-60929.pdf [26] Texas Instruments Incorporated: Digital Addressable Lighting Interface (DALI) Implementation Using MSP430 Value Line Microcontrollers. 2012, [Citováno 22. 4. 2014]. Dostupné z: http://www.ti.com/lit/an/ slaa422a/slaa422a.pdf [27] Kunc, J.: Elektroinstalace krok za krokem. Grada, 2010, ISBN 24768045, [Citováno 22. 4. 2014]. [28] Philips Semiconductors: Dali specification guide. [Citováno 2014-04-22]. Dostupné z: http://ritelites.com/yahoo_site_admin/assets/docs/ dali-specs-guide1.23264229.pdf [29] Microchip Technology Inc.: Digitally Addressable Lighting Interface (DALI) Communication. [Citováno 22. 4. 2014]. Dostupné z: http: //ww1.microchip.com/downloads/en/AppNotes/01465A.pdf [30] KNX Association: KNX TP1 Installation. [Citováno 23. 4. 2014]. Dostupné z: http://www.knx.org/fileadmin/template/ documents/downloads_support_menu/KNX_tutor_seminar_page/ basic_documentation/Installation_E1212a.pdf R [31] ENIKA.CZ s.r.o.: Smart electrial installation system - Poseidon 868 MHz - Bezdrátový systém. [Citováno 23. 4. 2014]. Dostupné z: http://www.enika.cz/download/inst_elektronika/ Poseidon_katalog_2014_CZ_web.pdf
[32] Všeobecné oprávnění č. VO-R/10/04.2012-7 k využívání rádiových kmitočtů a k provozování zařízení krátkého dosahu. report, Český telekomunikační úřad, 2012, [Citováno 22. 4. 2014]. Dostupné z: http://www.ctu.cz/ cs/download/oop/rok_2012/vo-r_10-04_2012-07.pdf [33] Brain, M.: How WiFi Works. [Citováno 25. 4. 2014]. Dostupné z: http: //zulsidi.tripod.com/pdf/HowWifiWork.pdf 51
Literatura [34] Microchip Technology Inc.: MRF24WB0MA/MRF24WB0MB Data Sheet 2.4 GHz IEEE 802.11bTM . [Citováno 25. 4. 2014]. Dostupné z: http: //ww1.microchip.com/downloads/en/DeviceDoc/70632C.pdf [35] Český statistický úřad: Jakým způsobem jsou domácnosti v ČR připojeny k internetu? 2010, [Citováno 25. 4. 2014]. Dostupné z: http://www.czso.cz/csu/redakce.nsf/i/ jakym_zpusobem_jsou_domacnosti_v_cr_pripojeny_k_internetu [36] IEEE 802.3 ETHERNET WORKING GROUP. 1980, [Citováno 25. 4. 2014]. Dostupné z: http://www.ieee802.org/3/ [37] History of Ethernet. 2013, [Citováno 25. 4. 2014]. Dostupné z: http: //standards.ieee.org/events/ethernet/history.html [38] Winterling, P.: 100 Gigabit Ethernet – Fundamentals, Trends, and Measurement Requirements. report, 2010, [Citováno 25. 4. 2014]. Dostupné z: http://www.jdsu.com/ProductLiterature/100GEfundamentals-white_paper.pdf [39] Svídeňská, B.: Aktivní a pasivní síťové prvky. [Citováno 26. 4. 2014]. Dostupné z: http://home.zcu.cz/~svidensb/ [40] Texas Instruments Incorporated: AN-1405 DP83848 Single 10/100 Mb/s Ethernet Transceiver Reduced Media Independent InterfaceTM (RMIITM ) Mode. 2013, [Citováno 26. 4. 2014]. Dostupné z: http://www.ti.com/lit/ an/snla076a/snla076a.pdf [41] Michal, V.: Modem pro komunikaci po vedení 220V. [Citováno 27. 4. 2014]. Dostupné z: http://www.postreh.com/vmichal/constructions/ modem/powerline_modem.pdf [42] Sekizawa, M.: Power Lines Used for Data Communications. 1998, [Citováno 27. 4. 2014]. Dostupné z: http://tdworld.com/archive/powerlines-used-data-communications [43] STMicroelectronics: ST7536 - Power line modem. 1998, [Citováno 27. 4. 2014]. Dostupné z: http://pdf.datasheetcatalog.com/datasheet/ stmicroelectronics/1146.pdf [44] Philips Semiconductors: TDA5051 - Home automation modem. 1997, [Citováno 27. 4. 2014]. Dostupné z: http://pdf.datasheetcatalog.com/ datasheet/philips/TDA5051T.pdf [45] SmartLabs: Power line modem module. [Citováno 28. 4. 2014]. Dostupné z: http://www.jclautomation.com/docs/2412s.pdf 52
Literatura [46] NXP Semiconductors: TDA5051A - Home automation modem. 2011, [Citováno 1. 5. 2014]. Dostupné z: http://www.nxp.com/documents/ data_sheet/TDA5051A.pdf [47] Janish, Z.: Power Modem po 220V vedení. 2002, [Citováno 1. 5. 2014]. Dostupné z: http://www.hw.cz/teorie-a-praxe/konstrukce/powermodem-po-220v-vedeni.html [48] Repol: RM50 Datasheet. 2013, [Citováno 3. 5. 2014]. Dostupné z: http: //www.tme.eu/cz/Document/bf11c51f8d8d97ba9276cfe47532376b/ RM50.pdf [49] Allegro MicroSystems, LLC: Fully Integrated, Hall Effect-Based Linear Current Sensor IC with 2.1 kVRMS Isolation and a LowResistance Current Conductor. 2013, [Citováno 3. 5. 2014]. Dostupné z: http://www.allegromicro.com/~/media/Files/Datasheets/ ACS712-Datasheet.ashx [50] Texas Instruments Incorporated: 12-Bit + Temp Sensor & Thermal Window Comparator w/2-Wire Interface (Rev. D). 2014, [Citováno 4. 5. 2014]. Dostupné z: http://www.ti.com/lit/gpn/lm92 [51] Oracle Corporation: Hardware and Software Requirements for MySQL. 2010, [Citováno 4. 5. 2014]. Dostupné z: http://docs.oracle.com/cd/ E19226-01/820-7688/abpaj/index.html [52] RPi Hardware. 2014, [Citováno 9. 5. 2014]. Dostupné z: http:// elinux.org/RPi_Hardware [53] Louridas, P.: Static code analysis. report, Greek Res. & Technol. Network, 2006, [Citováno 2014-05-10]. [54] Lecture TESTING WITHOUT USERS. report, ČVUT - Department of computer graphics and interaction, 2013, [Citováno 201405-09]. Dostupné z: https://cent.felk.cvut.cz/courses/Y39TUR/ lectures2013z/39TUR-2013-W-Lecture-02.ppt [55] doc. Ing. CSc. Hana Kubátová: BI-SRC: Real-time komunikace, Internet, 2014. Dostupné z: https://edux.fit.cvut.cz/courses/BI-SRC/ _media/lectures/10/src-komunikace.pdf
53
Příloha
Seznam použitých zkratek WiFi Wireless fidelity, označení pro bezdrátovou síť HW Hard ware, vyzické vybavení ACK Acknowledgement, potvrzující signál A/D Analog/digital převodník RF Radio frequency LAN Local Area Network TCP/IP Transmission Control Protocol/Internet Protocol RS232 Standart pro sériovou komunikaci I2C Inter-Integrated Circuit SPI Serial Peripheral Interface Mbit/s milion bitů za jednu vteřinu CCMP Counter Cipher Mode Protocol AES Advanced Encryption Standard DHCP Dynamic Host Configuration Protoco TCP Transmission Control Protocol UDP User Datagram Protocol TP Kabel Twisted Pair cable, dvoulinka OSI Open Systems Interconnection IrDA Infrared Data Association 55
A
A. Seznam použitých zkratek IC Integrated Circuit ASK Amplitude-shift Keying FSK Frequency-shift Keying OFDM Orthogonal Frequency Division Multiplexing GPIO General-Purpose Input/Output PCB Printed Circuit Board MRTG Multi Router Traffic Grapher, program PHP Hypertext Preprocessor, programovací jazyk MySQL My Structured Query Language API Application Programming Interface RAM Random-Access Memory VPN Virtual Private Network
56
Příloha
Schéma zpapojení klienta a serveru
57
B
RESET JP1
MOSI PaJa
DATA/CONTROL
ROZHRANI-1
7 5 3 1
ROZHRANI-2
display 8 6 SCLK 4 2
ROZHRANI-3
VCC
ROZHRANI-4
B. Schéma zpapojení klienta a serveru
CS programator
WATT
7 8 9 10
ONE_W IRE RESET
VCC +5V +5V
VCC
VCC
JP2
C5
20 19 18 17 16 15 SDA 14 SCL 13 12 STATE_LED 11
R6
A/D_PHOTODIODE2 DATA/CONTROL 3 4 MOSI 5 WATTAGE 6 SCLK
8k
100k
1nF
6,2K
ACS712-20A
R3
1
C3
3 1
R5 8k
8 7 6 5
47k MSP430G2X[0/3]2
R4
1 2 3 4
4 2
zasuvka VCC R16
VCC
C4 0,1uF
IC2
230V
100k
R1 LDR 05-75
+5V
230V
R2 PaJa
+5V
VCC
0,1uF IC1
1 2 3 4
8 7 6 5
LM92
C13
C14
100/5W
+5V
D4
zasuvka
NC
+5V
+5V +5V
+5V
9 12 5
rele_civka
R8 D2
1N4007
+5V
10nF
+5V
3
In
IO1 Gnd
Out
1
C2
2
Q1
C11
10n
NO
COM
C1
BC547B
TDA5051
PaJa
D-ZENEROVA_1,3W_4V7
27pF 27pF
16 6
11 13 3
+5V
LDO 5V -> 3.3V 100mA VCC +5V
DZ2
Q2
C12 150k
7,3728MHz
10 14
33k
R13
PD VDDAP CLKOUT VDDA OSC1 VDDD OSC2 APGND TEST1 AGND SCANTESTDGND
C10
R9
2,2M
15 4 7 8
DATAIN TXOUT DATAOUT RXIN
REL1
C1
1uF
U$2 1 2
C6 47nF (63V)
1mH
R12
R14
D3
R11
VCC
1N4007
1k
R15 1k
47uH
L3
R10
10k VCC
DZ1 470uF (16V) C7
Gnd
7 6 3 2
PaJa
+5V
T1 C2
L2
+5V
+5V
78L05 1 IO2 In 8 Out
2N2222
47uH
L1
10k
C9
D-ZENEROVA_1,5W
C8 100uF (16V)
47nF
D1
WATT
47nF/X2
REL1
2uF X2
1N4007 PaJa
CX2
1
V1
CX1
GPIO_RELAY R7
2
F1
V33ZA1
230V
DATAOUT DATAIN
10k
LED 1206 W HITE 3.3V
U$1
10uF
10uF
Obrázek B.1: Schéma zapojení klienta s TDA5051, MSP430G2553, displejem, senzory a přepínačem.
58
LDO 5V -> 3.3V 100mA VCC
JUM1
VCC 10k
1k R15
C2
2
Gnd
10uF
10uF VCC
VCC
4N33 R14
R13
2,2M
VCC
7,3728MHz
PaJa
1
Out
IO1
C1
MSP430G2X[0/3]2
R3
Q2
C13 C14
3 In
+5V
PC_RS232
1 2 3 4 5 6 7 8 DATAOUT 9 DATAIN 10
20 19 18 programator 17 4 3 16 ONE_W IRE2 1 VCC 15 RESET JP2 14 13 12 STATE_LED 11
47k
1k 27pF 27pF
+5V
R16
1 5 6
1k OK1
2 4
4 2
OK2
4N33
6 5 1
R4
VCC
1 2 3
TX GND_2 RX
U$1
100k
C9 1 Out
PaJa
+5V
+5V
+5V
F1 2uF X2
CX1
+5V
CX2
+5V
R8 100/5W
47nF/X2
1N4007
230V
L1
D3 D2
1mH
150k
+5V
+5V
1N4007
10n
C12 10k
Q1
BC547B
33k
2
V33ZA1
D-ZENEROVA_1,5W
R10
R9
1
SIT-1
IO2 78L05
C8 100uF (16V) V1
R12
D4
VCC 230V
8 In
Gnd
PaJa
7 6 3 2
14 10
3 13 11
Q4
470uF (16V) C7
+5V 1k
LED 1206 W HITE 3.3V D5
SIT-2
U$2
RXIN DATAOUT TXOUT DATAIN
VCC
Q3 BC547B
100k R1
47nF
2 1
8 7 4 15
6 16
TDA5051
DGNDSCANTEST AGND TEST1 APGND OSC2 VDDD OSC1 VDDA CLKOUT VDDAP PD 5 12 9
LED 1206 W HITE 3.3V D1
R2
DZ1
R11
LED 1206 W HITE 3.3V
PaJa
BC547B
L3
10nF DZ2
L2 47nF (63V) C6
C10
1uF
PaJa
D-ZENEROVA_1,3W_4V7
47uH
C11
47uH
Obrázek B.2: Schéma zapojení serveru pro propojení s počítačem pomocí RS232 s galvanickým oddělením pomocí optočlenů OK1 a OK2.
59
Příloha
Diagramy komunikací po sběrnici
Možné požadavky od serveru
DEBUG MODE [p] ALIVE [c] on/off [y/n]
addr [a] Zapnout debug mode? PowerLineComm::check_alive(addresa, MAX_TIMEOUTS) y
n i<=MAX_TIMEOUTS
PowerlineComm::talky(on/off)
SERVER KLIENT send_server_request_ack(addr)
DONE
Powerlinecomm::receive_server_request
je hash OK? check_request_hash
false
true
SCAN [s] typ server requestu? obstara main()
others
ACK
PowerlineComm::handle_ack
PowerLineComm::scan(odkud, kolik) receive_clients_ack
send_clients_ack(REQUEST_RESPONSE)
check_alive(addr, MAX_SCAN_TIMEOUTS) false FOUND! Zapsat vysledek
bez timeoutu?
notfound...
true
posun skenovane adresy false
souhlasi hash? true true
ALIVE?
check_ack_hash
false FOUND!
Obrázek C.1: Diagram popisuje chování klienta a serveru na vstupní příkazy java serveru. 61
C
C. Diagramy komunikací po sběrnici
Možné požadavky od serveru
SERVER KLIENT DATA [d]
SWITCH [w]
addr [a]
addr [a]
PowerLineComm::data_req(addresa)
SERVER KLIENT
state [s] i<=MAX_TIMEOUTS send_server_request_data(addr)
Powerlinecomm::receive_server_request
PowerLineComm::switch_relay(addr, state) i<=MAX_TIMEOUTS
false
souhlasi hash?
check_request_hash
send_server_request_switch(addr, state)
Powerlinecomm::receive_server_request
true typ server requestu? obstara main()
je hash OK?
others
false
true check_request_hash
DATA
PowerlineComm::handle_data
typ server requestu? obstará main()
others
SWITCH
prepare_clients_data switch_relay
receive_clients_data
send_clients_data PowerlineComm::handle_ack
false
bez timeoutu?
receive_clients_ack
send_clients_ack(REQUEST_RESPONSE)
true false false
bez timeoutu? souhlasi hash?
true false
check_data_hash (TRUE) - vypočte hash z dat
true
souhlasi hash?
send_servers_ack(addr)
receive_servers_ack
true
check_ack_hash
přepnuto bez timeoutu?
false DONE
true false
souhlasi hash? true receive_clients_ack
false
check_data_hash( FALSE ) použije vypočtený hash
send_clients_ack(DATA_RESPONSE)
bez timeoutu? true
false souhlasi hash? check_data_hash (FALSE) - použije vypočtený hash parse_clients_data
show_received_data
DONE
Obrázek C.2: Druhá část diagramu z předchozí stránky. Vstupy a výstupy těchto diagramů popisuje tabulka 4.1. Požadavky vydává Java EE aplikace, která je iniciátorem těchto chování. Pokud chování generuje data, pošle je zpět po sériové lince, do klienta a serveru se fyzicky nic neukládá.
62
Příloha
Obsah přiloženého CD
readme.txt...................................stručný popis obsahu CD src impl...................................zdrojové kódy implementace doku.......................vygenerované dokumentace v Doxygen impl ..................................... samotné implementace thesis...zdrojová forma práce ve formátu LATEX s citacemi v BIBTEX text ....................................................... text práce thesis.pdf ............................. text práce ve formátu PDF thesis.ps ................................ text práce ve formátu PS 63
D