• No results found

Inteligentn´ı domovn´ı syst´ em

N/A
N/A
Protected

Academic year: 2022

Share "Inteligentn´ı domovn´ı syst´ em"

Copied!
55
0
0

Loading.... (view fulltext now)

Full text

(1)

Inteligentn´ı domovn´ı syst´ em

Diplomov´ a pr´ ace

Studijn´ı program: N2610 – Elektrotechnika a informatika Studijn´ı obor: 1802T007 – Informaˇcn´ı technologie Autor pr´ace: Bc. Tom´aˇs Moravec

Vedouc´ı pr´ace: doc. Ing. Josef Chaloupka, Ph.D.

(2)

Smart home system

Master thesis

Study programme: N2610 – Electrical Engineering and Informatics Study branch: 1802T007 – Information Technology

Author: Bc. Tom´aˇs Moravec

Supervisor: doc. Ing. Josef Chaloupka, Ph.D.

(3)
(4)
(5)

Prohl´ aˇ sen´ı

Byl jsem sezn´amen s t´ım, ˇze na mou diplomovou pr´aci se plnˇe vzta- huje z´akon ˇc. 121/2000 Sb., o pr´avu autorsk´em, zejm´ena § 60 – ˇskoln´ı d´ılo.

Beru na vˇedom´ı, ˇze Technick´a univerzita v Liberci (TUL) neza- sahuje do m´ych autorsk´ych pr´av uˇzit´ım m´e diplomov´e pr´ace pro vnitˇrn´ı potˇrebu TUL.

Uˇziji-li diplomovou pr´aci nebo poskytnu-li licenci k jej´ımu vyuˇzit´ı, jsem si vˇedom povinnosti informovat o t´eto skuteˇcnosti TUL;

v tomto pˇr´ıpadˇe m´a TUL pr´avo ode mne poˇzadovat ´uhradu n´aklad˚u, kter´e vynaloˇzila na vytvoˇren´ı d´ıla, aˇz do jejich skuteˇcn´e v´yˇse.

Diplomovou pr´aci jsem vypracoval samostatnˇe s pouˇzit´ım uveden´e literatury a na z´akladˇe konzultac´ı s vedouc´ım m´e diplomov´e pr´ace a konzultantem.

Souˇcasnˇe ˇcestnˇe prohlaˇsuji, ˇze tiˇstˇen´a verze pr´ace se shoduje s elek- tronickou verz´ı, vloˇzenou do IS STAG.

Datum:

Podpis:

14. 5. 2018

(6)

Podˇ ekov´ an´ı

Dˇekuji vedouc´ımu pr´ace panu doc. Ing. Josefu Chaloupkovy, Ph.D.

za odborn´e veden´ı a poskytnut´e informace pˇri zpracov´an´ı z´avˇereˇcn´e diplomov´e pr´ace.

(7)

Abstrakt

Diplomov´a pr´ace se zab´yv´a vytvoˇren´ım inteligentn´ıho domovn´ıho syst´emu, urˇcen´emu ke zpracov´an´ı dat z bezpeˇcnostn´ıch a meteoro- logick´ych ˇcidel, a ˇr´ızen´ı vybran´ych domovn´ıch zaˇr´ızen´ı. Komplexn´ı ˇreˇsen´ı zahrnuje jak samotn´y domovn´ı syst´em, tak mobiln´ı, webovou a desktopovou aplikaci. V ´uvodu jsou definov´any z´akladn´ı pojmy a poˇzadovan´e vlastnosti. N´asleduje reˇserˇse a v´ybˇer vhodn´ych hard- warov´ych a softwarov´ych ˇreˇsen´ı. Na z´akladˇe reˇserˇse je navrˇzen kon- cept komplexn´ıho domovn´ıho syst´emu, kter´y je n´aslednˇe realizov´an v jednotliv´ych etap´ach. V´ystupem pr´ace je funkˇcn´ı c´ılov´e zaˇr´ızen´ı, kter´e aplikuje zvolen´e hardwarov´e i softwarov´e ˇreˇsen´ı.

Abstract

The master thesis deals with development of an intelligent home system, designed to process data from security and meteorological sensors, and to control of selected home devices. The solution inclu- des not only home system, but also mobile, internet and desktop applications. The introduction defines basic concepts and required functions, followed by a research and selection of the best hardware and software solutions. Based on the research, a concept of the complex system is designed and the solution is realized in separate stages. The result of this work is target device, which follows the chosen hardware and software solution.

(8)

Obsah

Seznam zkratek . . . 10

1 Uvod´ 11 2 Inteligentn´ı domovn´ı syst´em 12 2.1 Zabezpeˇcovac´ı syst´em . . . 12

2.1.1 Ustˇredna´ . . . 12

2.1.2 Ovladaˇc . . . 12

2.1.3 Detektor . . . 13

2.1.4 Komunik´ator . . . 13

2.2 Inteligentn´ı d˚um . . . 13

2.2.1 Centr´aln´ı jednotka . . . 14

2.3 Poˇzadovan´e vlastnosti . . . 14

2.3.1 Domovn´ı syst´em . . . 14

2.3.2 Desktopov´a aplikace . . . 15

2.3.3 Mobiln´ı aplikace. . . 15

2.3.4 Webov´a aplikace . . . 16

2.3.5 Komunikaˇcn´ı server . . . 16

3 Koncept 17 3.1 Domovn´ı syst´em . . . 17

3.1.1 R´ıd´ıc´ı jednotkaˇ . . . 17

3.1.2 Programovac´ı jazyk C++ . . . 18

3.1.3 V´yvojov´e prostˇred´ı Arduino . . . 18

3.1.4 Detektory . . . 19

3.1.5 Sp´ınac´ı prkvy . . . 19

3.1.6 Komunik´ator . . . 19

3.2 Desktopov´a aplikace . . . 20

3.2.1 Programovac´ı jazyk C# . . . 20

3.2.2 V´yvojov´e prostˇred´ı Visual Studio . . . 20

3.3 Mobiln´ı aplikace . . . 20

3.3.1 Programovac´ı jazyk Java . . . 21

3.3.2 V´yvojov´e prostˇred´ı Android Studio . . . 21

3.4 Webov´a aplikace . . . 21

3.5 Komunikaˇcn´ı server . . . 21

(9)

4 Prototyp domovn´ıho syst´emu 22

4.1 Vyuˇzit´ı mobiln´ıho telefonu . . . 22

4.1.1 Vyuˇzit´ı mobiln´ıho telefonu pro datovou komunikaci . . . 22

4.1.2 V´ybˇer vhodn´eho telefonu . . . 23

4.1.3 Zakoupen´y tlaˇc´ıtkov´y mobiln´ı telefon . . . 23

4.1.4 Informativn´ı kontaktov´an´ı v´yrobce . . . 24

4.1.5 Rozebr´an´ı mobiln´ıho telefonu . . . 24

4.1.6 Z´avˇer rozboru . . . 25

4.2 Prototyp domovn´ıho syst´emu . . . 25

4.2.1 Blokov´e sch´ema . . . 25

4.2.2 V´ysledn´y prototyp . . . 26

4.3 Firmware . . . 27

4.3.1 Nastaven´ı . . . 28

4.3.2 API . . . 28

4.3.3 Notifikace . . . 29

4.3.4 Chybov´a hl´aˇsen´ı . . . 30

5 Desktopov´a aplikace 31 5.1 Blokov´e sch´ema . . . 31

5.1.1 Connection . . . 32

5.1.2 Logic . . . 32

5.1.3 GUI . . . 32

5.2 Grafick´e uˇzivatelsk´e rozhran´ı. . . 32

5.2.1 Pˇripojen´ı/odpojen´ı ˇr´ıd´ıc´ı jednotky (Connection) . . . 33

5.2.2 Pˇrehled pˇripojen´ych komponent (Overview) . . . 34

5.2.3 Nastaven´ı senzoru (Sensor Edit) . . . 35

5.2.4 Nastaven´ı sp´ınaˇce (Switch Edit) . . . 35

5.2.5 Moˇznosti programu (Features) . . . 36

5.2.6 Notifikace . . . 36

5.3 Kompatibilita . . . 37

5.3.1 Testovan´e verze Windows 10 . . . 37

5.3.2 Podporovan´e ˇr´ıd´ıc´ı jednotky . . . 37

6 Mobiln´ı aplikace 39 6.1 Blokov´e sch´ema . . . 39

6.1.1 Communication . . . 39

6.1.2 Logic . . . 40

6.1.3 Activities . . . 40

6.2 Grafick´e uˇzivatelsk´e rozhran´ı. . . 40

6.2.1 Pˇrehled pˇripojen´ych komponent . . . 41

6.2.2 Podrobnosti vybran´e komponenty . . . 42

6.3 Kompatibilita . . . 43

7 Webov´a aplikace 44

(10)

8 Komunikaˇcn´ı server 45

8.1 Slep´e cesty v´yvoje . . . 45

8.1.1 Pˇr´ım´a komunikace mezi zaˇr´ızen´ımi . . . 45

8.1.2 Implementace serveru v ˇr´ıd´ıc´ı jednotce . . . 45

8.2 Blokov´e sch´ema . . . 45

8.2.1 Communication . . . 46

8.2.2 Logic . . . 46

8.2.3 Logger . . . 46

8.3 Zprovoznˇen´ı . . . 47

8.4 Konzolov´y v´ystup . . . 47

8.5 Testovac´ı klient . . . 47

9 Z´avˇer 49

Literatura 50

A Obsah pˇriloˇzen´eho CD 53

(11)

Seznam zkratek

API Application Programming Interface, rozhran´ı pro pˇr´ıstup k aplikaci COM Communication port, komunikaˇcn´ı rozhran´ı

GBS Glass break detector, detektor rozbit´ı skla

GPRS General Packet Radio Service, sluˇzba pro pˇrenos dat v mobiln´ı s´ıti GSM Groupe Sp´ecial Mobile, glob´aln´ı syst´em pro mobiln´ı komunikaci GUI Graphical User Interface, grafick´e uˇzivatelsk´e rozhran´ı

IDE Integrated development environment, integrovan´e v´yvojov´e prostˇred´ı IP Internet Protocol, internetov´y protokol

LAN Local Area Network, m´ıstn´ı poˇc´ıtaˇcov´a s´ıt’

LED Light-Emitting Diode, dioda emituj´ıc´ı svˇetlo PIR Passive infrared sensor, pasivn´ı infraˇcerven´e ˇcidlo SMS Short message service, sluˇzba kr´atk´ych textov´ych zpr´av

TUL Technical University of Liberec, Technick´a univerzita v Liberci USB Universal Serial Bus, univerz´aln´ı s´eriov´a sbˇernice

(12)

1 Uvod ´

Podnˇetem pro vytvoˇren´ı t´eto pr´ace mi byl m˚uj vlastn´ı z´ajem o zabezpeˇcovac´ı syst´emy, inteligentn´ı domovn´ı zaˇr´ızen´ı a propojov´an´ı hardware a software.

V dneˇsn´ı dobˇe je bˇeˇzn´e, ˇze je rodinn´y d˚um vybaven zabezpeˇcovac´ım zaˇr´ızen´ım, typicky proti zlodˇej˚um. V tˇechto pˇr´ıpadech se bˇeˇznˇe pouˇz´ıv´a tlaˇc´ıtkov´a kl´avesnice jako vstupn´ı prvek do zabezpeˇcovac´ıho syst´emu. V posledn´ıch letech se tak´e oblibˇe zaˇc´ınaj´ı tˇeˇsit dom´ac´ı asistenti, chytr´e domy a vˇseobecnˇe pˇrid´av´an´ı chytr´ych prvk˚u do naˇsich domov˚u, ˇr´ızen´ych vˇetˇsino pomoc´ı mobiln´ıho telefonu. Navazuj´ıc na svou bakal´aˇrskou pr´aci, zabezpeˇcovac´ı zaˇr´ızen´ı pro osobn´ı automobily, jsem mˇel v pl´anu tematicky pokraˇcovat touto cestou. Proto jsem se rozhodl pro spojen´ı klasick´eho zabezpeˇcovac´ıho syst´emu s chytr´ymi prvky, jako je napˇr´ıklad ovl´ad´an´ı pomoc´ı mo- biln´ı aplikace, nebo skrze webov´e rozhran´ı. Vlastn´ım ˇreˇsen´ı jsem se rozhodl dok´azat, ˇze tvorba takov´ehoto syst´emu je moˇzn´a, a tak´e, ˇze v´ysledn´y produkt je praktick´y z´aroveˇn. Pˇri t´eto pˇr´ıleˇzitosti jsem se rozhodl vytvoˇrit kompletn´ı paletu produkt˚u, kter´e reprezentuj´ı vˇsechny velk´e softwarov´e platformy, tedy desktopovou, mobiln´ı a webovou.

