Masarykova univerzita Fakulta informatiky
Měření spotřeby elektrické energie v domácnosti Bakalářská práce
Vít Holásek
Brno, jaro 2016
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Vít Holásek
Vedoucí práce: RNDr. Jaroslav Pelikán, Ph.D. ii
Poděkování Rád bych touto cestou poděkoval RNDr. Jaroslavu Pelikánovi, Ph.D. za vstřícnost, odborný dohled a rady, které mi pomohly k vypracování této práce. Rovněž děkuji vedení a kolegům z Ąrmy TESCO SW a.s. za poskytnutí podpory, nástrojů a prostředků, bez kterých by práce nebyla realizovatelná. iii
Shrnutí Tato práce popisuje tvorbu prototypu systému pro monitoring a řízení spotřeby elektrické energie spotřebičů v domácnosti. Systém by se měl stát základem komplexní platformy pro Internet věcí rozšířitelné o další typy zařízení. Práce se zabývá implementací všech vrstev systému. Byl vytvořen prototyp měřicího modulu, který měří spotřebu elektrické energie a umožňuje vzdálené ovládání spotřebiče. Zařízení komunikuje prostřednictvím bezdrátové wi-Ą sítě. Data jsou sbírána a zpracovávána službami nasazenými na cloudové platformě Microsoft Azure. Dále byla vytvořena webová služba poskytující rozhraní pro ovládání systému a práci s naměřenými daty a klientská aplikace, která umožňuje nahlížení na měřená data. Poté bylo provedeno testování spolehlivosti měření a funkčnosti zařízení. Na základě zjištěných nedostatků byla navrhnuta řešení pro zlepšení vlastností zařízení.
iv
Klíčová slova Internet věcí, mikrokontrolér, energetický management, ATmega328P, ESP8266, Microsoft Azure, .NET Framework, ASP.NET
v
Obsah 1 2 3
4
5
6
Úvod . . . . . . . . . . . . . . . . . . . Popis systému . . . . . . . . . . . . . . 2.1 Použité technologie . . . . . . . . . Modul měření spotřeby . . . . . . . . 3.1 Měřicí modul . . . . . . . . . . . . 3.1.1 Použité technologie . . . . 3.1.2 Metody měření . . . . . . 3.1.3 Popis zapojení . . . . . . . 3.1.4 Princip činnosti . . . . . . 3.1.5 Použitý software . . . . . 3.1.6 Komunikace s modulem . 3.2 Komunikační modul . . . . . . . . 3.2.1 Možnosti komunikace . . 3.2.2 Použité technologie . . . . 3.2.3 Použitý software . . . . . 3.2.4 Princip činnosti . . . . . . 3.2.5 Zabezpečení komunikace 3.3 Napájecí modul . . . . . . . . . . . 3.3.1 Popis zapojení . . . . . . . 3.4 Popis činnosti celého zařízení . . . . 3.4.1 Funkce . . . . . . . . . . . 3.4.2 Instalace a ovládání . . . . 3.4.3 KonĄgurace zařízení . . . 3.4.4 Komunikace . . . . . . . . 3.4.5 Signalizace . . . . . . . . . Sběr a zpracování dat . . . . . . . . . 4.1 Použité služby . . . . . . . . . . . . 4.2 Přenos a sběr dat . . . . . . . . . . 4.3 Ukládání dat . . . . . . . . . . . . 4.4 Zpracování dat . . . . . . . . . . . Webová služba . . . . . . . . . . . . . 5.1 Použité technologie . . . . . . . . . 5.2 Popis služby . . . . . . . . . . . . . Klientská aplikace . . . . . . . . . . . 6.1 Použité technologie . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 4 4 6 6 6 7 9 10 12 13 13 13 14 15 15 16 17 17 18 18 18 18 19 20 21 21 21 23 23 25 25 26 29 29 vi
7
8 9 10 A
6.2 Popis aplikace . . . . . . . . . . . Testování . . . . . . . . . . . . . . . . 7.1 Porovnání měření . . . . . . . . . 7.1.1 Použité pomůcky . . . . 7.1.2 Postup . . . . . . . . . . 7.1.3 Naměřené hodnoty . . . 7.2 Stabilita . . . . . . . . . . . . . . 7.3 Závěr testování . . . . . . . . . . Srovnání s konkurenčními výrobky Návrhy na zlepšení . . . . . . . . . . Závěr . . . . . . . . . . . . . . . . . . Příloha . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . .
29 34 34 34 34 35 38 39 40 41 43 52
vii
Seznam obrázků 3.1 3.2 3.3 3.4
Měření pomocí bočníkového rezistoru na fázi Měření napětí na odporovém děliči . . . . . . Schéma zapojení měřicího modulu . . . . . . Schéma zapojení napájecího modulu . . . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. 7 . 8 . 10 . 17
4.1 Použité služby na platformě Microsoft Azure . . . . . . . 21 5.1 Jednotlivé moduly webové služby . . . . . . . . . . . . . 25 5.2 Entitně relační diagram schématu identity . . . . . . . . 27 5.3 Entitně relační diagram schématu sh . . . . . . . . . . . . 28 6.1 6.2 6.3 6.4 6.5
Přihlašovací dialog . . . . . . . . . Navigační menu . . . . . . . . . . . Rozvržení uživatelského rozhraní Aktuální měření . . . . . . . . . . . Zobrazení naměřených dat . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
30 31 31 32 33
Měření napětí v síti . . . . . . . . . . . . . . . . . Měření proudu protékajícího odporovou zátěží . Měření příkonu odporové zátěže . . . . . . . . . Měření proudu protékajícího spínaným zdrojem Měření příkonu spínaného zdroje . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
35 36 36 37 38
Seznam tabulek 7.1 7.2 7.3 7.4 7.5
1
1 Úvod Pojem Internet věcí (zkratka IoT, z anglického Internet of Things) [67] označuje aktuálně nejrychleji se rozvíjející obor informačních technologií. Někteří odborníci novou éru inteligentních věcí a sběru dat srovnávají s rozvojem Internetu na konci minulého tisíciletí. Internet věcí je dalším evolučním krokem. Po vzniku Internetu se v civilní sféře začaly zapojovat do společné sítě nejprve univerzity a státní instituce. Následně se k síti dostali i uživatelé osobních počítačů. V té době probíhá velmi rychlé zdokonalování technologií, jenž je provázeno navyšováním výkonu a miniaturizací součástek. Jakmile to technologie dovolily, začaly se objevovat první chytré telefony, díky kterým se mohli lidé připojit k internetové síti téměř odkudkoli. Současně s tímto trendem se rozvíjí další pojmy Ů cloud computing a big data [14]. Objevují se distribuované platformy, které umožňují efektivnější poskytování obsahu a následný sběr a zpracování dat. Jakmile uzrály i tyto technologie, přišel další krok - zapojit do sítě různé přístroje, senzory, budovy a ostatní subjekty, pro které je to žádoucí. Dnes už každá významná Ąrma působící v oboru elektrotechniky a informačních technologií nabízí vlastní řešení a platformy pro Internet věcí. Nejvýznamnějšími hráči jsou například společnosti Cisco [29], Google [27], Microsoft [67], Amazon [11] a IBM [25]. Co se týče výroby hardwaru pro inteligentní věci, jsou významné především Ąrmy Qualcomm [26], STMicroelectronics [28] a Atmel [8], které vyvíjí širokou paletu jednočipových počítačů. Vývoj IoT zařízení se však netýká pouze velkých společností. Většina výrobců integrovaných obvodů poskytuje cenově dostupné vývojové desky a vzniká také velké množství otevřených projektů, jako je například Arduino [5]. Díky tomu dnes mohou snadno vytvářet různá zařízení i komunity a jednotlivci. Cílem této práce je vytvořit prototyp systému využívající moderní technologie v oblasti IoT pro řízení spotřeby elektrické energie a ovládaní jednotlivých spotřebičů v domácnosti. Systém energetického řízení by mohl být perspektivní především v tzv. energetických ostrůvcích (ofgrid), což jsou energeticky soběstačné domy nezávislé na
2
1. Úvod elektrické síti, kde je inteligentní energetický management žádoucí. Příkladem může být projekt Smart Power Vysoké školy báňské [53]. V rámci této práce bylo vytvořeno pouze jedno speciĄcké zařízení, ale do budoucna je vizí vytvořit ekosystém, který bude možné rozšířit o další typy zařízení. Takový systém by měl sloužit pro kompletní řízení inteligentních domácností a budov. Celý systém je pouze prototyp a při jeho konstrukci byly záměrně použity některé nezvyklé prvky, aby se podařilo zmapovat více možností. Poznatky získané při jeho vývoji poslouží při tvorbě Ąnálního řešení. Systém vzniká ve spolupráci s Ąrmou TESCO SW a.s. [58] v rámci projektu s pracovním názvem Smart Home. Podobné produkty již existují, ale jsou zatím poměrně roztříštěné, špatně zabezpečené a především jsou pro velkou část lidí velmi drahé. Smyslem projektu je navrhnout komplexní řešení, které bude zmíněné nedostatky řešit. Výsledný systém by měl být snadno použitelný, rozšířitelný, multiplatformní a kvalitně zabezpečený. Druhá kapitola se zabývá systémem jako celkem a věnuje se analýze vhodného řešení. Třetí část je věnována popisu prototypu zařízení pro měření spotřeby, jeho konstrukci a programovému vybavení. Cílem je především prozkoumat možnosti v oblasti hardware a následně deĄnovat vylepšení, která povedou k Ąnální podobě zařízení. Další kapitola se zabývá sběrem a zpracováním dat. K těmto účelům jsou využity služby v rámci cloudové platformy Microsoft Azure [40]. Pátá část je věnována webové službě, která poskytuje rozhraní pro správu uživatelských účtů, měřicích modulů, práci s daty a celkové ovládání systému. Na webové rozhraní navazuje jednoduchá klientská aplikace, která je popsána v rámci šesté kapitoly. Poté následuje část věnující se testování funkčnosti prototypu. V předposlední části je srovnán výsledný prototyp s již existujícími konkurenčními výrobky a poslední část práce je zaměřena na zhodnocení výsledků práce. Cílem je zde shrnout problémy, které se během vývoje prototypu objevily a navrhnout řešení, jak nedostatky odstranit.
3
2 Popis systému Architekturu systému lze rozdělit do následujících částí: ∙ Konstrukce fyzického zařízení ∙ Přenos dat ∙ Sběr dat ∙ Zpracování dat ∙ Ukládání dat ∙ Webové rozhraní a aplikační logika ∙ Prezentace dat Aby byl sytém dobře udržovatelný, je potřeba vybrat pro vývoj konzistentní technologie. Použitý hardware by měl pocházet od ověřených výrobců, kteří mohou ke svým produktům poskytnout úplnou dokumentaci. Pro serverovou část je vhodné vybrat služby, které bude možno provozovat v rámci jedné platformy. K vývoji veškerého softwaru by mělo být využito pokud možno jediné vývojové prostředí a co nejméně dodatečných nástrojů.
2.1 Použité technologie Díky předchozím zkušenostem byla pro vývoj webových služeb a prezentační vrstvy zvolena platforma Microsoft .NET a jazyk C# [34]. .NET zažívá rychlý růst i díky tomu, že nejnovější verze jádra je open-source a je možné ji provozovat na linuxových systémech. Microsoft také poskytuje komplexní nástroje pro vývoj, testování i nasazení aplikací. Je třeba počítat s tím, že v systému mohou být v budoucnu zapojeny tisíce až miliony zařízení. Bude potřeba sbírat a zpracovávat ohromná kvanta dat. Takovýto systém není řešitelný pomocí několika strojů a je nutné využívat rozsáhlé distribuované systémy a datové sklady. Proto je z praktického hlediska výhodnější využít cloudové služby předních IT Ąrem, než budovat vlastní datové centrum a kompletní 4
2. Popis systému infrastrukturu. Pro provoz celého systému se ukázala jako vhodná cloudová platforma Microsoft Azure. Microsoft Azure Azure podporuje širokou škálu operačních systémů, programovacích jazyků, rozhraní, nástrojů, databází a zařízení. Platforma je integrovatelná se stávajícími Ąremními systémy. Díky širokému škálování disponuje dobrým poměrem ceny a výkonu. Zákazník platí pouze za to, co využívá. Microsoft také garantuje kvalitní úroveň ochrany a soukromí dat a dodržuje zákony EU na ochranu osobních údajů. Služba běží v celosvětové síti datacenter řízených Microsoftem v 22 oblastech, tedy na více místech než Amazon Web Services a Google Cloud dohromady. Microsoft má i několik datacenter v Evropě. Nejbližší je momentálně budováno v Německu [46]. Díky tomu lze dosáhnout vysoké dostupnosti a rychlosti služeb nejen na území České republiky. Platforma poskytuje také potřebné služby pro Internet věcí, ukládání velkých objemů dat a jejich zpracování s využitím moderních nástrojů [67]. Veškeré služby podporují široké možnosti monitoringu a jsou dostupná SDK pro platformu Microsoft .NET. Výhodou platformy je její snadná použitelnost. Lze ji spravovat pomocí webového portálu, ale také čistě prostřednictvím skriptů v PowerShell [41]. Je k dispozici také obsáhlé SDK pro integraci Azure do vývojového prostředí Visual Studio [65]. Licence Software použitý při vývoji systému a tvorbě této práce je licencovaný v rámci studentských licencí a licencí Masarykovy Univerzity. Zdrojové kódy jsou veřejně dostupné a volně použitelné. Programy, které mohu být komerčně využity, byly vyvíjeny pomocí softwaru licencovaném pro Ąrmu TESCO SW a.s.
5
3 Modul měření spotřeby První částí je konstrukce prototypu fyzického zařízení, které umožní měření příkonu a dalších elektrických veličin a charakteristik připojeného spotřebiče v domácnosti. Tato naměřená data odesílá do cloudu, kde jsou dále zpracovávány. Přístroj také umožňuje spotřebič vzdáleně odpojit nebo připojit k elektrické síti. Zařízení musí být dostatečně nadimenzováno takovým způsobem, aby jej bylo možné v budoucnu vzdáleně aktualizovat a přidávat další funkcionality. Nezbytné jsou také dostatečné mechanismy pro zabezpečení přenášených dat. Prototyp se skládá z několika samostatně fungujících zaměnitelných modulů.
3.1 Měřicí modul 3.1.1 Použité technologie Jako základ prototypu měřicího modulu byl vybrán obvod ATmega328P od výrobce Atmel. Jedná se o 8bitový mikrokontrolér s harvardskou architekturou a instrukční sadou RISC [15, s. 266]. Patří do rodiny jednočipových počítačů pojmenované AVR. Je možné jej taktovat až na 20 MHz a výhodou pro určité aplikace je jeho nízká spotřeba kolem 0,2 mA při taktu 1 MHz. Obvod je vybaven interní pamětí Ćash o velikosti 32 kB, 512 B EEPROM a 2 kB SRAM. Dále integruje 10bitový A/D převodník, sériová rozhraní USART, SPI, Two-wire a další periferní obvody [7]. Jedná se již o poměrně zastaralý obvod, který je však stále hojně rozšířen. Pro prototyp byl použit především kvůli jeho nízké ceně, snadné dostupnosti a jednoduchosti. Během vývoje se však ukázalo, že není příliš vhodným řešením. Důvody jsou popsány v kapitole 9. Obvody AVR lze programovat pomocí jazyka C nebo C++. Vhodným vývojovým prostředím je program Atmel Studio [9] postavený nad jádrem Microsoft Visual Studio, nebo placený doplněk do Visual Studio VisualGDB od společnosti Sysprogs [66], který poskytuje nástroje pro vývoj spousty mikrokontrolérů.
6
3. Modul měření spotřeby 3.1.2 Metody měření Pro výpočet spotřeby elektrické energie konkrétního spotřebiče musíme nejprve v pravidelných intervalech měřit jeho příkon. Spotřeba se rovná velikosti práce vykonané elektrickým proudem. Ta je dána vztahem příkonu v závislosti na čase. Pro výpočet okamžitého elektrického výkonu musíme měřit okamžité hodnoty proudu a napětí na napájení spotřebiče [49, s. 318]. Pro měření napětí a proudu lze zvolit dva nejčastější přístupy. Buďto se měří veličiny přímo v elektrické síti, nebo na galvanicky odděleném obvodu. Obojí má své výhody a nevýhody. Měření přímo na fázovém vodiči V tomto případě se získá velikost proudu pomocí Ohmova zákona změřením napětí na bočníkovém rezistoru, který dělí fázový nebo nulový vodič [49, s. 312].
L
V
Obrázek 3.1: Měření pomocí bočníkového rezistoru na fázi
Nevýhodou je, že při průtoku proudu rezistorem se objevuje tepelný ztrátový výkon, který způsobuje ohřev součástky. Pokud je teplota příliš vysoká, může dojít ke zkrácení životnosti, nebo zničení součástky. Je tedy potřeba zvolit hodnotu rezistoru dostatečně malou, aby velikost tohoto výkonu byla podstatně nižší, než prahová hodnota uvedená v dokumentaci. Napětí na rezistoru je však přímo úměrné jeho odporu a pokud je napětí příliš malé, je nutné zvýšit citlivost měření, nebo napětí zesílit operačním zesilovačem. 7
3. Modul měření spotřeby Pro měření napětí v elektrické síti je třeba využít odporový dělič [49, s. 268] s vysokým poměrem velikostí odporů, aby byly hodnoty měřitelné A/D převodníkem. Výhodou tohoto řešení je nízká cena, malá velikost a poměrně spolehlivé měření v závislosti na použitých součástkách. Měřicí obvod však musí být dostatečně chráněn přepěťovými ochranami, protože je přímo zapojen do elektrické sítě. L V
N
Obrázek 3.2: Měření napětí na odporovém děliči
Měření s galvanickým oddělením V tomto případě probíhá měření obdobně, ale je nutné zohlednit transformaci napětí a proudu transformátory. Po dosazení vzorce pro transformaci [49, s. 325] vznikne vztah (3.1) pro výpočet proudu I, kde R je velikost odporu bočníku a N je počet závitů měřicího proudového transformátoru1 . UN I= (3.1) R 1
Proudový transformátor má pouze sekundární vinutí, primární je tvořeno fázovým vodičem.
8
3. Modul měření spotřeby Běžně se používá proudový transformátor s jedním nebo dvěma tisíci závity. Změnou hodnoty bočníkového odporu lze snadno regulovat velikost měřeného napětí. Díky transformaci proudu je ztrátové teplo na bočníku zanedbatelné. Stejně tak lze využít napěťový transformátor pro transformaci napětí na nižší hodnotu. Velikost napětí U v elektrické síti se získá dle vzorce (3.2), ve kterém N1 označuje počet závitů primárního vinutí transformátoru, N2 počet závitů sekundárního vinutí, R1 a R2 jsou hodnoty odporů děliče. U=
N1 U1 ( R1 + R2 ) N2 R1
(3.2)
Díky galvanickému oddělení měřicí obvod lépe snáší napěťové špičky a zkrat. Nevýhoda je však vyšší citlivost na elektromagnetické rušení, které může zkreslit výsledky měření. Dalšími nevýhodami jsou velikost a vysoké pořizovací náklady. Je také obtížné umístit proudový transformátor na zařízení tak, aby byly výsledky měření spolehlivé. Tato metoda se však používá při měření spotřeby přímo v rozvodných skříních kvůli snadné montáži na fázový vodič. Pro konstrukci prototypu byla záměrně vybrána možnost s galvanickým oddělením pro získání představy, nakolik je metoda použitelná oproti metodě s bočníkem přímo na fázi. 3.1.3 Popis zapojení Schéma zapojení je znázorněno na obrázku 3.3. Celý obvod je napájen napětím o velikosti 3,3 V, ale funguje v rozmezí napětí 2,8 Ű 5,5 V. Měření je prováděno mikrokontrolérem IC3. Kvůli redukci šumu a nežádoucího rušení, musí být napájení A/D převodníku Ąltrováno dolní propustí tvořenou tlumivkou L1 a kondenzátorem C1. Převodník používá referenční napětí 1,1 V vyvedené na vývodu AREF, které je udržované napěťovou referencí IC1. Napětí v síti je měřeno A/D převodníkem na vývodu ADC0 připojeném na odporový dělič dělící napětí na sekundárním vinutí transformátoru TR1. Je použit transformátor z 230 V na 6 V. Protože se jedná o střídavé napětí, je třeba celou vlnu posunout do kladných hodnot přivedením virtuální země, aby bylo možné měření vyhodnotit A/D převodníkem. Virtuální zem je tvořená děličem napětí R3 a R4 a její 9
+3V3
GND
VREF 21
AREF
9
PD0(RXD) PD1(TXD) PD2(INT0) PD3(INT1) PD4(XCK/T0) PD5(T1) PD6(AIN0) PD7(AIN1)
PB6(XTAL1/TOSC1)
10
R1
PB7(XTAL2/TOSC2)
VREF
GND
IC1
GND
8 22
GND GND
PB0(ICP) PB1(OC1A) PB2(SS/OC1B) PB3(MOSI/OC2) PB4(MISO) PB5(SCK)
ATMEGA328P_PDIP
14 15 16 17 18 19
GND
+
LM321MF IC2
2 3 4 5 6 11 12 13
10µF
23 24 25 26 27 28
C2
AVCC VCC
PC0(ADC0) PC1(ADC1) PC2(ADC2) PC3(ADC3) PC4(ADC4/SDA) PC5(ADC5/SCL)
1
C1
PC6(/RESET)
10k
3
+3V3 10µH 100nF
1 20 7
R4
10k
2
5
+3V3
4
10k
R3
GND
L1
R9
R8
R7
13k
1k5
100R TR2
TR1 4
L2
+3V3 +3V3
VREF
IC3
1
3 2
L1
R2
GND
3. Modul měření spotřeby
L
~
L N
Obrázek 3.3: Schéma zapojení měřicího modulu
napětí je rovno polovině referenčního napětí. Pro oddělení virtuální země a snížení impedance slouží kondenzátor C2 a operační zesilovač IC2 zapojený jako sledovač napětí. Měření proudu umožňuje bočníkový rezistor přípojený k proudovému transformátoru TR2. Změnou odporu lze regulovat velikost měřeného napětí. Napětí na bočníku je měřeno na vývodu ADC1. Komunikaci s měřicím obvodem lze realizovat prostřednictvím sériového rozhraní I2 C na vývodech SDA a SCL. Součástky jsou dimenzovány takovým způsobem, aby obvod zvládl měřit příkon až do velikosti 4 kW. Zapojení prototypu bylo částečně inspirováno projektem OpenEnergyMonitor [47]. Finální řešení by oproti prototypu mělo obsahovat vhodné přepěťové ochrany a správně navržené frekvenční Ąltry pro měření přesnějších hodnot. 3.1.4 Princip činnosti K samotnému měření slouží multiplexovaný 10bitový A/D převodník [15, s. 294]. Ten umožňuje rozlišení pouze 1024 hodnot, což se může zdát málo. Při rychlém vzorkování však můžeme využít jevu, který se
10
3. Modul měření spotřeby nazývá oversampling [10]. Zjednodušeně lze říci, že čím více vzorků je změřeno, tím přesnější hodnota se získá jejich zprůměrováním. Velikost napětí U0 na kanálu 10bitového A/D převodníku je dána vztahem (3.3), kde a označuje kvantovanou hodnotu změřenou převodníkem a Ure f jeho referenční napětí. U0 =
aUre f 1024
(3.3)
Měřicí obvod využívá 2 kanály A/D převodníku. První slouží k měření napětí na bočníkovém rezistoru a druhý měří napětí na odporovém děliči. V pravidelných časových intervalech obvod měří diskrétní hodnoty, ze kterých počítá průměrné efektivní hodnoty za určitý časový úsek. Při odvozování výpočtů jsou mimo jiné použity vzorce z části 3.1.2. ∙ Efektivní hodnota napětí Ue f se spočítá jako kvadratický průměr diskrétních hodnot napětí Ui , kde n je počet měření [49, s. 311]. s 1 n Ui 2 (3.4) Ue f = ∑ n i =1 Dosazením funkce pro výpočet napětí na A/D převodníku, napětí na odporovém děliči a transformaci napětí vznikne konečný vztah pro výpočet efektivního napětí Ue f (3.5). Proměnná ai vyjadřuje hodnoty načtené převodníkem s referenčním napětím Ure f a R1 a R2 jsou hodnoty odporů děliče. Za N1 a N2 se dosadí počet závitů na primárním a sekundárním vinutí napěťového transformátoru. s N1 Ure f ( R1 + R2 ) 1 n Ue f = ( ai − 512)2 (3.5) 1024N2 R1 n i∑ =1 ∙ Efektivní hodnota proudu se spočítá obdobným způsobem jako napětí. s 1 n 2 Ie f = Ii (3.6) n i∑ =1 11
3. Modul měření spotřeby Dosazením Ohmova zákona a vzorce pro transformaci proudu [49, s. 325] vznikne rovnice (3.7) pro výpočet efektivní hodnoty proudu Ie f , kde ai vyjadřuje hodnoty vyhodnocené převodníkem s referenčním napětím Ure f . N je počet závitů na proudovém transformátoru a R velikost odporu bočníkového rezistoru. s Ure f N 1 n Ie f = ( ai − 511)2 (3.7) 1024R n i∑ =1 ∙ Činný výkon se spočítá jako aritmetický průměr hodnot okamžitého výkonu. 1 n (3.8) P = ∑ Ui Ii n i =1 Obdobným odvozením jako u předchozích vzorců pro výpočet efektivních hodnot napětí a proudu vznikne vztah (3.9). Proměnná a1 označuje hodnotu načtenou A/D převodníkem na kanálu měřícím napětí a a2 na kanálu pro měření proudu. P=
2 N(R + R ) N1 Ure 2 1 f
10242 nN2 R1 R
n
∑ (a1 − 511)(a2 − 511)
(3.9)
i =1
Přesnost výsledku může ovlivnit rozlišení A/D převodníku i hustota vzorkování. Platí, že čím více vzorku za daný časový interval je naměřeno, tím přesnější hodnoty požadovaných elektrických veličin lze spočítat. Maximální doporučená frekvence převodníku při 10bitovém měření je 200 kHz, při vyšší frekvenci klesá přesnost. V závislosti na impedanci vstupu se také mění doba pro nabití kondenzátoru v obvodu převodníku [7]. 3.1.5 Použitý software Firmware pro prototyp měřicího modulu byl vyvinut v rámci opensource platformy Arduino [5], která umožňuje psát zjednodušený kód v jazyce Wiring [73] pro různé mikrokontroléry a vývojové desky. Umožňuje rychlejší vývoj prototypů a testování jednoho programu na různých zařízeních. 12
3. Modul měření spotřeby Firmware je možné nahrát přímo do Ćash paměti přes SPI rozhraní nebo lze použít zavaděč Arduino, který umožní nahrání nového Ąrmwaru přes rozhraní UART. Co se programování týče, je platforma Arduino poměrně omezující, tudíž ji nelze doporučit pro složitější projekty. Pro účely prototypu je vhodná především díky její jednoduchosti. Vývojové prostředí Arduino IDE nemá mnoho funkcí a nepodporuje základní funkčnosti jako je ladění kódu. Pro profesionální vývoj Ąrmware lze využít zmíněné Atmel Studio nebo VisualGDB. 3.1.6 Komunikace s modulem Pro komunikaci s měřicím obvodem je použito rozhraní Two-wire Interface. Jedná se o sériovou sběrnici používanou pro propojení elektronických periférií. Je téměř identická se sběrnicí I2 C [24], která je ale chráněnou značkou, proto spousta výrobců včetně Atmel používá TWI. Sběrnice je tvořena dvěma vodiči SCL a SDA. Vodič SCL se používá pro hodinový signál a po SDA jsou posílány datové bity. Zařízení připojená ke sběrnici se dělí na master a slave. Měřicí modul komunikuje jako slave s adresou 0x77. Před zahájením měření je nutné poslat zařízení START impulz, který způsobí vynulování měření. Naměřená data jsou poté odesílána jako 16bytové úseky složené ze 4 hodnot po 4 bytech kódovaných jako 32bitové celé číslo bez znaménka.
3.2 Komunikační modul 3.2.1 Možnosti komunikace Internet věcí je v dnešní době velmi roztříštěný a existuje velké množství různých komunikačních standardů. Mezi ty nejznámější patří jmenovitě standardy bezdrátové komunikace Bluetooth [3], Zigbee [63], Z-Wave [2] a Wi-Fi. Mobilní operátoři aktuálně investují do sítí Sigfox [23] a LoRaWAN [39]. V rámci prototypu je cílem vytvořit zařízení, které bude moci používat každý uživatel bez nutnosti dokupovat další zařízení. Většina domácností připojených k Internetu je dnes vybavena bezdrátovým směrovačem. Nejsnadnější cesta je tedy vytvořit zařízení, které se bude 13
3. Modul měření spotřeby schopné připojit do wi-Ą sítě. Problémem takového zařízení je však vyšší spotřeba elektrické energie a nutnost kvalitního zabezpečení komunikace. Moduly pro komunikaci přes wi-Ą obvykle nelze delší dobu napájet akumulátorem. Prototyp modulu pro měření spotřeby je napájen z elektrické sítě, tudíž tímto není omezen. Nevýhodou však může být skutečnost, že k běžně prodávaným směrovačům lze připojit jen omezené množství zařízení. Vhodným modulem pro bezdrátovou komunikaci s ohledem na poměr ceny a výkonu je obvod ESP8266 výrobce Espressif [19], který má dostatečné zdroje pro zabezpečení komunikace. V případě velkého počtu komunikujících zařízení je výhodnější zvolit jinou metodu bezdrátové komunikace. Jednotlivé přístroje většinou komunikují přes základní stanici, která tvoří bránu do internetové sítě. Stanice může mít mnohem větší výpočetní výkon než ostatní zařízení a zajistí zabezpečení přenášených dat. V takovém systému může být připojeno větší množství zařízení, která mohou být konstrukčně jednodušší. Pro komunikaci většího počtu zařízení mohou být pro zvýšení efektivity a dosahu použity principy senzorových sítí. 3.2.2 Použité technologie Pro konstrukci komunikačního modulu byl použit modul ESP-12E [18] založený na integrovaném obvodu ESP8266. Jedná se o 32bitový jednočipový počítač s instrukční sadou RISC, který lze taktovat až na 160 MHz. Obvod je vybaven 64 kB instrukční RAM a 96 kB RAM pro data. Modul ESP-12E obsahuje vestavěnou Ćash paměť o velikosti 4 MB. Dále integruje sériová rozhraní SPI, I2 C a UART. Obsahuje také zabudovaný 10bitový A/D převodník, který má však opravdový význam spíše při generování náhodných čísel. Mikrokontrolér integruje wi-Ą modul dle standardů IEEE 802.11. Podporuje režim stanice i přístupového bodu, zabezpečení WEP, WPA i WPA2, Wi-Ą Direct a další funkce [1]. Obvod umí komunikovat především protokoly TCP, UDP, HTTP a FTP [19]. Modul se prodává s předinstalovaným Ąrmwarem a lze jej používat jako komunikační zařízení ovládané AT příkazy. Výrobce ale poskytuje obsáhlé SDK, pomocí kterého lze poměrně snadno vyvíjet vlastní Ąrmware v jazyce C nebo C++. Espressif SDK implementuje spoustu užitečných funkcí jako je komunikace pomocí různých proto14
3. Modul měření spotřeby kolů, funkce WPS, TCP server a zabezpečení pomocí protokolu TLS. Výrobce dokonce nabízí k dispozici i svou verzi RTOS2 , což je jednoduchý Ąrmware, který implementuje některé základní funkce operačního systému, jako je například plánovač procesů [50]. 3.2.3 Použitý software Cílem je otestovat obvod ESP8266 a zjistit, zda se hodí pro účely projektu. Kvůli zjednodušení vývoje Ąrmwaru byl použit otevřený projekt NodeMCU vytvořený čínskou komunitou. Jedná se o software, který vytváří rozhraní nad oĄciálním Ąrmwarem a obsahuje interpret umožňující programovat mikrokontrolér ve skriptovacím jazyce Lua [44]. Hlavní výhodou NodeMCU je jednoduchost. Zdrojové kódy lze nahrávat v textové podobě přes rozhraní UART. Přes totéž rozhraní lze používat také interpret, tudíž je možné posílat do zařízení příkazy za jeho běhu. Nevýhodou je však omezené používání datových typů a nedostatek paměti RAM, kterou Ąrmware značně konzumuje. Kvůli tomuto omezení není možné implementovat veškeré funkce, které by mělo obsahovat Ąnální řešení. Při používání Ąrmwaru může docházet k chybám a následným pádům. Pro účely prototypu bylo potřeba Ąrmware upravit a přidat některé další funkce jako WPS [70] v rámci modulu wiĄ. Dále byl přidán modul led pro ovládání LED kontrolky. Vzhledem k omezené paměti RAM, která je potřeba především pro implementaci bezpečnostních mechanismů, bude nutné Ąnální podobu Ąrmware naprogramovat v jazyce C. Firmware byl vyvíjen pomocí programu Visual Studio a jednoduchého vývojového prostředí ESPlorer od ruských nadšenců [20]. Pro profesionální vývoj Ąrmware s využitím oĄciálního SDK lze opět doporučit doplněk VisualGDB. 3.2.4 Princip činnosti Díky svým hardwarovým parametrům tvoří komunikační modul srdce celého zařízení. Zajišťuje nejen komunikaci, ale obsahuje také veškerou logiku pro ovládání periferií včetně měřicího modulu a spínání relé. 2
Real-time operating system
15
3. Modul měření spotřeby Vzhledem k omezeným funkcím použitého Ąrmware prototyp momentálně používá pro komunikaci s cloudem HTTPS REST API rozhraní [37]. Pro účely prototypu tento způsob vyhovuje, v případě velkého množství komunikujících zařízení by ale komunikace nebyla efektivní. Finální modul bude ke komunikaci využívat protokoly AMQP [4] nebo MQTT [42]. Jedná se o efektivnější protokoly vhodné pro Internet věcí. 3.2.5 Zabezpečení komunikace Při vývoji byl kladen důraz především na dostatečné zabezpečení komunikace. Bezpečnostní stránka je totiž u komerčně prodávaných zařízení, které lze zahrnout pod Internet věcí, často zanedbaná. Pro komunikaci a sběr dat je využita služba Azure IoT Hub, která je popsána v kapitole 4. Ta implementuje mechanismy pro autentizaci a zajištění důvěrnosti dat. Základem je dvojice tajných symetrických klíčů, které jsou unikátní pro každé zařízení připojené ke službě. Tyto klíče jsou uložené v zařízení a slouží pro základní kryptograĄcké funkce, jako je například digitální podpis, šifrování apod. Pro autentizaci dat posílaných zařízením a autorizaci se používá Shared Access Signature (zkráceně SAS). Jedná se o HMAC kód vytvořený z primárního nebo sekundárního klíče zařízení, URL adresy akce a časového razítka. V případě komunikace pomocí HTTPS se token přidává do parametru Authorization hlavičky požadavku. VeriĄkaci SAS podpisů provádí samostatná služba v rámci platformy Azure [51]. Samotný přenos dat je zabezpečen pomocí protokolu TLS [62]. Espressif SDK implementuje i možnost veriĄkace serverového certiĄkátu. Ověřovat certiĄkát však nelze pomocí certiĄkátů certiĄkačních autorit, protože na implementaci takovéto funkčnosti nemá zařízení dostatečné hardwarové prostředky. Proto je potřeba stáhnout aktuální certiĄkát z webové služby a pomocí něj poté komunikaci ověřovat. Aby byla zajištěna ochrana proti útokům přehráním, bude certiĄkát podepsán primárním klíčem zařízení.
16
3. Modul měření spotřeby
3.3 Napájecí modul 3.3.1 Popis zapojení
100nF
NO
22µF
L OUT K1
C
100nF
C4
D1 1N4004
1
22µF
C3
SpiceOrder 2
C2
+5V
SpiceOrder 1
GND
C1
+3V3
OUT +
+
IN
2
AMS1117 3.3V IC1
+5V
L GND
GND
GND
GND
T1 BC548
L
1
N
2
AC1
-VO
AC2
+VO
3 4
GND
IC2 HLK-PM01
GND
R1 2k JP1
GND
+5V
Obrázek 3.4: Schéma zapojení napájecího modulu Napájecí modul je realizován pomocí stabilizovaného spínaného zdroje IC2, který je prodáván jako hotový modul. Vstupní napětí zdroje je 230 V střídavého napětí. Na výstupu je stejnosměrné napětí o velikosti 5 V a je možné odebírat proud až do 600 mA. Zdroj dále obsahuje lineární stabilizátor IC1 s pevným výstupním napětím 3,3 V, kterým se napájí komunikační a měřicí modul. Součástí modulu je dále přepínací relé K1 umožnující zapínání a vypínání připojeného spotřebiče. Ovládací napětí relé je 5 V a je kontrolováno tranzistorem T1 přivedením signálu na konektor JP1. Celé zařízení je napájeno z elektrické sítě střídavým napětím o velikosti 230 V. Obvyklý odběr proudu se pohybuje okolo 10 mA. Zařízení však vykazuje špičky při komunikaci se vzdálenými přístupovými body, které mohou v krátkých intervalech dosahovat hodnoty až 100 mA. Pro zajištění alespoň základní ochrany je vhodné vstupní proud ošetřit tavnou pojistkou proti zkratu a na napájení připojit vhodný varistor, který zajistí ochranu proti přepětí v síti. 17
3. Modul měření spotřeby
3.4 Popis činnosti celého zařízení 3.4.1 Funkce Přístroj umožňuje měření elektrických veličin na napájení připojeného spotřebiče. Mezi možné měřené hodnoty patří proud, napětí, příkon a fázový posun. Tyto hodnoty jsou v pravidelných intervalech odesílány do cloudu, kde jsou dále zpracovávány. Zařízení mimo jiné umožňuje zapínání a vypínání připojeného spotřebiče a to i vzdáleně. Finální verze zařízení bude umožňovat také nahrání rozvrhu, podle kterého se bude daný spotřebič ovládat. 3.4.2 Instalace a ovládání Celý modul se zapojuje do zásuvky elektrické sítě. Zařízení obsahuje zásuvku, do které se zapojí požadovaný spotřebič. Prvotní konĄgurace zařízení je popsána v části 3.4.3. Ovládání spotřebiče by mělo být pro uživatelé co nejednodušší. Prototyp momentálně obsahuje pouze jedno ovládací tlačítko a jednu signalizační diodu. Dlouhým stisknutím tlačítka pod dobu 3Ű7 sekund lze zařízení přepnout do konĄguračního režimu. Opětovným dlouhým stisknutím se přístroj přepne zpět do běžného režimu. Pokud během konĄgurace dojde ke krátkému stisknutí tlačítka, zařízení přepne mezi režimem konĄgurace pomocí vlastního přístupového bodu nebo WPS. V případě že se zařízení nachází v běžném režimu dojde při krátkém stisknutí tlačítka k vypnutí nebo zapnutí spotřebiče. Při podržení tlačítka po dobu delší jak 15 sekund by se měl přístroj uvést do továrního nastavení. Tato funkce momentálně není implementována. 3.4.3 KonĄgurace zařízení Na začátku je potřeba zařízení nakonĄgurovat tak, aby se mohlo připojit do domácí bezdrátové sítě. Jsou možné dva způsoby konĄgurace.
18
3. Modul měření spotřeby Režim WPS První možnost je využít funkci WPS, kterou podporuje velká část nejprodávanějších směrovačů. Tato funkčnost umožňuje odeslání přihlašovacích údajů k bezdrátové síti a následné spárování pouze pomocí stisknutí tlačítka [70]. V případě prototypu se nejprve dlouhým stiskem tlačítka nastaví konĄgurační režim a následně krátkým stiskem zapne funkce WPS. Potom stačí stisknout tlačítko WPS na směrovači a dojde k připojení zařízení. V okamžiku, kdy se přistroj připojí do internetové sítě, začne posílat data. Uživatel následně musí zařízení přidat ve své klientské aplikaci tak, že přepíše kód zařízení do aplikace, nebo vyfotí QR kód na nálepce, kterou zařízení bude opatřeno. Možnost využití funkce WPS má určitá bezpečnostní rizika, ale z uživatelského hlediska je to nejpřívětivější možnost. Režim přístupového bodu Tento režim může uživatel použít v případě, že jeho směrovač neumožňuje funkci WPS, nebo chce zařízení konĄgurovat bez zapnutého směrovače. Zařízení se přepne do stavu, kdy se chová jako přístupový bod. K němu se pak lze pomocí mobilního telefonu nebo počítače připojit a provést konĄguraci. V režimu přístupového bodu lze zařízení konĄgurovat prostřednictvím webového formuláře, který se zobrazí v libovolném prohlížeči na IP adrese 192.168.0.1 na portu 80. Nebo lze přístroj nastavit konkrétními HTTP požadavky pomocí klientské aplikace. Jakmile bude zařízení připojeno, musí jej uživatel aktivovat pomocí mobilní aplikace stejně jako v případě WPS. 3.4.4 Komunikace Po úspěšném provedení konĄgurace se zařízení pokusí připojit k webové službě. Pokud se připojení podaří dojde k synchronizaci času. Zařízení poté naváže komunikaci se službou IoT Hub a začne ihned odesílat měřená data. Zařízení současně v pravidelných inter19
3. Modul měření spotřeby valech zjišťuje, zda uživatel nevyvolal událost k vypnutí či zapnutí spotřebiče. Aktuální verze prototypu implementuje pouze tento jednoduchý postup. Nyní zařízení neověřuje, zda komunikuje se správnou protistranou a zda je komunikace bezpečná. U Ąnálního řešení by si zařízení mělo nejprve vyžádat aktuální certiĄkát serveru podepsaný svým primárním klíčem, pomocí kterého bude moci ověřit jeho pravost. Při následném pokusu o připojení k webové službě už bude certiĄkát serveru veriĄkován. Pokud server odešle správný certiĄkát, zařízení naváže komunikaci zabezpečenou pomocí TLS a vyžádá si nový sekundární klíč, který použije k autentizaci pro komunikaci se službou IoT Hub. Finální zařízení bude také automaticky provádět aktualizaci Ąrmwaru po Internetu. 3.4.5 Signalizace Prototyp zařízení obsahuje kvůli jednoduchosti a nedostatku I/O pinů komunikačního modulu pouze jednu signalizační RGB diodu. Zařízení momentálně signalizuje následující stavy: ∙ Dioda bliká červeně v případě, že se připojuje k wi-Ą síti. Pokud bliká delší dobu beze změny stavu, znamená to, že k síti se nelze připojit. ∙ Dioda bliká zeleně. Tento stav nastane pokud se zařízení úspěšné připojí k bezdrátové síti a pokouší se kontaktovat webovou službu. ∙ Dioda konstantně svítí zeleně, pokud se zařízení podaří navázat spojení se serverem a komunikace probíhá v pořádku ∙ Dioda svítí červeně. Tato signalizace znamená, že zařízení nemůže navázat spojení s webovou službou nebo došlo k neočekávanému chování při přenosu dat. Konečná podoba zařízení by však měla ideálně obsahovat dvě signalizační diody řízené samostatným čipem, kdy druhá dioda bude signalizovat stav, zda je spotřebič připojen k elektrické síti přes relé. 20
4 Sběr a zpracování dat 4.1 Použité služby IoT zařízení
Přenos dat
Sběr dat
Analýza dat
Úložiště dat
Aplikační logika Webové API
DocumentDB
Machine Learning
Device
IEEE 802.xx
Web App Storage (Azure)
IoT Hub Stream Analytics
WebJobs Azure SQL database
Obrázek 4.1: Použité služby na platformě Microsoft Azure Další částí systému jsou služby zajišťující sběr a zpracování dat z fyzických zařízení. Platforma Microsoft Azure nabízí pro odvětví Internetu věcí několik silných nástrojů. Jednoduchý výčet použitých služeb zobrazuje diagram na obrázku 4.1. Bližší popis jednotlivých služeb se nachází v následujícím textu.
4.2 Přenos a sběr dat Sběr dat a správu připojených zařízení zajišťuje služba Azure IoT Hub. Ta je postavena na službě Event Hub, která zajišťuje předávání dat mezi aplikacemi pomocí událostí. IoT Hub tuto službu rozšiřuje o mechanismy pro správu zařízení a jejich zabezpečení [12]. Popis činnosti V rámci služby je možné vytvářet entity představující jednotlivá zařízení. U každého zařízení je třeba nastavit jednoznačný identiĄkátor 21
4. Sběr a zpracování dat a symetrické klíče, pomocí kterých se bude zařízení při komunikaci autentizovat. O zařízeních jsou následně uchovávány mimo jiné informace, zda je zařízení povoleno, zda je aktuálně připojeno a čas poslední změny. Pokud je dané zařízení vytvořeno a povoleno, může se službou komunikovat. V případě, že zařízení není v seznamu, chybně se autentizuje, nebo není povoleno, pokusy o komunikaci se ignorují. Jak vypadá autentizační token je popsáno v části 3.2.5. Azure IoT Hub zajišťuje obousměrnou komunikaci. Je možné provádět sběr zpráv ze zařízení (device-to-cloud) a odesílat zprávy pro zařízení (cloud-to-device), na které může reagovat určitou akcí. Pro práci se službou jsou dostupné knihovny na platformě .NET, nebo REST API rozhraní. Dále lze využít otevřené nástroje Aure IoT SDKs, které mohou pomoci s vývojem aplikací pro IoT Hub. Především se jedná o nástroj DeviceExplorer, který se používá ke správě zařízení [38]. Způsoby komunikace Služba podporuje několik protokolů, pomocí kterých s ní mohou zařízení komunikovat. V případě prototypu bylo použito REST API rozhraní [37], které bylo pro implementaci nejjednodušší. Další alternativou je odlehčený protokol MQTT, který je využíván právě pro úspornou komunikaci v Internetu věcí. Služba podporuje také protokol AMQP, který je však implementačně poměrně náročné a osvědčil se u výkonnějších zařízení, které využívají operační systém Windows IoT Core [67]. Škálování Azure IoT Hub lze podobně jako další cloudové služby škálovat. Zákazník tedy platí pouze za to, co využije. Služba se škáluje podle počtu zpráv, které zpracuje. Maximální možná propustnost pro jednu instanci služby je momentálně 1,2 miliardy zpráv za den.
22
4. Sběr a zpracování dat
4.3 Ukládání dat Azure Storage Úložiště pro uchovávání naměřených dat zajišťuje služba Azure Storage, která poskytuje prostor pro ukládání velkých objemů dat různých typů [33]. Pro účely systému se hodí Azure Storage Table, kde se data ukládají v částečně strukturované podobě jako entity do tabulky. S daty se pracuje pomocí dvou klíčů. Tím prvním je tzv. Ďpartition keyŞ, podle kterého se data seskupují do oddílů. Tím druhým je Ďrow keyŞ, který je pro každou entitu unikátní [13]. V případě prototypu modulu pro měření spotřeby je pro partition key použit identiĄkátor zařízení a pro row key časové razítko, které označuje kdy byly hodnoty změřeny. Následující dotaz vybere záznamy zařízení s identiĄkátorem SmartPlug, které byly změřeny dne 1. 1. 2016 mezi půlnocí a polednem.
PartitionKey eq ’ SmartPlug ’ and RowKey gt ’1451606400 ’ and RowKey lt ’1451649600 ’
Ukázka kódu 4.1: Dotaz do Azure Tables Azure SQL Database Webová služba využívá pro ukládání dat relační databázi Azure SQL Database kompatibilní s produktem Microsoft SQL Server. Databáze se škáluje podle objemu dat a počtu transakcí za sekundu [68].
4.4 Zpracování dat Sbíraná data není potřeba jen ukládat, ale také v reálném čase zpracovávat a následně vyvolávat události. K tomuto účelu se používá služba Stream Analytics [69]. Ta dokáže v reálném čase zpracovávat data z různých vstupů a předávat je dalším službám. Používá se jednoduchý dotazovací jazyk podobný SQL. 23
4. Sběr a zpracování dat Následující dotaz použitý pro prototyp pouze uloží data z IoT Hub v původní podobě do Table Storage. SELECT * INTO T o Me a s su r e me n t Ta b l e FROM FromSmartPlug
Ukázka kódu 4.2: Stream Analytics Job
24
5 Webová služba Webová služba poskytuje rozhraní REST API pro ovládání systému. Zajišťuje především správu uživatelských účtů, správu připojených zařízení, práci s daty a řízení spotřebičů v domácnosti.
5.1 Použité technologie Pro vývoj webové služby byla vybrána technologie ASP.NET 5 [30], která používá nové multiplatformní běhové prostředí .NET Execution Environment (DNX). Celý projekt je open-source. Oproti předchozím verzím má nová verze ASP odlišnou architekturu. Implementuje návrhový vzor Inversion of Control, který využívá princip Dependency Injection. Většina knihoven a modulů je distribuována pomocí NuGet balíčků [45]. Visual Standard Edition(Masaryk University) SmartParadigm Home
Devices
Messaging
Storage
Power Monitor
Home Management
Accounts
Smart Home
Obrázek 5.1: Jednotlivé moduly webové služby
25
5. Webová služba
5.2 Popis služby Webová služba se skládá z několika modulů znázorněných diagramem na obrázku 5.1. Pro fungování prototypu byly vytvořeny moduly pro správu uživatelských účtů, správu zařízení, řízení domácnosti a monitorování spotřebičů. Jednotlivé části lze používat jako samostatné služby pomocí Dependency Injection. Správa uživatelských účtů Modul zajišťuje vytváření a správu uživatelských účtů a samotnou autentizaci uživatelů. Funkcionalita je postavená na technologii ASP.NET Identity [31], která poskytuje většinu základních funkcionalit pro autentizaci a autorizaci uživatelů. Data jsou ukládána do relační databáze metodou Code First pomocí knihoven Entity Framework [17]. Autentizace je realizována prostřednictvím cookies. Diagram na obrázku 5.2 znázorňuje databázové schéma pro ukládání uživatelských identit a rolí. Modul lze rozšířit o přihlašování pomocí služeb Facebook, Google a dalších, které implementují autentizaci OAuth2 [61].
26
5. Webová služba Visual IdentityParadigm Standard Edition(Masaryk University) identity.AspNetUsers
identity.AspNetUserLogins
Id
nvarchar(450)
LoginProvider
nvarchar(450)
AccessFailedCount
int
ProviderKey
nvarchar(450)
ConcurrencyStamp Email
nvarchar(max) nvarchar(256)
ProviderDisplayName UserId
nvarchar(max) nvarchar(450)
EmailConfirmed LockoutEnabled
bit bit
LockoutEnd
datetimeoffset
NormalizedEmail NormalizedUserName
nvarchar(256) nvarchar(256)
PasswordHash PhoneNumber
nvarchar(max) nvarchar(max)
PhoneNumberConfirmed
bit
SecurityStamp TwoFactorEnabled
nvarchar(max) bit
UserName
nvarchar(256)
Id identity.AspNetUserRoles UserId
nvarchar(450)
RoleId
nvarchar(450)
identity.AspNetUserClaims Id ClaimType
int nvarchar(max)
ClaimValue UserId
nvarchar(max) nvarchar(450)
identity.AspNetRoles nvarchar(450)
Id
identity.AspNetRoleClaims int
ConcurrencyStamp
nvarchar(max)
ClaimType
nvarchar(max)
Name NormalizedName
nvarchar(256) nvarchar(256)
ClaimValue RoleId
nvarchar(max) nvarchar(450)
Obrázek 5.2: Entitně relační diagram schématu identity
Správa domácnosti Modul správy domácnosti umožňuje vytvářet objekty reprezentující spotřebiče a organizovat je v domácnosti. Ukládání dat bylo realizováno opět pomocí ORM knihovny Entity Framework. Schéma databáze je znázorněno na obrázku 5.3. Uživatel má možnost vytvářet objekty Homes, pod kterými si lze představit celý dům. Jeden dům může být sdílen pro více uživatelů. V rámci těchto objektů lze vytvořit skupiny spotřebičů (Groups), které mohou označovat například místnosti. Do tabulky Appliances se ukládají entity pro jednotlivé spotřebiče, které jsou do zařízení připojené. Entity Plugs pak reprezentují měřicí moduly.
27
5. Webová služba Visual Standard Edition(Masaryk University) SmartParadigm Home sh.Users
Id
sh.UserHomes
Id AccountId
int nvarchar(38)
UserId HomeId
int int
NickName
nvarchar(40)
IsOwner
bit
sh.Plugs int
DeviceId IsSwitchedOn
nvarchar(38) bit
Name UserId
nvarchar(30) int
Id
sh.Homes int
Name Note
nvarchar(30) nvarchar(250)
sh.Groups int
Id HomeId Name
int nvarchar(30)
Note
nvarchar(250)
sh.Appliances Id GroupId
int int
Id
HomeId Name
int nvarchar(30)
ApplianceId ChangeType
int int
Note PlugId
nvarchar(250) int
DeviceId Timestamp
nvarchar(max) datetime2
sh.ApplianceChanges int
Obrázek 5.3: Entitně relační diagram schématu sh
Správa zařízení Modul obsahuje knihovny pro správu služby Azure IoT Hub a zajišťuje komunikaci se zařízeními a jejich ovládání. Energetický management Práci s naměřenými daty umožňuje modul energetického managementu. Pomocí tohoto modulu je možné získat data naměřená na konkrétním spotřebiči a provádět výpočty celkové spotřeby a ceny za energii.
28
6 Klientská aplikace Poslední částí systému je jednoduchá klientská aplikace, která tvoří prezentační vrstvu a umožňuje nahlížení na měřená data. Aplikace zatím neimplementuje všechny funkce a slouží pouze pro demonstraci činnosti prototypu. Pro implementaci byl jako cílová platforma zvolen operační systém Windows, který je na osobních počítačích nejrozšířenější. Aplikace funguje jako tenký klient a převážná část aplikační logiky je realizována pomocí webové služby. Ke své činnosti tedy potřebuje konektivitu k Internetu.
6.1 Použité technologie Pro vývoj byla zvolena technologie Windows Universal Platform [35], která umožňuje vyvíjet univerzální aplikace pro všechny přístroje s operačním systémem Windows 10 [71]. Jde především o stolní počítače, mobilní telefony, konzole Xbox a přístroje s ARM procesory [6] a operačním systémem Windows 10 IoT Core. Motivací pro využití UWP byla také snaha seznámit se s nejnovějšími technologiemi vývoje aplikací na systémech Windows. Jednotlivé komponenty aplikace implementují návrhový vzor Model-ViewViewModel [60].
6.2 Popis aplikace Ihned po spuštění aplikace je vyžadováno přihlášení prostřednictvím přihlašovacího dialogu na obrázku 6.1. Uživatel se přihlašuje pomocí emailové adresy.
29
6. Klientská aplikace
Obrázek 6.1: Přihlašovací dialog
Uživatelské rozhraní aplikace je navrženo tak, aby bylo jednoduché, přehledné a dalo se snadno přizpůsobit menším obrazovkám. Rozložení aplikace se skládá z navigačního menu na levé straně a samotného obsahu. Odpovídá návrhu Nav Panes z oĄciální dokumentace [43]. Navigační menu, které je zobrazeno na obrázku 6.2, umožňuje navigaci mezi jednotlivými funkcionalitami aplikace. Po úspěšném přihlášení se jako první objeví stránka dashboard, která momentálně zobrazuje všechny založené spotřebiče. V budoucnu zde budou jednoduché přehledy statistik a akce, které si uživatel sám zvolí.
30
6. Klientská aplikace
Obrázek 6.2: Navigační menu
Obrázek 6.3: Rozvržení uživatelského rozhraní
31
6. Klientská aplikace Po kliknutí na spotřebič, ke kterému je připojen měřicí modul (Plug), se zobrazí stránka s monitoringem spotřeby. V horní části aplikace ukazuje aktuální stav spotřebiče a graf zobrazující průběh příkonu v závislosti na čase za poslední minutu. Dále je zde umístěn přepínač, pomocí kterého lze spotřebič vzdáleně vypnout nebo zapnout. K zobrazování dat jsou použity grafové komponenty projektu WinRT XAML Toolkit, který lze doinstalovat pomocí NuGet balíčku [72].
Obrázek 6.4: Aktuální měření Ve spodní části okna lze načíst data za vybraný časový úsek, která se zobrazí v grafu. Součástí výstupu je také celková spotřeba a cena za dané období. Pro demonstraci výpočtu ceny je momentálně zvolen průměrný tarif [55].
32
6. Klientská aplikace
Obrázek 6.5: Zobrazení naměřených dat
33
7 Testování Zařízení bylo podrobeno několika nenáročným testům, které mají ověřit především spolehlivost měření a funkčnost prototypu. Na základě provedených zkoušek mohly být formulovány návrhy na zlepšení popsané v kapitole 9. Vzhledem k absenci laboratorního vybavení a ke skutečnosti, že se jedná o raný prototyp s jistými nedostatky, nebylo zařízení zatím podrobeno odborným testům a zátěžovým testům. Je žádoucí v budoucnu otestovat chování zařízení při zkratu, přepětí a nadměrné zátěži. Dále je potřeba vyzkoušet, jak bude snášena nízká nebo naopak vysoká teplota prostředí, kontakt s vodou a další vnější vlivy.
7.1 Porovnání měření Jako první kritérium se testovala spolehlivost měření. Byly změřeny hodnoty elektrických veličin na různých typech zátěže a byly srovnány s jinými měřicími přístroji. Pro lepší představu se měřily hodnoty na odporové zátěži, kterou představovala lampička s uvedeným příkonem 100 W, a spínaném zdroji napájejícím přenosný počítač. Spínané zdroje mají nepravidelný průběh proudu s velkými výkyvy, což lépe ověří vlastnosti prototypu. 7.1.1 Použité pomůcky K měření byl použit multimetr a měřič do zásuvky značky Schneider [52]. Vzhledem k rozsahům hodnot je multimetr schopen měřit pouze napětí. Jedná se o přístroje, které spadají do levnější kategorie. Výsledky měření proto slouží pouze pro hrubé srovnání. 7.1.2 Postup Byly postupně měřeny hodnoty proudu a napětí nejprve na odporové zátěži a poté na spínaném zdroji. Následně proběhl výpočet odchylek měření prototypu oproti měření zakoupeným přístrojem. Odchylky 34
7. Testování jsou počítány jako rozdíly naměřených hodnot. Hodnoty byly měřeny ve dvousekundových intervalech. 7.1.3 Naměřené hodnoty Napětí Tabulka 7.1 obsahuje hodnoty napětí, kde U1 označuje napětí měřené prototypem, U2 multimetrem a ∆U je rozdíl změřených hodnot. U1 (V)
U2 (V)
∆U (V)
228,0 228,1 228,0 228,3 228,1 227,9 228,2 228,1
230,0 230,0 230,0 230,0 230,0 230,0 230,0 230,0
2,0 1,9 2,0 1,7 1,9 2,1 1,8 1,9
Tabulka 7.1: Měření napětí v síti
Z měření vyplývá, že průměrná odchylka vzhledem k multimetru činí přibližně 1,91 V, což je rovno relativní odchylce přibližně 0,83 %. Proud protékající odporovou zátěží Tabulka 7.2 ukazuje změřené hodnoty proudu, kde I1 označuje proud změřený prototypem, I2 hodnoty proudu měřené měřidlem Schneider a ∆I je rozdíl změřených hodnot.
35
7. Testování I1 (A)
I2 (A)
∆I (A)
0,458 0,459 0,458 0,458 0,457 0,457 0,458 0,457
0,46 0,46 0,46 0,46 0,46 0,46 0,46 0,46
0,02 0,01 0,02 0,02 0,03 0,03 0,02 0,03
Tabulka 7.2: Měření proudu protékajícího odporovou zátěží
Průměrná odchylka tedy činí přibližně 0,022 A a relativní odchylka 0,04 %. Příkon odporové zátěže Tabulka 7.2 ukazuje změřené hodnoty příkonu, kde P1 označuje příkon změřený prototypem, P2 hodnoty příkonu změřené měřidlem Schneider. ∆P je rozdíl změřených hodnot. P1 (W)
P2 (W)
∆P (W)
95,0 95,0 95,0 94,9 95,0 94,8 94,9 94,9
109,3 109,2 109,4 109,2 109,3 109,1 109,2 109,1
14,3 14,2 14,4 14,3 14,3 14,3 14,3 14,2
Tabulka 7.3: Měření příkonu odporové zátěže
36
7. Testování Průměrná odchylka příkonů měřených přístroji činí přibližně 14,29 W, což odpovídá relativní odchylce 13 %. Proud protékající spínaným zdrojem Tabulka 7.4 ukazuje změřené hodnoty proudu kde I1 označuje proud změřený prototypem, I2 hodnoty proudu měřené měřidlem Schneider a ∆I je rozdíl změřených hodnot. Z měřených hodnot je vidět, že průběh je velmi nepravidelný. I1 (A)
I2 (A)
∆I (A)
0,30 0,43 0,28 0,34 0,26 0,38 0,27 0,26
0,30 0,43 0,28 0,34 0,26 0,38 0,27 0,26
0 0 0 0 0 0 0 0
Tabulka 7.4: Měření proudu protékajícího spínaným zdrojem
Při dané přesnosti měření nejsou mezi hodnotami měřenými oběma přístroji žádné rozdíly. Příkon spínaného zdroje Tabulka 7.5 ukazuje změřené hodnoty příkonu, kde P1 označuje příkon změřený prototypem, P2 hodnoty příkonu změřené měřidlem Schneider. ∆I je rozdíl změřených hodnot.
37
7. Testování P1 (W)
P2 (W)
∆P (W)
37,2 54,2 38,7 53,8 38,1 52,3 47,4 39,4
31,1 47,0 32,7 42,1 31,2 44,1 41,3 32,1
6,1 7,2 6 11,7 6,9 8,2 6,1 7,3
Tabulka 7.5: Měření příkonu spínaného zdroje
Vzhledem k velkému kolísání příkonu má smysl uvažovat pouze relativní odchylku, která činí přibližně 20 %. Měření bez zátěže Pokud není k zařízení připojena zátěž, měření ukazuje hodnoty mezi 1Ű2 W. To je způsobeno šumem. Důsledkem je, že nejmenší měřitelná hodnota je 2 W.
7.2 Stabilita Chování při opakovaném spínání relé Při neustálém zapínání a vypínaní a to jak vzdáleně, tak tlačítkem, docházelo k náhodným restartům zařízení přibližně při 1 z 20 pokusů. Tohle chování lze přisuzovat poklesu napětí při sepnutí relé, protože přidáním dalšího Ąltračního kondenzátoru se zmíněné chování zlepšilo. Chování při delším běhu zařízení Dále bylo odhaleno, že při delším běhu zařízení dochází ke ztrátě synchronizace času. Ten se aktualizuje při startu zařízení a poté se řídí 38
7. Testování vnitřním oscilátorem obvodu ESP8266. Rozdíl času po dvou hodinách běhu činil přibližně 30 s. Nebyly zaznamenány vetší úniky paměti a zařízení stále komunikovalo i po čtyřech hodinách běhu. Zahřívání součástek Teplota spínaného zdroje a stabilizátoru nepřesahovala 50 ∘ C. Bylo odhaleno, že dochází k většímu zahřívání měřicího transformátoru pro měření napětí a to až na 70 ∘ C. Při delším běhu přístroje však teplota zůstávala konstantní.
7.3 Závěr testování Odchylky měření napětí a proudu jsou přijatelné. V případě proudu lze výsledky považovat za velmi přesné. Měření příkonu kvůli velkým odchylkám není spolehlivé. Rozdíl v měření lze přisuzovat fázovému posunu způsobeném prodlevami mezi jednotlivými měřeními A/D převodníku. Korekci je možné do jisté míry provést matematicky. Dále je potřeba vyřešit problém se synchronizací času, který by při delším používání znehodnocoval měřená data.
39
8 Srovnání s konkurenčními výrobky Pro účel měření spotřeby elektrické energie spotřebičů již existuje na trhu několik zařízení. Nevýhodou těchto produktů je ale vysoká cena. Navíc lze většinu z nich ovládat pouze pomocí specializované mobilní aplikace a systém neposkytuje mnoho možností práce s daty ani propojení s jinými typy zařízení. Pro srovnání bylo zakoupeno zařízení Smart Plug SP-2101W od výrobce Edimax [54]. Jedná se o zásuvky, které se dokážou připojit do wi-Ą sítě a následně sbírají data o příkonu, proudu a napětí na připojeném spotřebiči. Zásuvku je možné také vzdáleně vypínat. Výrobce poskytuje mobilní aplikaci, která umožňuje nahlížení na aktuální měřená i historická data a ovládání připojeného spotřebiče. Na českém trhu se cena produktu pohybuje okolo 1200 Kč. Další podobné zařízení je například TP-LINK HS-100 [64], jehož cena je 1000 Kč. U prototypu se použitím novějších technologií podařilo snížit výrobní cenu jednoho kusu1 na 200 Kč. Přidanou hodnotou systému by měla být cloudová část, která poskytne více funkcí a připojení jiných zařízení.
1
Cena počítá se součástkami zakoupenými v malém počtu kusů.
40
9 Návrhy na zlepšení Při vývoji prototypu byly odhaleny zásadnější i méně významné nedostatky. Všechny lze však vyřešit bez větších změn v návrhu systému. Spolehlivost měření Jedinou částí prototypu, která vyžaduje větší přepracování, je měřicí modul. Výsledky měření proudu a napětí lze považovat za spolehlivé. Chyby v měření příkonu jsou však nevyhovující. Chyby jsou pravděpodobně způsobené tím, že se hodnoty elektrických veličin měří pouze jedním A/D převodníkem, což způsobuje fázový posun mezi naměřenými hodnotami proudu a napětí. Vzhledem k nízké frekvenci oscilátoru převodníku trvá jedno měření nejméně 112 µs. K tomuto času je nutné přičíst dobu nutnou k provedení výpočtů a následný posun činí nejméně 2∘ . Dalším důvodem je malá hustota vzorkování. Při frekvenci mikrokontroléru 8 MHz může být frekvence převodníku vytvořená děličem1 maximálně 125 kHz. Zdrojem odchylek je dále elektromagnetický šum, který je nutné zredukovat dobře navrženými Ąltry. Nepřesnosti mohou být do jisté míry způsobené i použitými datovými typy. Řešením je použití přesnějších 32bitových mikrokontrolérů s ARM architekturou vyráběných Ąrmou STMicroelectronics. Vhodné jsou obvody řady STM32F030 [56], které integrují jeden 12bitový převodník, nebo řady STM32F103 [57], které mají převodníky dva. Maximální frekvence převodníků může být 14 MHz a umožňují provádět až milion měření za sekundu2 . Použitím těchto mikrokontrolérů by se značně zvýšila hustota vzorkování a snížil fázový posun na zanedbatelnou hodnotu. V případě dvou převodníků by nedocházelo k žádnému posunu. Díky 32bitové architektuře jsou navíc výpočty s velkými čísly efektivnější. Ještě lepších výsledků by mohlo být dosaženo použitím specializovaných měřicích obvodů. Vyznačují se vyšší přesností a obsahují 1 2
Je použit frekvenční dělič (prescaler) s poměrem 64. Standardní měření A/D převodníku zabere 14 cyklů.
41
9. Návrhy na zlepšení odladěný Ąrmware pro přesné měření. Jsou však oproti univerzálním mikrokontrolérům o něco dražší. Příkladem může být obvod STPM01 [48]. Odchylky způsobené šumem je dále potřeba odstranit použitím správných frekvenčních Ąltrů. Metody měření Transformátor pro měření napětí se ukázal jako zbytečný. Nevýhodou je velikost, cena, zahřívání při provozu a také vysoká tolerance v poměru transformace. Vhodnější bude obyčejný odporový dělič mezi fázovým a nulovým vodičem. Komplikace přináší i použití proudového transformátoru. Měřené hodnoty jsou sice spolehlivé, ale samotná součástka je příliš veliká a její zabudování do obvodu a následně do obalu bude náročné. Řešením je měřit pomocí bočníkového odporu přímo v elektrické síti, nebo použít jinou konstrukci proudového transformátoru. Synchronizace času Ke ztrátě synchronizace času dochází kvůli nepřesnému internímu krystalu v obvodu ESP8266. Je vhodné přidat do zapojení přesný modul reálného času. Zmíněné mikrokontroléry řady STM32 integrují také modul RTC. Jejich použití by tedy vyřešilo i problém synchronizace času. Napájecí zdroj Při konstrukci napájecího zdroje byl pozorován poměrně velký úbytek napětí na lineárním stabilizátoru AMS1117. Místo 3,3 V tak je na výstupu velikost napětí přibližně 3 V. Při špičkách způsobených spínáním relé a komunikací proto docházelo k restartování komunikačního modulu. Je vhodné použít jiný stabilizátor s menším úbytkem napětí a dále do obvodu doplnit Ąltrační kondenzátory s dostatečnou kapacitou.
42
10 Závěr Vyvinuté měřicí zařízení je schopné měřit a odesílat data do Internetu. Obvod ESP8266 se ukázal jako vhodný pro dostatečně zabezpečenou komunikaci. Zařízení však zatím není použitelné v praxi, protože se nepodařilo implementovat a odladit některé funkčnosti. Důvodem je problém s nedostatkem operační paměti, kterou z velké části konzumuje univerzální Ąrmware NodeMCU. Bude tedy potřeba vyvinout vlastní Ąrmware v jazyce C pouze s využitím oĄciálního SDK, který bude implementovat pouze požadované funkcionality a zajistí lepší správu paměti. Bude také použit jiný mikrokontrolér pro samotné měření, protože ATmega328P neumožňuje kvalitní měření elektrických veličin. Serverová část zajišťuje efektivní sběr a ukládání dat z libovolného zařízení, které je schopné komunikovat pomocí daných protokolů. Bude dále potřeba přidat službu, která bude zpracovávat a transformovat velké objemy uložených dat. Webová služba implementuje správu domácnosti a základní funkce pro práci s měřenými daty. Je možné přidávat moduly pro jiné typy zařízení. Služba poskytuje univerzální rozhraní pro libovolné klientské aplikace. Klientská aplikace umožňuje nahlížení na naměřená data a ovládání spotřebiče. Dále bude nutné implementovat funkce pro konĄguraci zařízení a správu domácnosti. Pro pohodlnější ovládání systému je také vhodné vyvinout ještě mobilní a webovou aplikaci.
43
Literatura [1] 802.11: Wireless LANs. IEEE-SA - The IEEE Standards Association [online]. IEEE, 2016 [cit. 2016-05-01]. Dostupné z: http://standards.ieee.org/about/get/802/802.11.html [2] About Z-Wave Technology. Z-Wave Alliance [online]. Z-Wave Alliance, 2016 [cit. 2016-05-01]. Dostupné z: http://z-wavealliance.org/about_z-wave_technology/ [3] Adopted SpeciĄcation. Bluetooth Technology Website [online]. Bluetooth SIG, Inc., 2016 [cit. 2016-05-01]. Dostupné z: https://www.bluetooth.com/specifications/ adopted-specifications [4] AMQP is the Internet Protocol for Business Messaging. AMQP [online]. OASIS, 2016 [cit. 2016-05-10]. Dostupné z: https://www.amqp.org/about/what [5] Arduino [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://www.arduino.cc/ [6] ARM Processor Architecture. ARM [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.arm.com/products/ processors/instruction-set-architectures/index.php
[7] ATMEL 8-BIT MICROCONTROLLER DATASHEET [online]. Atmel Corporation, 2015 [cit. 2016-05-01]. Dostupné z: http://www.atmel.com/images/ atmel-8271-8-bit-avr-microcontroller-atmega48a-48pa-88a-88pa-168a-168padatasheet_complete.pdf [8] Atmel and The Internet of Things. Atmel Corporation [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.atmel.com/applications/IOT/default.aspx [9] Atmel Studio 7 - Easier to Use and More Powerful Than Ever [online]. Atmel Corporation, 2016 [cit. 2016-05-01]. Dostupné z: http://www.atmel.com/Microsite/atmel-studio/
44
LITERATURA [10] AVR121: Enhancing ADC resolution by oversampling [online]. Atmel Corporation, 2005 [cit. 2016-05-01]. Dostupné z: http://www.atmel.com/images/doc8003.pdf [11] AWS IoT. Amazon Web Services (AWS) [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://aws.amazon.com/iot/ [12] BETTS, Dominic. Azure IoT Hub developer guide [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/ cs-cz/documentation/articles/iot-hub-devguide/ [13] HOGG, Jason. Azure Storage Table Design Guide: Designing Scalable and Performant Tables [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/en-us/ documentation/articles/storage-table-design-guide/ [14] REESE, George. Cloud application architectures: [building applications and infrastructure in the Cloud]. Sebastopol, CA: O’Reilly Media, Inc., 2009. ISBN 05-961-5636-7. [15] ANTOŠOVÁ, Marcela a Vratislav DAVÍDEK. Číslicová technika: [učebnice]. 4., aktualiz. vyd. České Budějovice: Kopp, 2009. ISBN 978-80-7232-394-4. [16] Download Azure SDKs and Tools [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/en-us/downloads/ [17] Entity Framework Core (EF Core) [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://github.com/aspnet/EntityFramework/wiki/Roadmap [18] ESP8266 SMT Module [ESP-12E] [online]. Adafruit Industries [cit. 2016-05-01]. Dostupné z: https://www.adafruit.com/product/2491 [19] ESP8266 System Description [online]. Espressif Systems Inc., 2016 [cit. 2016-05-01]. Dostupné z: https: //espressif.com/en/file/398/download?token=b6w-GxBU
45
LITERATURA [20] ESPlorer [online]. 2014 [cit. 2016-05-01]. Dostupné z: http://esp8266.ru/esplorer/ [21] Facebook [online]. [cit. 2016-05-01]. Dostupné z: https://www.facebook.com/ [22] FreeRTOS [online]. [cit. 2016-05-01]. Dostupné z: http://www.freertos.org/ [23] Global Coverage. SIGFOX [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.sigfox.com/coverage [24] I2C. Learn at SparkFun Electronics [online]. SparkFun Electronics [cit. 2016-05-01]. Dostupné z: https://learn.sparkfun.com/tutorials/i2c [25] IBM Watson Internet of Things. IBM [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.ibm.com/internet-of-things/ [26] Internet of Everything. Qualcomm [online]. 2016 [cit. 2016-05-01]. Dostupné z: https: //www.qualcomm.com/products/internet-of-everything [27] Internet of Things. Google Cloud Platform [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://cloud.google.com/solutions/iot/ [28] Internet of Things (IoT). STMicroelectronics [online]. [cit. 2016-05-01]. Dostupné z: http://www2.st.com/content/ st_com/en/applications/internet-of-things-iot.html [29] Internet of Things (IoT) - Cisco [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.cisco.com/c/en/us/solutions/ internet-of-things/overview.html [30] Introduction to ASP.NET 5. ASP.NET 5 Documentation [online]. Microsoft Corporation, 2016 [cit. 2016-05-01]. Dostupné z: http://docs.asp.net/en/latest/conceptual-overview/ aspnet.html
46
LITERATURA [31] RASTOGI, Pranav, Rick ANDERSON, Tom DYKSTRA a Jon GALLOWAY. Introduction to ASP.NET Identity [online]. 2013 [cit. 2016-05-01]. Dostupné z: http://www.asp.net/identity/overview/getting-started/ introduction-to-aspnet-identity [32] C.J., Gronlund. Introduction to machine learning on Microsoft Azure [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/cs-cz/documentation/ articles/machine-learning-what-is-machine-learning/ [33] MYERS, Tamra. Introduction to Microsoft Azure Storage [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft. com/cs-cz/documentation/articles/storage-introduction/ [34] Introduction to the C# Language and the .NET Framework. Microsoft Developer Network [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://msdn.microsoft.com/ [35] JACOBS, Mike. Introduction to UWP app design [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://msdn.microsoft.com/ en-us/windows/uwp/layout/design-and-ui-intro [36] IoT Ű internet vašich věcí. Vývojáři Microsoftu [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://developer.microsoft.com/cs-cz/windows/iot [37] IoT Hub REST. Microsoft Developer Network [online]. Microsoft Corporation, 2015 [cit. 2016-05-01]. Dostupné z: https: //msdn.microsoft.com/en-us/library/azure/mt548492.aspx [38] BETTS, Dominic. IoT Hub SDKs [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/cs-cz/ documentation/articles/iot-hub-sdks-summary/ [39] LoRa Technology. LoRa Alliance [online]. LoRa Alliance, 2016 [cit. 2016-05-01]. Dostupné z: https://www.lora-alliance.org/What-Is-LoRa/Technology
47
LITERATURA [40] Microsoft Azure: Cloudová výpočetní platforma a služby [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/cs-cz/ [41] Microsoft PowerShell [online]. Microsoft Corporation, 2016 [cit. 2016-05-01]. Dostupné z: https: //msdn.microsoft.com/en-us/powershell/mt173057.aspx [42] MQTT [online]. OASIS [cit. 2016-05-01]. Dostupné z: http://mqtt.org/ [43] WALKER, Jim. Nav panes [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://msdn.microsoft.com/en-us/windows/ uwp/controls-and-patterns/nav-pane [44] NodeMCU 1.4.0 [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://github.com/nodemcu/nodemcu-firmware [45] NuGet Gallery [online]. .NET Foundation, 2016 [cit. 2016-05-01]. Dostupné z: https://www.nuget.org/ [46] Oblasti služeb Azure [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/cs-cz/regions/ [47] OpenEnergyMonitor [online]. 2015 [cit. 2016-05-01]. Dostupné z: https://openenergymonitor.org/emon/ [48] PROGRAMMABLE SINGLE PHASE ENERGY METERING IC WITH TAMPER DETECTION [online]. STMicroelectronics, 2016 [cit. 2016-05-01]. Dostupné z: http://www2.st.com/content/st_com/en/products/ data-converters/metering-ics/stpm01.html [49] SVOBODA, Emanuel. Přehled středoškolské fyziky. 4., upr. vyd. Praha: Prometheus, 2005. ISBN 80-719-6307-0. [50] SDKs. ESP8266 - Developer Zone [online]. [cit. 2016-05-01]. Dostupné z: http://bbs.espressif.com/viewforum.php?f= 46&sid=248e7635fe4058e111eae3ad74b2ef7b
48
LITERATURA [51] MYERS, Tamra. Shared Access Signatures, Part 1: Understanding the SAS model [online]. 2016 [cit. 2016-05-10]. Dostupné z: https: //azure.microsoft.com/cs-cz/documentation/articles/ storage-dotnet-shared-access-signature-part-1/ [52] Schneider Electric Česká republika [online]. [cit. 2016-05-01]. Dostupné z: http: //www.schneider-electric.com/site/home/index.cfm/cz/ [53] Smart Power [online]. Vysoká škola báňská [cit. 2016-05-01]. Dostupné z: http://smartpower.vsb.cz/ [54] Smart Plug Switch Intelligent Home Control [online]. EDIMAX Technology, 2015 [cit. 2016-05-01]. Dostupné z: http://www. edimax.com/edimax/merchandise/merchandise_detail/data/ edimax/au/home_automation_smart_plug/sp-2101w/ [55] PONCAROVÁ, Jana. Srovnání: Ceny kWh elektřiny v roce 2015. Finance.cz [online]. 2015 [cit. 2016-05-01]. Dostupné z: http://www.finance.cz/zpravy/finance/ 435516-srovnani-ceny-kwh-elektriny-v-roce-2015/ [56] STM32F0x0 Value Line [online]. STMicroelectronics, 2016 [cit. 2016-05-01]. Dostupné z: http://www.st.com/st-web-ui/active/en/catalog/mmc/ FM141/SC1169/SS1574/LN1826?icmp=ln1826_pron_pr_jul2013 [57] STM32F103C8 [online]. STMicroelectronics, 2016 [cit. 2016-05-01]. Dostupné z: http://www2.st.com/content/st_com/en/products/ microcontrollers/stm32-32-bit-arm-cortex-mcus/ stm32f1-series/stm32f103/stm32f103c8.html [58] TESCO SW a.s. [online]. 2015 [cit. 2016-05-01]. Dostupné z: http://www.tescosw.cz/ [59] The Keyed-Hash Message Authentication Code (HMAC) [online]. National Institute of Standards and Technology, 2002 [cit. 2016-05-01]. Dostupné z: http://csrc.nist.gov/ publications/fips/fips198/fips-198a.pdf 49
LITERATURA [60] The MVVM Pattern. Microsoft Developer Network [online]. 2012 [cit. 2016-05-01]. Dostupné z: https://msdn.microsoft.com/en-us/library/hh848246.aspx [61] The OAuth 2.0 Authorization Framework [online]. Internet Engineering Task Force, 2012 [cit. 2016-05-01]. Dostupné z: https://tools.ietf.org/html/rfc6749 [62] The Transport Layer Security (TLS) Protocol [online]. 2008 [cit. 2016-05-01]. Dostupné z: https://tools.ietf.org/html/rfc5246 [63] The ZigBee Alliance [online]. ZigBee Alliance, 2016 [cit. 2016-05-01]. Dostupné z: http://www.zigbee.org/ [64] TP-LINK HS-100 WIFI SMARTPLUG. Comfor.cz [online]. 2016 [cit. 2016-05-01]. Dostupné z: http://www.comfor.cz/ tp-link-hs-100-wifi-smartplug?utm_source=mailing&utm_ medium=email&utm_campaign=2016w19v1_tplink [65] Visual Studio - Microsoft Developer Tools [online]. Microsoft Corporation, 2016 [cit. 2016-05-01]. Dostupné z: https://www.visualstudio.com/ [66] VisualGDB - Serious cross-platform support for Visual Studio [online]. Sysprogs OÜ, 2012 [cit. 2016-05-01]. Dostupné z: http://visualgdb.com/ [67] What is Internet of Things [online]. Microsoft Corporation, 2016 [cit. 2016-05-01]. Dostupné z: https://www.microsoft.com/ en-us/server-cloud/internet-of-things/ [68] KURHEKAR, Shantanu. What is SQL Database? Introduction to SQL Database [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/cs-cz/documentation/ articles/sql-database-technical-overview/ [69] STOKES, Jef. What is Stream Analytics? [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://azure.microsoft.com/en-us/documentation/ articles/stream-analytics-introduction/ 50
LITERATURA [70] Wi-Fi Simple ConĄguration Protocol and Usability Best Practices for the Wi-Fi Protected SetupTM Program [online]. Wi-Fi Alliance, 2011 [cit. 2016-05-01]. Dostupné z: http://www.wi-fi.org/download.php?file=/sites/default/ files/private/wsc_best_practices_v2_0_1.pdf [71] Windows 10 [online]. Microsoft Corporation, 2016 [cit. 2016-05-01]. Dostupné z: https://www.microsoft.com/cs-cz/windows/features [72] WinRT XAML Toolkit [online]. 2016 [cit. 2016-05-01]. Dostupné z: https://github.com/xyzzer/WinRTXamlToolkit [73] Wiring [online]. [cit. 2016-05-10]. Dostupné z: http://wiring.org.co/
51
A Příloha
52
NO
C4 100nF
L OUT K1
C
C3 22µF
D1 1N4004
1
C2 100nF
SpiceOrder 2
C1
+5V
SpiceOrder 1
GND
22µF
+3V3
OUT +
+
IN
2
AMS1117 3.3V IC1
+5V
L
L
1
N
2
AC1
-VO
AC2
+VO
3 4
GND
IC2 HLK-PM01
R1 2k
GND
JP1
T1 BC548
GND
+5V
TITLE:
Napájecí modul
Document Number: Date: 28.04.2016 14:11
REV: Sheet:
1/1
+3V3
GND
VREF 21
9
AREF
PD0(RXD) PD1(TXD) PD2(INT0) PD3(INT1) PD4(XCK/T0) PD5(T1) PD6(AIN0) PD7(AIN1)
PB7(XTAL2/TOSC2)
VREF
GND GND
8 22
GND GND
PB0(ICP) PB1(OC1A) PB2(SS/OC1B) PB3(MOSI/OC2) PB4(MISO) PB5(SCK)
2 3 4 5 6 11 12 13
GND GND
LM321MF IC2
2
5
+3V3
R9
R8
R7
13k
1k5
100R
14 15 16 17 18 19
ATMEGA328P_PDIP
TITLE:
10µF
+
1 2
JP1
PB6(XTAL1/TOSC1)
IC1
23 24 25 26 27 28
C2
AVCC VCC
R1
10
PC0(ADC0) PC1(ADC1) PC2(ADC2) PC3(ADC3) PC4(ADC4/SDA) PC5(ADC5/SCL)
1
C1
20 7
PC6(/RESET)
10k
3
+3V3 10µH 100nF
1
R4
10k
4
10k
L1
R3
GND
+3V3
TR2
TR1 4
L2
+3V3
VREF
IC3
1
3 2
L1
R2
L
~
L N
Měřicí modul
Document Number: Date: 10.05.2016 23:33
REV: Sheet:
1/1