VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF RADIO ELECTRONICS
SYSTÉM PRO DOMÁCÍ AUTOMATIZACI
DIPLOMOVÁ PRÁCE MASTER'S THESIS
AUTOR PRÁCE AUTHOR
BRNO 2014
Bc. PETR KAŠPAR
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF RADIO ELECTRONICS
SYSTÉM PRO DOMÁCÍ AUTOMATIZACI HOME AUTOMATION SYSTEM
DIPLOMOVÁ PRÁCE MASTER'S THESIS
AUTOR PRÁCE
Bc. PETR KAŠPAR
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2014
Ing. ROMAN MEGO
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav radioelektroniky
Diplomová práce magisterský navazující studijní obor Elektronika a sdělovací technika Student: Ročník:
Bc. Petr Kašpar 2
ID: 78563 Akademický rok: 2013/2014
NÁZEV TÉMATU:
Systém pro domácí automatizaci POKYNY PRO VYPRACOVÁNÍ: Seznamte se s principy domácí automatizace v prostředí bytu nebo rodinného domu. Prostudujte standard pro bezdrátové datové sítě s malou přenosovou rychlostí IEEE 802.15.4. Navrhněte topologii automatizačního systému obsahující řídící jednotku, senzory a akční členy. Vyberte vhodnou řídící jednotku s operačním systémem Linux a proveďte návrh vybraného senzoru a akčního členu. Na jednoduché aplikaci demonstrujte funkčnost připojení senzoru k řídící jednotce. Realizujte zapojení celého navrženého systému. Proveďte hardwarovou realizaci senzoru a akčního členu. Vytvořte programové vybavení všech částí systému. Pro vybraný operační systém pro mobilní zařízení vytvořte grafickou aplikaci, kterou bude možné realizovaný systém ovládat. DOPORUČENÁ LITERATURA: [1] RPi Low-level peripherals. Embedded Linux Wiki [online]. 2013 [cit. 12. 6. 2013]. Dostupné na www: http://elinux.org/RPi_Low-level_peripherals [2] CORBET, Jonathan et al. Linux device drivers. 3rd ed. Sebastopol: O´Reilly, 2005. Termín zadání:
10.2.2014
Termín odevzdání:
23.5.2014
Vedoucí práce: Ing. Roman Mego Konzultanti diplomové práce:
UPOZORNĚNÍ:
doc. Ing. Tomáš Kratochvíl, Ph.D. Předseda oborové rady
Autor diplomové práce nesmí při vytváření diplomové práce porušit autorská práva třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č.40/2009 Sb.
ABSTRAKT Cílem této práce je vytvoření prototypu domácího automatizačního systému s komunikací v bezdrátové osobní síti dle standardu IEEE 802.15.4. Práce obsahuje stručné shrnutí standardu IEEE 802.15.4 a volbu důležitých hardwarových a softwarových součástí automatizačního systému. Dále popisuje obvodové zapojení řídicí jednotky a automatizačních jednotek a programové vybavení systému.
KLÍČOVÁ SLOVA IEEE 802.15.4, AVR, Atmel, Xbee, Domácí automatizace, Raspberry Pi, Linux
ABSTRACT The aim of this thesis is to create automation system prototype capable of communicating in IEEE 802.15.4 personal area network. Thesis is mentioning important parts of IEEE 802.15.4 standard as well as selection of critical hardware components and software technologies. Thesis contains specification of hardware design of control unit and automation end units and software design of the system.
KEYWORDS IEEE 802.15.4, AVR, Atmel, Xbee, Home Automation, Raspberry Pi, Linux
KAŠPAR, Petr Systém pro domácí automatizaci: diplomová práce. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, Ústav radioelektroniky, 2013. 57 s. Vedoucí práce byl Ing. Roman Mego
PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma „Systém pro domácí automatizaci“ jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této diplomové práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a/nebo majetkových a jsem si plně vědom následků porušení ustanovení S 11 a následujících autorského zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon), ve znění pozdějších předpisů, včetně možných trestněprávních důsledků vyplývajících z ustanovení části druhé, hlavy VI. díl 4 Trestního zákoníku č. 40/2009 Sb.
Brno
...............
.................................. (podpis autora)
PODĚKOVÁNÍ Rád bych poděkoval vedoucímu diplomové práce panu Ing. Romanu Megovi za odborné vedení, konzultace, trpělivost a podnětné návrhy k práci.
Brno
...............
.................................. (podpis autora)
OBSAH Úvod
11
1 Standard pro bezdrátové sítě IEEE 802.15.4 1.1 Architektura standardu IEEE 802.15.4 . . . . 1.2 Topologie . . . . . . . . . . . . . . . . . . . . 1.3 Fyzická vrstva - PHY . . . . . . . . . . . . . . 1.3.1 Struktura rámce fyzické vrstvy PPDU 1.4 Vrstva řízení přístupu k médiu - MAC . . . . 1.4.1 Pracovní režimy MAC . . . . . . . . . 1.4.2 Struktura nadrámce . . . . . . . . . . 1.4.3 Mechanismus CSMA/CA . . . . . . . . 1.4.4 Struktura rámce MAC vrstvy . . . . . 1.4.5 Připojení zařízení do sítě . . . . . . . . 1.4.6 Přenos dat mezi účastníky sítě . . . . . 1.4.7 Podmínky přenosu na MAC vrstvě . . 1.4.8 Bezpečnost v síti IEEE 802.15.4 . . . .
. . . . . . . . . . . . .
12 13 14 15 16 16 17 17 18 18 19 20 21 22
. . . . . . . . .
23 23 23 24 25 29 30 30 33 34
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
2 Výběr komponent systému 2.1 Struktura systému domácí automatizace . . . . . . . 2.2 Volba hardware . . . . . . . . . . . . . . . . . . . . . 2.2.1 Výběr hardware řídící jednotky . . . . . . . . 2.2.2 Výběr senzorů a akčních členů . . . . . . . . . 2.2.3 Výběr komunikačních modulů . . . . . . . . . 2.3 Softwarové nástroje pro implementaci . . . . . . . . . 2.3.1 Programové vybavení komunikačních modulů 2.3.2 Programové vybavení pro řídící jednotku . . . 2.3.3 Klientská ovládací aplikace . . . . . . . . . . . 3 Návrh hardwarové části 3.1 Propojení řídicí jednotky a modulu . . . . . 3.2 Návrh automatizačních jednotek . . . . . . . 3.2.1 ZigBit ATZB-24-A2 . . . . . . . . . . 3.2.2 Jednotka pro měření teploty, detekci vření dveří . . . . . . . . . . . . . . . 3.2.3 Jednotka pro ovládání žaluzií . . . . 3.2.4 Jednotka pro spínání zásuvky 230V .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . . . . . . . pohybu a . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . .
36 . . . . . . . . 36 . . . . . . . . 37 . . . . . . . . 37 detekci ote. . . . . . . . 38 . . . . . . . . 39 . . . . . . . . 40
4 Návrh softwarové části 4.1 Program automatizační jednotky . . . . . . 4.1.1 Jednotka pro měření teploty, detekci vření dveří . . . . . . . . . . . . . . . 4.1.2 Jednotka pro spínání zásuvky 230V . 4.1.3 Jednotka pro ovládání žaluzií . . . . 4.2 Řídící jednotka . . . . . . . . . . . . . . . . 4.3 Server . . . . . . . . . . . . . . . . . . . . . 4.4 Klientská aplikace . . . . . . . . . . . . . . .
. . . . . . pohybu a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 . . . . . . . . 43 detekci ote. . . . . . . . 44 . . . . . . . . 44 . . . . . . . . 45 . . . . . . . . 45 . . . . . . . . 45 . . . . . . . . 45
5 Závěr
46
Literatura
47
Seznam symbolů, veličin a zkratek
49
6 Příloha A - výrobní podklady DPS
51
SEZNAM OBRÁZKŮ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2.1 2.2 2.3 2.4 3.1 3.2 3.3 3.4 3.5 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15
Vrstvová architektura IEEE 802.15.4 [2]. . . . . . . . . . . . . . . . . Princip primitiv služeb v IEEE 802.15.4 [2]. . . . . . . . . . . . . . . Příklad topologií v síti IEEE 802.15.4 [2]. . . . . . . . . . . . . . . . Struktura rámce fyzické vrstvy (PPDU) [2]. . . . . . . . . . . . . . . Pracovní režimy MAC vrstvy IEEE 802.15.4 [3]. . . . . . . . . . . . Struktura nadrámce v IEEE 802.15.4 [2]. . . . . . . . . . . . . . . . . Struktura datového rámce vrstvy MAC [2]. . . . . . . . . . . . . . . Bloková struktura automatizačního systému . . . . . . . . . . . . . . Topologie bezdrátové sítě . . . . . . . . . . . . . . . . . . . . . . . . . Struktura Atmel IEEE 802.15.4 MAC softwarového stacku [11]. . . . Struktura datového rámce v API módu [10]. . . . . . . . . . . . . . . Zapojení Raspberry Pi a Xbee modulu. . . . . . . . . . . . . . . . . . Zapojení modulu ZiBbit. . . . . . . . . . . . . . . . . . . . . . . . . . Zapojení jednotky pro měření teploty, detekci pohybu a detekci otevření dveří. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Zapojení modulu pro ovládání žaluzií. . . . . . . . . . . . . . . . . . . Zapojení jednotky pro spínání osvětlení. . . . . . . . . . . . . . . . . DPS pro propojení řídící jednotky a xbee modulu - horní vrstva. . . . DPS pro propojení řídící jednotky a xbee modulu - spodní vrstva. . . DPS pro propojení řídící jednotky a xbee modulu - osazovací schéma. DPS pro komunikační modul Zigbit ATZB-24-A2 - horní vrstva. . . . DPS pro komunikační modul Zigbit ATZB-24-A2 - spodní vrstva. . . DPS pro komunikační modul Zigbit ATZB-24-A2 - osazovací schéma - horní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPS pro komunikační modul Zigbit ATZB-24-A2 - osazovací schéma - spodní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - horní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - spodní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - osazovací schéma. . . . . . . . . . . . . . . . . . . . . . . . . . DPS jednotky pro ovládání žaluzií - horní vrstva. . . . . . . . . . . . DPS jednotky pro ovládání žaluzií - spodní vrstva. . . . . . . . . . . . DPS jednotky pro ovládání žaluzií - osazovací schéma. . . . . . . . . . DPS jednotka pro spínání zásuvky 230V - horní vrstva. . . . . . . . . DPS jednotka pro spínání zásuvky 230V - spodní vrstva. . . . . . . .
13 14 15 16 17 18 19 23 24 32 33 36 37 39 40 41 51 51 51 52 52 52 53 53 54 54 55 55 55 56 56
6.16 DPS jednotka pro spínání zásuvky 230V - osazovací schéma - horní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.17 DPS jednotka pro spínání zásuvky 230V - osazovací schéma - spodní vrstva. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
SEZNAM TABULEK 2.1 2.2 2.3 2.4 2.5 3.1
Srovnání parametrů zvažovaných jednodeskových počítačů [9] [12] [13] [14]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parametry PIR detektoru [15]. . . . . . . . . . . . . . . . . . . . . . Parametry polovodičového relé Sharp S 202 SE2 [23]. . . . . . . . . Parametry zvoleného servomotoru [18]. . . . . . . . . . . . . . . . . Srovnání parametrů zvažovaných komunikačních modulů. . . . . . . Změřený odpor fotorezistoru při typických podmínkách osvětlení. .
. . . . . .
26 27 29 30 31 41
ÚVOD Domácí automatizace, někdy nazývaná chytrý dům (smart house), je koncept poprvé formovaný v roce 1966 společností Westinghouse Electric [1]. Koncept předpokládá vybavení domu doplňkovou elektronikou tak, aby bylo možné jednotlivé systémy domu centrálně řídit a tím zjednodušit a zefektivnit provoz zařízení v domácnosti. Mezi systémy které lze v koncepci chytrého domu řídit patří vytápění, ventilace, klimatizace, osvětlení, audio/video technika, prvky zabezpečení a další. Cílem práce je realizace domácího automatizačního systému s využitím bezdrátové sítě dle IEEE 802.15.4. Autor si klade za cíl vytvořit modulární systém, který splní základní požadavky na automatizaci v domácnosti a zároveň umožní instalaci s minimem zásahů do již existující infrastruktury. Samotná práce je členěna do čtyřech oddílů. Jako první je zmíněn úvod do problematiky standardu pro bezdrátové sítě osobního dosahu IEEE 802.15.4. V druhé části je podrobně popsána volba součástek a softwarových nástrojů pro realizaci systému. Třetí část se soustředí na návrh zapojení jednotlivých hardwarových komponent systému. Poslední část je věnována popisu programového vybavení systému.
11
1
STANDARD PRO BEZDRÁTOVÉ SÍTĚ IEEE 802.15.4
V posledních dvou dekádách díky pokrokům v oblasti integrovaných obvodů zaznamenalo odvětví bezdrátových sítí velmi dramatický rozvoj. V návaznosti na velmi široké použití v různých aplikacích lze vypozorovat několik trendů. Na straně jedné se komerčně prosadily standardy umožňující širokopásmovou komunikaci například IEEE 802.11 (Wifi) či IEEE 802.16 (WiMAX) aj., na straně druhé pak standardy pro úzkopásmovou komunikaci například IEEE 802.15.1 (Bluetooth) a IEEE 802.15.4. IEEE 802.15.4 byl vytvořen a standardizován organizací IEEE (Institute of Electrical and Electronics Engineers) jako základ pro budoucí bezdrátové síťové technologie. V dnešní době je kromě standardu ZigBee využíván například v ISA100.11a, WirelessHART a MiWi. Jeho hlavním úkolem je definice bezdrátové radiové sítě mezi zařízeními, která je vhodná pro jednoduché aplikace s nízkou komunikační rychlostí a nízkou spotřebou. V síti IEEE 802.15.4 mohou pracovat dva typy zařízení - RFD (zařízení s omezenou funkcionalitou – Reduced-Function Device) a FFD (zařízení s plnou funkcionalitou – Full-Function Device). FFD je zařízení s kompletní implementací všech služeb standardu. Část služeb poskytuje zařízením s omezenou funkcionalitou. RFD zařízení je vzhledem k omezenému počtu implementovaných služeb předurčeno k asociaci s FFD. Jedná se typicky o koncové zařízení sítě například senzor nebo akční člen. [2] Zařízení v síti mohou pracovat ve třech režimech [2]: • Koordinátor sítě osobních dosahu (Personal Area Network Coordinator) - řídící prvek celé osobní sítě, který síť vytváří, identifikuje, konfiguruje a umožňuje dalším zařízením připojení. Režim je určený výhradně pro FFD zařízení. • Lokální koordinátor (Local Coordinator) - přidružený k PAN koordinátorovi a nevytváří vlastní síť. Vysíláním beacon rámce umožňuje synchronizaci přidružených zařízení. V tomto řežimu mohou pracovat pouze FFD zařízení. • Koncové zařízení (End Device) - vždy přidruženo k PAN koordinátorovi nebo k lokálnímu koordinátorovi. Režim využívají RFD i FFD zařízení. Každé zařízení má vlastní pevnou unikátní 64 bitovou adresu, která se nazývá rozšířená (Extended Address). Pokud je počet zařízení v síti omezený, mohou zařízení využít takzvanou zkrácenou adresu, která je 16 bitová. V síti je pomocí zkrácené adresy možné adresovat až 65 536 zařízení.
12
1.1
Architektura standardu IEEE 802.15.4
Standard popisuje první dvě komunikační vrstvy korespondující s referenčním modelem OSI (Open Systems Interconnection), nejnižší fyzickou vrstvu (PHY) a vrstvu řízení přístupu k médiu (MAC). Každá vrstva v hierarchii nabízí své služby nadřazené vrstvě a pro jejich poskytování využívá služeb nížší vrstvy. Tento mechanismus ilustruje obr.1.2. Rozhraní mezi službami tvoří přístupové body služeb SAP (Service Access Point). Služba je specifikována daným informačním tokem mezi poskytovatelem a uživatelem. Tento informační tok je modelován diskrétními událostmi, které charakterizují běh služby a jsou označovaná jako primitiva služeb [2]. Jestliže dojde k události, je mezi vrstvami předáno primitivum služby přes přístupový bod asociovaný ke konkrétnímu uživateli. Služba je definována popisem jejích primitiv a parametrů, které primitiva přenášejí. Vyšší vrstvy MCPS SAP
MLME SAP
MAC PD SAP
PLME SAP
PHY Fyzické médium
Obr. 1.1: Vrstvová architektura IEEE 802.15.4 [2]. Primitiva se dělí na čtyři typy: • požadavek (Request) - primitivum používá uživatel služby pro vyžádání inicializace služby, • potvrzení (Confirm) - slouží poskytovateli k předání výsledků spojených s primitivem požadavek, • indikace (Indication) - toto primitivum se předává uživateli služby pro indikaci důležité interní události u poskytovatele služby, • odpověď (Response) - předává se poskytovateli služby pro ukončení procedury vyvolané jedním nebo více primitivy indikace. IEEE 802.15.4 standard popisuje celkem 49 primitiv, 14 primitiv pro fyzickou vrstvu a 35 primitiv pro vrstvu řízení přístupu k médiu. FFD zařízení podporují všechna definovaná primitiva, RFD zařízení podporují celkem 38 primitiv [2].
13
Poskytovatel služby Uživatel služby
Uživatel služby
Požadavek
Indikace Odpověď
Potvrzení
Obr. 1.2: Princip primitiv služeb v IEEE 802.15.4 [2].
1.2
Topologie
Zařízení v síti mohou vytvářet buď topologii hvězdy (star) nebo topologii rovný s rovným (peer to peer). Oba případy jsou ilustrovány na obr.1.3. V topologii hvězdy probíhá komunikace vždy tím způsobem, že každé zařízení (FFD i RFD) v síťi komunikuje přímo s koordinátorem sítě osobního dosahu, který tvoří centrální uzel sítě. To znamená, že pro komunikaci mezi sebou využívají zařízení koordinátora jako prostředníka. Topologie hvězdy je vhodná pro aplikace, kde je možné centrální uzel sítě napájet z rozvodné sítě a může tak být v nepřetržitém provozu. Obecně je vhodná pro sítě malého rozsahu, jelikož maximální dosah sítě je omezen rádiovým dosahem mezi uzlem a koncovým zařízením. Konkrétně je vhodná pro aplikace v domácí automatizaci, počítačových perifériích a zařízeních pro zdravotnický sektor [2]. V topologii rovný s rovným figuruje také FFD zařízení v roli koordinátora sítě osobního dosahu. Komunikační schéma však umožňuje ostatním zařízením přímou vzájemnou komunikaci bez využití koordinátora sítě jako prostředníka. Jako prostředník pro komunikaci může sloužit kterékoliv FFD zařízení v síti, rozhodující je pouze fakt, zda jsou daná zařízení v přímém rádiovém dosahu. Tato topologie umožňuje v porovnání s hvězdou tvorbu komplexnějších formací: obecnou síť (mesh) či stromovou formaci (cluster tree) nebo jejich kombinaci (multicluster). Podporuje tvorbu různých komunikačních cest mezi zařízeními. Obecně je vhodná pro sítě většího rozsahu, jelikož komunikující zařízení nemusejí být v přímém rádiovém dosahu koordinátora sítě osobního dosahu. Konkrétně je vhodná pro aplikace v senzorických sítích a v průmyslové automatizaci a monitorování [2]. Sestavení sítě v dané topologie začíná aktivací FFD zařízení, které si zvolí v okolí nevyužívaný identifikátor PAN (PAN identifier). Toto zařízení se stane koordinátorem sítě osobního dosahu a následně umožní dalším zařízením (FFD i RFD) přípojení k síti. Zformovaná topologie vždy závisí na konfiguraci jednotlivých účastníků sítě. PAN identifikátor je 16 bitové číslo určené k jednoznačnému odlišení sítě,
14
je tak umožněna koexistence více sítí na jednom rádiovém kanálu.
Topologie hveždy
Topologie rovný k rovnému
PAN koordinátor
PAN koordinátor
Zařízení s plnou funkcionalitou (FFD) Zařízení s omezenou funkcionalitou (RFD) Komunikační tok
Obr. 1.3: Příklad topologií v síti IEEE 802.15.4 [2].
1.3
Fyzická vrstva - PHY
Je zodpovědná za přenos a příjem na specificky modulovaném a rozprostřeném rádiovém kanálu. Pro rádiovou komunikaci jsou využita bezlicenční pásma 2,4 GHz, 915 MHz nebo licenovaná pásma např. 868 MHz a další. V pásmu 868 MHz (868 MHz až 868,6 MHz) je k dispozici jeden rádiový kanál, v pásmu 915 MHz (902 MHz až 928 MHz) je k dispozici 30 kanálu a na frekvenci 2,4 GHz (2,4 GHz až 2,4835 GHz) je k dispozici 16 kanálů. Signál v pásmech 868 MHz a 915 MHz je modulován binární fázovou modulací PLME (Binary Phase-Shift Keying), amplitudovou modulací ASK (Amplitude-Shift Keying nebo ofsetovou kvadraturní modulací O-QPSK (Offset Quadrature Phase-Shift Keying). Signál v pásmu 2,4 GHz je modulován ofsetovou kvadraturní modulací O-QPSK. Přenosová rychlost v kanálů se liší dle použité modulace, maximálně však 250 kbit/s při O-QPSK. Kompletní popis rádiových pásem, modulací a přenosových rychlostí lze nalézt například v [2]. Frekvenční kanály jsou rozprostřeny pomocí techniky DSSS (Přímé rozprostřední spektra – Direct Sequence Spread Spectrum), což zvyšuje odolnost rádiové spoje vůči úzkopásmovému rušení a odposlouchávání komunikace. Služby fyzické vrstvy jsou rozděleny do kategorii přenos dat a správa fyzické vrstvy. Jednotlivé služby jsou dle kategorie dostupné vyšším vrstvám na samostatných přístupových bodech SAP.
15
Služby přenosu dat jsou dostupné na přístupovém bodě PD SAP, viz obr.1.1. Obstarávají přenos PHY rámců PPDU (PHY protocol data unit) rádiovým kanálem. Služby správy fyzické vrstvy jsou dostupné na přístupovém bodě PLME SAP, viz obr.1.3. Jsou zajišťovány podvrstvou fyzické vrstvy označovanou jako entita správy fyzické vrstvy PLME (Physical Layer Management Entity). Služby správy fyzické vrstvy plní následující úkoly [2]: • Aktivace a deaktivace radiového transceiveru, • Detekce energie, • LQI (Indikace kvality spojení – Link Quality Indication), • CCA (Určení volného kanálu – Clear Channel Assessment),
1.3.1
Struktura rámce fyzické vrstvy PPDU
Rámec fyzické vrstvy se skládá ze tří částí. Synchronizační hlavička SHR, která je určena pro synchronizaci přijímače na úrovni jednotlivých bitů. Skládá se z preambule délky 32 bitů a SFD (Start-of-Frame Delimiter) délky 8 bitů označující konec preambule. Druhou částí je hlavička fyzické vrstvy PHR délky 8 bitů obsahující informaci o délce datového obsahu (PSDU). Poslední částí je samotný datový obsah rámce (PSDU), který má proměnnou délku s maximální velikostí 1016 bitů (127 bytů). Tento celek je při výměně dat přenášen radiovým kanálem mezi jednotlivými zařízeními. Struktura je naznačena na obrázku 1.4. Synchronization header (SHR)
PHY header (PHR)
PHY payload (PSDU)
Obr. 1.4: Struktura rámce fyzické vrstvy (PPDU) [2].
1.4
Vrstva řízení přístupu k médiu - MAC
Jak vyplývá z názvu, úkolem této vrstvy je zajištění sdílení fyzického radiového kanálu mezi účastníky sítě. MAC vrstva plní následující úkoly [2]: • Vysílání beacon rámce, pokud je zařízení v režimu koordinátora, • Synchronizace k beacon rámci, • Připojení k PAN a odpojení od PAN, • Podpora bezpečnosti (šifrování), • Zajištění CSMA-CA (Carrier Sense Multiple Access with Collision Avoidance), • Zajištění a udržování mechanismu GTS (Garantovaný časový slot – Guaranteed Time Slot).
16
• Spojení mezi dvěma MAC entitami komunikujících zařízení. Vyšší vrstvy mohou přistupovat ke službám MAC vrstvy pomocí přístupových bodů MLME-SAP (MAC Sublayer Management Entity SAP) a MCPS-SAP (MAC common part sublayer SAP). MLME je přístupový bod pro služby entity správy MAC. MCPS-SAP je přístupový bod pro společné služby vrstvy MAC.
1.4.1
Pracovní režimy MAC IEEE 802.15.4 MAC
Beacon povolený
Non-Beacon povolený
Nadrámec
Nezarovnaná CSMA/CA
CAP
CFP
Zarovnaná CSMA/CA
GTS alokace
volitelné
Obr. 1.5: Pracovní režimy MAC vrstvy IEEE 802.15.4 [3].
1.4.2
Struktura nadrámce
Struktura nadrámce je definována koordinátorem. Začátek a konec nadrámce je ohraničen synchronizačními beacon rámci. Vnitřní část nadrámce se sestává z tzv. aktivní a neaktivní části. Typická struktura nadrámce je zobrazena na obr.1.6 Aktivní část je dělena na 16 časových rámců, které jsou určeny pro přenos v síti. Těchto 16 rámců je dále děleno na část se soupeřivým přístupem CAP (Contention Access Period) a část s nesoupeřivým přístupem CFP (Contention Free Period), která je volitelná. Přenos v části CAP je realizován za asistence zarovnané CSMA-CA s vyjímkou potvrzení příjmu rámce, které je zasíláno bez soupeření. Přenos v části CFP je nesoupeřivý, jednotlivé časové rámce jsou vyhrazeny konkrétnímu zařízení koordinátorem sítě nebo lokálním koordinátorem. Přenosy v této části jsou určeny pro zařízení vyžadující nízkou reakční dobu nebo přenosový kanál s konstantní propustností. Neaktivní část umožňuje koordinátorovi a zařízením na určitou dobu pozastavit komunikaci v síti a šetřit energii aktivací režimu spánku.
17
synchronizační rámce beacon
CAP 0 1 2 3 4 5 6 7
CFP
neaktivní část
8 9 10 11 12 13 14 15
čas
délka nadrámce (SD) synchronizační interval (BI)
Obr. 1.6: Struktura nadrámce v IEEE 802.15.4 [2].
1.4.3
Mechanismus CSMA/CA
V sítích dle IEEE 802.15.4 je pro přístup k vysílacímu médiu aplikován mechanismus zarovnané a nezarovnané CSMA/CS. Volba mezi mechanismy je dána tím, zda je síť synchronizována pomocí beacon rámců, nebo synchronizaci nevyužívá. Při synchronizovaném režimu se využívá zarované CSMA/CS, při nesynchronizovaném nezarovnané. Nezarovnané CSMA/CS se využívá rovněž v případě, že se v síti kde je nastaveno vysílání beacon rámce nepodařilo tento rámec zachytit. CSMA/CS není využíváno při přenosu beacon rámců, potvrzovacích rámců a datových rámců v části s nesoupeřivým přístupem. Algoritmus CSMA/CS v obou případech pracuje s časovými úseky, takzvanými backoff periodami, které jsou definované konstantou aUnitBackoffPeriod. Určují teoretický minimální časový rozestup mezi jednotlivými pokusy o přístup. Při zarovnané CSMA/CS odpovídá backoff perioda časovým rozdílům mezi jednotlivými rámci v nadrámci. Začátek první backoff periody je v zarovnaném CSMA/CS synchronizován se začátkem beacon rámce. Algoritmus CSMA/CS každého zařízení pracuje se třemi proměnnými, které hrají roli při rozhodnutí zda se pokusit o přístup k médiu: • NB - Počet backoff period, během kterých zařízení neúspěšně přistupuje k médiu, • CW - Počet backoff period při kterých je ověřováno, zda je médium volné, • BE - Počet backoff period které má zařízení vyčkat před pokusem o další přístup. Kompletní popis algoritmu lze nalézt ve specifikaci IEEE 802.15.4 [2].
1.4.4
Struktura rámce MAC vrstvy
Rámce MAC vrstvy jsou přenášeny v datové části PSDU uvnitř rámce fyzické vrstvy (PPDU), jejich celková velikost je dána maximální velikostí PSDU (127 bytů). IEEE
18
802.15.4 standard definuje čtyři typy rámců MAC vrstvy [2]: • Beacon rámec - je použiván koordinátorem k vysílání synchronizace, • Datový rámec - je používán pro všechny přenosy dat, • Potvrzovací rámec - je používán pro potvrzení příjmu rámce. • Rámec příkazu MAC - je používán pro řízení na úrovni MAC vrstvy mezi zařízeními. Datový rámec zobrazený na obr.1.7 se sestává ze tří hlavních částí. Hlavičky (MHR) velikosti 3 až 23 bytů, části pro data MAC vrstvy (MAC payload) a patičky (MFR). Hlavička obsahuje číslo sekvence (Sequence number) délky 1 byte, řídící informace rámce (Frame control) délky 2 byty a adresní část (Address info) délky 0 až 20 bytů. Číslo sekvence umožňuje přijímači zjistit, zda daný přenos dat obsahující více rámců byl kompletní. Adresní část je vyhrazena pro přenos adresy cílového a zdrojového zařízení, dále k přenosu cílového a zdrojového PAN identifikátoru. V případě aktivního šifrování je velikost hlavičky rozšířena o pomocnou bezpečnostní hlavičku (Auxiliary Security Header) s proměnnou délkou dle zvoleného bezpečnostního klíče. Maximální délka pomocné bezpečnostní hlavičky je 14 bytů. Datová část rámce má proměnnou délku s maximální velikostí 102 bytů v případě neaktivního šifrování, při aktivaci šifrování je tato maximální velikost zmenšena o velikost pomocné bezpečnostní hlavičky. Rámec je ukončen patičkou délky 2 byty obsahující výsledek kontrolního součtu rámce. Kontrolní součet umožňuje provést na straně přijímače kontrolu chyb přijatého rámce pomocí CRC (Cyclic redundancy check). MAC header (MHR)
MAC payload
MAC footer (MFR)
Obr. 1.7: Struktura datového rámce vrstvy MAC [2].
1.4.5
Připojení zařízení do sítě
Proces připojení do sítě je incializován ze strany zařízení a lze jej rozdělit na tři kroky [3]: 1. prohledání dostupných komunikačních kanálů, 2. výběr koordinátora, ke kterému se bude zařízení připojovat, 3. připojení k vybranému koordinátorovi. V prvním kroku si zařízení ověří, zda v jeho okolí existují další zařízení, ke kterým by se mohlo připojit. Pro tento účel standard definuje čtyři druhy prohledání kanálu:
19
• Detekce energie - změřením úrovně signálu na prohledávaném kanálu je zjištěna přítomnost komunikace. • Aktivní prohledání - zařízení zašle na prohledávaném kanálu požadavek na zaslání synchronizačního beacon rámce. Po odpověďi jednoho či více koordinátoru si uloží informace o dostupných sítích. • Pasivní prohledání - zařízení nevysílá požadavek na synchronizační rámec, pouze vyčkává na jeho příchod. • Osiřelé prohledání - je aktivováno již připojeným zařízením v případě ztráty spojení se sítí. V druhém kroku zařízení vybere koordinátora pro připojení ze seznamu zařízeních detekovaných při prohledávání kanálů. Výběr je proveden na základě LQI, případně dalších parametrů. Ve třetím kroku zašle zařízení vybranému koordinátorovi příkazový MAC rámec s žádostí o připojení. Pokud koordinátor žádost o připojení příjme, uloží si jeho adresu do tabulky sousedících zařízení a odešle potvrzení.
1.4.6
Přenos dat mezi účastníky sítě
Konkrétní mechanismus přenosu záleží na režimu MAC a to konkrétně na tom, zda je povoleno vysílání synchronizačních beacon rámců. V síti dle IEEE 802.15.4 mohou existovat v závislosti na směru a cíli komunikace tři typy přenosu dat [2]: • přenos od zařízení ke koordinátorovi, • přenos dat od koordinátora k zařízení, • přenos dat mezi zařízeními. Zařízením je v tomto kontextu myšleno buď koncové zařízení nebo lokální koordinátor. Přenos od zařízení ke koordinátorovi Pokud je v síti povoleno vysílání synchronizačního beacon rámce, musí zařízení, které chce přenést data ke koordinátorovi, nejdříve provést synchronizaci. Po jejím provedení může v případě volné komunikačního kanálu zaslat data v timeslotu v aktivní části nadrámce. Pokud jsou v síti povolena potvrzování, koordinátor jemuž jsou data adresována zašle zpět po jejich obdržení potvrzující rámec. Jestliže síť pracuje bez užití synchronizačních rámců, vysílací zařízení zašle data koordinátorovi v náhodně zvoleném čase. Shodně s předchozím příkladem jsou data po přijetí koordinátorem potvrzena potvrzujícím rámcem, pokud je toto v síti nastaveno.
20
Přenos dat od koordinátora k zařízení V případě, že je v síti povoleno vysílání synchronizačního beacon rámce, je informace o čekajících datech pro zařízení uložena koordinátorem do vysílaného beacon rámce. Zařízení v síti se periodicky synchronizují k beacon rámci. Jestliže v něm naleznou informaci o čekajících datech, zašlou koordinátorovi v aktivní části nadrámce požadavek na jejich zaslání. Pokud je v síti nastaveno potvrzování, koordinátor nejdříve požadavek na zaslání potvrdí a následně požadovaná data zašle. Přenos končí potvrzením zařízení, že data byla přijata. Koordinátor následně ze synchronizačního beacon rámce odstraní informaci o čekajících datech. Při přenosu dat v síti bez synchronizačního beacon rámce jsou data pro konkrétní zařízení na straně koordinátora dočasně uložena do interní paměti. Koordinátor následně čeká, než se o ně zařízení odesláním požadavku na zaslání dat přihlásí. Koordinátor požadavek potvrdí, je-li to v síti nastaveno, a data uložená pro zařízení zašle. V případě, že koordinátor data pro zařízení uložena nemá, zašle koordinátor tuto informaci zařízení buď ve formě prázdného datového rámce, případně přímo při potvrzení příjetí požadavku na odeslání dat. Přenos dat mezi zařízeními Tento typ přenosu je využíván v sítích rovný s rovným. Zařízení, mezi kterými má proběhnout přenos, se buď musejí vzájemně synchronizovat na vysílané synchronizační beacon rámce, nebo musejí být připraveny data stále přijímat (nemají možnost šetřit enegrii v režimu spánku). Konkrétní přenos pak bude kombinací výše uvedených typů přenosu, vždy s ohledem na fakt, zda síť používá synchronizační beacon rámce.
1.4.7
Podmínky přenosu na MAC vrstvě
Vrstva MAC přijímá pouze ty rámce fyzické vrstvy, které vyhovují podmínkám přenosu [2]: • Typ rámce (frame type) a řídicí informace v části (Frame control) odpovídají nastaveným parametrům sítě. • Odpovídá-li typ rámce synchronizačnímu beacon rámci, musí identifikátor zdrojové sítě (source PAN identifier) odpovídat identifikátoru sítě přijímacího zařízení. Jestliže má však identifikátor sítě nastavenu hodnot 0xFFFF, je rámec přijat bez ohledu na identifikátor zdrojové sítě. • Pokud MAC rámec obsahuje identifikátor cílové sítě, musí se shodovat s identifikátorem sítě přijímacího zařízení.
21
• Obsahuje-li MAC rámec zkrácenou adresu cílového zařízení, musí se tato adresa rovnat zkrácené adrese přijímacího zařízení nebo takzvané broadcast adrese (0xFFFF). • Obsahuje-li MAC rámec rozšířenou adresu cílového zařízení, musí se tato adresa rovnat rozšířené adrese přijímacího zařízení. • Jestliže datový nebo příkazový MAC rámec neobsahuje adresu cílového zařízení, je přijat pouze v případě, že přijímací zařízení je koordinátorem sítě a identifikátor zdrojové sítě a sítě přijímacího zařízení se shodují.
1.4.8
Bezpečnost v síti IEEE 802.15.4
Pro zabezpečení v síti je využit šifrovací algoritmus AES (Advanced Encryption Standard) se 128 bitovou délkou klíče. AES je využíván pro zajištění integrity a bezpečnosti dat. Integrita dat je zajištěna za pomocí kódu integrity zprávy MIC (Message Integrity Code), který je přidán do pomocné bezpečnostní hlavičky. Kód je vytvořen zašifrováním části MAC rámce pomocí klíče sítě (Key of the network). Aplikací tohoto mechanismu dokáže přijímací zařízení rozlišit, zda byl MAC rámec zaslán důvěryhodným zařízením či ne. Délka MIC může být 32, 64 či 128 bitů. Pro všechny délky je použit algoritmus AES se 128 bitovou délkou klíče. Bezpečnost dat je zajištěna zašifrováním datové části MAC rámce. Úroveň bezpečnosti v síti je určena nastavením části Security Control v pomocné bezpečností hlavičce. Je definováno 8 úrovní bezpečnosti v rozsahu od nezabezpečeného přenosu po maximální zabezpečení integrity při 128 bitovém MIC a bezpečnosti dat při 128 bitové zašifrování datové části. Výčet jednotlivých úrovní je uveden ve specifikaci IEEE 802.15.4 [2]. Standard IEEE 802.15.4 nedefinuje mechanismus výměny klíče sítě mezi zařízeními. Tento mechanismus je nutné definovat ve vyšší vrstvě.
22
2
VÝBĚR KOMPONENT SYSTÉMU
Cílem této kapitoly je rozbor jednotlivých částí automatizačního systému a volba klíčových součástek s ohledem na další zpracování práce.
2.1
Struktura systému domácí automatizace
Funkční struktura systému je na obrázku 2.1 rozdělena do logických bloků. Centrálním bodem automatizačního systému je řídící jednotka, která bezdrátově komunikuje s automatizačními jednotkami a řídí jejich funkce. Dále má za úkol předávat informace prostřednictvím databáze webovému serveru, který automatizační systém propojuje s klientskou ovládací aplikaci. Komunikace mezi klientskou aplikací a serverem bude realizovaná protokolem http po lokální síťi ethernet. Webový server komunikuje s řídicí jednotkou rovněž prostřednictvím databáze. Úkolem automatizační jednotky je sběr dat z připojených senzorů, ovládání připojených akčních členů a bezdrátová komunikace s nadřazenou řídicí jednotkou. V konečném systému bude obsaženo více automatizačních jednotek, pro přehlednost je na obrázku 2.1 uvedena pouze jedna. Pro bezdrátovou komunikační síť byla v systému zvolena topologie hvězdy. Síť nebude synchronizována vysíláním beacon rámce a bude tak umožňovat automatizačním jednotkám různé intervaly spánku odpovídající jejich funkčnosti. Navržená topologie síťě je naznačena na ukázce rozmístění automatizačních jednotek v rámci bytové jednotky 2.2.
KLIENT
HTTP SERVER
ŘÍDÍCÍ JEDNOTKA
KOMUNIKAČNÍ MODUL
AUTOMATIZAČNÍ JEDNOTKA
AKČNÍ ČLEN
SENZOR
DATABÁZE
Obr. 2.1: Bloková struktura automatizačního systému
2.2
Volba hardware
Volbu hardwarového vybavení řídícího systému lze rozdělit na tři dílčí části: • výběr hardware řídící jednotky,
23
obývací pokoj
KZ 4 (AJ)
KZ 2 (AJ) KZ 1 (AJ)
kuchyně
KZ 5 (AJ)
KZ 3 (AJ)
KZ 6 (AJ) chodba
KZ 13 (AJ) K (ŘJ)
KZ 12 (AJ)
KZ 9 (AJ)
KZ 11 (AJ) okolí domu
KZ 7 (AJ)
ložnice
KZ 8 (AJ)
KZ 10 (AJ) KZ K ŘJ AJ
- Koncové zařízení sítě - Koordinátor sítě - Řidicí jednotka - Automatizační jednotka
Obr. 2.2: Topologie bezdrátové sítě • výběr senzorů a akčních členů, • výběr komunikačních modulů.
2.2.1
Výběr hardware řídící jednotky
Řídicí jednotka představuje srdce celého automatizačního systému. Z hlediska realizace jsou na řídící jednotku kladeny následující požadavky: • jednotka musí být dostatečně výkonná pro běh operačního systému Linux, • musí být vybavena rozhraním Ethernet pro síťovou komunikaci s klientským ovládacím zařízením, • musí obsahovat hardwarový UART nebo GPIO, které mohou být jako UART využity, • musí obsahovat hostitelské USB rozhraní pro plánované připojení WiFi modulu, • jednotka by měla mít nízkou spotřebu a malé rozměry. Těmto požadavkům nejlépe vyhovují takzvané jednodeskové počítače (singleboard computer). Jak vyplývá z názvu, jedná se o počítače, které mají všechny potřebné hardwarové komponenty integrované na jedné desce plošného spoje. Většina těchto počítačů je založena na takzvaném systému na čipu SoC (System on Chip), který v jednom pouzdře integruje procesorovou jednotku CPU (Central Processing Unit) s jádrem ARM a grafickou jednotku GPU (Graphics Processing Unit ). Operační systém je typicky uložen na SD kartě. Jednodeskové počítače dále obsahují vlastní obvody pro regulaci napětí a periferní obvody. Spotřeba celého zařízení se pohybuje v jednotkách wattů.
24
Na trhu se za posledních několik let objevila celá řada jednodeskových počítačů. Některé typy se těší velké oblibě a vytvořili kolem sebe komunitu tvůrců, kteří se vývoji na dané platformě věnují a umožňují tak její další rozvoj. Při předvýběru jednotlivých zařízení byla velikost komunity zvažována, jelikož je úměrná množství dostupných informačních zdrojů, ze kterých lze při realizaci čerpat. Ze srovnání parametrů zvažovaných počítačů v tabulce tab.2.1 lze vypozorovat, že se jednotlivé typy vzhledem k požadavkům na řídící jednotku liší hlavně v ceně, procesorové jednotce a velikosti operační paměti. Jelikož řídící jednotka nebude vykonávat výpočetně náročné úkoly, vyhoví z tohoto pohledu s rezervou kterýkoliv z uvedených typů. Vzhledem k nejnižší ceně a velmi široké komunitě uživatelů byla pro tuto práci zvolena platforma Raspberry Pi.
2.2.2
Výběr senzorů a akčních členů
Výběr jednotlivých součástek pro realizaci senzorů a akčních členů je odvozen od požadované funkce automatizačního systému. Systém bude měřit neelektrické veličiny teplotu a intenzitu osvětlení. Dále bude provádět detekci pohybu v automatizovaném objektu a detekovat otevření dveří a oken. Systém bude umět ovládat jednoduchou mechaniku pomocí servomotorů a provádět spínání v síti 230V. Senzory teploty Teplotní senzory budou v systému sloužit pro monitorování vnitřní a vnější teploty. Rozsah měření tedy bude s rezervou v rozsahu od cca −30𝑜 C do 50𝑜 C. Teplotní senzory lze rozdělit dle fyzikálního principu na odporové, polovodičové, termoelektrické, optické a dilatační. Pro systém bylo z důvodu zjednodušení konstrukce vybíráno z integrovaných polovodičových senzorů, které integrují veškeré komponenty pro realizaci měření (zesilovače, převodníky a filtry) do jednoho pouzdra. Výhodou této volby je fakt, že senzory nepotřebují kalibraci, změřená hodnota teploty je dostupná v digitální formě na výstupu senzoru. Pro měření teploty lze zvolit senzor z široké nabídky. Jako nejvhodnější se pro konstrukci jevil senzor DS18B20 společnosti Maxium, který patří mezi nejlevnější. Tento senzor umožnuje měřit teplotu v rozsahu od −55𝑜 C do 125𝑜 C s rozlišením až 12 bitů. Rozlišuje tedy změny na úrovni 0.0625𝑜 C. V rozsahu teplot od −10𝑜 C do 85𝑜 C je však třeba počítat s chybou měření ±0, 5𝑜 C. Mimo tento rozsah může být chyba měření až ±2𝑜 C [16]. Výhodnou vlastností DS18B20 je komunikační rozhraní 1-Wire, které umožňuje při využití jednoho komunikačního vodiče zapojit více senzorů do jedné sběrnice a tím zjednodušit instalaci.
25
Cubieboard2 Procesor ARM Cortex-A7 Dual-Core Kmitočet procesoru 1 Ghz Operační paměť 1GB DDR3 Vnitřní paměť 4GB NAND SD karta Ano USB port 2x Ethernet 1x 10/100 Mbit/s WiFi Ne UART Ano Napájení 5V Rozměry 100 mm x 60 mm Cena $59
A10-OLinuXino A10 Cortex-A8 CPU 1 Ghz 512MB DDR3 ne Ano 2x 1x 10/100 Mbit/s Ne Ano 5V 84 mm x 60 mm $41
Raspberry Pi model B Procesor ARM1176JZF-S Kmitočet procesoru 700 Mhz Operační paměť 512MB DDR3 Vnitřní paměť Ne SD karta Ano USB port 2x Ethernet 1x 10/100 Mbit/s WiFi ne UART Ano Napájení 5V Rozměry 86 mm x 54 mm Cena $35
BeagleBone A6 ARM Cortex-A8 CPU 700 Mhz 256MB DDR2 Ne Ano 1x 1x 10/100 Mbit/s ne Ano 5V 86 mm x 54 mm $89
Tab. 2.1: Srovnání parametrů zvažovaných jednodeskových počítačů [9] [12] [13] [14].
Světelné snímače Světelné snímače se v automatizačním systému využívají pro určení míry světla v okolí. Typické použití nalézají například při automatickém zatahování rolet po setmění. Pro konstrukci světelného snímače se využívá vlastností fotorezistoru. Fotorezistor je součástka s proměnnou rezistivitou v závislosti na množství dopadajícího světla. Je založen na vnitřním fotoelektrickém jevu. Závislost elektrického odporu
26
na osvětlení je v logaritmickém měřítku přímka. Na změnu osvětlení reagují s delší časovou konstantou (až 1 sekunda). Fotorezistory se vyrábějí v různých hodnotách od stovek Ω do 1MΩ. Světelný snímač má v automatizačním zařízení sloužit k detekci ve viditelném spektru 380 až 750 nm. Pro realizaci byl zvolen fotorezistor GL5528 s minimální odporem 1MΩ při intenzitě osvětlení 0 Lux a odporem 8kΩ až 20kΩ při intenzitě denního světla 10 Lux [17]. Materiál fotorezistoru je sulfid kademnatý (CdS), který dle detektuje záření pouze do vlnové délky 560 nm, což bude pro konstrukci snímače dostatečné. Senzory pohybu K detekci pohybu a přítomnosti se v domácí automatizaci využívají pasivní infračervené detektory PIR (Passive Infrared Detector). Detektor funguje na principu pyroelektrického jevu. Obsahuje několik klíčových částí. Polokulovou Fresnelovu čočku, filtr infračerveného záření, PIR element a řídicí elektroniku. Čočka slouží k zaostření infračerveného záření a umožňuje tak detekci záření z více směrů. Filtr omezuje propuštěné infračervené záření na rozsah, ve kterém emituje záření lidské tělo. PIR element je polovodičový prvek, který je v detektoru ozařován infračerveným zářením a generuje elektrický povrchový náboj. Při změně množství záření dojde i ke změně generovaného náboje. Tato změna je elektronikou detektoru vyhodnocována a pokud dojde k překročení nastavené meze, signalizuje tuto změnu dále. Mezi důležité parametry PIR senzorů patří úhel detekce a maximální vzdálenost detekce. Úhel detekce udává ve stupních šířku detekční oblasti. Maximální vzdálenost udává délku detekční oblasti, tedy jak vzdálené objekty dokáže detektor zachytit. Při volbě je nutné uvažovat rovněž vstupní napájení detektoru a jeho spotřebu. S ohledem na zmíněné parametry byl zvolen detektor SB00322A-1 [15], jehož parametry jsou uvedeny v tab.2.2. Zvolený detektor obsahuje logický výstup, který umožní přímé propojení s automatizační jednotkou. Rozměr Napájecí napětí Výstupní napětí Vzdálenost detekce Úhel detekce Spotřeba
8 mm x 10 mm 3,3V až 15V 0 V (L) a 3V (H) 5m 100𝑜 < 1mA
Tab. 2.2: Parametry PIR detektoru [15].
27
Spínače V konstruovaném systému bude nutné zabezpečit dualitu ovládání. Pro každý vzdáleně ovládaný akční člen musí existovat fyzický ovladač, který umožní lokální ovládání akčního členu. Pro tyto účely budou akční členy vybaveny spínači a přepínači. Jejich volba bude provedena až dle konkrétní aplikace při hardwarové realizaci automatizačních jednotek. Magnetické kontakty Magnetické kontakty se v domácí automatizaci využívají pro detekci otevření dvěří či oken. Sestávají se ze dvou součástí: jazýčkového kontaktu a magnetu. Jazýčkový kontakt je umístěn na statické části dveří nebo okna. Magnet je umístěn na pohyblivé části. Jazýčkový kontakt obsahuje Reedův spínač, který je spínán magnetickým polem. Pokud je tedy magnet v těsné blízkosti jazýčkového kontaktu, obvod je sepnut. Kontakty operují pasivně, není nutné je napájet. Jelikož budou magnetické kontakty v systému využívány pouze k detekci a nebudou spínat zátěž, lze zvolit kterýkoliv ze současné nabídky. Pro účely konstrukce byl zvolen typ N-SA03B společnosti Longhorn. Spínací relé Pro spínání zařízení pracujících se střídavým napětím 230V budou využita spínací relé. Typickým případem použití relé je spínání osvětlení, kdy stejnosměrným výstupem automatizační jednotky bude nutné spínat střídavé napětí. Relé se z hlediska konstrukce dělí na mechanická a polovodičová. Mechanické relé obsahuje spínač připojený na spínané elektrody a cívku připojenou na spínací elektrody. Průchodem proudu cívkou je vytvářeno elektromagnetické pole, které přitáhne spínací kontakt a uzavře spínaný obvod. Kontakty spínaného obvodu jsou tedy fyzicky spínané a jsou galvanicky odděleny od spínacích. Nevýhodou mechanických relé je právě fakt, že dochází k fyzickému spínání a tím i opotřebení kontaktů vznikajícími elektrickými oblouky. Další nevýhodou je mechanický zvuk, který relé při přepínání vydává. Polovodičové relé obsahuje spínací a spínaný obvod, které jsou vzájemně galvanicky odděleny. Oddělení je dáno vazbou mezi spínaným a spínacím obvodem. Dle vazby můžeme polovodičová relé rozdělit na relé s transformátorovou vazbou, relé s optickou vazbou a relé s magnetickou vazbou. Nejčastěji používaná jsou relé s optickou vazbou. Nevýhodou polovodičových relé je úbytek napětí na spínacím prvku, který se projevuje jako vyzářené teplo. Výhodou je vyší rychlost spínání a delší životnost.
28
Pro konstrukci bylo zvoleno polovodičové relé s optickou vazbou Sharp S 202 SE2 [23], se kterým budou provedeny prvotní experimenty a jeho volba bude ověřena v další části práce. Parametry jsou uvedeny v tab.2.3. Vybrané relé má pomocný obvod pro spínání při nulové fázi, který minimalizuje vysokofrekvenční rušení. Proud diodou Izolační napětí Rychlost sepnutí Rychlost rozepnutí Spínací napětí Spínání Spínací prvek Rozměry
8 mA 4 kV 10 ms 10 ms 250 V/AC Při nulovém napětí Triak 24 mm x 32 mm x 11 mm
Tab. 2.3: Parametry polovodičového relé Sharp S 202 SE2 [23].
Servomotory Servomotory budou v systému využity pro ovládání úhlu natočení žaluzií. Jedná se o malý řiditelný motorek s otočnou osou, jejiž pootočení lze řídit. Typicky jej nalezneme v rádiem ovládaných modelech, kde se využívá k ovládání mechanických částí. Své uplatnění však nalézá také v systémech domácí automatizace při natáčení žaluzií nebo posunu termostatických hlavic. Servomotor se standardně ovládá 1-2ms dlouhými pulzy s frekvencí 50Hz. Šířka pulzu odpovídá úhlu natočení výstupní osy. Zvýšením resp. snížením délky pulzu dojde k pootočení osou doleva resp. doprava. Krajním polohám natočení odpovídají krajní délky pulzů. Pro automatizační systém byl zvolen servomotor SO5NF STD umožňující 180𝑜 rotaci. Konkrétně tento typ byl zvolen proto, že mu k napájení dostačuje napětí 5V a současně má dostatečně malé rozměry pro umístění do lišty žaluzie. Dostatečnost hodnoty točivého momentu bude třeba zjistit experimentem při realizaci. Kompletní parametry zvoleného servomotoru lze naleznout v tabulce 2.4.
2.2.3
Výběr komunikačních modulů
Výběr komunikačního modulu lze rozdělit na dvě části. Volbu komunikačního modulu pro řídicí jednotku a volbu komunikačního modulu pro automatizační jednotku. Vhodný komunikační modul pro automatizační jednotku musí splňovat systémové požadavky dané zvolenými senzory a akčními členy:
29
Napájecí napětí Točivý moment Rychlost Rotace Váha Velikost
4,8V až 6,0V 38,8/44,4 oz-in. (4.8/6.0V) 0,20/0,18 sec/60𝑜 (4.8/6.0V) 180𝑜 20g 28,8 x 13,8 x 30,2mm
Tab. 2.4: Parametry zvoleného servomotoru [18]. • musí obsahovat řiditelné digitální výstupní vývody, • musí obsahovat digitální vstupní vývody, • musí obsahovat A/D převodník, • musí obsahovat generátor PWM signálu. Na komunikační modul řídicí jednotky existuje pouze požadavek na řízení funkce modulu pomocí sériového komunikačního rozhraní. Pro zúžení výběru komunikačních modulů byly uvažovány výrobky společností Atmel, Digi a Dresden elektronik. Srovnání parametrů je uvedeno v tabulce 2.5. Firmware (softwarový stack) modulu ATZB-24-A2 je zveřejněn spolu s dokumentací. Modul deRFmega128-22M00 využívá upravenou verzi stejného stacku a je rovněž zveřejněn. Softwarový stack modulu XBP24-AWI-001 zveřejněn není. Požadavkům na modul řídicí jednotky vyhoví všechny zvažované typy. Pro řídicí jednotku byl zvolen modul XBP24-AWI-001. Pro jeho volbu byla klíčová jednoduchost použití a nastavení. Modul obsahuje předprogramovaný firmware, který umožňuje ovládání po seriovém rozhraní. Druhým důležitým faktorem při rozhodování byla dostupnost softwarových knihoven pro komunikaci s tímto modulem. Požadavkům na modul automatizační jednotky rovněž vyhoví všechny moduly. Modul XBP24-AWI-001 však neumožnuje úpravu firmware a tím limituje plné využití integrovaného mikrokontroleru. Pro automatizační jednotku byl i přes mírně horší parametry spotřeby zvolen modul ATZB-24-A2, který byl levnější a lépe dostupný.
2.3 2.3.1
Softwarové nástroje pro implementaci Programové vybavení komunikačních modulů
Atmel 802.15.4 MAC Softwarový stack Atmel 802.15.4 MAC dostupný pro modul Zigbit má architekturu rozdělenou na vrstvy dle obr.2.3. Je napsán v jazyce C. Hlavní část stacku se skládá
30
Modul Výrobce SOC/SIP Mikrokontroler Spotřeba – spánek Spotřeba – vysílání Spotřeba – přijímání Vysílací výkon Citlivost přijímače Rozhraní Firmware Modul Výrobce SOC/SIP Mikrokontroler Spotřeba – spánek Spotřeba – vysílání Spotřeba – přijímání Vysílací výkon Citlivost přijímače Rozhraní Firmware
ATZB-24-A2 Atmel AT86RF230 8-bit ATmega 1281v 6 𝜇A 18 mA 19 mA -17 dBm až 3 dBm -101 dBm UART, SPI, I2C, JTAG, ADC, GPIO IEEE 802.15.4 MAC
XBP24-AWI-001 Digi International Freescale MC13193 8-bit 689S08A HCS08 10 𝜇A 45 mA 50 mA 0 dBm -92 dBm UART, USART, SPI, I2C, JTAG, ADC, GPIO a další 802.15.4 stack
deRFmega128-22M00 Dresden elektronik ATmega128RFA1 8-bit ATmega 128 1 𝜇A 18 mA 18 mA +3 dBm -100 dBm UART, I2C, SPI, JTAG, ADC, GPIO a další MAC stack
Tab. 2.5: Srovnání parametrů zvažovaných komunikačních modulů. ze tří vrstev [11]: • Platform Abstraction Layer - PAL - vrstva obsahuje funkcionality specifické pro danou hardwarovou platformu, které zpřístupňuje vyšším vrstvám, • Transceiver Abstraction Layer - TAL - vrstva obsahuje funkcionality pro řízení transceiveru, které zpřístupnuje vyšším vrstvám, • MAC Core layer – MCL - v této vrstvě je implementována hlavní část MAC vrstvy standardu IEEE 802.15.4. Vrstva poskytuje API pro aplikační vrstvu, které je ve shodě se standardem. Softwarový stack doplňují vrstvy Transceiver feature access - TFA, Security toolbox - STB a Security abstraction layer - SAL, které umožnují přístup ke specifickým
31
hardwarovým funkcím transceiveru a bezpečnostním mechanismům. Aplikace
MAC (MCL incl. MAC API)
STB
Správa zdrojů (BMM, QMM) TAL
SAL
Abstrakce dalších periférií
TFA
PAL TRX, časovače, GPIO, IRQ, Stream I/O
Hardwarová platforma (Mikrokontroler, Deska, Konfigurace)
Obr. 2.3: Struktura Atmel IEEE 802.15.4 MAC softwarového stacku [11].
Xbee 802.15.4 firmware Firmware modulu Xbee je dodáván v uzavřené formě. Pro jeho nahrání a konfiguraci výrobce poskytuje program XCTU. S moduly tohoto typu lze pomocí sériové linky komunikovat dvěma způsoby. Prvním způsobem je využití AT příkazů. Modul je v tomto způsobu komunikace přepínán mezi datovým módem a příkazovým módem. V datovém módu jsou všechna zaslaná data předávána transparentně zvolenému zařízení v síti. V příkazovém módu je možné modul ovládat pomocí definovaných příkazů. Tento způsob komunikace není vhodný pro automatizační systém, jelikož komunikace je v dané chvíli pouze mezi dvěma zařízeními. Druhým způsobem je komunikaci pomocí Xbee API (Application Programming Interface) zasíláním přesně definovaných datových rámců. Struktura API rámce pro datový přenos je uvedena na obr.2.4. Sestává se z úvodního bytu 0x7E, čísla udávajícího délku rámce, datové informace rámce a kontrolního součtu. Datová informace rámce je dále rozdělena na API identifikátor určující typ rámce a příkazová data. Část příkazových obsahuje ID rámce, cílovou adresu, část pro volby rámce a část pro přenos dat. Pro komunikaci s modulem Xbee bude v systému využit API mód, který se lépe hodí pro komunikaci s více účastníky sítě, umožňuje lepší kontrolu nad přenášenými
32
daty, jeho implementace je programově jednodušší a více odpovídá struktuře IEEE 802.15.4.
Obr. 2.4: Struktura datového rámce v API módu [10].
2.3.2
Programové vybavení pro řídící jednotku
Linuxové distribuce pro Raspberry Pi Pro Raspberry Pi byla upravena celá řada běžných linuxových distribucí například Debian ARM, Gentoo Linux, openSUSE a další. Pro řídicí jednotku byla zvolena distribuce Raspbian, která je založena na distribuci Debian optimalizované pro platformu Raspberry Pi. Node.js Pro programování řídicí jednotky byl nejdříve uvažován jazyk Python, který je součástí distribucí operačního systému Linux. Aby bylo možné pro klientskou i serverovou část využít jeden programovacím jazyku, byl zvolen JavaScript na platformě Node.js. JavaScript je interpretovaný jazyk vyžadujicí pro provedení uživatelského skriptu interpreter. Node.js je platforma postavená na interpreteru v8, který byl vytvořen pro internetový prohlížeč Google Chrome. Node.js je navržen specificky pro aplikace, které vyžadují velký výkon ve vstupních a výstupních operacích. Programovací model je založený na asynchronním zpracování událostí. Skripty čekající na určitou událost tedy neblokují vykonávání jiných skriptů. Při nové instalaci obsahuje pouze základní knihovny, díky široké komunitě uživatelů však Popsat trochu lépe Node.js
33
Databáze Databáze bude plnit roli paměti a propojovacího elementu mezi řídící a serverovou částí automatizačního systému. Pomocí záznamů umožní ukládat strukturovaná data, které pak bude možné z databáze pomocí dotazů vyčítat. Při volbě byla zvažována jak více rozšířená relační databáze, tak méně rozšířená a novější dokumentová databáze. Vzhledem k malém objemu a povaze dat, která se do databáze budou ukládat bylo rozhodnuto o využití dokumentového typu databáze. Konkrétně byla zvolena databáze MongoDB, která data uchovává ve formátu JSON (Javascript Object Notation), což je pro další zpracování dat velmi výhodné, protože jazyk JavaScript využívá JSON pro zápis objektových dat a má předpřipraveny metody pro práci s nimi. Na rozdíl od relačních databází spočívá výhoda MongoDB v pružnosti databáze, která se přizpůsobuje ukládaným datům. Není nutné dopředu definovat kompletní pevnou strukturu tabulek, jako tomu je u relačních databází. Tabulky a záznamy jsou vytvořeny při prvním zápisu do databáze. Jednotlivé záznamy v tabulce jsou klíčovány pomocí v rámci celé databáze unikátního identifikátoru (ObjectId).
2.3.3
Klientská ovládací aplikace
Při volbě klientské ovládací aplikace bylo třeba učinit hlavně rozhodnutí, zda se má jednat o takzvanou nativní aplikaci nebo webovou aplikaci. Pro vývoj nativní aplikace je třeba vybrat cílový operační systém iOS, Android či Windows Phone a pro tvorbu aplikace využít softwarový vývojový balíček (SDK). Použití takto vytvořené aplikace je však vázáno na danou platformovou operačního systému. Výhodou je rychlejší běh aplikace, který plyne z možnosti optimalizovat vyvíjenou aplikaci přímo pro daný operační systém a využít tak efektivněji omezené hardwarové zdroje zařízení. Webová aplikace je spustěna v prohlížeči mobilního zařízení a proto není vázána na operační systém. Pro zajištění kompatibility je pouze nutné mít na paměti omezení prohlížečů a specifika uživateského rozhraní na jednotlivých operačních systémech. Nevýhodou webové aplikace je v porovnání s nativní aplikaci menší výkon. Z důvodů větší kompatibility bylo rozhodnuto realizovat ovládání jako webovou aplikaci. Výhodou takto vytvořené aplikace bude funkčnost na jakémkoliv zařízení s moderním webovým prohlížečem. Automatizační systém tak bude možné ovládat například i z osobního počítače.
34
Uživatelského rozhraní Pro návrh uživatelského rozhraní bude využit framework Twitter Bootstrap, který obsahuje knihovnu elementů vytvořených pomocí jazyka HTML a kaskádových stylů CSS. Knihovna pokrývá naprostou většinu běžných funkcionalit uživatelského rozhraní. Node.js Pro vytvoření ovládací aplikace byl shodně s řídicí jednotkou zvolen programovací jazyk JavaScript v prostředí Node.js.
35
3 3.1
NÁVRH HARDWAROVÉ ČÁSTI Propojení řídicí jednotky a modulu
Logické výstupy Raspberry Pi pracují s napěťovými urovněmi 0V až 3,3V, pro propojení Xbee modulu tedy nejsou potřeba žádné externí součástky. Základní návrh počítá s umístěním přídavného komunikačního modulu do bezprostřední blízkosti řídicí jednotky. Pro případ, že by bylo třeba umístit komunikační modul do větší vzdálenosti od řídicí jednotky, je DPS pro modul vybavena samostatným regulátorem napájení LM1117-3.3 od společnosti Texas Instruments s maximálním vstupním napětím 20V a výstupním napětím 3.3V. Byl zvolen regulátor s nízkým úbytkem napětí (1.05V při zátěži 200mA), pro napájení tak vyhoví napětí od 5 do 20V. Standardně bude k napájení regulátoru využito napětí 5V z konektoru 3 na Raspberry Pi. Sériový výstup TXD (8) Raspberry Pi je propojen se sériovým vstupem Xbee (DIN). Sériový vstup RX (10) Raspberry Pi je propojen se sériovým výstupem Xbee (DOUT). Pro indikaci sériové komunikace jsou oba komunikační vodiče doplněny LED diodami. DPS je dále doplněna indikačními LED diodami pro stav zapnutí, indikaci RSSI a indikaci asociace. Aby nebyly výstupy komunikačního modulu zatěžovány, je spínání této trojice diod prováděno pomocí unipolárních tranzistorů s N-kanálem. Pro možnost resetovat komunikační modul je DPS vybavena tlačítkem. Schéma zapojení je uvedeno na obr.3.1. Provedení DPS je uvedeno v příloze na obr.6.1, obr.6.2 a obr.6.3.
Obr. 3.1: Zapojení Raspberry Pi a Xbee modulu.
36
3.2
Návrh automatizačních jednotek
Aby bylo možno demonstrovat více druhů automatizačních jednotek pouze na dvou zakoupených kusech bezdrátových modulů ZigBit, bylo rozhodnuto vytvořit jednotlivé dílčí části jako dvojici samostatných DPS. První DPS obsahuje bezdrátový modul, programovací rozhraní JTAG a propojovací konektor. DPS je rozměrově navržena tak, aby ji bylo možno usadit do nepájivého pole. Druhá DPS obsahuje zbylou část zapojení, tedy součástky související se specifickou funkčností dané automatizační jednotky a jejím napájením.
3.2.1
ZigBit ATZB-24-A2
Schéma zapojení desky komunikačního modulu je uvedeno na obr.3.2. Obsahuje programovací a ladící rozhraní JTAG a konektor pro propojení s nepájivým polem. Tento konektor také slouží pro propojení s druhou částí obvodu automatizační jednotky. Provedení DPS je uvedeno v příloze na obr.6.4, obr.6.5, obr.6.6 a obr.6.7.
Obr. 3.2: Zapojení modulu ZiBbit.
37
3.2.2
Jednotka pro měření teploty, detekci pohybu a detekci otevření dveří
Jednotka se sestává z bezdrátového modulu Zigbit ATZB2-24-A2 osazeného v propojovacím konektoru a DPS zajišťující napájení a a propojení se senzory. Schéma zapojení je uvedeno na obr.3.3. K napájení je využita lithiová primární AA baterie s napětím 3,6V (plně nabitý stav) a kapacitou 2600mAh. Zvolená baterie bude dle [19] vybita při napětí 2.0V. Schéma je doplněno step-up DC/DC měničem typu LT1300CS8 od společnosti Linear Technology, který zabezpečí vysokou efektivitu konverze (81% při odběru 10mA) a konstantní výstupní napětí 3,3V i při klesajícím napětí baterie při odběru proudu a vybíjení. Měnič je dle doporučení výrobce [22] doplněn indukčností 10𝜇H s nízkou rezistivitou (0,025Ω), schottkyho diodou MBRS130LT3 od společnosti Motorola a tantalovými elektrolytickými kondénzátory z řady AVX TPS s nízkým ekvivalentní sériovým odporem. Jelikož indukčnost bude umístěna v blízkosti bezdrátového modulu, byl zvolen typ v pouzdru s magnetickým stíněním. Napájecí obvod je chráněn unipolárním tranzistorem s P-kanálem, který je otevřen pouze při správné polaritě vložené baterie. Pro indikaci funkce je schéma jednotky doplněno o trojici LED diod, které jsou spínané přímo mikrokontrolérem v bezdrátovém modulu. Proud pro tyto LED je omezen na hodnotu 5,5mA. Interní napěťová reference mikrokontroléru ATmega1281 integrovaného v bezdrátovém modulu Zigbit ATZB2-24-A2 má toleranci 15% [20]. Aby bylo možné přesněji odečíst (převést) nižší úrovně napětí baterie, je deska osazena externí napěťovou referencí TL431, která umožní realizovat odečet s tolerancí cca 1% [21]. DPS je dále osazena konektory pro připojení senzorů teploty, detekci pohybu (PIR) a detekci otevření dveří (magnetický kontakt). Polovodičový senzor teploty DS18B20 je s bezdrátovým modulem propojen sběrnící 1-Wire. Dle doporučení výrobce [16] je sběrnice vybavena pull-up rezistorem hodnoty 4,7kΩ, senzory díky tomu mohou být umístěny ve větší vzdálenosti a je možné jich připojit současně více. Detektor pohybu SB00322A-1 je s bezdrátovým modulem propojen vstupem IRQ6. Při detekci pohybu bude na vstupu logická úroveň H. Dle doporučení výrobce [15] byl detektor pro omezení vstupního proudu osazen rezistorem R1 hodnoty 3kΩ. Magnetický kontakt N-SA03B propojuje vstup IRQ7 se zemí, v případě rozepnutí je pomocí pull-up rezistoru na vstup přivedena logická úroveň H. DPS dále obsahuje rozhraní pro sériovou komunikace (UART), tlačítko, externí napájecí vstup a externí spínací výstup. Tyto prvky jsou určené pro testovací účely. Provedení DPS je uvedeno v příloze na obr.6.10, obr.6.9 a obr.6.10.
38
Obr. 3.3: Zapojení jednotky pro měření teploty, detekci pohybu a detekci otevření dveří.
3.2.3
Jednotka pro ovládání žaluzií
Jednotka pro ovládání žaluzií se sestává z bezdrátového modulu Zigbit ATZB2-24A2 osazeného v propojovacím konektoru a DPS zajišťující napájení a komunikaci se senzory. Součásti jednotky jsou také dva fotorezistory pro měření intenzity osvětlení, servomotoru a tlačítko pro ovládání umístěné na DPS. K napájení je využito externí napětí 5V, dodávaného samostatným spínaným zdroje napětí. Úroveň 5V je přímo použita pro napájení servomotoru, pro zbylou část obvodu je toto napětí sníženo v lineárním regulátoru napětí na hodnotu 3,3V. Servomotor je zapojen na výstup UART-CLK0, který slouží jako výstup pro generování PWM signálu. Pro indikaci funkce je schéma jednotky doplněno o trojici LED diod, které jsou spínané přímo mikrokontrolérem v bezdrátovém modulu. Proud pro tyto LED je omezen na hodnotu 5,5mA. Zapojení fotorezistoru je provedeno jako napěťový dělič, schéma je uvedeno na obr.3.4. Výstupní napětí odpovídající intenzitě osvětlení bude měřeno A/D převodníkem mikrokontroléru. Zapojení obsahuje dva fotorezistory, aby bylo možné měřit diferenci ve dvou směrech. Typicky směrem ven a dovnitř místnosti. Výstupy napěťových děličů jsou připojen na vstup A/D převodníku 1 a 2.
39
Pro volbu hodnoty rezistoru R1 byly změřeny typické hodnoty odporu fotorezistoru při různých intenzitách venkovního osvětlení. Při měření byl zaznamenán také stav vnitřního osvětlení v místnosti, který se na hodnotě odporu podílí. Změřené hodnoty shrnuje tabulka 3.1. Pro každý řádek bylo změřeno deset hodnot, které byly zprůměrovány. Při měření byl fotorezistor nasměrován aktivní plochou ven, aby se co nejméně projevoval vliv vnitřního osvětlení. Stejným způsobem bude fotorezistor umístěn v cílové aplikaci. Pro rezistor R1 byla zvolena hodnota 15kΩ, vypočtené hodnoty výstupního napětí děliče v tab.3.1 pokrývají přibližně celý rozsah měření A/D převodníku. Výpočet je vztažen ke změřenému napájecímu napětí 3,27V. Provedení DPS je uvedeno v příloze na obr.6.11, obr.6.12 a obr.6.13.
Obr. 3.4: Zapojení modulu pro ovládání žaluzií.
3.2.4
Jednotka pro spínání zásuvky 230V
Jednotka se sestává z bezdrátového modulu Zigbit ATZB2-24-A2 osazeného v propojovacím konektoru a DPS zajišťující napájení a propojení s polovodičovým relé Sharp S 202 SE2. Schéma zapojení je uvedeno na obr.3.5.
40
Venkovní podmínky Noc Noc Noc + Pouliční osvětlení Noc + Pouliční osvětlení Soumrak Soumrak Den Den + přímé slunce
Vnitřní podmínky Vypnuté osvětlení Zapnuté osvětlení Vypnuté osvětlení Zapnuté osvětlení Vypnuté osvětlení Zapnuté osvětlení Vypnuté osvětlení Vypnuté osvětlení
RLDR 1,3MΩ 110kΩ 80kΩ 25kΩ 22kΩ 20kΩ 2kΩ <1kΩ
Uvyst 0,04V 0,39V 0,52V 1,23V 1,33V 1,40V 2,89V <3,06V
Tab. 3.1: Změřený odpor fotorezistoru při typických podmínkách osvětlení. Aby bylo možné jednotku napájet přímo z rozvodné sítě 230V/50Hz, obsahuje schéma transformátor HAHN BV 202 0154 s výstupním napětím 6V (při zátěži 83mA) na sekundárním vinutí. Toto střídavé napětí je dále usměrněno v diodovém můstku a pomocí kondenzátoru je omezeno zvlnění amplitudy na úroveň 0,5V. Toto napětí je dále sníženo na potřebnou napájecí úroveň 3,3V v regulátorem napětí s nízkým úbytkem napětí. Velikost kapacitoru byla zvolena dle. Pro indikaci funkce je schéma z prostorových důvodů doplněno pouze jednou LED diodou, které indikuje napětí na výstupu usměrňovacího můstku.
Obr. 3.5: Zapojení jednotky pro spínání osvětlení. Provedení DPS je uvedeno v příloze na obr.6.14, obr.6.15, obr.6.16 a obr.6.17.
41
4
NÁVRH SOFTWAROVÉ ČÁSTI
Softwarová realizace byla rozdělena na dvě dílčí části. Programové vybavení automatizačních jednotek a programové vybavení řídící jednotky. Komunikace mezi automatizačními jednotkami a řídící jednotkou probíhá pomocí jednoduchého protokolu obsahujícího příkazy a indikační zprávy (potvrzení), které jsou zasílá v datovém paketu. Ve směru od koordinátora sítě k zařízením je využito nepřímého doručování paketů. Koordinátor sítě (modul řídící jednotky) si pakety uchovává ve své paměti a automatizační jednotky se na tato data periodicky dotazují. Tento způsob komunikace umožňuje zařízením výrazně snížit spotřebu, jelikož je tranceiver většinu doby vypnutý. Komunikace ve směru od zařízení ke koordinátorovi je realizována jako přímá. Každému zařízení v systému byl přiřazen unikátní identifikátor nazvaný DID (Device ID), kterým se po připojení do sítě indentifikují. Pro ovládání jsou podporovány následující příkazy: • SSR:ON tento příkaz slouží k nastavení spínače 230V. • SSR:OFF tento příkaz slouží k vypnutí spínače 230V. • SERVO:degree tento příkaz slouží k natočení serva na úhel odpovídajicí parametru degree. • SERVICES tento příkaz slouží k vyžádání seznamu dostupných služeb na dané automatizační jednotce. Uvedeným příkazům odpovídají potvrzení, které mají stejný formát. Potvrzení současně plní funkci indikace změny na cílovém zařízení v případě, že je využito lokální ovládání jednotky. Pro indikaci byly kromě zmíněných definovány tyto zprávy: • LDR:value tato zpráva slouží k indikaci hodnoty fotorezistoru, hodnota value je relativní vůči skutečnému osvětlení, pohybuje se v intervalu od 0 do 100. • MC:value slouží k indikaci změny stavu magnetického kontaktu, hodnota value je dvoustavová a může nabývat hodnoty OPEN nebo CLOSE . • TEMP:value slouží k přenosu změřené hodnoty teploty, hodnota value odpovídá změřené teplotě ve stupních celsia na jedno desetinné místo. • PIR:MOVE slouží k indikaci sepnutí pohybového čidla. • SERVICES:service1:service2: ... :servicen slouží k identifikaci seznamu dostupných služeb. • DID:value slouží k identifikaci automatizační jednotky. • REQERROR slouží k identifikaci nepodporovaného příkazu. Pro každé zařízení je v databází vytvořen záznam, obsahující parametry odpovídající indikačním zprávám a dále několik doplňkových parametrů: • panaddress:value indikuje aktuální adresu zařízení v síti. • status:value indikuje stav zařízení.
42
• name:value indikuje uživatelský název zařízení jméno zařízení.
4.1
Program automatizační jednotky
Programové vybavení automatizačních jednotek je postaveno na MAC vrstvě softwarového stacku IEEE Atmel 802.15.4 MAC. Hlavní funkcionality stacku jsou realizovány asynchronně. V hlavním zdrojovém souboru main.c Funkce jsou volány požadavkem (request) a výsledek provedení funkce je pak asynchronně dostupný jako potvrzení (confirm), které je zavolán po provedení požadované akce. Pro docílení požadované funkcionality je nutné požadavky a potvrzení řetězit tak, aby byly provedeny v definovamé pořadí. Jako příklad tohoto procesu lze uvést například požadavek na aktivní prohledání kanálů: wpan_mlme_scan_req(MLME_SCAN_TYPE_ACTIVE, SCAN_ALL_CHANNELS, SCAN_DURATION_SHORT, DEFAULT_CHANNEL_PAGE); který je po provedení následován potvrzením: void usr_mlme_scan_conf(uint8_t status, uint8_t ScanType, uint8_t ChannelPage, uint32_t UnscannedChannels, uint8_t ResultListSize, void *ResultList) Pro zajištění funkčnosti tohoto procesu je třeba v hlavní programové smyčce cyklicky volat funkci wpan_task(). Funkcionalita ležící na MAC vrstvě je pak prováděna paralelně s asynchronními funkcemi a musí být konstruována tak, aby co nejméně zatěžovala procesy stacku. Přípojení jednotky do sítě je realizováno sérií následujících požadavků: wpan_mlme_reset_req() /* reset MAC vrstvy */ wpan_mlme_scan_req() /* požadavek na aktivní prohledání okolních kanálů */ wpan_mlme_associate_req(); /* Asociace ke koordinátorovi */
43
U požadavků nebyly pro jednoduchost uvedeny parametry. Po úspěšném provedení těchto požadavků, je zařízení připojeno do sítě a může komunikovat s koordinátorem. Zařízení se pomocí funkce app_initiate_polling() inicializuje dotazování na data umístěná v paměti koordinátora a následně požadavkem wpan_mlme_poll_req() dotazování uskuteční. Tento mechanismus je v softwarové části automatizačních jednotek periodicky opakován. V případě, že jsou v paměti koordinátora nalezeny data pro zařízení, jsou tato data po požadavku zaslána a stack tuto událost indikuje zavoláním potvrzení usr_mcps_data_ind(). Obsah datové zprávy je dále porovnáván s validními příkazy a běh programu pokračuje do části uživatelských úloh, umístěných do funkce app_task().
4.1.1
Jednotka pro měření teploty, detekci pohybu a detekci otevření dveří
Aplikační část programu je řešena jako stavový automat obsahující stavy: • CONNECTED v tomto stavu zařízení vysílá identifikaci. • IDLE v tomto stavu je kontrolován stav PIR senzoru a sočasně paralelně probíhají asynchronně spustěné funkce, které periodicky kontrolují stav magnetického spínače a vyčítají hodnoty z teplotního senzoru. • TEMP v tomto stavu je zasílána aktualizace teploty do řídící jednotky. • MC v tomto stavu je zasílán stav magnetického kontaktu do řídící jednotky. • PIR v tomto stavu je zasílán stav PIR senzoru do řídící jednotky. • SERVICES v tomto stavu je zasílán seznam služeb do řídící jednotky. Bohužel i přes veškerou snahu se nepovedla zprovoznit 1-wire komunikace s teplotním senzorem, tato funkcionalita tedy zůstala nedořešena a v době psaní diplomové práce není funkční.
4.1.2
Jednotka pro spínání zásuvky 230V
Aplikační část programu je rovněž řešena jako stavový automat, který obsahuje tyto stavy: • CONNECTED v tomto stavu zařízení vysílá identifikaci. • STATUS v tomto stavu se zařízení periodicky hlásí řídící jednotce. • IDLE v tomto stavu je kontrolováno, zda bylo stisknuto tlačítko na zařízení. • SSROFF v tomto stavu se provádí vypnutí spínače a zaslání notifikace o této události do řídící jednotky. • SSRON v tomto stavu se provádí zapnutí spínače a zaslání notifikace o této události do řídící jednotky.
44
• SERVICES v tomto stavu je zasílán seznam služeb do řídící jednotky.
4.1.3
Jednotka pro ovládání žaluzií
Shodně s předchozími dvěmi jednotkami je i jednotka pro ovládání žaluzii řešena jako stavový automat. Obsahuje tyto stavy: • CONNECTED v tomto stavu zařízení vysílá identifikaci. • SERVO v tomto stavu zařízení nastavuje úhel natočení servomotoru a zasílá notifikaci řídící jednotce. • IDLE v tomto stavu je kontrolováno, zda bylo stisknuto tlačítko na zařízení. • LDR v tomato stavu je prováděno zaslání aktuálních hodnot, změřených na fotorezistorech. • SERVICES v tomto stavu je zasílán seznam služeb do řídící jednotky. Z časových důvodů se v rámci této automatizační jednotky nepodařilo dokončit kompletní program, tato jednotka tedy zůstala nedořešena a v době psaní diplomové práce není plně funkční.
4.2
Řídící jednotka
Účelem řídící jednotky je zprostředkovat výměnu dat mezi databází a automatizačními jednotkami. V inicializačním souboru app.js jsou spuštěny dva klíčové moduly xbee.js a commands.js a dále je prováděno periodické prohledávání databáze na výskyt příkazů vložených z klientské aplikace. Modul xbee.js zajišťuje komunikaci s xbee modulem a jeho prostřednictvím umožňuje zasílat příkazy a přijímat potvrzení ze sítě. Modul commands.js zajišťuje zpracování příchozích potvrzení a aktualizaci dat v databázi.
4.3
Server
Serverová aplikace je vytvořena v Node frameworku Express.JS. pomocí tzv. boilerplatu, kterým vygenerována základní struktura zdrojových souborů. Hlavní část aplikace tvoří soubor app.js, který načítá jednotlivé závislosti a nastavuje aplikační engine, stará se o registraci route (cest) a startuje http server. O obsluhu jednotlivých url se stará router. Každou část aplikace obsluhuje samostatný router. Rotery jsou umístěny ve složce routes. Router je zodpovědný za zpracování příkazů a renderování html stránky. Šablony stránek, které se renderují, jsou umístěny v adresáři views. Je použit šablonovací engine ejs, který umožňuje do šablon mimo jiné přímo zapisovat JavaScript kód.
45
Pro práci se zařízeními uloženými v databázi se používá pomocný modul devices.js, který umožňuje získávání například seznamu zařízení a změnu parametrů zařízení. Přihlašování uživatelů je řešeno pomocí sessions (Express.JS modul). Přihlašování, odhlašování a kontrolu přihlášeného uživatele zajišťuje pomocný modul user.js. Všechny routery kromě routeru přihlašovací stránky nejprve kontrolují, zda je uživatel přihlášen. Pokud není, přesměrují uživatele na stránku přihlášení. Pro sestavení uživatelského rozhraní je využit html framework Twitter Bootstrap. Z jeho knihovny jsou sestaveny jednotlivé komponenty uživatelského rozhraní na stránce. Seznam zařízení je pravidelně aktualizován každých několik sekund. Aktualizaci zajišťuje skript public/javascript/main.js. Při každé aktualizaci se podává asynchronní požadavek na seznam zařízení a tímto seznamem se aktualizuje stránka.
46
5
ZÁVĚR
V rámci diplomové práce byl stručně popsán standard bezdrátových osobních sítí IEEE 802.15.4. Byl proveden rozbor automatizačního systému, navržena topologie bezdrátové sítě a definovány její parametry. Automatizační systém byl rozdělen do blokové struktury na řídicí jednotku, automatizační jednotku, http server, databázi a klientskou ovládací aplikaci. Pro řídicí jednotku byl vybrán jednodeskový počítač Raspberry Pi a bylo navrženo jeho propojení s vybraným komunikačním bezdrátovým modulem Xbee. Byla zvolena vhodná distribuce operačního systému Linux. Pro realizaci funkcionality řídicí jednotky byl vybrán programovací jazyk JavaScript na platformě Node.js. Blok automatizační jednotky byl dále rozdělen na modulární části zabezpečující jednotlivé funkce automatizačního systému. Pro automatizační jednotky byly vybrány dílčí součástky a komunikační modul Atmel Zigbit. Byla navržena zapojení pro jednotku měření teploty, detekci pohybu a detekci otevření dveří, jednotku pro ovládání žaluzií, a jednotku pro zásuvky 230V. Byly navrženy DPS pro automatizační jednotku, modul pro řídící jednotku a bezdrátový modul. Na počítači Raspberry Pi byl nainstalován zvolený operační systém a zkompilovány a nainstalovány potřebné softwarové knihovny. S využitím stacku IEEE Atmel 802.15.4 MAC vytvořen ovládací firmware pro jednotlivé automatizační jednotky v jazyce C a byla otestována funkční komunikace. Software pro jednotku ovládání žaluzii byl však z časových důvodů nedokončen a není plně funkční. V rámci práce byla vytvořena řídící pro zprostředkování komunikace mezi automatizačními jednotkami a aplikačním serverem. Dále byla vytvořena serverová aplikace v jazyce JavaScript, která pomocí generování dynamických html šablon zabezpečuje funkční uživatelské rozhraní pro ovládání celého systému.
47
LITERATURA [1] DENNIS, Andrew K. Raspberry Pi Home Automation with Arduiono. Birmingham, Velká Británie: Packt Publishing, 2013. 158s. ISBN 978-1-84969-5862. [2] HEILE, Robert; ALFVIN, Rick; KINNEY, Patrick; GILB, James et al. IEEE Standard for Local and metropolitan area networks — Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs). NEW YORK, NY, USA: IEEE, 2011. 314s. [cit. 1. 12. 2013]. Dostupné na webu:
. [3] TENNINA, Stefano; KOUBAA, Anis; DAIDONE, Roberta; ALVES, Mario et al. IEEE 802.15.4 and ZigBee as Enabling Technologies for Low-Power Wireless Systems with Quality-of-Service Constraints. NEW YORK, NY, USA: Springer, 2013. 169s. ISBN 978-3-642-37368-8. [4] FALUDI, R. Building Wireless Sensor Networks. Sebastopol, CA, USA: OREILLY, 2010. 300s. ISBN 978-0-596-80773-3. [5] HERRON, D. Node Web Development. Birmingham, Velká Británie: Packt Publishing, 2013. 248s. ISBN 978-1-78216-330-5. [6] CANTELON, Mike; HOLOWAYCHUK, TJ; RAJLICH, Nathan Node.js in action. Sebastopol, CA, USA: MANNING, 2013. 443s. [7] TEIXEIRA, P. Hands-on Node.js. NEW YORK, NY, USA: Leanpub, 2013. 142s. [8] KIESSLING, M. The Node Beginner Book. NEW YORK, NY, USA: Leanpub, 2013. 56s. [9] A10S-OLinuXino-MICRO Open-source single-board Android Linux minicomputer USERS MANUAL.[online] Plovdiv, Bulharsko: Olimex, 2013. 36s. [cit. 1. 12. 2013]. Dostupné na webu: . [10] HEBEL, M.; BRICKER G. Getting Started with XBee RF Modules. Rocklin, CA, USA: Paralax, 2010. 163s. ISBN 9781928982562. [11] Atmel AVR2025: IEEE 802.15.4 MAC Software Package - User Guide.[online] San Jose, CA, USA: Atmel, 2012. 250s. [cit. 1. 12. 2013]. Dostupné na webu: . [12] COLEY, G. BeagleBone Rev A6 System Reference Manual.[online] Dallas, TI, USA: BEAGLEBONE, 2012. 36s. [cit. 1. 12. 2013]. Dostupné na webu: .
48
[13] cubieboard2 specification.[online] NEW YORK, NY, USA: Cubieboard, [cit. 1. 12. 2013]. Dostupné na webu: . [14] RPi Hardware.[online] Ontario, Kanada: Elinux, [cit. 1. 12. 2013]. Dostupné na webu: . [15] Model No.: SB00322A-1 datasheet.[online] Šenčen, Čína: SENBA, 2012. 3s. [cit. 1. 12. 2013]. Dostupné na webu: . [16] DS18B20 Programmable Resolution 1-Wire Digital Thermometer.[online] San Jose, CA, USA: Maxim, 2012. 20s. [cit. 1. 12. 2013]. Dostupné na webu: . [17] GL5528 CdS Photoconductive cells datasheet.[online] Nanyang, Čína: Lida, 2012. 1s. [cit. 1. 12. 2013]. Dostupné na webu: . [18] DAGU SO5NF STD.[online] Šangaj, Čína: DAGU, 2012. 1s. [cit. 1. 12. 2013]. Dostupné na webu: . [19] Primary lithium battery LS 14500 .[online] Bagnolet, Francie: SAFT, 2012. 1s. [cit. 1. 12. 2013]. Dostupné na webu: . [20] Atmel ATmega640/V-1280/V-1281/V-2560/V-2561/V .[online] San Jose, CA, USA: Atmel Corporation, 2014. 435s. [cit. 1. 3. 2014]. Dostupné na webu: . [21] TL431, TL431A, TL431B, TL432„ TL432A, TL432B Adjustable precision shunt regulators.[online] Dallas, TE, USA: Texas Instruments, 2004. 67s. [cit. 1. 3. 2014]. Dostupné na webu: . [22] Micropower High Efficiency 3.3/5V Step-Up DC/DC Converter.[online] Milpitas, CA, USA: Linear Technology Corporation, 2012. 8s. [cit. 1. 12. 2013]. Dostupné na webu: . [23] S102S01/S102S02/S202S01/S202S02 SIP Type SSR for Medium Power Control.[online] Osaka, Japonsko: Sharp, 2012. 4s. [cit. 1. 12. 2013]. Dostupné na webu: .
49
SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK RFD zařízení s omezenou funkcionalitou – Reduced-Function Device FFD zařízení s plnou funkcionalitou – Full-Function Device OSI Open Systems Interconnection LQI Indikace kvality spojení – Link Quality Indication CCA Určení volného kanálu – Clear Channel Assessment GTS Garantovaný časový slot – Guaranteed Time Slot PAN síť osobního dosahu – Personal Area Network MAC řízení přístupu k médiu – Media Access Control PHY fyzická vrstva - Physical layer IEEE Institute of Electrical and Electronics Engineers CSMA-CA Carrier Sense Multiple Access with Collision Avoidance SAP Service Access Point FDMA Frequency-division multiple access TDMA Time division multiple access DSSS Přímé rozprostřední spektra – Direct Sequence Spread Spectrum PPDU PHY protocol data unit ED
Detekce energie – Energy Detection
PLME Physical Layer Management Entity PLME Binary Phase-Shift Keying O-QPSK Offset Quadrature Phase-Shift Keying ASK Amplitude-Shift Keying SFD Start-of-Frame Delimiter CAP Contention Access Period CFP Contention Free Period
50
CRC Cyclic redundancy check MLME-SAP MAC Sublayer Management Entity SAP MCPS-SAP MAC common part sublayer SAP PIR Passive Infrared Detector AES Advanced Encryption Standard MIC Message Integrity Code API Application Programming Interface SoC System on Chip CPU Central Processing Unit GPU Graphics Processing Unit
51
6
PŘÍLOHA A - VÝROBNÍ PODKLADY DPS
Obr. 6.1: DPS pro propojení řídící jednotky a xbee modulu - horní vrstva.
Obr. 6.2: DPS pro propojení řídící jednotky a xbee modulu - spodní vrstva.
Obr. 6.3: DPS pro propojení řídící jednotky a xbee modulu - osazovací schéma.
52
Obr. 6.4: DPS pro komunikační modul Zigbit ATZB-24-A2 - horní vrstva.
Obr. 6.5: DPS pro komunikační modul Zigbit ATZB-24-A2 - spodní vrstva.
Obr. 6.6: DPS pro komunikační modul Zigbit ATZB-24-A2 - osazovací schéma horní vrstva.
53
Obr. 6.7: DPS pro komunikační modul Zigbit ATZB-24-A2 - osazovací schéma spodní vrstva.
Obr. 6.8: DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - horní vrstva.
54
Obr. 6.9: DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - spodní vrstva.
Obr. 6.10: DPS jednotky pro měření teploty, detekci pohybu a detekci otevření dveří - osazovací schéma.
55
Obr. 6.11: DPS jednotky pro ovládání žaluzií - horní vrstva.
Obr. 6.12: DPS jednotky pro ovládání žaluzií - spodní vrstva.
Obr. 6.13: DPS jednotky pro ovládání žaluzií - osazovací schéma.
56
Obr. 6.14: DPS jednotka pro spínání zásuvky 230V - horní vrstva.
Obr. 6.15: DPS jednotka pro spínání zásuvky 230V - spodní vrstva.
Obr. 6.16: DPS jednotka pro spínání zásuvky 230V - osazovací schéma - horní vrstva.
57
Obr. 6.17: DPS jednotka pro spínání zásuvky 230V - osazovací schéma - spodní vrstva.
58