Sv´ym v´yzkumem jsem zjistil, ˇze vˇse lze realizovat. Proto jsem se rozhodl, ˇze v r´amci sv´e diplomov´e pr´aci provedu prvn´ı etapu, a to vytvoˇren´ı funkˇcn´ıho prototypu a implementace kompletn´ıho softwarov´eho ˇreˇsen´ı, kter´e jiˇz bude moˇzn´e vyuˇz´ıvat s pˇr´ıpadn´ym re´aln´ym produktem.

(13)

2 Inteligentn´ı domovn´ı syst´ em

Inteligentn´ı domovn´ı syst´em je kombinac´ı zabezpeˇcovac´ıho syst´emu a prvk˚u chytr´e dom´acnosti. T´ımto spojen´ım se zvyˇsuje komfort obyvatel domu, s c´ılem zv´yˇsit jejich pohodl´ı a zaruˇcit nejvyˇsˇs´ı moˇznou bezpeˇcnost. N´asleduj´ıc´ı ˇc´ast se vˇenuje vysvˇetlen´ı element´arn´ıch pojm˚u t´eto problematiky, kter´e se v dan´e t´ematice bˇeˇznˇe vyskytuj´ı.

Tato ˇc´ast rozdˇelena na zabezpeˇcovac´ı syst´em a inteligentn´ı d˚um, z kter´ychˇz se inte- ligentn´ı domovn´ı syst´em sest´av´a.

2.1 Zabezpeˇ covac´ı syst´ em

Elektronick´a zabezpeˇcovac´ı signalizace, neboli zabezpeˇcovac´ı syst´em, je zaˇr´ızen´ı, kter´e vizu´alnˇe nebo akusticky vyhlaˇsuje poplach a d´av´a na vˇedom´ı, ˇze nastaly nˇejak´e pot´ıˇze nebo doˇslo ke splnˇen´ı sledovan´e podm´ınky [21]. Jde tedy o zaˇr´ızen´ı, kter´e slouˇz´ı k ochranˇe osob a majetku. Syst´em je ˇr´ızen ´ustˇrednou a m˚uˇze se spustit analogovou (napˇr. dveˇrn´ı, ˇci okenn´ı ˇcidlo) i digit´aln´ı (detektor pohybu) detekc´ı. Ko- munikace mezi detektory a ´ustˇrednou m˚uˇze b´yt vedena kabelem, bezdr´atovˇe anebo kombinac´ı pˇredeˇsl´ych zp˚usob˚u, tj. jeden detektor m˚uˇze b´yt pˇripojen kabelem a druh´y bezdr´atovˇe [13].

2.1.1 Ustˇ ´ redna

Mozkem cel´eho syst´emu je ´ustˇredna. Propojena je s ostatn´ımi prvky syst´emu kabely nebo bezdr´atovˇe a obstar´av´a komunikaci mezi jednotliv´ymi komponenty syst´emu. V integrovan´e pamˇeti m´a uloˇzen´e nejd˚uleˇzitˇejˇs´ı informace a nastaven´ı [13]. V z´avislosti na pˇripojen´ych komponentech pak m˚uˇze r˚uznˇe reagovat na splnˇen´ı sledovan´ych podm´ınek. ˇCasto b´yv´a vybavena jenom t´ım nejnutnˇejˇs´ım pro vyvol´an´ı poplachu, to at’ uˇz akustick´eho (sir´ena), nebo tich´eho (informov´an´ı majitele) [21].

2.1.2 Ovladaˇ c

K ovl´ad´an´ı, pˇr´ıpadnˇe k programov´an´ı ´ustˇredny slouˇz´ı ovladaˇc. Dneˇsn´ı alarmy je moˇzn´e ovl´adat nˇekolika zp˚usoby. Jako ovladaˇc se nejˇcastˇeji pouˇz´ıv´a kl´avesnice vy- baven´a tlaˇc´ıtky, pˇr´ıpadnˇe ˇcteˇckou (ˇcipov´ymi kartami a pˇr´ıvˇeˇsky) nebo t´eˇz d´alkov´e ovl´ad´an´ı. U nˇekter´ych syst´em˚u se d´a pˇres kl´avesnici prov´est nastaven´ı cel´eho syst´emu.

Kl´avesnice slouˇz´ı k zastˇreˇzen´ı i odstˇreˇzen´ı syst´emu [12]. Dalˇs´ımi zp˚usoby je ovl´ad´an´ı

(14)

pˇres internet, kdy se vˇetˇsinou pouˇz´ıv´a integrovan´e webov´e rozhran´ı, ke kter´emu se uˇzivatel m˚uˇze pˇripojit po zad´an´ı hesla, nebo ovl´ad´an´ı pˇres mobil (SMS pˇr´ıkazy) [18].

2.1.3 Detektor

Detektor je prvek syst´emu, kter´y je rozm´ıstˇen v hl´ıdan´em objektu a m´a za ´ukol rea- govat aktivac´ı pˇri naruˇsen´ı (otevˇren´ı, pohyb, rozbit´ı atd.) a to tak, ˇze tuto informaci pˇred´a ´ustˇrednˇe, kter´a ji n´aslednˇe zpracuje [12]. Nejˇcastˇeji pouˇz´ıvan´e detektorov´e prvky jsou:

• Magnetick´y kontakt (dveˇrn´ı ˇcidlo)

• Detektor pohybu (PIR detektor)

• Detektor tˇr´ıˇstˇen´ı skla (GBS detektor)

• Detektor plynu

• Infra z´avora

2.1.4 Komunik´ ator

V pˇr´ıpadˇe nutnosti odesl´an´ı informac´ı o naruˇsen´ı objektu, pˇr´ıpadnˇe o odchylce od norm´aln´ıho provozn´ıho stavu zabezpeˇcovac´ıho syst´emu, je moˇzn´e vyuˇz´ıt komu- nik´ator. Ten m˚uˇze b´yt ˇreˇsen v´ıce zp˚usoby, ale bˇeˇznˇe se vyuˇz´ıv´a radiov´y vys´ılaˇc.

Pˇr´ıtomnost komunik´atoru v syst´emu, na rozd´ıl od ostatn´ıch ˇc´ast´ı, nen´ı podm´ınkou.

[12]. Nejˇcastˇejˇs´ı typy komunik´ator˚u jsou:

• GSM komunik´ator

• LAN komunik´ator

• Telefonn´ı komunik´ator

• Komunik´ator vyuˇz´ıvaj´ıc´ı radiov´e s´ıtˇe s vyhrazenou frekvenc´ı

2.2 Inteligentn´ı d˚ um

Inteligentn´ı d˚um, neboli chytr´a dom´acnost, znamen´a moˇznost ovl´ad´an´ı osvˇetlen´ı, elektroinstalace, termostatu, dom´ac´ıho alarmu, kamer nebo z´amku dveˇr´ı na d´alku skrze chytr´y telefon, tablet, ale i poˇc´ıtaˇc nebo televizi. Bˇeˇznˇe je vˇse propojeno centr´aln´ı jednotkou, kter´a vˇetˇsinou poskytuje d´alkov´e ovl´ad´an´ı skrze internet.

(15)

2.2.1 Centr´ aln´ı jednotka

Srdcem chytr´e dom´acnosti je centr´aln´ı jednotka (neboli ˇr´ıd´ıc´ı jednotka), kter´a komu- nikuje prostˇrednictv´ım konkr´etn´ıho protokolu. K takov´e jednotce je moˇzn´e kdyko- liv dokupovat dalˇs´ı zaˇr´ızen´ı, a tvoˇrit tak komplexn´ı chytrou dom´acnost. Ovl´ad´an´ı a ˇr´ızen´ı cel´eho syst´emu je velmi jednoduch´e a intuitivn´ı. Inteligentn´ı d˚um se tak´e star´a o zabezpeˇcen´ı dom´acnosti a poskytuje aktu´aln´ı pˇrehled informac´ı o sv´em stavu.

Nejˇcastˇejˇs´ı typy pˇripojovan´ych ˇr´ızen´ı:

• Osvˇetlen´ı

• Elektroinstalace

• Termostaty

• Zabezpeˇcen´ı

• Kamery

• Meteostanice

2.3 Poˇ zadovan´ e vlastnosti

Na z´akladˇe poˇzadovan´ych vlastnost´ı, byl sestaven seznam poˇzadavk˚u vˇsech ˇc´ast´ı inteligentn´ıho domovn´ıho syst´emu. Kaˇzd´a z pˇeti ˇc´ast´ı obsahuje popis poˇzadovan´ych vlastnost´ı a v´ysledn´y seznam poˇzadavk˚u.

2.3.1 Domovn´ı syst´ em

Z ´uvodn´ı ˇc´asti je zˇrejm´e, ˇze domovn´ı syst´em obsahuje jak prvky zabezpeˇcovac´ıho syst´emu, tedy mus´ı obsahovat detektory, komunik´ator a ´ustˇrednu. Z´aroveˇn vˇsak obsahuje prvky inteligentn´ıho domu, tedy mus´ı b´yt schopen monitorovat a ˇr´ıdit r˚uzn´a zaˇr´ızen´ı v dom´acnosti. V r´amci domovn´ıho syst´emu jsou v´yˇse zm´ınˇen´e prvky ˇr´ızeny ovladaˇcem. V t´eto pr´aci se jedn´a o desktopovou, mobiln´ı aplikaci a webovou aplikaci. Komunikace bude prob´ıhat pˇres internet.

Poˇzadavky na domovn´ı syst´em:

• Poskytnut´ı API

• Komunikace pˇres internet

• Vzd´alen´e ovl´ad´an´ı vˇsech pˇripojen´ych zaˇr´ızen´ı

• Vzd´alen´a spr´ava a monitoring vˇsech pˇripojen´ych zaˇr´ızen´ı

• Spuˇstˇen´ı poplachu pˇri splnˇen´ı podm´ınek (kontaktov´an´ı uˇzivatele)

• Komunikaci s desktopovou, mobiln´ı a webovou aplikac´ı

(16)

2.3.2 Desktopov´ a aplikace

Desktopov´a aplikace mus´ı b´yt schopna vyuˇz´ıt pln´eho potenci´alu ´ustˇredny, tedy umoˇznit kompletn´ı spr´avu a nastavov´an´ı jednotliv´ych komponent (sp´ınaˇc˚u a sen- zor˚u). Komunikace s ´ustˇrednou bude umoˇznˇena pomoc´ı s´eriov´e linky (COM port), v pˇr´ıpadˇe prototypu bude pouˇzito pˇripojen´ı skrze USB.

Poˇzadavky na desktopovou aplikaci:

• Komunikace po seriov´e lince

• Zobrazen´ı seznamu vˇsech pˇripojench komponent

• Zobrazen´ı vˇsech informac´ı o zvolen´e komponentˇe

• Zmˇena libovoln´eho nastaven´ı vˇsech komponent

• Sledov´an´ı aktu´aln´ıho stavu vˇsech komponent

• Pˇrid´av´an´ı nov´ych komponent

• Odstraˇnov´an´ı st´avaj´ıc´ıch komponent

• Notifikace v pˇr´ıpadˇe zmˇeny stav˚u senzor˚u

• Zmˇena stavu sp´ınaˇc˚u

• Pˇripojov´an´ı a odpojov´an´ı od zvolen´e ´ustˇredny

2.3.3 Mobiln´ı aplikace

Mobiln´ı aplikace je uˇcena pouze jako monitorovac´ı zaˇr´ızen´ı, ze kter´eho bude moˇzn´e sledovat stavy jednotliv´ych senzor˚u, pˇr´ıpadnˇe sp´ınat veˇsker´e sp´ınac´ı prvky. Jej´ı n´avrh je tedy znaˇcnˇe jednoduˇsˇs´ı oproti komplexnˇejˇs´ı desktopov´e aplikaci. Komu- nikace bude prob´ıhat pˇres internet.

Poˇzadavky na mobiln´ı aplikaci:

• Komunikace pˇres internet

• Zobrazen´ı seznamu vˇsech pˇripojench komponent

• Zobrazen´ı vˇsech informac´ı o zvolen´e komponentˇe

• Sledov´an´ı aktu´aln´ıho stavu vˇsech komponent

• Notifikace v pˇr´ıpadˇe zmˇeny stav˚u senzor˚u

• Zmˇena stavu sp´ınaˇc˚u

• Pˇripojov´an´ı a odpojov´an´ı od zvolen´e ´ustˇredny

(17)

2.3.4 Webov´ a aplikace

Od webov´e aplikace se oˇcek´av´a moˇznost sledov´an´ı aktu´aln´ıho denn´ı online. Od apli- kace se neoˇcek´av´a moˇznost editace, ani a jak´ekoliv ˇr´ızen´ı. Komunikace bude prob´ıhat pˇres internet.

Poˇzadavky na webovou aplikaci:

• Komunikace pˇres internet

• Sledov´an´ı aktu´aln´ıho stavu vˇsech komponent

2.3.5 Komunikaˇ cn´ı server

Komunikaˇcn´ı server je nutn´y pro nav´az´an´ı spojen´ı mezi ˇr´ıd´ıc´ı jednotkou a mobiln´ı a webovou aplikac´ı. Od serveru se oˇcek´av´a udrˇzov´an´ı a spr´ava vˇsech spojen´ı, stejnˇe tak jako propagace zpr´av do jejich c´ılov´ych destinac´ı. Komunikaci je nutn´e logovat a bude prob´ıhat pˇres internet.

Poˇzadavky na komunikaˇcn´ı server:

• Komunikace pˇres internet

• Udrˇzov´an´ı st´al´eho spojen´ı s klienty

• Zajiˇstˇen´ı komunikace mezi klienty

• Logov´an´ı prob´ıhaj´ıc´ı komunikace

(18)

3 Koncept

Na z´akladˇe poˇzadovan´ych vlastnost´ı a pˇrechoz´ıch zkuˇsenost´ı autora, byl vybr´an

3.1 Domovn´ı syst´ em

Domovn´ı syst´em je kombinac´ı zabezpeˇcovac´ıho zaˇr´ızen´ı a sp´ınac´ıch prvk˚u. Tˇemto ˇc´astem se budu vˇenovat n´ıˇze, kde vyberu nejvhodnˇejˇs´ı varianty.

3.1.1 R´ıd´ıc´ı jednotka ˇ

R´ıd´ıc´ı jednotka mus´ı b´ˇ yt schopna spravovat vˇsechny pˇripojen´e detektory, senzory a sp´ınac´ı prvky, a komunikovat s desktopovou a mobiln´ı aplikac´ı, a z´aroveˇn mus´ı ˇr´ıdit a zpracov´avat jednotliv´e komponenty. Jiˇz ze zad´an´ı diplomov´e je zˇrejm´e, ˇze ˇr´ıd´ıc´ı jednotkou bude v´yvojov´a platforma Arduino [25], kter´a je se sv´ymi perife- riemi [5] a ˇcipem Atmega [8], pˇr´ıpadnˇe ARM Cortex-M3, v´ıce neˇz vhodnou pro tyto ´uˇcely. Firmware ˇr´ıd´ıc´ı jednotky bude ps´an v jazyku C++ s nadstavbou Wi- ring (knihovna pro ˇr´ızen´ı hardwaru) [27] a v´yvoj bude prob´ıhat jak v ofici´aln´ım v´yvojov´em prostˇred´ı Arduino[6], tak v prostˇred´ı Visual Studio 2017 s rozˇs´ıˇren´ım Vi- sual Micro [24], kter´e poskytuje zv´yrazˇnov´an´ı syntaxe knihovny Wiring a umoˇzˇnuje komplikaci a nahr´av´an´ı k´odu pˇr´ımo na desku Arduino. Komunikace bude prob´ıhat skrze mobiln´ı datovou s´ıt’.

Zvolen´a ˇr´ıd´ıc´ı jednotka:

• Arduino DUE (914 Kˇc s DPH), (arduino-shop.cz)

(19)

Obr´azek 3.1: V´yvojov´a platforma Arduino DUE

3.1.2 Programovac´ı jazyk C++

V´yvoj softwaru bude prob´ıhat v programovac´ım jazyce C++ s nadstavbou v´yvojov´e platformy Wiring (knihovna Wire)[6], kter´a jazyk rozˇsiˇruje o nov´e pˇr´ıkazy, pro pˇr´ım´e ˇr´ızen´ı hardwarov´ych souˇc´astek, vˇse zastˇreˇseno sadou knihoven [2] (od tv˚urc˚u desky Arduino), kter´e pˇrid´avaj´ı nov´e funkce, aby potencion´aln´ı v´yvoj´aˇr nepotˇreboval hlubˇs´ı znalosti programov´an´ı a hardwaru. Tento kompletn´ı bal´ık pˇr´ıkaz˚u [4] je nˇekdy tak´e naz´yv´an programovac´ım jazykem Arduino [1].

3.1.3 V´ yvojov´ e prostˇ red´ı Arduino

Pro ˇc´ast v´yvoje bude pouˇzito ofici´aln´ı v´yvojov´e prostˇred´ı, od tv˚urc˚u desky Arduino s identick´ym n´azvem Arduino [6]. Jedn´a se o poˇc´ıtaˇcov´y software s otevˇren´ym zdro- jov´ym k´odem (open-source) [7], urˇcen´y k jednoduch´emu psan´ı a nahr´av´an´ı zdro- jov´ych k´od˚u na desku. Prostˇred´ı lze nainstalovat na operaˇcn´ı syst´em Windows, MAC a Linux. Z vlastn´ı zkuˇsenosti vyjmenuji v´yhody, mezi kter´e patˇr´ı zv´yraznˇen´ı a barevn´e rozliˇsen´ı jednotliv´ych pˇr´ıkaz˚u, pln´a podpora v´yvojov´e platformy Wiring, podpora vˇsech ofici´aln´ıch i neofici´aln´ıch desek Arduino, zabudovan´y klient pro ko- munikaci na s´eriov´e lince a dalˇs´ıch funkce. Nev´yhodou je absence pˇredv´ıd´an´ı a do- konˇcov´an´ı k´odu (predikce), n´apovˇeda pˇri vol´an´ı ˇc´ast´ı programu (funkc´ı, knihoven atd.), nemoˇznost krokov´an´ı programu a velice obecn´e chybov´e hl´aˇsky, kv˚uli kter´ym je n´aroˇcn´e odhalit pˇr´ıpadn´e chyby.

Jako alternativn´ı v´yvojov´e prostˇred´ı k IDE Arduino bylo zvoleno Visual Studio 2017, d´ıky dobr´emu zv´yraznˇen´ı syntaxe, moˇznost skryt´ı obsah˚u funkc´ı a krokov´an´ı k´odu, d´ıky rozˇs´ıˇren´ı Visual Micro [24], kter´e nav´ıc umoˇzˇnuje komplikaci a nahr´av´an´ı k´odu pˇr´ımo na desku Arduino. V´ıce o aplikaci Visual Studio n´ıˇze.

(20)

3.1.4 Detektory

Detektory jsou vˇsechny velmi podobn´e a proto staˇc´ı pˇripravit implementaci jejich sn´ım´an´ı. V pˇr´ıpadˇe detektor˚u mus´ı b´yt moˇzn´e pˇripojit libovoln´y detektor, kter´y lze nastavit jako sp´ınac´ı (norm´alnˇe rozepnut´y), nebo rozp´ınac´ı (norm´alnˇe sepnut´y). Pro testovac´ı ´uˇcely byly zvoleny dva detektory, kaˇzd´y jednoho typu.

Zvolen´e detektory:

• Dveˇrn´ı ˇcidlo (rozp´ınac´ı), (poskytl vedouc´ı)

• PIR detektor (sp´ınac´ı), (25 Kˇc s DPH), (aliexpress.com)

Obr´azek 3.2: Detektor pohybu (PIR detektor)

3.1.5 Sp´ınac´ı prkvy

U sp´ınac´ıch prvk˚u nen´ı nutn´e volit jednotliv´e komponenty, ale staˇc´ı pˇripravit imple- mentaci jejich sp´ın´an´ı. Pot´e je moˇzn´e pˇripojit libovolnou sp´ınatelnou souˇc´astku.

3.1.6 Komunik´ ator

Poˇzadavek na komunik´ator je pˇrenos dat na server pˇres mobiln´ı data. P˚uvodn´ı zad´an´ı jako komunik´ator urˇcuje mobiln´ı telefon, pomoc´ı kter´eho m´ame umoˇznit ˇr´ıd´ıc´ı jed- notce datov´e pˇrenosy. Zvolen byl nov´y a z´aroveˇn nejlevnˇejˇs´ı mobiln´ı telefon na trhu.

Tento zp˚usob pˇr´ıstupu do mobiln´ı datov´e s´ıtˇe se nezdaˇril a zad´an´ı bylo upraveno.

Byla zvolena alternativa v podobˇe GSM/GPRS modulu, kter´y byl zakoupen z ˇC´ıny, dodac´ı doba t´eto souˇc´astky, stejnˇe jako na vˇsechn ostatn´ıch, byla pˇres jeden ka- lend´aˇrn´ı mˇes´ıc.

Zvolen´e komunik´atory:

• Mobiln´ı telefon STK R45i Black (449 Kˇc s DPH), (alza.cz)

• GSM/GPRS modul (290 Kˇc s DPH), (aliexpress.com)

(21)

Obr´azek 3.3: Komunikaˇcn´ı modul GSM/GPRS - SIM808

3.2 Desktopov´ a aplikace

Na z´akladˇe poˇzadovan´ych vlastnost´ı byl zvolen c´ılov´y operaˇcn´ı syst´em Windows 10, jakoˇzto v Evropˇe nejrozˇs´ıˇrenˇejˇs´ı [11]. Programovac´ı jazyk C# a v´yvojov´e prostˇred´ı Visual Studio 2017. Jednotliv´e poˇzadavky kladen´e na desktopovou aplikaci lze nal´ezt n´ıˇze. Komunikace s aplikac´ı bude prob´ıhat skrze pˇripojen´ı USB (COM).

3.2.1 Programovac´ı jazyk C#

V´yvoj desktopov´e aplikace bude prob´ıhat v programovac´ım jazyce C#. Jedn´a se o vysoko´urovˇnov´y objektovˇe orientovan´y programovac´ı jazyk vyvinut´y firmou Micro- soft z´aroveˇn s platformou .NET Framework. C# lze vyuˇz´ıt k tvorbˇe datab´azov´ych program˚u, webov´ych aplikac´ı a str´anek, webov´ych sluˇzeb, formul´aˇrov´ych aplikac´ı ve Windows, softwaru pro mobiln´ı zaˇr´ızen´ı (PDA a mobiln´ı telefony) a dalˇs´ıch.

3.2.2 V´ yvojov´ e prostˇ red´ı Visual Studio

Pro v´yvoj softwaru bude pouˇzito v´yvojov´e prostˇred´ı (IDE) od Microsoftu, Visual Studio 2017. V´yvojov´e prostˇred´ı m˚uˇze b´yt pouˇzito pro v´yvoj konzolov´ych aplikac´ı a aplikac´ı s grafick´ym rozhran´ım. Visual Studio obsahuje editor k´odu podporuj´ıc´ı In- telliSense a refaktoring. IDE m´a integrovan´y debugger. Vestavˇen´e n´astroje zahrnuj´ı designer formul´aˇr˚u pro tvorbu aplikac´ı s GUI, designer webu, tˇr´ıd a datab´azov´ych sch´emat. Je moˇzn´e pˇrid´avat dodateˇcn´a rozˇs´ıˇren´ı.

3.3 Mobiln´ı aplikace

C´ılov´y operaˇcn´ı syst´em byl zvolen Android, jakoˇzto v Evropˇe nerozˇs´ıˇrenˇejˇs´ı [17]. Pro- gramovac´ı jazyk Java a v´yvojov´e prostˇred´ı a Android Studio. Jednotliv´e poˇzadavky kladen´e na mobiln´ı aplikaci lze nal´ezt n´ıˇze. Komunikace bude prob´ıhat skrze mobiln´ı datovou s´ıt’.

(22)

3.3.1 Programovac´ı jazyk Java

Java je objektovˇe orientovan´y programovac´ı jazyk, kter´y se pouˇz´ıv´a pro v´yvoj na platformˇe Android. Jedn´a se o jeden z nejpouˇz´ıvanˇejˇs´ıch programovac´ıch jazyk˚u na svˇetˇe. D´ıky sv´e pˇrenositelnosti je pouˇz´ıv´an pro programy, kter´e maj´ı pracovat na r˚uzn´ych syst´emech, jako napˇr´ıklad mobiln´ı telefony, r˚uzn´a zabudovan´a zaˇr´ızen´ı a aplikace pro desktopov´e poˇc´ıtaˇce.

3.3.2 V´ yvojov´ e prostˇ red´ı Android Studio

Android Studio je nov´e v´yvojov´e prostˇred´ı zaloˇzen´e na IntelliJ IDEA, vytvoˇren´e firmou Google (dnes jiˇz Alphabet Inc.). Je dostupn´e pro syst´emy Windows, Mac OS X a Linux. Souˇc´ast´ı instalace je samotn´e IDE, Android SDK Tools, kompil´ator An- droid a z´akladn´ı emul´atory s plnohodnotn´ym syst´emem Android. D´ıky emul´atoru lze testovat aplikace, pro libovolnou verzi syst´emu Android, nebo pro libovoln´e rozliˇsen´ı, bez fyzick´eho zaˇr´ızen´ı.

3.4 Webov´ a aplikace

Webov´a aplikace bude pro jednoduchost v´yvoje nav´az´ana na komunikaˇcn´ı server, jako webov´y n´ahled. Shodovat se tedy bude pouˇzit´y programovac´ı jazyk (C#) i v´yvojov´e prostˇred´ı (Visual Studio 2017).

3.5 Komunikaˇ cn´ı server

Operaˇcn´ı syst´em byl zvolen Windows 10, kv˚uli rychlosti a jednoduchosti v´yvoje.

Programovac´ı jazyk C# a v´yvojov´e prostˇred´ı Visual Studio 2017. Komunikace s aplikac´ı bude prob´ıhat skrze pevn´e pˇripojen´ı k internetu.

(23)

4 Prototyp domovn´ıho syst´ emu

4.1 Vyuˇ zit´ı mobiln´ıho telefonu

N´asleduj´ıc´ıˇc´ast pojedn´av´a o snaze vyuˇz´ıt levn´y tlaˇc´ıtkov´y mobiln´ı telefon pro pˇr´ıstup do datov´e s´ıtˇe, pˇresnˇeji vyuˇz´ıt jeho GSM/GPRS modulu, integrovan´em na desce te- lefonu. Pr´ace na t´eto ˇc´asti zabraly pˇribliˇznˇe dva mˇes´ıce, po kter´ych se tato cesta uk´azala jak slep´a, proto byla zavrhnuta.

Za vˇs´ım st´ala myˇslenka, ˇze existuje velk´e mnoˇzstv´ı poˇskozen´ych a nepouˇz´ıvan´ych tlaˇc´ıtkov´ych mobiln´ıch telefon˚u, kter´e jsou dnes jiˇz jednoduˇse nepouˇziteln´e. Ta- kov´y nepouˇziteln´y telefon je prakticky bezcenn´y, ale vˇetˇsinou st´ale obsahuje funkˇcn´ı souˇc´astky, kter´e je moˇzn´e vyuˇz´ıt.

Jedn´ım z c´ıl˚u pr´ace bylo zjistit, zda jiˇz existuj´ı jin´a ˇreˇsen´ı dan´eho probl´emu, pˇr´ıpadnˇe pokr´yt chybˇej´ıc´ı ˇc´ast tˇechto ˇreˇsen´ı, napˇr´ıklad pro nezdokumentovan´e mo- dely telefon˚u.

4.1.1 Vyuˇ zit´ı mobiln´ıho telefonu pro datovou komunikaci

Aktu´alnˇe se mobiln´ı telefony rozdˇeluj´ı do dvou hlavn´ıch kategori´ı. Telefony chytr´e (smartphone), a telefony klasick´e, tlaˇc´ıtkov´e.

U chytr´ych telefon˚u je z´ısk´an´ı pˇr´ıstupu do s´ıtˇe GPRS trivi´aln´ı. Staˇc´ı napsat soft- ware, kter´y tyto zdroje poskytne pˇres port USB a t´ım je probl´em vyˇreˇsen. Klasick´e telefony se dˇel´ı do dvou podkategori´ı.

Prvn´ı podkategorie jsou telefony s dokumentac´ı a s API. Nˇekter´e starˇs´ı telefony mˇeli otevˇren´e dokumentace a nˇekter´a dokonce i API pˇr´ımo pro tyto ´uˇcely (Motorola, Nokia). Pro tyto mobiln´ı telefony existuje velk´e mnoˇzstv´ı n´avod˚u a postup˚u, jak pˇripojen´ı do s´ıtˇe GPRS doc´ılit.

Druhou podkategori´ı jsou mobiln´ı telefony bez otevˇren´ych dokumentac´ı a bez API, kter´a by zpˇr´ıstupˇnovala zdroje mobiln´ıho telefonu. Pro tyto mobiln´ı telefony nebylo nalezeno ˇz´adn´e dostupn´e ˇreˇsen´ı, pˇritom jsou to telefony nejrozˇs´ıˇrenˇejˇs´ı, t´ım se staly pro tento projekt zaj´ımav´ymi.

Z´ısk´an´ı pˇr´ıstupu do s´ıtˇe GPRS, skrze:

• Chytr´y telefon (ˇreˇsen´ı existuj´ı)

• Klasick´y telefon s API (ˇreˇsen´ı existuj´ı)

• Klasick´y telefon bez API a dokumentace (ˇreˇsen´ı nenalazeno)

(24)

4.1.2 V´ ybˇ er vhodn´ eho telefonu

Vzhledem k v´ysledk˚um pr˚uzkumu bylo rozhodnuto, pokusit se o vyˇreˇsen´ı vyuˇzit´ı klasick´eho telefonu bez API a dokumentace. Prvn´ım ´ukolem bylo vybr´an´ı vhodn´eho tlaˇc´ıtkov´eho mobiln´ıho telefonu pro tyto ´uˇcely. Po proveden´ı pr˚uzkumu trhu bylo zjiˇstˇeno, ˇze je moˇzn´e vyb´ırat jak z bazarov´ych kus˚u, tak z nov´ych. Zaj´ımav´ym zjiˇstˇen´ım bylo, ˇze ceny nov´ych telefon˚u podporuj´ıc´ıch funkci GPRS se pohybuj´ı kolem 450 Kˇc s DPH za kus, zat´ım co bazarov´e kousky zaˇc´ınaj´ı na 600 Kˇc s DPH za kus. Vzhledem k niˇzˇs´ı cenˇe, z´aruce a garanci funkˇcnosti bylo rozhodnuto zakoupit nov´y model.

4.1.3 Zakoupen´ y tlaˇ c´ıtkov´ y mobiln´ı telefon

Pˇri v´ybˇeru nov´eho tlaˇc´ıtkov´eho telefonu byla hlavn´ım sledovan´ym prvkem cena a pˇr´ıtomnost GPRS. Bezkonkurenˇcnˇe nejlevnˇejˇs´ım telefonem byl tlaˇc´ıtkov´y mobil od britsk´eho v´yrobce STK R45i. Zakoupen byl prostˇrednictv´ım internetov´eho obchodu Alza.cz za cenu 419 Kˇc s DPH bez dopravy. Cena s dopravou ˇcinila celkov´ych 449 Kˇc s DPH.

Pˇred obdrˇzen´ım zakoupen´eho telefonu byl proveden pr˚uzkum, zda existuj´ı doku- mentace, nebo zda se jiˇz nˇekdo, s touto znaˇckou, pokusil o nˇeco podobn´eho. Kromˇe ofici´aln´ıho let´aku s velice obecn´ymi parametry pˇr´ıstroje nebylo moˇzn´e nal´ezt ˇz´adn´e veˇrejn´e dokumentace. Stejnˇe tak nebyly nalezeny ˇz´adn´e informace o tom, ˇze by nˇekdo prov´adˇel, tˇreba i rozbor, tohoto, ˇci jin´eho zaˇr´ızen´ı od t´eto znaˇcky. Ihned po obdrˇzen´ı bylo zah´ajeno vlastn´ı snaˇzen´ı o zpˇr´ıstupnˇen´ı GPRS.

Obr´azek 4.1: Zakoupen´y mobiln´ı telefon STK R45i

(25)

4.1.4 Informativn´ı kontaktov´ an´ı v´ yrobce

Bez existuj´ıc´ıch dokumentac´ı bylo rozhodnuto kontaktovat samotn´eho v´yrobce. Byl zasl´an email s vysvˇetlen´ım tohoto projektu a ˇz´adost´ı o poskytnut´ı dokumentaˇcn´ıch podklad˚u. Naps´ano bylo celkem na 3 oddˇelen´ı t´eto britsk´e spoleˇcnosti, pˇresnˇeji na obchodn´ı oddˇelen´ı, oddˇelen´ı podpory a servisn´ı centrum. Do jednoho t´ydne pˇriˇsla shodn´a odpovˇed’ od vˇsech tˇr´ı kontaktovan´ych oddˇelen´ı. Zpr´avou bylo, ˇze dokumen- tace nejsou schopni poskytnout a nemohou nijak pomoci.

Obr´azek 4.2: Jedna z odpovˇed´ı od spoleˇcnosti STK

4.1.5 Rozebr´ an´ı mobiln´ıho telefonu

Vzhledem k negativn´ı odpovˇedi v´yrobce byl zah´ajen vlastn´ı v´yzkum. Prvn´ım poku- sem byla komunikace s mobiln´ım telefonem skrze USB, stejnˇe jako to bylo moˇzn´e u telefon˚u s API k tˇemto ´uˇcel˚um. Pokusy o pˇr´ımou komunikaci po s´eriov´e lince byly systematicky prov´adˇeny po dobu tˇr´ı t´ydn˚u. Bez ´uspˇechu.

Po dohodˇe s vedouc´ım pr´ace, bylo rozhodnuto poruˇsit z´aruku a rozebrat telefon.

Prim´arn´ı zamˇeˇren´ı bylo na pˇr´ıpadn´e servisn´ı piny pro pˇripojen´ı a diagnostiku. Po hlubˇs´ım prozkoum´an´ı se podaˇrilo nal´ezt servisn´ı piny, kde byla snaha je co nejl´epe analyzovat a skrze nˇe komunikovat s mobiln´ım telefonem. Po nˇekolika t´ydnech opˇet bez ´uspˇechu.

(26)

Obr´azek 4.3: Servisn´ı piny

4.1.6 Z´ avˇ er rozboru

Po dvou mˇes´ıc´ıch snaˇzen´ı se z mobiln´ıho telefonu nepodaˇrilo z´ıskat ˇz´adnou infor- maci. Prvn´ı t´yden se podaˇrilo zachyt´avat nezn´am´e sign´aly, nicm´enˇe po hlubˇs´ım pˇrezkoum´an´ı spektr´aln´ım analyz´atorem bylo zjiˇstˇeno, ˇze se nejedn´a o ˇc´ıslicov´y sign´al.

Po dvou mˇes´ıc´ıch pr´ace, byla moˇznost vyuˇzit´ı tlaˇc´ıtkov´eho telefonu, pro pˇr´ıstup do s´ıtˇe GPRS, uzavˇrena. Od vyuˇzit´ı mobiln´ıho telefonu bylo tedy upuˇstˇeno a jako vstupn´ı br´ana do GPRS byl poˇr´ızen samostatn´y GSM/GPRS modul.

4.2 Prototyp domovn´ıho syst´ emu

Uˇ´celem prototypu je v´yvoj a testov´an´ı firmware a vz´ajemn´e komunikace s jednot- liv´ymi aplikacemi. Zapojen´ı mus´ı b´yt modul´arn´ı, snadno pˇrepojiteln´e a jednoduˇse pˇr´ıstupn´e k mˇeˇren´ı.

4.2.1 Blokov´ e sch´ ema

Prototyp je rozdˇelen do tˇrech hlavn´ıch blok˚u, kter´e spolu vz´ajemnˇe komunikuj´ı. Pod blokov´ym sch´ematem n´asleduje detailn´ı popis tˇechto jednotliv´ych ˇc´ast´ı.

(27)

USB Sériová linka

GPRS modul SIM808

Komunikační

zařízení Arduino Due Periferie

Atmel SAM3X8E ARM Cortex-M3

Dveřní čidlo

Senzoru pohybu (PIR)

Spínací prvek (LED dioda)

Obr´azek 4.4: Blokov´e sch´ema zapojen´ı prototypu domovn´ıho syst´emu

Komunikaˇcn´ı zaˇr´ızen´ı: Tento blok obsahuje vˇsechna zaˇr´ızen´ı zprostˇredkov´avaj´ıc´ı komunikaci. Vˇzdy potˇrebujeme komunikovat pomoc´ı USB a internetov´eho pˇripojen´ı.

V pˇr´ıpadˇe prototypu sloˇz´ı k USB komunikaci vestavˇen ˇradiˇc USU, kter´y se nach´az´ı na desce Arduino. Internetov´e pˇripojen´ı zprostˇredkov´av´a GPRS modul, v pˇr´ıpadˇe prototypu model SIM808, pˇr´ıpadnˇe podobn´y.

Arduino Due: Hlavn´ı blok Arduino Due obsahuje v´yvojovou desku Arduino Due, kter´a slouˇz´ı jako centr´aln´ı jednotka cel´eho domovn´ıho syst´emu. Do t´eto jednotky jsou zapojeny veˇsker´e periferie, at’ jiˇz komunik´atory, nebo senzory a sp´ınaˇce.

Periferie Blok periferie obsahuje vˇsechna ˇcidla, senzory, sp´ınaˇce a podobn´a zaˇr´ızen´ı, kter´e m´a za ´ukol ˇr´ıd´ıc´ı jednotka kontrolovat. Pro demonstraci z´akladn´ıch funkciona- lit bylo zvoleno dveˇrn´ı ˇcidlo, senzor pohybu PIR a sp´ınac´ı prvek typu LED dioda.

Vˇsechny tyto periferie lze jednoduˇse nahradit jinou libovolnou souˇc´astkou, pˇr´ıpadˇe nov´e pˇridat.

4.2.2 V´ ysledn´ y prototyp

Prototyp je schopen simulovat re´aln´e nasazen´ı domovn´ıho syst´emu. Obsahuje ˇr´ıd´ıc´ı desku Arduino, GSM modul pro pˇripojen´ı do s´ıtˇe internet, jeden sp´ınac´ı prvek (LED)

(28)

a dva senzory (PIR a dveˇrn´ı ˇcidlo). Kaˇzd´y senzor m´a svou vlastn´ı kontroln´ı diodu.

Ta signalizuje, zda je senzor sepnut´y ˇci nikoliv.

Obr´azek 4.5: Jeden z prototyp˚u na nep´ajiv´em poli

4.3 Firmware

Hlavn´ım ´uˇcelem firmware (software pro ˇr´ıd´ıc´ı jednotku) je moˇznost kompletn´ıho ˇr´ızen´ı domovn´ıho syst´emu a umoˇznˇen´ı komunikace, vˇcetnˇe poskytov´an´ı API pro pˇr´ıstup aplikac´ı. Software byl vyvinut pro platformu Arduino (ˇcip ARM Cortex-M3) v programovac´ım jazyce C++ s nadstavbou Wiring (knihovna pro ˇr´ızen´ı hardwaru) [27], za pomoc´ı v´yvojov´eho prostˇred´ı Visual Studio 2017 s rozˇs´ıˇren´ım Visual Micro [24], kter´e poskytuje zv´yrazˇnov´an´ı syntaxe knihovny Wiring a umoˇzˇnuje komplikaci a nahr´av´an´ı k´odu pˇr´ımo na desku Arduino.

D´ale budou zm´ınˇeny pouze ty ˇc´asti, kter´e jsou d˚uleˇzit´e pro pochopen´ı nastaven´ı zaˇr´ızen´ı a pˇr´ıstupu k aplikaci (API), samotn´y k´od lze nal´ezt v pˇr´ıloze a zmiˇnov´an zde nebude.

(29)

4.3.1 Nastaven´ı

Inicializaˇcn´ı ˇc´ast slouˇz´ı k prvotn´ımu nastaven´ı mikrokontroleru pˇred spuˇstˇen´ım. Toto nastaven´ı lze mˇenit pouze pˇred prvn´ı kompilac´ı k´odu, za bˇehu programu jej zmˇenit nelze. Jedinou cestou k jeho zmˇenˇe je tedy opˇetovn´a kompilace k´odu s upraven´ym nastaven´ım a n´asledn´e nahr´an´ı do mikrokontroleru.

Nastavit lze:

• Komunikaˇcn´ı rychlost (baudRate)

• Maxim´aln´ı poˇcet senzor˚u

• Maxim´aln´ı poˇcet sp´ınaˇc˚u

• K´ody chybov´ych hl´aˇsek

• Kl´ıˇcov´a slova API

4.3.2 API

Funkce API jsou nazv´any podle sv´e ˇcinnosti. Pˇri vol´an´ı jednotliv´ych funkc´ı se pos´ıl´a nejdˇr´ıve n´azev funkce, kter´e n´asleduj´ı kulat´e z´avorky, tedy

”(“ a

”)“, v nichˇz jsou uvedeny jednotliv´e parametry. Kaˇzd´y jeden parametr je oddˇelen ˇc´arkou. Ve v´ysledku m˚uˇze v´ystup vypadat napˇr´ıklad takto

”SetSensor(10,5)“. V n´asleduj´ıc´ı tabulce jsou vyps´any vˇsechny dostupn´e funkce, typu getter.

Funkce Parametry Popis Vrac´ı

GetAllSensors() / Vrac´ı list vˇsech senzor˚u id, pin, name, state GetAllSwitches() / Vrac´ı list vˇsech sp´ınaˇc˚u id, pin, name, state

Tabulka 4.1: Tabulka API - Getters Uk´azka vr´acen´ych senzor˚u:

Sensors((Id = 0,Pin = 8,Name = Door Sensor,State = 0,Type = 0)(Id = 1,Pin = 7,Name = PIR Sensor,State = 0,Type = 1))

Uk´azka vr´acen´ych sp´ınaˇc˚u:

Switches((Id = 0,Pin = 6,Name = Led Switch,State = 0)) Dalˇs´ı tabulka obsahuje v´ypis vˇsech dostupn´ych funkc´ı, typu setter.

(30)

Dotaz Parametry Popis Vrac´ı SetSensorName() id, name Zmˇena jm´ena senzoru OK, ERROR SetSwitchName() id, name Zmˇena jm´ena sp´ınaˇce OK, ERROR SetSensorPin() id, pin Zmˇena pinu senzoru OK, ERROR SetSwitchPin() id, pin Zmˇena pinu sp´ınaˇce OK, ERROR SetSensorType() id, type Zmˇena typu senzoru OK, ERROR SetSwitchState() id, state Zmˇena stavu sp´ınaˇce OK, ERROR AddSensor() pin, name, type Pˇrid´an´ı nov´eho senzoru OK, ERROR AddSwitch() pin, name, state Pˇrid´an´ı nov´eho sp´ınaˇce OK, ERROR

DeleteSensor() id Smaz´an´ı senzoru OK, ERROR

DeleteSwitch() id Smaz´an´ı sp´ınaˇce OK, ERROR

Tabulka 4.2: Tabulka API - Setters U nastavovac´ıch dotaz˚u mus´ı b´yt

”id“ a

”pin“ ˇc´ıslo od 0 do 100,

”type“ a

”state“

mus´ı b´yt ˇc´ıseln´e hodnoty 0 (false) nebo 1 (true) a

”name“ mus´ı b´yt maxim´alnˇe 30 znak˚u dlouh´e (30 byt˚u). Pro

”state“ znamen´a 1 zapnuto, 0 vypnuto. Pro

”type“

znamen´a 1

”norm´alnˇe vypnuto / push to make“ a 0

”norm´alnˇe zapnuto / push to break“. Pokud jedna z podm´ınek nebude splnˇena, dotaz bude odm´ıtnut. Para- metr ”ID“ lze z´ıskat pomoc´ı pˇr´ıkazu

”GetAllSensors()“ a

”GetAllSwitches“ z jiˇz existuj´ıc´ıch zaˇr´ızen´ı.

Uk´azka pˇrid´an´ı nov´eho senzoru:

AddSensor(8, Muj novy senzor, 0) Uk´azka zmˇeny pinu senzoru:

SetSensorName(1, Moje nove jmeno senzoru) Uk´azka smaz´an´ı sp´ınaˇce:

DeleteSwitch(1)

4.3.3 Notifikace

R´ıd´ıc´ı jednotka m´ˇ a uloˇzen´e vˇsechny posledn´ı stavy senzor˚u a pˇri kaˇzd´em pr˚uchodu hlavn´ı smyˇckou probˇehne ˇcten´ı, pomoc´ı funkce

”checkSensorStateChangedAndSen- dIfTrue()“. Pokud nov´y stav nesouhlas´ı se star´ym, je zasl´ana notifikace s ID zaˇr´ızen´ı a aktu´aln´ım stavem. Pot´e z´aleˇz´ı na c´ılov´e aplikaci, jak informaci zpracuje.

(31)

Uk´azka notifikace:

Sensor(Id = 1,State = 0)

4.3.4 Chybov´ a hl´ aˇ sen´ı

Chybov´a hl´aˇsen´ı (pˇri ne´uspˇeˇsn´em proveden´ı operace nebo jin´e chybˇe) byla p˚uvodnˇe tvoˇrena pomoc´ı stavov´ych k´od˚u HTML [14]. Z d˚uvodu nedostatku pamˇeti (pˇri v´yvoji na platformˇe Arduino Uno) byla nahrazena jednoduch´ym

”OK“ a

”ERROR“. Kon- trola chyb se prov´ad´ı vˇzdy pˇri zpracov´av´an´ı kter´ekoliv z operac´ı podporuj´ıc´ı API.

Vˇzdy se kontroluje, zda je moˇzn´e zapsat, zda se provedl z´apis, zda je nov´a hodnota po pˇreˇcten´ı stejn´a jako zapisovan´a, a tak d´ale. Pokud nastane chyba, je vˇse vr´aceno do p˚uvodn´ıho stavu. Pokud pˇr´ıkaz nebyl rozpozn´an, nebo nesplˇnuje krit´eria tohoto API, je vr´acena chybov´a hl´aˇska o nerozpozn´an´ı pˇr´ıkazu.

Uk´azka odpovˇedi pˇri nerozpozn´an´ı pˇr´ıkazu:

Command ’SetSensor(15,5)’ not recognized.

(32)

5 Desktopov´ a aplikace

Hlavn´ım ´uˇcelem desktopov´e aplikace je moˇznost kompletn´ıho nastaven´ı a monito- rov´an´ı zabezpeˇcovac´ıho zaˇr´ızen´ı. Aplikace se zamˇeˇruje zejm´ena na spr´avu (vytv´aˇren´ı, upravov´an´ı, maz´an´ı) vˇsech senzor˚u a sp´ınaˇc˚u. Software byl vyvinut pro operaˇcn´ı syst´em Windows v programovac´ım jazyce C#, za pomoc´ı IDE Visual Studio 2017.

Design byl inspirovan´y manu´alem jednotn´eho vizu´aln´ıho stylu TUL [15].

5.1 Blokov´ e sch´ ema

K´od aplikace je rozdˇelen do tˇrech hlavn´ıch blok˚u, kter´e spolu vz´ajemnˇe komunikuj´ı.

Pod blokov´ym sch´ematem n´asleduje detailn´ı popis tˇechto jednotliv´ych ˇc´ast´ı.

SerialPort Connection Arduino Operations

Connection Logic GUI

Logic GUI Controller

Connection Overview

Features Sensor Switch

. . .

Obr´azek 5.1: Blokov´e sch´ema objektov´eho n´avrhu aplikace

(33)

5.1.1 Connection

Tento blok slouˇz´ı k pˇripojen´ı ˇr´ıd´ıc´ı jednotky skrze s´eriovou linku (SerialPort Con- nection), po kter´e komunikuje za pomoc´ı API, poskytovan´e touto jednotkou. Po nav´az´an´ı spojen´ı se urˇc´ı typ pˇripojen´e ˇr´ıd´ıc´ı jednotky, kv˚uli poskytnut´ı seznamu pouˇziteln´ych pin˚u. V´ystupem tohoto bloku jsou funkce pro jednoduch´e zapisov´an´ı a ˇcten´ı z jednotky (Arduino Operations), vˇcetnˇe kompletn´ıho seznamu pouˇziteln´ych pin˚u t´eto jednotky. Seznam podporovan´ych ˇr´ıd´ıc´ıch jednotek Arduino lze nal´ezt v ˇc´asti Kompatibilita.

5.1.2 Logic

Logic je hlavn´ı vl´akno, kter´e naˇc´ıt´a veˇsker´e viditeln´e ˇc´asti aplikace (GUI Cont- roller) z bloku GUI a z´aroveˇn zprostˇredkov´av´a komunikaci mezi blokem Connection a jednotliv´ymi funkcemi v oknech aplikace (GUI). Nach´az´ı se zde tedy napojen´ı na Arduino Operations z bloku Connection. Z´aroveˇn zpracov´av´a vˇsechny informace, pˇrich´azej´ıc´ıch smˇerem od ˇr´ıd´ıc´ı jednotky (napˇr´ıklad notifikace, chybov´a hl´aˇsen´ı, sta- vov´e k´ody atd.).

5.1.3 GUI

Jednotliv´e funkce aplikace, vˇcetnˇe jejich grafick´eho uˇzivatelsk´eho rozhran´ı posky- tuje blok GUI. Napˇr´ıklad Overview poskytuje GUI pro pˇrehled vˇsech pˇripojen´ych senzor˚u a sp´ınaˇc˚u, Senzor poskytuje GUI pro vytv´aˇren´ı a upravov´an´ı senzor˚u. Tyto funkce jsou vyuˇz´ıv´any v bloku Logic, za pomoc´ı GUI Controlleru, kter´y je naˇc´ıt´a do hlavn´ıho okna aplikace.

5.2 Grafick´ e uˇ zivatelsk´ e rozhran´ı

V t´eto ˇc´asti textu budou zm´ınˇeny pouze ty ˇc´asti GUI, kter´e jsou d˚uleˇzit´e pro po- chopen´ı ovl´ad´an´ı aplikace.

(34)

5.2.1 Pˇ ripojen´ı/odpojen´ı ˇ r´ıd´ıc´ı jednotky (Connection)

Obr´azek 5.2: Okno s moˇznost´ı pˇripojen´ı/odpojen´ı ˇr´ıd´ıc´ı jednotky

Z´aloˇzka Connection slouˇz´ı k pˇripojen´ı ˇci odpojen´ı ˇr´ıd´ıc´ı jednotky. Tato z´aloˇzka hl´ıd´a, zda je pˇripojen´ı st´ale aktivn´ı. Pˇri ztr´atˇe spojen´ı ihned informuje uˇzivatele a uprav´ı chov´an´ı cel´e aplikace. Z´aloˇzka rovnˇeˇz hl´ıd´a, zda se neobjevilo nov´e zaˇr´ızen´ı k pˇripojen´ı, pokud ano, informuje uˇzivatele a zobraz´ı novˇe dostupn´a zaˇr´ızen´ı.

Zaˇr´ızen´ı pro pˇripojen´ı se vyb´ır´a pomoc´ı Port, kter´e obsahuje seznam vˇsech do- stupn´ych COM port˚u. K vybran´emu COM portu je n´aslednˇe zjiˇstˇen n´azev zaˇr´ızen´ı, kter´y se objev´ı v Device. Rychlost komunikace (BaudRate), lze vybrat ze stan- dardn´ıch komunikaˇcn´ıch rychlost´ı [9]. Vybran´a komunikaˇcn´ı rychlost mus´ı b´yt stejn´a, jako v ˇr´ıd´ıc´ı jednotce. Automaticky nastaven´a hodnota 9600 by mˇela odpov´ıdat pˇrednastaven´e rychlosti ˇr´ıd´ıc´ı jednotky.

Po zvolen´ı ˇr´ıd´ıc´ı jednotky a komunikaˇcn´ı rychlosti staˇc´ı zm´aˇcknou oranˇzov´e tlaˇc´ıtko Connect pro pˇripojen´ı, pˇr´ıpadnˇe Disconnect pro odpojen´ı.

Dostupn´e komunikaˇcn´ı rychlosti (BaudRate):

• 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200

(35)

5.2.2 Pˇ rehled pˇ ripojen´ ych komponent (Overview)

Obr´azek 5.3: Okno s pˇrehledem jednotliv´ych komponent

Pˇrehled pˇripojen´ych komponent (Overview) slouˇz´ı pro zobrazen´ı vˇsech dostupn´ych sp´ınaˇc˚u a senzor˚u, kter´e jsou v ˇr´ıd´ıc´ı jednotce dostupn´e. Obsah se generuje dyna- micky pod sebe, lze tedy zobrazit neomezen´y poˇcet zaˇr´ızen´ı (po pˇreteˇcen´ı viditeln´e ˇc´asti se objev´ı scrollbar). Kaˇzd´y dynamick´y ˇr´adek je zobrazen dle sv´eho typu, tedy zda se jedn´a o senzor nebo sp´ınaˇc. U sp´ınaˇc˚u lze mˇenit jejich aktu´aln´ı stav, u sen- zor˚u lze aktu´aln´ı stav pouze sledovat. V obou pˇr´ıpadech lze mˇenit intern´ı nastaven´ı kaˇzd´eho zaˇr´ızen´ı, pomoc´ı tlaˇc´ıtka na prav´e stranˇe. V pˇr´ıpadˇe, ˇze ˇz´adn´a zaˇr´ızen´ı neexistuj´ı, je uˇzivatel upozornˇen.

Z´ˇadn´a data nejsou editov´ana v objektech uvnitˇr aplikace, ale ˇz´adosti o zmˇenu jsou zas´ıl´any do ˇr´ıd´ıc´ı jednotky. Po obdrˇzen´ı odpovˇedi se bud’ projev´ı poˇzadovan´a zmˇena, nebo je zobrazeno chybov´e hl´aˇsen´ı. V obou pˇr´ıpadech je uˇzivatel upozornˇen zda zmˇena probˇehla, ˇci zda neprobˇehla.

(36)

5.2.3 Nastaven´ı senzoru (Sensor Edit)

Obr´azek 5.4: Okno s nastaven´ım senzoru

Nastaven´ı senzoru slouˇz´ı k zmˇenˇe intern´ıho nastaven´ı uvnitˇr ˇr´ıd´ıc´ı jednotky. Lze mˇenit n´azev zaˇr´ızen´ı (omezeno na 30 znak˚u), pin na kter´em se senzor nach´az´ı, typ senzoru (rozp´ınac´ı, sp´ınac´ı) a posledn´ı moˇznost´ı je smaz´an´ı senzoru. V´ybˇer pin˚u z´avis´ı vˇzdy na pˇripojen´e desce. Pro tento ´uˇcel byl vytvoˇren kompletn´ı seznam vˇsech testovan´ych a kompatibiln´ıch desek, kter´e lze k softwaru pˇripojit. Kompletn´ı se- znam desek, kter´e lze pouˇz´ıt, je k nalezen´ı v ˇc´asti textu nazvan´e Podporovan´e ˇr´ıd´ıc´ı jednotky.

Z´ˇadn´a data nejsou editov´ana v objektech uvnitˇr aplikace, ale ˇz´adosti o zmˇenu jsou zas´ıl´any do ˇr´ıd´ıc´ı jednotky. Po obdrˇzen´ı odpovˇedi se bud’ projev´ı poˇzadovan´a zmˇena, nebo je zobrazeno chybov´e hl´aˇsen´ı. V obou pˇr´ıpadech je uˇzivatel upozornˇen zda zmˇena probˇehla, ˇci zda neprobˇehla.

5.2.4 Nastaven´ı sp´ınaˇ ce (Switch Edit)

Nastaven´ı je t´emˇeˇr identick´e s pˇredchoz´ım, proto nen´ı nutn´e n´ahledov´y obr´azek.

Lze mˇenit n´azev (omezeno na 30 znak˚u), pin na kter´em se sp´ınaˇc nach´az´ı. Jedinou zmˇenou moˇznost zmˇeny stavu tohoto sp´ınaˇce (zapnuto/vypnuto).

Z´ˇadn´a data nejsou editov´ana v objektech uvnitˇr aplikace, ale ˇz´adosti o zmˇenu jsou zas´ıl´any do ˇr´ıd´ıc´ı jednotky. Po obdrˇzen´ı odpovˇedi se bud’ projev´ı poˇzadovan´a zmˇena, nebo je zobrazeno chybov´e hl´aˇsen´ı. V obou pˇr´ıpadech je uˇzivatel upozornˇen zda zmˇena probˇehla, ˇci zda neprobˇehla.

(37)

5.2.5 Moˇ znosti programu (Features)

Tato z´aloˇzka zpˇr´ıstupˇnuje r˚uzn´a nastaven´ı a funkce, kter´e nejsou bˇeˇznˇe potˇrebn´e.

Pˇrehled funkc´ı:

• Pˇridat nov´y senzor

• Pˇridat nov´y sp´ınaˇc

• Znovu naˇc´ıst vˇsechna data z ˇr´ıd´ıc´ı jednotky

• Zobrazovat notifikace, pokud se zmˇen´ı stav senzoru (pˇrep´ınaˇc)

• Zobrazovat notifikace, pokud se senzor navr´at´ı do v´ychoz´ıho stavu (pˇrep´ınaˇc)

5.2.6 Notifikace

Aplikace podporuje ˇsirokou ˇsk´alu notifikac´ı, upozornˇen´ı a varovn´ych hl´aˇsen´ı, kter´a slouˇz´ı pro upozornˇen´ı uˇzivatele na nastalou situaci. Napˇr´ıklad se jedn´a o zmˇenu stavu pin˚u, chybov´e stavy ˇr´ıd´ıc´ı jednotky, nebo odpojen´ı zaˇr´ızen´ı. Notifikace se zachyt´avaj´ı v hlavn´ım oknˇe, v ˇc´asti k´odu nazvan´e

”Autocalled functions (Events from Arduino)“, pomoc´ı event˚u.

Pˇrehled implementovan´ych notifikac´ı:

• Pˇripojen´ı zabezpeˇcovac´ıho zaˇr´ızen´ı

• Odpojen´ı zabezpeˇcovac´ıho zaˇr´ızen´ı

• Ztr´ata spojen´ı zabezpeˇcovac´ıho zaˇr´ızen´ı

• Automatick´y pokus o pˇripojen´ı se nezdaˇril

• Stav sp´ınaˇce pˇrenastaven

• Stav senzoru se zmˇenil

• Intern´ı chyba ˇr´ıd´ıc´ı jednotky

• Jm´eno se podaˇrilo/nepodaˇrilo zmˇenit

• PIN se podaˇrilo/nepodaˇrilo zmˇenit

• Typ senzoru se podaˇrilo/nepodaˇrilo zmˇenit

• Nov´y senzor se podaˇrilo/nepodaˇrilo pˇridat

• Nov´y sp´ınaˇc se podaˇrilo/nepodaˇrilo pˇridat

• Komponenty arduina se podaˇrilo/nepodaˇrilo znovu naˇc´ıst

• Nastaven´ı notifikac´ı zmˇenˇeno

(38)

5.3 Kompatibilita

5.3.1 Testovan´ e verze Windows 10

Desktopov´a aplikace byla testov´ana pod operaˇcn´ım syst´emem Windows 10 ve vˇsech (v dobˇe psan´ı pr´ace) vydan´ych sestav´ach a pro tento syst´em byla tak´e optima- lizov´ana. Nicm´enˇe c´ılov´a platforma Microsoft .NET Framework 4.5.2 [26] by mˇela zajiˇst’ovat zpˇetnou kompatibilitu aˇz do syst´emu Windows Vista. Jmenovitˇe pro Win- dows Vista SP2, Windows 7 SP1, Windows 8, Windows 8.1, Windows 10 a novˇejˇs´ı [16].

Seznam vˇsech testovan´ych sestav syst´emu Windows 10:

• Version 1507 - Build 10.0.10240 (ˇcist´a instalace syst´emu)

• Version 1511 - Build 10.0.10586 (November Update)

• Version 1607 - Build 10.0.14393 (Anniversary Update)

• Version 1703 - Build 10.0.15063 (Creators Update)

• Version 1709 - Build 10.0.16299 (Fall Creators Update)

• Version 1803 - Build 10.0.17134 (April 2018 Update)

5.3.2 Podporovan´ e ˇ r´ıd´ıc´ı jednotky

R´ıd´ıc´ı jednotka, v pˇr´ıpadˇˇ e tohoto prototypu deska Arduino, existuje v nˇekolika va- riant´ach [3]. Jako ˇr´ıd´ıc´ı jednotku je vhodn´e pouˇz´ıt jednu z ˇrady produkt˚u ENHAN- CED FEATURES (Mega, Due a dalˇs´ı) [3], vzhedem k tomu, ˇze obsahuj´ı dostateˇcn´e mnoˇzstv´ı pamˇeti [10] pro udrˇzov´an´ı vˇetˇs´ıho mnoˇzstv´ı senzor˚u a sp´ınaˇc˚u. Vybran´e jednotky, kter´e jsou pro tento projekt pouˇziteln´e, byly otestov´any a zaˇrazeny mezi jednotky podporovan´e. Tyto podporovan´e jednotky se vyznaˇcuj´ı t´ım, ˇze desktopov´a aplikace obsahuje seznam pouˇziteln´ych pin˚u pro kaˇzdou z tˇechto desek. Tento seznam se z´ısk´av´a ihned po pˇripojen´ı jednotky, a to na z´akladˇe n´azvu desky poskytnut´eho ˇradiˇcem. Pokud pˇripojen´a deska nen´ı v seznamu, pouˇzije se seznam pin˚u pro desku Arduino Uno. V takov´emto pˇr´ıpadˇe nen´ı zaruˇcena spr´avn´a funkˇcnost softwaru. Po- kud pouˇzit´y pin nen´ı v seznamu pin˚u desky, zaˇr´ızen´ı na tomto pinu nebude moˇzn´e ovl´adat, upravovat, ani s n´ım jakkoliv pracovat.

Seznam vˇsech podporovan´ych ˇr´ıd´ıc´ıch jednotek:

• Arduino/Genuino Uno (nedoporuˇceno)

• Arduino/Genuino Mega

• Arduino/Genuino Mega 2560

• Arduino Due (doporuˇceno)

(39)

Seznam desek kompatibiln´ıch s Arduino/Genuino Uno:

• Arduino/Genuino Duemilanove

• Arduino/Genuino Diecimila

• Arduino/Genuino Nano

• Arduino/Genuino NG

• Arduino/Genuino Mini

• Arduino/Genuino Extreme

• Arduino/Genuino USB

• Arduino/Genuino Serial

• Arduino/Genuino 101

(40)

6 Mobiln´ı aplikace

Hlavn´ım ´uˇcelem mobiln´ı aplikace je ˇcist´e monitorov´an´ı ˇr´ıd´ıc´ı jednotky. Nen´ı tedy moˇzno mˇenit jak´ekoliv nastaven´ı (k ˇcemuˇz slouˇz´ı desktopov´a aplikace). Tato aplikace byla vyvinuta pro mobiln´ı operaˇcn´ı syst´em Android 4.0.3 (Ice Cream Sandwich - API 15) a vyˇsˇs´ı, v programovac´ım jazyce Java, za pomoc´ı IDE Android Studio 2.3.2.

Design byl inspirovan´y manu´alem jednotn´eho vizu´aln´ıho stylu TUL [15].

6.1 Blokov´ e sch´ ema

K´od aplikace je rozdˇelen do tˇrech hlavn´ıch blok˚u, kter´e spolu vz´ajemnˇe komunikuj´ı.

Pod blokov´ym sch´ematem n´asleduje detailn´ı popis tˇechto jednotliv´ych ˇc´ast´ı.

GPRS Client Operations

Communication Logic Activities

Logic Activity Controller

Overview Item Detail

Menu

Obr´azek 6.1: Blokov´e sch´ema objektov´eho n´avrhu aplikace

6.1.1 Communication

Tento blok slouˇz´ı k pˇripojen´ı ˇr´ıd´ıc´ı jednotky skrze internetov´e pˇripojen´ı (GPRS), za pomoc´ı mobiln´ı datov´e s´ıtˇe. Toto pˇripojen´ı komunikuje pomoc´ı API, poskytovan´e ˇr´ıd´ıc´ı jednotkou. Po nav´az´an´ı spojen´ı se zaˇz´ad´a o vˇsechna dostupn´a data, kter´a m˚uˇze

(41)

ˇr´ıd´ıc´ı jednotka poskytnout. Samotnou komunikaci zpracov´av´a vl´akno GPRS Client, kter´e je napojen´e na Operations, kde se nach´az´ı implementace API.

Aby internetov´a komunikace fungovala, musel b´yt naps´an komunikaˇcn´ı server, kter´y je pevn´ym bodem v s´ıti. Server na dan´e IP adrese a portu, zajiˇst’uje komunikaci vˇsech existuj´ıc´ıch ˇr´ıd´ıc´ıch jednotek a mobiln´ıch aplikac´ı. V´ıce o t´eto problematice v ˇc´asti textu nazvan´e Komunikaˇcn´ı server.

6.1.2 Logic

Blok Logic je hlavn´ı vl´akno, kter´e d´ıky Activity Controlleru naˇc´ıt´a veˇsker´e viditeln´e ˇc´asti aplikace z bloku Activities a z´aroveˇn zprostˇredkov´av´a komunikaci mezi blokem Communication a jednotliv´ymi funkcemi v oknech aplikace (Activities). Nach´az´ı se zde tedy napojen´ı na Arduino Operations z bloku Communication. Z´aroveˇn zpra- cov´av´a vˇsechny informace, pˇrich´azej´ıc´ıch smˇerem od ˇr´ıd´ıc´ı jednotky (napˇr´ıklad no- tifikace, chybov´a hl´aˇsen´ı, stavov´e k´ody atd.).

6.1.3 Activities

Jednotliv´e funkce aplikace, vˇcetnˇe jejich GUI, poskytuje blok Activites, v Androidu nazvan´em jako Activity. Napˇr´ıklad Overview poskytuje Activity pro pˇrehled vˇsech pˇripojen´ych senzor˚u a sp´ınaˇc˚u, Item Detail poskytuje Activity pˇrehled o vˇsech do- stupn´ych informac´ı, kter´e o vybran´e komponentˇe aplikace m´a, a Menu poskytuje Acitivity s nastaven´ım. Tyto funkce jsou vyuˇz´ıv´any v bloku Logic, za pomoc´ı Acti- vity Controlleru, kter´y je naˇc´ıt´a do hlavn´ıho okna aplikace.

6.2 Grafick´ e uˇ zivatelsk´ e rozhran´ı

V t´eto ˇc´asti textu budou zm´ınˇeny pouze ty ˇc´asti GUI (Activities), kter´e jsou d˚uleˇzit´e pro pochopen´ı ovl´ad´an´ı aplikace.

(42)

6.2.1 Pˇ rehled pˇ ripojen´ ych komponent

Obr´azek 6.2: Okno s pˇrehledem jednotliv´ych komponent

Stejnˇe jako v pˇr´ıpadˇe desktopov´e aplikace, slouˇz´ı pˇrehled pˇripojen´ych zaˇr´ızen´ı pro zobrazen´ı vˇsech dostupn´ych sp´ınaˇc˚u a senzor˚u, kter´e jsou v ˇr´ıd´ıc´ı jednotce dostupn´e.

Obsah se generuje dynamicky pod sebe, lze tedy zobrazit neomezen´y poˇcet zaˇr´ızen´ı (po pˇreteˇcen´ı viditeln´e ˇc´asti se objev´ı scrollbar). Kaˇzd´y dynamick´y ˇr´adek je zobra- zen dle sv´eho typu, tedy zda se jedn´a o senzor nebo sp´ınaˇc. U sp´ınaˇc˚u lze mˇenit jejich aktu´aln´ı stav, u senzor˚u lze aktu´aln´ı stav pouze sledovat. V obou pˇr´ıpadech lze zobrazit intern´ı nastaven´ı kaˇzd´eho zaˇr´ızen´ı, pomoc´ı tlaˇc´ıtka na prav´e stranˇe. V pˇr´ıpadˇe, ˇze ˇz´adn´a zaˇr´ızen´ı neexistuj´ı, je uˇzivatel upozornˇen.

Tlaˇc´ıtko na prav´e stranˇe

”i“, tedy znaˇc´ı zobrazen´ı podrobnost´ı vybran´e kom- ponenty. D´ale v horn´ı liˇstˇe vid´ıme zatoˇcenou ˇsipku, kter´a znaˇc´ı ruˇcn´ı aktualizaci vˇsech zaˇr´ızen´ı. Posledn´ım prvkem horn´ıho menu jsou tˇri teˇcky, takzvan´e

”Hambur- ger Menu“, kter´e sloˇz´ı pro otevˇren´ı nastaven´ı aplikace.

Z´ˇadn´a data nejsou editov´ana v objektech uvnitˇr aplikace, ale ˇz´adosti o zmˇenu jsou zas´ıl´any do ˇr´ıd´ıc´ı jednotky. Po obdrˇzen´ı odpovˇedi se bud’ projev´ı poˇzadovan´a zmˇena, nebo je zobrazeno chybov´e hl´aˇsen´ı. V obou pˇr´ıpadech je uˇzivatel upozornˇen zda zmˇena probˇehla, ˇci zda neprobˇehla.

(43)

6.2.2 Podrobnosti vybran´ e komponenty

Obr´azek 6.3: Detailn´ı pˇrehled nastaven´ı komponenty

Zobrazen´ı podrobnost´ı o vybran´e komponentˇe ukazuje vˇsechny dostupn´e ´udaje, kter´e m´a aplikace k dispozici. Bˇeˇznˇe se tak jedn´a o typ zaˇr´ızen´ı (senzor, sp´ınaˇc), n´azev zaˇr´ızen´ı (omezeno na 30 znak˚u), ˇc´ıslo pinu, na kter´em je zaˇr´ızen´ı pˇripojen´ı, a stav zaˇr´ızen´ı (zapnuto, vypnuto). Pokud se jedn´a o senzor, je zde vyobrazen i typ vy- bran´eho senzoru (sp´ınac´ı, rozp´ınac´ı).

Vr´atit se lze tlaˇc´ıtkem zpˇet, kter´e m´a kaˇzd´y mobiln´ı telefon se syst´emem Android implementovan´e (at’ jiˇz softwarovˇe nebo hardwarovˇe).

Seznam vˇsech podrobnost´ı komponenty:

• Typ (senzor, sp´ınaˇc)

• N´azev (maxim´alnˇe 30 znak˚u)

• Pin (ˇc´ıslo pinu, na kter´em je zaˇr´ızen´ı pˇripojeno)

• Stav (zapnuto, vypnuto)

• Typ senzoru (sp´ınac´ı, rozp´ınac´ı)

(44)

6.3 Kompatibilita

Aplikace byla testov´ana na mobiln´ım telefonu Samsung Galaxy S3 s operaˇcn´ım syst´em Android 4.0 Ice Cream Sandwich a Android 4.3 Jelly Bean a tak´e na tele- fonu Sony Xperia Z1 s operaˇcn´ım syst´emem Android 5.1.1 Lollipop. Pro tyto verze syst´em˚u byla tak´e optimalizov´ana. Nicm´enˇe c´ılov´a verze syst´emu Android 4.0 Ice Cream Sandwich by mˇela zajiˇst’ovat zpˇetnou kompatibilitu aˇz do nejnovˇejˇs´ıch verz´ı syst´emu (v dobˇe vyd´an´ı Android 8.1 Oreo).

Seznam vˇsech testovan´ych verz´ı syst´emu Android:

• API 14: Android 4.0 (Ice Cream Sandwich)

• API 16: Android 4.1 (Jelly Bean)

• API 21: Android 5.0 (Lollipop)

Seznam vˇsech podporovan´ych verz´ı syst´emu Android:

• API 14: Android 4.0 (Ice Cream Sandwich)

• API 15: Android 4.0.3 (Ice Cream Sandwich)

• API 16: Android 4.1 (Jelly Bean)

• API 17: Android 4.2 (Jelly Bean)

• API 18: Android 4.3 (Jelly Bean)

• API 19: Android 4.4 (KitKat)

• API 21: Android 5.0 (Lollipop)

• API 22: Android 5.1 (Lollipop)

• API 23: Android 6.0 (Marshmallow)

• API 24: Android 7.0 (Nougat)

• API 25: Android 7.1.1 (Nougat)

• API 26: Android 8.0 (Oreo)

• API 27: Android 8.1 (Oreo)

(45)

7 Webov´ a aplikace

Posledn´ı f´aze diplomov´e pr´ace bylo vytvoˇren´ı webov´eho prostˇred´ı pro monitoring dom´ac´ıho syst´emu. Webov´a aplikace, ˇcerpaj´ıc´ı data z komunikaˇcn´ıho serveru byla otestov´ana a zprovoznˇena. Webovou aplikaci ˇcekaj´ı fin´aln´ı grafick´e ´upravy, kter´e budou k nalezen´ı na pˇriloˇzen´em CD.

Aplikace je napojena a byla vyv´ıjena spolu s komunikaˇcn´ım serverem. Slouˇz´ı jako jedna z moˇznost´ı zobrazen´ı historie komunikace. Otevˇren´ı aplikace je moˇzn´e na adrese IP serveru.

(46)

8 Komunikaˇ cn´ı server

K zajiˇstˇen´ı komunikace mezi ˇr´ıd´ıc´ı jednotkou a mobiln´ı aplikac´ı fungovala, musel b´yt naps´an komunikaˇcn´ı server, kter´y m´a pevnou adresu v s´ıti. Server na dan´e IP adrese a portu, zajiˇst’uje komunikaci vˇsech existuj´ıc´ıch ˇr´ıd´ıc´ıch jednotek a mobiln´ıch apli- kac´ı. D´ıky tomuto spojen´ı si ukl´ad´a pˇren´aˇsen´a data, kter´a jsou n´aslednˇe pouˇz´ıv´ana k zobrazen´ı statistik ve webov´e aplikaci. Server teoreticky umoˇzˇnuje pˇripojen´ı libo- voln´eho poˇctu mobiln´ıch aplikac´ı k jedn´e ˇr´ıd´ıc´ı jednotce nar´az.

8.1 Slep´ e cesty v´ yvoje

8.1.1 Pˇ r´ım´ a komunikace mezi zaˇ r´ızen´ımi

Prvn´ım vyv´ıjen´ym ˇreˇsen´ım bylo propojen´ı ˇr´ıd´ıc´ı jednotky a aplikac´ı bez komu- nikaˇcn´ıho serveru. Po p˚ul roce v´yzkumu byla tato varianta zavrhnuta, protoˇze veˇrejn´e IP adresy v mobiln´ı datov´e s´ıt´ı jsou dynamick´e (vˇcetnˇe IPv6). Bez pevn´eho bodu v internetu, nebylo moˇzn´e urˇcit adresu ostatn´ıch zaˇr´ızen´ı.

8.1.2 Implementace serveru v ˇ r´ıd´ıc´ı jednotce

Druh´ym vyv´ıjen´ym ˇreˇsen´ım bylo vytvoˇren´ı komunikaˇcn´ıho serveru pˇr´ımo v ˇr´ıd´ıc´ı jednotce. Po ˇcase bylo odhaleno, ˇze pˇrid´an´ı dalˇs´ı z´atˇeˇze jednoˇcipov´emu poˇc´ıtaˇci, mˇelo za n´asledek nestabilitu cel´eho syst´emu. ˇR´ıd´ıc´ı jednotka nest´ıhala obsluhovat vˇsechny poˇzadavky najednou (jak hardwarov´e, tak softwarov´e) a s rostouc´ı komunikac´ı zaˇcala m´ıt nedostatek pamˇeti. Stejnˇe tak jako pˇredchoz´ı ˇreˇsen´ı, i tato varianta byla po p˚ul roce v´yzkumu zavrˇzena.

8.2 Blokov´ e sch´ ema

K´od aplikace je rozdˇelen do tˇrech hlavn´ıch blok˚u, kter´e spolu vz´ajemnˇe komunikuj´ı.

Pod blokov´ym sch´ematem n´asleduje detailn´ı popis tˇechto jednotliv´ych ˇc´ast´ı.

(47)

Socket Server Role Assigner

Communication Logic Logger

Logic Communication

Parser

Console File

Obr´azek 8.1: Blokov´e sch´ema objektov´eho n´avrhu komunikaˇcn´ıho serveru

8.2.1 Communication

Tento blok obsahuje vl´akno Socket Server, kter´e poslouch´a na portu 6666 a navazuje komunikaci pˇres technologii Socket. Server udrˇzuje vˇsechna spojen´ı aktivn´ı a star´a se o produkci vˇsech zpr´av ke vˇsem c´ıl˚um. Pokud je nˇekter´e spojen´ı pˇreruˇseno, zajist´ı informov´an´ı vˇsech ostatn´ıch uˇzivatel˚u a uvoln´ı zdroje.

Role Assigner se star´a o oddˇelen´ı neidentifikovan´ych klient˚u od tˇech identifiko- van´ych. Takov´y´y klient se vyznaˇcuje t´ım, ˇze provedl autorizaci jako ˇr´ıd´ıc´ı jednotka, nebo mobiln´ı aplikace. D´ale se vyznaˇcuje t´ım, ˇze je mu umoˇznˇeno komunikovat s ostatn´ımi protˇejˇsky, tedy ˇr´ıd´ıc´ı jednotka m˚uˇze kontaktovat vˇsechny mobiln´ı apli- kace, a vˇsechny mobiln´ı aplikace mohou kontaktovat vˇsechny ˇr´ıd´ıc´ı jednotky. Dokud nen´ı klient identifikovan´y, nen´ı mu umoˇznˇeno komunikovat s nik´ym jin´ym, neˇz s komunikaˇcn´ım serverem.

8.2.2 Logic

Blok Logic je hlavn´ı vl´akno, kter´e ˇr´ıd´ı tok komunikace identifikovan´ych klient˚u.

Prot´ekaj´ıc´ı data zpracov´av´a a uchov´av´a k zobrazen´ı ve webov´e aplikaci. D´ale se star´a o tisk komunikace na zvolen´ych v´ystupech z bloku Logger.

8.2.3 Logger

Logger slouˇz´ı k v´ypisu ˇci logov´an´ı prob´ıhaj´ıc´ı komunikace a dalˇs´ıch moˇzn´ych in- formac´ı. Aktu´alnˇe je moˇzn´e v´ypis prov´adˇet do konzole, kter´a je ide´aln´ı pro ladˇen´ı uˇzivatelem, pˇr´ıpadnˇe je moˇzn´y v´ypis do souboru, kde slouˇz´ı pro zpˇetn´e dohled´av´an´ı chyb.

(48)

8.3 Zprovoznˇ en´ı

Pro spr´avnou funkcionalitu komunikaˇcn´ıho serveru, je nutn´e server provozovat na veˇrejn´e IP adrese, s pˇresmˇerov´an´ım portu 6666 na lok´aln´ı adresu serveru v intern´ı s´ıti.

8.4 Konzolov´ y v´ ystup

Pro lepˇs´ı v´yvoj a testov´an´ı byl vytvoˇren konzolov´y n´ahled na komunikaci serveru, kde jsou ˇcasovˇe a barevnˇe odliˇseny r˚uzn´e operace.

Obr´azek 8.2: Konzolov´e okno komunikaˇcn´ıho server

V´yznamy barev v serverov´em logu:

• Zelen´a - Zaˇr´ızen´ı pˇripojeno

• ˇZlut´a - Zaˇr´ızen´ı identifikov´ano (ˇr´ıd´ıc´ı jednotka, nebo mobiln´ı aplikace)

• ˇCerven´a - Zaˇr´ızen´ı odpojeno

• ˇSediv´a - Bˇeˇzn´a komunikace

8.5 Testovac´ı klient

Testovac´ı klient vznik za ´uˇcelem testov´an´ı serverov´e ˇc´asti, bez nutnosti komunikace re´aln´ych zaˇr´ızen´ı nad re´aln´ymi daty. Klient umoˇzˇnuje v´ybˇer z nˇekolika reˇzim˚u, kde kaˇzd´y umoˇzˇnuje simulovat nˇeco jin´eho. Po v´ybˇeru jednoho z reˇzim˚u, se testovac´ı

(49)

klient pˇripoj´ı na komunikaˇcn´ı server pod zvolen´ym nastaven´ım. Pot´e lze napˇr´ıklad zas´ılat testovac´ı ˇretˇezce se seznamem komponent, odpov´ıdat na API dotazy a po- dobn´e.

Seznam vˇsech reˇzim˚u testovac´ıho klienta:

• Simulace mobiln´ı aplikace

• Simulace mobiln´ı aplikace (READ ONLY)

• Simulace mobiln´ı aplikace (WRITE ONLY)

• Simulace ˇr´ıd´ıc´ı jednotky

• Simulace ˇr´ıd´ıc´ı jednotky (READ ONLY)

• Simulace ˇr´ıd´ıc´ı jednotky (WRITE ONLY)

Obr´azek 8.3: Konzolov´e okno testovac´ıho klienta

References

Related documents

Bˇ ehem procesu repasov´ an´ı se z´ısk´ av´ a velk´ e mnoˇ zstv´ı dat, kter´ e je nutn´ e ukl´ adat kv˚ uli zpˇ etn´ e kontrole procesu.. nice v libovoln´ em okamˇ

Data, kter´ a jsou testov´ ana, se t´ ykaj´ı 2 nejvyˇsˇs´ıch kategori´ı cyklistick´ ych z´ avod˚ u, a poˇ cet startuj´ıc´ıch z´ avodn´ık˚ u je velmi podobn´ y,

Zvolil jsem ˇreˇsen´ı GPS/GPRS/GSM Module V3.0 [12] od firmy DFROBOT, kter´ e obsahuje moˇ znost jednoduch´ eho pˇripojen´ı vˇsech moˇ zn´ ych periferi´ı

Nicm´ enˇ e v t´ eto pr´ aci byla vyuˇ zita pouze jej´ı element´ arn´ı funkˇ cnost, tedy zazn´ amen´ av´ an´ı pohybu prstu po vymezen´ em prostoru bez moˇ znosti

Pr´ ace navazuj´ıc´ı na tuto by se mohly zab´ yvat vlivem r˚ uzn´ ych pˇredpomiˇ novaˇ c˚ u na ˇ casovou n´ aroˇ cnost ˇreˇsen´ı pˇri pouˇ zit´ı monolitick´

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Ke kaˇ zd´ emu videu pouˇ zit´ emu pˇri testov´ an´ı byly hod- noty poˇ ctu osob, kter´ e proˇsly a poˇ ctu unik´ atn´ıch osob, kter´ e se ve videu objevily tak´ e

Mezi data ukl´ adan´ a do datab´ aze patˇr´ı informace o pool serveru, ke kter´ emu je tˇ eˇ zebn´ı klient aktu´ alnˇ e pˇripojen, informace o dobˇ e tˇ eˇ zby aktu´