SPLOŠNONAMENSKI SISTEM ZA UPRAVLJANJE IN NADZOR NAPRAV NA DALJAVO S POMOČJO MOBILNEGA TELEFONA ALI SPLETNEGA VMESNIKA

Velikost: px
Začni prikazovanje s strani:

Download "SPLOŠNONAMENSKI SISTEM ZA UPRAVLJANJE IN NADZOR NAPRAV NA DALJAVO S POMOČJO MOBILNEGA TELEFONA ALI SPLETNEGA VMESNIKA"

Transkripcija

1 Davorin Mađarić SPLOŠNONAMENSKI SISTEM ZA UPRAVLJANJE IN NADZOR NAPRAV NA DALJAVO S POMOČJO MOBILNEGA TELEFONA ALI SPLETNEGA VMESNIKA Diplomsko delo Maribor, avgust 2011

2 I Diplomsko delo visokošolskega strokovnega študijskega programa SPLOŠNONAMENSKI SISTEM ZA UPRAVLJANJE IN NADZOR NAPRAV NA DALJAVO S POMOČJO MOBILNEGA TELEFONA ALI SPLETNEGA VMESNIKA Študent: Študijski program: Smer: Mentor: Somentor: Davorin Mađarid VS ŠP Elektrotehnika Telekomunikacije doc. dr. Iztok Kramberger doc. dr. Bojan Kotnik Maribor, avgust 2011

3 II

4 III ZAHVALA Zahvaljujem se mentorju doc. dr. Iztoku Krambergerju in somentorju doc. dr. Bojanu Kotniku za vodenje in pomoč pri pripravi diplomskega dela. Hvala tudi dekletu Tini za podporo in razumevanje tekom študija in nastajanja diplomskega dela. Posebna zahvala velja staršem, ki so mi omogočili študij in mi nudili podporo.

5 IV SPLOŠNONAMENSKI SISTEM ZA UPRAVLJANJE IN NADZOR NAPRAV NA DALJAVO S POMOČJO MOBILNEGA TELEFONA ALI SPLETNEGA VMESNIKA Ključne besede: Bluetooth, mikrokrmilnik, AVR, mobilni telefon, spletni vmesnik, nadzor, upravljanje UDK: : (043.2) Povzetek Diplomsko delo obravnava splošnonamenski sistem za upravljanje in nadzor naprav na daljavo s pomočjo mobilnega telefona ali spletnega vmesnika. Sistem omogoča spremljanje statusa naprav, branje merilnih veličin iz senzorjev ter proženje aktuatorjev naprav, ki so priključene na krmilno enoto sistema. S pomočjo mobilne aplikacije, mobilnega telefona ter Bluetooth povezave uporabniki spremljajo vse parametre naprav, ki so priključene na krmilno enoto. Pomemben del sistema je splet, ki z grafično bogatejšim in uporabniško prijaznejšim spletnim vmesnikom omogoča upravljanje in nadzor naprav z oddaljenega računalnika.

6 V GENERAL PURPOSE SYSTEM FOR MANAGMENT AND CONTROL OF DEVICES WITH MOBILE PRHONE OR WEB INTERFACE Key words: Bluetooth, Microcontroller, AVR, Mobile phone, Web interface, control, management UDK: : (043.2) Abstract Diploma work deals with general purpose system for management and control of devices with mobile phone or web interface. The system allows status monitoring of the devices, reading the measurement parameters from sensors and triggering device actuators which are connected to the control unit of the system. With the help of mobile application, mobile phone, and Bluetooth users can monitor all parameters of the devices that are connected to the control unit. An important part of the system is Web that with richer graphics and user friendly Web interface allows the management and control of devices from a remote computer.

7 VI Vsebina 1. Uvod Funkcionalna zasnova sistema MControl Bluetooth Tehnologija Povezovanje in komunikacija Bluetooth verzije Bluetooth v1.0 in v1.0b Bluetooth v Bluetooth v Bluetooth v2.0 + EDR Bluetooth v2.1 + EDR Bluetooth v3.0 +HS Bluetooth v Prihodnost Protokolni sklad LMP (Link Managment Protocol) L2CAP (Logical Link Control and Adaptation Protocol) SDP (Service Discovery Protocol) HCI (Host Controler Interface) RFCOMM (Radio Frequency Serial Port Emulation) BNEP (Bluetooth Network Encapsulation Protocol) Komunikacijski protokol Fizična plast Povezovalna plast Omrežna plast Transportna plast Sejna plast Predstavitvena plast Aplikacijska plast Protokol MControl...17

8 5. Krmilna enota Mikrokrmilnik AVR Studio WinAVR Bluetooth modul Aplikacija MControl AVR Mobilna aplikacija Mobilni operacijski sistemi NetBeans LWUIT Aplikacija MControl Java Spletna aplikacija Servisna aplikacija MControl - App Spletna aplikacija MControl - WEB Nadgradljivost sistema Sklep Literatura Priloge Seznam slik Seznam tabel Naslov študenta Kratek življenjepis...45 VII

9 VIII Seznam kratic GPRS Splošna paketna radijska storitev (ang. General Packet Radio Service) LAN Lokalno omrežje (ang. Local Area Network) WAN Prostrano omrežje (ang. Wide Area Network) UMTS Univerzalni mobilni telekomunikacijski sistem (ang. Universal Mobile Telecommunications System) WLAN Brezžično lokalno omrežje (ang. Wireless Local Area Network) GPS Sistem globalnega določanja položaja (ang. Global Positioning System) BSIG posebna interesna skupina za Bluetooth (ang. Bluetooth Special Interest Group) ISM industrijski, znanstveni in medicinski (ang. Industrial, Scientific and Medical) FHSS frekvenčno skakanje z razširjenim spektrom (ang. Frequency Hopping Spread Spectrum) GFSK modulacija s frekvenčnim pomikom z Gaussovim filtriranjem (ang. Gaussian frequency-shift keying) DQPSK kvadratna diferencialna modulacija s faznim premikom (ang. Differential Quadrature Phase Shift Keying) DPSK diferencialna modulacija s faznim premikom (ang. Differential Phase Shift Keying) IEEE Inštitut inženirjev elektrotehnike in elektronike (ang. Institute of Electrical and Electronics Engineers) RSSI indikator moči sprejetega signala (ang. Received Signal Strength Indication) AFH prilagodljivo frekvenčno skakanje (ang. Adaptive Frequency Hopping) UART univerzalni asinhroni sprejemnik/oddajnik (ang. Universal asynchronous Receiver/Transmitter) USART univerzalni sinhroni asinhroni sprejemnik/oddajnik (ang. Universal Synchronous Asynchronous Receiver/Transmitter) USB univerzalno serijsko vodilo (ang. Universal Serial Bus) EIR podaljšan odgovor na poizvedbo (ang. Extended Inquiry Response) AMP alternativni fizični vmesnik in vmesnik dostopa do medija (ang. Alternative MAC/PHY) MTU maksimalna prenosna enota (ang. Maximum Transmission Unit) ERTM izboljšan način ponovnega pošiljanja (ang. Enhanced Retransmission Mode) SM pretočni način (ang. Streaming Mode)

10 IX OBEX protokol izmenjave objektov (ang. Object Exchange) API aplikacijski programski vmesnik (ang. Application Programming Interface) TCP protokol za nadzor prenosa (ang. Transmission Control Protocol) UDP nepovezovalni protokol za prenašanje paketov (ang. User Datagram Protocol) DMA neposredni dostop do pomnilnika (ang. Direct memory access) PWM pulzno širinska modulacija (ang. Pulse Width Modulation) CAN krmilniško omrežje (ang. Controller area network) FPGA polje programirljivih logičnih vrat (ang. Field-programmable Gate Array) SDK razvojna programska oprema (ang. Software Development Kit)

11 Uvod 1 1. Uvod Nadzor in upravljanje naprav, senzorjev ter aktuatorjev na daljavo je vedno bolj razširjeno na različnih področjih. Nadzor in upravljanje pametnih zgradb, hišne avtomatizacije, procesov v industriji, varovanje objektov, spremljanje biokemičnih in fizioloških parametrov v medicini in nasploh daljinski nadzor so vedno bolj iskane in zaželene tehnologije s strani tržišča. Dandanes zelo razširjene in povsod prisotne komunikacijske naprave, so mobilni telefoni, ki imajo veliko procesorsko zmogljivost, podpirajo različne komunikacijske kanale, kot so GPRS, UMTS, WLAN, Bluetooth idr. ter sodobne operacijske sisteme, ki so uporabniško prijazni in omogočajo nalaganje in zagon različne uporabniške programske opreme. To razširjenost in dejstvo, da je na svetu več kot 5 milijard mobilnih telefonov [13], kakor tudi njihovo vse večjo zmogljivost lahko izkoristimo kot infrastrukturo za aplikacijo, ki nam bo omogočala prej naštete tehnologije, upravljanja in nadzora naprav. Razširjenost spleta pa samo povečuje željo po upravljanju od "kjerkoli in kadarkoli". S pomočjo spletnih brskalnikov lahko praktično od kjerkoli in kadarkoli dostopamo do posebnih spletnih vmesnikov, ki nam omogočajo spremljanje in upravljanje naprav. Spletne rešitve pa imajo tudi veliko prednosti pred namenskimi mobilnimi programi, saj omogočajo izvajanje različnih interakcij preko poljubnega spletnega brskalnika neodvisno od tipa računalnika in vrste operacijskega sistema. Cilj diplomske naloge je razviti sistem, ki bi uporabnikom omogočal nadzor in upravljanje naprav, senzorjev (temperaturni senzorji, senzorji zračnega tlaka, senzorji krvnega tlaka, ph senzorji, senzorji relativne vlažnosti, viskoznosti, električne prevodnosti, senzorji za merjenje svetlosti, merilniki pospeška, senzorji drugih biokemičnih in fizioloških parametrov oziroma veličin idr.) in aktuatorjev (releji, elektromagneti, optični sklopniki, servomotorji, elektromotorji itd.) na daljavo s pomočjo mobilnega telefona ali z oddaljenega računalnika preko spletnega vmesnika.

12 Uvod 2 Sam sistem obsega več aplikacij na različnih platformah in njihovo povezovanje v funkcionalno celoto. Tako imamo krmilno enoto, ki je osrednja enota sistema ter aplikacijo za mikrokrmilnik. Osnovna funkcionalnost krmilne enote je spremljanje oziroma branje veličin iz priključenih senzorjev, krmiljenje aktuatorjev in spremljanje statusa priključenih naprav. Krmilna enota omogoča tudi povezovanje oziroma dostop z zunanjimi napravami s pomočjo tehnologije Bluetooth. Naprave, kot so mobilni telefoni, uporabljajo neposredni dostop z ustreznim namenskim komunikacijskim programom, ki je bil razvit posebej za ta sistem. Za interakcijo s spletnim brskalnikom pa se za upravljanje krmilne enote uporablja posredni dostop. V ta namen smo razvili tudi spletno aplikacijo, ki obsega dva dela, in sicer spletni oziroma uporabniški vmesnik ter servisno aplikacijo, ki služi kot posrednik med spletnim uporabniškim vmesnikom in krmilno enoto. Diplomsko delo je razdeljeno na več poglavij. V drugem poglavju bomo opisali funkcionalno zasnovo samega sistema, ki smo ga poimenovali MControl in dodali kratek opis posameznih gradnikov sistema. V tretjem poglavju podajamo opis tehnologije Bluetooth, ki je glavna prenosna pot informacij med krmilno enoto, mobilnim telefonom in servisno aplikacijo. Nadaljujemo z opisom aplikacijskega komunikacijskega protokola, ki ga uporabljamo za podatkovni prenos po kanalu Bluetooth. V naslednjih poglavjih pa bomo podali podrobne opise vseh gradnikov sistema MControl, kakor tudi tehnologije in orodij, ki smo jih uporabili pri razvoju. Diplomsko delo zaključimo s poglavjem o nadgradljivosti sistema in sklepom.

13 Funkcionalna zasnova sistema MControl 3 2. Funkcionalna zasnova sistema MControl V okviru diplomske naloge smo si zadali cilj razviti splošnonamenski sistem za upravljanje in nadzor naprav na daljavo s pomočjo mobilnega telefona ali spletnega vmesnika. Takšen sistem bi omogočal spremljanje merilnih senzorjev, proženje aktuatorjev in upravljanje katerekoli elektronske naprave, ki bi bila priključena na sistem. Nadzor naprav bi se vršil lokalno s pomočjo mobilnega telefona in mobilne komunikacijske aplikacije na osnovi Bluetooth tehnologije. Spletne rešitve imajo veliko prednost pred namenskimi komunikacijskimi programi, saj omogočajo izvajanje različnih interakcij preko spletnega brskalnika. Spletna aplikacija sistema omogoča oddaljen nadzor in upravljanje na oddaljenem računalniku po internetnem omrežju preko spletnega vmesnika, sam svetovni splet pa nam omogoča globalno povezljivost. Prav tako lahko tudi mobilno aplikacijo uporabimo kot globalno komunikacijsko orodje za nadzor in upravljanje sistema, saj omogoča povezovanje v internet s pomočjo komunikacijskih zmožnosti mobilnega telefona po omrežju GPRS/UMTS ali WLAN. S podporo sodobnih komunikacijskih tehnologij ter žičnih in brezžičnih omrežij je omogočeno upravljanje sistema (nadzor senzorjev ali samostojno proženje aktuatorjev ter naprav na podlagi izvedenih meritev) brez fizične prisotnosti uporabnika. Tako lahko sistem spremljamo praktično z dlani in kjerkoli na svetu, seveda ob dovolj dobri pokritosti sodobnih globalnih omrežnih tehnologij, kot je internet. Sistem, ki smo ga poimenovali MControl, lahko upravlja s katerokoli elektronsko napravo, opremljeno z različnimi aktuatorji (releji, elektromagneti, optični sklopniki, servomotorji, elektromotorji itd.) in/ali različnimi senzorji (temperaturni senzorji, senzorji zračnega tlaka, senzorji krvnega tlaka, ph senzorji, senzorji relativne vlažnosti, viskoznosti, električne

14 Funkcionalna zasnova sistema MControl 4 prevodnosti, senzorji za merjenje svetlosti, merilniki pospeška, senzorji drugih biokemičnih in fizioloških parametrov oziroma veličin itd.). Funkcionalnost sistema smo razširili tudi tako, da smo omogočili sočasno interakcijo s sistemom s pomočjo uporabnikovega mobilnega telefona oziroma mobilne aplikacije in preko spletnega vmesnika. Da zagotovimo takšno funkcionalnost in splošnonamenskost, smo razvili arhitekturo sistema prikazano na sliki 1. Aktuatorji Naprave Senzorji Krmilna enota LAN / WAN Slika 1: Arhitektura predlaganega sistema MControl S slike so razvidni trije osnovni gradniki na katerih sloni sistem MControl. To so krmilna enota, mobilni telefon in strežnik ali osebni računalnik, ki so povezani s pomočjo tehnologije Bluetooth.

15 Funkcionalna zasnova sistema MControl 5 Enota sistema, ki zagotavlja merilne podatke, nanjo pa lahko priključimo poljubno napravo, je krmilna enota. Zgrajena je iz mikrokrmilnika in komunikacijskega modula. Mikrokrmilnik omogoča branje in krmiljenje digitalnih vhodov ter izhodov, branje analognih vhodov, generiranje analognega signala in tudi komunikacijo po poljubnem protokolu, ki bi ga lahko uporabljale naprave, ki jih želimo upravljati ali nadzorovati. Komunikacijski modul se fizično povezuje z mikrokrmilnikom in skrbi za brezžično komunikacijo z ostalimi gradniki sistema. V ta namen smo v krmilno enoto vgradili Bluetooth modul. Modularnost komunikacijskega dela krmilne enote omogoča tudi zamenjavo le-tega s kakšnim drugim komunikacijskim modulom, kot je na primer ZigBee, WiFi ali GPRS modul. V primeru zahtevane mobilnosti krmilne enote ali v primeru, ko bi bila krmilna enota nošena naprava (npr. spremljanje človeških biokemičnih in fizioloških parametrov) jo je mogoče napajati s pomočjo ustreznih akumulatorjev ali baterij. Mobilni telefon, ki je vključen v sistem, se na krmilno enoto povezuje s pomočjo vgrajenega Bluetooth modula. Za interakcijo s sistemom potrebujemo še naloženo mobilno aplikacijo. Uporabimo jo lahko tudi v primeru, ko nismo na območju Bluetooth omrežja. Takrat uporabimo komunikacijske kanale mobilnega telefona, kot so GPRS/UMTS ali WiFi ter povezavo s strežnikom. Cilj tega gradnika sistema je izkoriščanje zmogljivosti in lastnosti mobilnega telefona za dodatno funkcijo sistema, ki tako postane priročen uporabnikov vmesnik za brezžično upravljanje naprav in senzorjev. Strežnik, ki je zadnji osnovni gradnik sistema, služi kot prehod v svetovni splet. Z uporabo ustrezne strežniške programske opreme sistema MControl le ta v določenih intervalih oziroma ob določenih dogodkih zahteva statusne in merilne podatke iz krmilne enote ter jih shranjuje za kasnejši pregled. Strežniška programska oprema služi tudi kot spletni strežnik za spletni vmesnik. S pomočjo tega lahko preko interneta spremljamo stanje sistema praktično od kjerkoli. Podatke v spletnem vmesniku prikazujemo na zahtevo, kakor tudi ob določenih vnaprej predvidenih dogodkih. Sistem omogoča samodejno osveževanje prikazanih podatkov. Spletni vmesnik prikaže tudi stanje same krmilne enote ter opozori ob morebitnih napakah. Strežnik lahko zamenjamo z osebnim računalnikom in z uporabo pripadajoče programske opreme spremljamo in nadzorujemo sistem kar z njega. To nam omogoča lokalno interakcijo s sistemom, kadar ne potrebujemo ali ne želimo globalne povezljivosti. Sistem omogoča tudi uporabo obeh možnosti torej uporabo spletnega strežnika in osebnega računalnika.

16 Funkcionalna zasnova sistema MControl 6 Slika 2 prikazuje podrobnejšo zgradbo in delovanje sistema. Iz sheme so razvidni tokovi podatkov ter komponente vključene v sistem, ki ga naredijo celoto. Aktuatorji Krmilna enota Senzorji Mikrokrmilnik Komunikacijska enota (Bluetooth modul) Naprave Mobilni telefon Bluetooth modul Mobilna aplikacija (Java) Strežnik / osebni računalnik Bluetooth modul Servisna aplikacija (C#) LAN / WAN Spletna aplikacija (C#, asp.net) Slika 2: Podrobna arhitektura sistema

17 Bluetooth 7 3. Bluetooth Bluetooth je odprt brezžični standard za izmenjavo podatkov na kratke razdalje, namenjen povezavi stacionarnih in mobilnih naprav. Tehnologijo je razvilo telekomunikacijsko podjetje Ericsson leta Prvotno je bila namenjena za brezžično alternativo standardu RS-232, zasnovana za nizko porabo energije in kratek domet, ki temelji na nizkocenovnih sprejemno oddajnih mikročipih v vsaki napravi. Bluetooth zagotavlja varen način za povezavo in izmenjavo informacij med napravami, kot so mobilni telefoni, osebni računalniki, tiskalniki, GPS sprejemniki, digitalni snemalniki, igralne konzole idr. Danes je Bluetooth pod okriljem BSIG, ki Bluetooth tudi naprej razvija in ščiti. BSIG sestavlja več kot podjetij s področij telekomunikacij, računalništva, omreženja in zabavne elektronike. Da se lahko določeno napravo trži kot Bluetooth napravo, mora biti leta združljiva s standardi BSIG [1][2] Tehnologija Tehnologija Bluetooth temelji na brezžični komunikaciji v radiofrekvenčnem spektru in uporablja tehnologijo FHSS. Ta način komunikacije podatek razdeli na več manjših enot in jih pošlje v do 79 frekvenčnih kanalov pasovne širine 1 MHz, ki so razporejeni od 2402 MHz do 2480 MHz. To območje je globalno nelicencirano kot ISM 2,4 GHz kratkovalovno območje. V prvotnem standardu je bila edina možna modulacija GFSK, ki je zelo robustna modulacijska shema in odporna na motnje. V Bluetooth različici 2.0+EDR se lahko med združljivimi napravami uporablja tudi π/4-dqpsk in 8DPSK modulaciji. Naprave, ki uporabljajo GFSK modulacijo, delujejo v osnovnem načinu, ki zmore prenosne hitrosti do 1 Mb/s. Omenjeni dve modulaciji omogočata prenosne hitrosti 2 Mb/s oziroma 3 Mb/s, zato v tem primeru govorimo o Bluetooth standardu s povečano hitrostjo.

18 Bluetooth 8 Bluetooth je paketni protokol s strukturo gospodar suženj. Gospodar lahko komunicira z do 7 sužnji v omrežju Piconet, v katerem si vsi sužnji delijo gospodarjev urin takt. Prenašanje paketov med napravami temelji na osnovnem urinem ciklu, ki ga definira gospodar in je v intervalih po 312,5 µs. Dva urina cikla tvorita režo, ki znaša 625 µs. Dve reži gradita par, ki teče v urinem taktu po 1250 µs [2]. V preprostem prenosu pri uporabi enojne reže gospodar oddaja v sodih režah in sprejema v lihih režah. Suženj deluje ravno obratno. Paketi so lahko dolgi 1, 3 ali 5 rež. V vseh primerih gospodar oddaja v sodih režah, suženj pa v lihih. Naprave Bluetooth ločimo po razredih, ki nam povedo, kolikšen je njihov domet oziroma kolikšna je oddajna moč naprave. Tabelo razredov lahko vidimo v tabeli (tabela 1). Tabela 1: Oddajne moči in domet po razredih Bluetooth naprav Razred Maksimalna dovoljena moč mw dbm Domet (m) Razred Razred 2 2, Razred Povezovanje in komunikacija Naprava, ki je gospodar v Bluetooth Piconet omrežju, lahko komunicira z do sedmimi drugimi napravami. Naprave v tem omrežju lahko zamenjajo vloge gospodar suženj po dogovoru oziroma zahtevi, tako lahko kadarkoli tudi suženj postane gospodar. Gospodar odloči, katero suženjsko napravo bo naslovil. Običajno hitro preklaplja od ene naprave k drugi po vrstnem redu tako, da vsaki napravi nameni enak čas. Prenos podatkov od gospodarja do več sužnjev je možen tudi po razpršenem oddajniškem načinu [14]. Bluetooth specifikacije predvidevajo tudi povezavo dveh ali več Piconet omrežij v omrežje Scatternet v katerem določene naprave služijo kot omrežni mostovi. To pomeni, da imajo hkrati vlogo sužnja v enem Piconet omrežju ter vlogo gospodarja v drugem Piconet omrežju [2].

19 Bluetooth Bluetooth verzije Bluetooth v1.0 in v1.0b Bluetooth verziji 1.0 in 1.0B sta imeli nekaj težav, tako da so proizvajalci težko naredili naprave združljive med seboj. Ti dve verziji sta tudi v protokolu vključevali obvezno oddajanje fizičnega naslova naprave v postopku vzpostavljanja povezave tako, da je bilo nemogoče zagotoviti anonimnost že v samem protokolu. To je bil tudi velik korak nazaj za določene storitve, načrtovane za uporabo v okolju Bluetooth Bluetooth v1.1 Bluetooth verzije 1.1 je bil ratificiran kot IEEE standard Veliko napak, najdenih v prejšnjih verzijah, je bilo odpravljenih. Dodana je bila tudi podpora za nekriptirane kanale, kakor tudi indikator moči sprejetega signala RSSI Bluetooth v1.2 Bluetooth verzija 1.2 je združljiva z verzijo 1.1. Ima pa nekaj večjih izboljšav. Verzija 1.2 omogoča hitrejše vzpostavljanje povezave in odkrivanje soležnih naprav. Adaptivni FHSS sistem AFH izboljša odpornost na radiofrekvenčne motnje z izogibanjem zasedenih kanalov v zaporedju skokov med kanali. Dosega hitrejše prenosne hitrosti, vse do 721 kb/s. Omogoča razširjeno sinhrono povezavo, ki izboljša kakovost govora pri zvokovnih povezavah tako, da dovoljuje ponovno oddajanje okvarjenih paketov. Dodatno lahko tudi poveča zakasnitev zvoka za zagotavljanje boljšega sočasnega prenosa podatkov. Prav tako je v tem standardu dodana HCI podpora za trižično UART povezavo, kar nam omogoča priklop naprave z dvema signalnima linijama in skupno maso. Bluetooth verzije 1.2 je bil ratificiran kot IEEE standard Uvedena sta bila tudi kontrola pretoka podatkov in način ponovnega oddajanja v primeru napak pri prenosu za L2CAP protokol Bluetooth v2.0 + EDR Bluetooth specifikacija v2.0 je bila izdana leta 2004 in je kompatibilna z verzijo 1.2. Glavna razlika v primerjavi s predhodno verzijo je uporaba EDR, ki omogoča hitrejši prenos podatkov. Nominalna hitrost EDR je 3Mb/s. Praktična prenosna hitrost pa znaša 2,1 Mb/s.

20 Bluetooth 10 EDR uporablja kombinacijo GFSK in PSK modulacijo z dvema načinoma delovanja, π/4-dqpsk in 8DPSK. EDR lahko zagotavlja tudi nizko porabo energije. Specifikacije so objavljene z naslovom "Bluetooth v2.0 + EDR" kar pomeni, da je EDR opcijska funkcija. Produkti so lahko skladni z Bluetooth v2.0 brez EDR Bluetooth v2.1 + EDR Glavna novost Bluetooth tehnologije verzije 2.1 je "Secure simple pairing" - varno in enostavno seznanjanje naprav. To izboljša uporabniško izkušnjo pri medsebojnem povezovanju Bluetooth naprav, kakor tudi poveča stopnjo zaščite in uporabnost. Bluetooth verzija 2.1 vključuje tudi različne druge izboljšave. Uporablja EIR, ki zagotavlja več informacij med postopkom poizvedbe za zagotavljanje boljšega filtriranja naprav pred samim povezovanjem. Uporablja se tudi "Sniff subrating" funkcija, ki zmanjša porabo energije tudi do petkrat predvsem pri pretežno neaktivnih napravah, kot so tipkovnice, miške, idr. Ta funkcija omogoča Bluetooth napravam, da se odločijo, kako dolgo bodo čakale, preden pošljejo ohranjevalni paket. To je običajno vsakih 5 ali 10 sekund. Funkcija tega paketa je vzdrževanje druge Bluetooth naprave v delovanju. Pred to funkcijo se je omenjeni paket pošiljal po večkrat na sekundo Bluetooth v3.0 +HS Bluetooth verzija HS je bila sprejeta pod okrilje BSIG 21. aprila Ta verzija teoretično podpira prenosne hitrosti do 24 Mb/s ampak ne po sami Bluetooth povezavi. Bluetooth povezava je tukaj uporabljena samo za vzpostavitev komunikacijskega kanala, podatki pa se prenašajo preko kolocirane WLAN povezave. Nova funkcionalnost je AMP, dodatek WLAN standarda , kot funkcionalnost visokih prenosnih hitrosti pri Bluetooth. Za AMP sta bila pričakovana standarda WLAN in UWB, ampak slednji ni bil sprejet. Del standarda, ki opisuje velike prenosne hitrosti, ni obvezen, zato le naprave, ki podpirajo "HS", delujejo z visoko prenosno hitrostjo ob uporabi WLAN Bluetooth v aprila 2010 je BSIG dokončal Bluetooth specifikacije verzija 4.0, ki vsebujejo "Bluetooth Classic", "Bluetooth high speed" in "Bluetooth low energy" protokole. BHS

21 Bluetooth 11 protokoli temeljijo na WLAN tehnologiji, "Bluetooth Classic" pa temelji na starejših različicah tehnologije Bluetooth Prihodnost Prihodnje različice Bluetooth specifikacij bodo podpirale tehnologije, kot so razpršeni oddajniški kanal za zagotavljanje storitev oglaševanja ter samodejni prejem informacij iz informacijskih točk. Upravljanje topologije omrežja bo omogočalo avtomatično konfiguracijo topologije pri Piconet in posebej pri Scatternet omrežju, ki sta dandanes vse pogostejši. Za uporabnika bo to nevidna tehnologija, kar pomeni, da bo delovala samostojno in brez uporabnikovega poseganja Protokolni sklad Struktura podatkov in protokolov v tehnologiji Bluetooth je plastna in vsebuje jedrne protokole, protokole za zamenjavo žične komunikacije, protokole za izmenjavo kontrolnih podatkov telefonije in posvojene protokole. Na sliki 1 lahko vidimo strukturo podatkov v Bluetooth tehnologiji. Aplikacije BNEP ATT SMP OBEX SDP RFCOMM L2CAP HID Bluetooth programska oprema gonilnik Host / Controler Interface Gostitelj / krmilnik vmesnik Link Manager Protocol Baseband / Link Controler Bluetooth Radio Bluetooth modul / strojna oprema Slika 3: Bluetooth protokolni sklad

22 Bluetooth LMP (Link Managment Protocol) Protokol za upravljanje povezave upravlja radijsko povezavo med dvema Bluetooth napravama in je implementiran v Bluetooth krmilniku L2CAP (Logical Link Control and Adaptation Protocol) Nadzor logične povezave in prilagoditveni protokol je uporabljen za multipleks večih logičnih povezav med dvema napravama, ki uporabljata različne višje ležeče protokole. Zagotavlja tudi segmentacijo in ponovno združevanje paketov pri prenosu po radijski povezavi. V osnovnem načinu protokol ponuja pakete z velikostjo uporabnih podatkov do 64 kb in MTU od 672 b do 48 b kot minimalni obvezni MTU. V načinu ponovnega pošiljanja in kontrole pretoka lahko L2CAP konfiguriramo za zanesljiv ali sočasen prenos podatkov na podatkovni kanal s ponovnim pošiljanjem podatkov ali CRC kontrolo. Dopolnilo Bluetooth specifikacijam dodaja dva dodatna načina k protokolu L2CAP. Ta dva načina uspešno nadomeščata način ponovnega pošiljanja in kontrolo pretoka: ERTM je izboljšan način prvotnega načina in predstavlja zanesljiv kanal L2CAP; SM preprost način prenosa podatkov brez ponovnega pošiljanja in brez kontrole pretoka. Ta način zagotavlja nezanesljiv L2CAP kanal. Zanesljivost v kateremkoli od teh načinov je opcijska in/ali dodatno podprta z nižjeležečimi Bluetooth protokoli z nastavitvijo števila ponovnih pošiljanj in nastavitvijo časa po katerem se paketi izbrišejo SDP (Service Discovery Protocol) Protokol za odkrivanje servisov dovoljuje napravi, da odkrije podprte servise oziroma Bluetooth profile, ki jih naprava, na katero se želimo povezati, podpira. Vsak servis je označen z edinstvenim identifikatorjem, ki je dolg 128 b. Uradni servisi pa so označeni s krajšim, 16 b, identifikatorjem HCI (Host Controler Interface) HCI je standardizirana komunikacija med gostiteljsko programsko opremo in Bluetooth strojno opremo krmilnikom. To dovoljuje obema stranema zamenjavo z minimalnimi prilagoditvami.

23 Bluetooth 13 Obstaja več HCI transportnih standardov in vsak od njih uporablja drugačen fizični vmesnik za prenos podatkov. Največkrat uporabljena sta USB ter RS-232. V Bluetooth napravah s preprosto funkcionalnostjo sta lahko oba dela, gostiteljska programska oprema in Bluetooth strojna oprema, implementirana na istem mikrokrmilniku. V tem primeru HCI ni obvezen, čeprav je velikokrat implementiran kot notranji programski vmesnik RFCOMM (Radio Frequency Serial Port Emulation) RFCOMM protokol je nadomestek žični povezavi in se uporablja za prenos podatkov po navideznih serijskih vratih. Protokol omogoča prenos binarnih podatkov in oponaša kontrolne linije standarda EIA-232 (prej RS-232) po nižje ležečih Bluetooth slojih. RFCOMM protokol zagotavlja enostavno in zanesljivo komunikacijo podobno kot TCP. Neposredno je uporabljen v več profilih povezanih s telefonijo, prav tako pa tudi za transportni sloj OBEX. Veliko Bluetooth aplikacij uporablja protokol RFCOMM zaradi njegove vsesplošne podpore in javno dostopnega API na večini operacijskih sistemov. Dodatno se lahko aplikacije, ki uporabljajo serijska vrata, hitro in enostavno prilagodijo protokolu RFCOMM BNEP (Bluetooth Network Encapsulation Protocol) Protokol za enkapsulacijo podatkov je uporabljen za prenos drugih protokolnih skladov. Glavni namen je prenos protokolov internetnega omrežja, prenašamo pa lahko tudi druge protokole.

24 Komunikacijski protokol Komunikacijski protokol Pravila za izmenjavo sporočil med napravami, ki se morajo med seboj sporazumeti, imenujemo protokol. Protokol opisuje pravila in postopke komuniciranja, vzpostavljanja komunikacije ter zaključevanja komunikacije na takšen način, da se obe vpleteni strani znata sporazumeti, vesta kakšna je njuna vloga v komunikaciji in vesta v katerem stanju oziroma točki je komunikacija. Da lahko to zagotovimo, mora biti komunikacijski protokol dobro in jasno definiran. Komunikacijski protokol obsega format sporočil, pomen posameznih sporočil in pravila za samo izmenjavo teh sporočil. V tehnologiji komuniciranja računalniških sistemov poznamo več nivojev oziroma slojev komunikacije. Zgled slojne komunikacije in protokola je ISO/OSI model, kot vidimo v tabeli (tabela 2). Tabela 2: OSI model Plast Podatkovna enota 7. Aplikacijska 6. Predstavitvena Podatek 5. Sejna 4. Transportna Segment 3. Omrežna Paket 2. Povezovalna Okvir 1. Fizična Bit

25 Komunikacijski protokol 15 Ta model predvideva več slojev, v katerih vsak od njih obvladuje svoj protokol. To pripomore k bolj robustni in učinkoviti komunikaciji v omrežju internet, ki ima nepregledno število vozlišč, vmesnikov, odjemalcev in strežnikov. Slojni komunikacijski model pa pripomore tudi k univerzalnosti Fizična plast Fizična plast definira električne in fizične specifikacije za naprave. Zlasti opredeljuje razmerje med napravo in prenosnim medijem, ki je lahko bakreni vod, optični vod ali brezžična povezava. To vključuje tipe priključkov, specifikacije napetostnih nivojev ter kablov, specifikacije optičnih vodnikov, anten, frekvenčnih področij, fizičnih vmesnikov omrežnih naprav in ostale. Glavne funkcije fizičnega sloja so: vzpostavitev in prekinitev komunikacije, sodelovanje v postopku, pri katerem se komunikacijski viri učinkovito razdelijo med več uporabnikov, modulacija ali pretvorba med digitalnimi podatki v opremi uporabnikov v ustrezne signale za prenos po komunikacijskih poteh (električni, optični ali radijski signali) Povezovalna plast Povezovalna plast določa funkcionalna in procesna sredstva za prenos podatkov med subjekti omrežja ter za odkrivanje in odpravo napak, ki se lahko pojavijo v fizičnem sloju. Prvotno je bila ta plast namenjena komunikaciji točka-točka in točka-več toč, ki sta značilni za prostrana omrežja, kot je telefonski sistem. V sodobnih omrežjih se povezovalna plast uporablja le za ugotavljanje napak ter za dostop do prenosnega medija v internetnih omrežjih, ki je funkcija MAC podplasti. Tipični predstavnik povezovalne plasti v internetnih omrežjih je omrežno stikalo. Le to pa povezuje naprave v istem omrežju. Tehnologije WAN in LAN razvrščajo bite iz fizičnega sloja v zaporedje bitov, ki jih imenujemo okvirji. Ni pa nujno, da se vsi biti iz fizičnega sloja razvrstijo v okvirje, saj se lahko uporabljajo za funkcije povezovalne plasti, kot na primer v omrežju FDDI se vsak peti bit ne razvrsti v okvir.

26 Komunikacijski protokol Omrežna plast Omrežna plast določa funkcije in procedurne postopke prenosa podatkov od izvora v enem omrežju, do ponora v drugem omrežju. Pri tem se mora ohranjati kakovost prenosa, kot ga zahteva transportni sloj. Osnovna podatkovna enota je paket. Omrežna plast opravlja naloge usmerjanja prometa, lahko pa tudi fragmentira, sestavlja pakete ter odkriva napake pri dostavi paketov. V tem sloju delujejo usmerjevalniki, ki povezujejo omrežja med sabo, kar omogoča uporabo interneta. Uporablja se logična naslovna shema, ki pa ni hierarhična Transportna plast Transportna plast zagotavlja prenos podatkov med končnimi uporabniki in zagotavlja zanesljiv prenos višjim plastem. Ta plast zagotavlja zanesljivost prenosne poti s kontrolo pretoka, segmentacijo, in kontrolo napak. Nekateri protokoli v transportni plasti so povezovalno ali nepovezovalno usmerjeni. To pomeni, da lahko transportna plast zagotavlja potrjevanje uspešno prenesenih podatkov in nadaljuje z naslednjim podatkom, če je prenos potekal brez napak. Tipična protokola v transportni plasti sta TCP in UDP. TCP protokol zagotavlja zanesljiv prenos, UDP protokol pa se uporablja za nezanesljiv prenos podatkov, predvsem v pretočnih aplikacijah, kot so realnočasovne video in avdio vsebine Sejna plast Sejna plast nadzira povezave med računalniki. Vzpostavlja, upravlja in zaključuje povezave med lokalnimi in oddaljenimi aplikacijami. Sejna plast je običajno implementirana v okoljih, ki uporabljajo oddaljene zahteve Predstavitvena plast Predstavitvena plast je vmesnik med aplikacijskimi plastmi, v katerih se lahko uporablja različna sintaksa ali semantika, če predstavitvena plast zagotavlja storitev vmesnika med njimi. Če je preslikava na voljo, so podatki inkapsulirani v sejni protokol. Predstavitvena plast zagotavlja neodvisnost predstavitve podatkov s prevajanjem med aplikacijskimi in omrežnimi formati. Skrbi za pretvorbo podatkov v obliko, ki jo aplikacija sprejme. Plast se imenuje tudi sintaktična plast, saj skrbi za sintakso, na primer skrbi za pretvorbo med tekstovnimi kodiranji (ASCII, UTF-8, ISO 8859).

27 Komunikacijski protokol Aplikacijska plast Aplikacijska plast je najbližja končnemu uporabniku, kar pomeni, da omrežne plasti in uporabnika neposredno poveže s programsko aplikacijo. Ta plast komunicira s programsko opremo, ki implementira komunikacijski protokol. Aplikacijska plast tipično vsebuje identifikacijo komunikacijskih subjektov, ugotavlja razpoložljivost virov, razpoložljivost komunikacijskih subjektov ter zagotavlja sinhronizacijo med komunikacijskimi subjekti Protokol MControl Da bi zagotovili funkcionalno in učinkovito brezžično komunikacijo med enotami sistema MControl, smo za prenos podatkov po tehnologiji Bluetooth definirali lastni aplikacijski protokol. Le-ta temelji na že uveljavljenih nižje ležečih protokolih tehnologije Bluetooth. Zaradi razširjenosti in podprtosti smo za transportni protokol izbrali protokol RFCOMM iz nabora Bluetooth protokolov. Ta protokol emulira serijska vrata standarda RS232. To nam je omogočilo enostavno implementacijo na vseh gradnikih sistema MControl. Za sistem, v katerem se prenašajo manjše količine podatkov, kot so telemetrija ter merilni rezultati, smo potrebovali preprost a zanesljiv protokol. Razvili smo aplikacijski protokol, pri katerem je vsak podatkovni paket zgrajen iz štirih polj. Primer paketa v sistemu MControl vidimo v tabeli (tabela 3). Tabela 3: Zgradba paketa v protokolu MControl Začetno polje Dolžina Podatkovno polje Kontrolna vsota Ox55 0x03 0x4C, 0x01, 0x01 0x52 Paket je sestavljen iz začetnega polja, ki označuje začetek podatkov. Na ta način sistem prepozna ter začne obdelavo nadaljnjih polj v paketu. Če tega polja ne prepozna je potrebno zavreči vse ostale podatke, ki bi se morebiti lahko pravilno sprejeli. Polje dolžina pove, kako dolgo je podatkovno polje. Podatek o dolžini podatkovnega polja je potreben zaradi različno dolgih podatkovnih polj. Pove pa nam tudi lokacijo kontrolne vsote ter zaključek paketa.

28 Komunikacijski protokol 18 Naslednje polje je namenjeno podatkom, torej ukazu in argumentom ukaza. Podatkovno polje ima variabilno dolžino zaradi različne namembnosti ukazov. Zadnje polje v paketu predstavlja kontrolno vsoto. Namenjena je preverjanju pravilnosti podatkov v sprejetem paketu. Kontrolno vsoto izračunamo s seštevanjem vrednosti dolžine in podatkovnega polja in je omejena na en zlog. Če sešteta vrednost preseže maksimalno vrednost zloga, se upošteva samo prvi zlog v vsoti. Če je kontrolna vsota izračunana pravilno, smo sprejeli pravilni paket. V nasprotnem primeru moramo paket zavreči, saj je prišlo do napake med prenosom podatkov. Protokol MControl vsebuje nekaj varnostnih mehanizmov preverjanja pravilnosti paketa, ki jih v primeru uporabe Bluetooth tehnologije, načeloma ne bi potrebovali. Sistem je zasnovan tudi za primer uporabe drugih načinov in tehnologij prenosa podatkov, ki pa bi lahko bili manj robustni in zanesljivi, kot je Bluetooth. Tabela 4 prikazuje ukaze sistema, ki jih le ta trenutno podpira. Tabela 4: Ukazi sistema MControl Opis Ukaz Tip Argument 1 (oznaka) Argument 2 (podatki) Temperatura T [0x54] get 1, 2 / Bitni izhod B [0x42] set 0-8 [0x00,0x01] Bitni vhod V [0x56] get 0-8 / PWM M [0x4D] set 0-4 [0x00 0xFF] ph senzor P [0x50] get 0-2 / Svetlobni senzor L [0x4C] get 0-4 / PIR senzor I [0x49] get 0-4 / Status S [0x53] get / /

29 Komunikacijski protokol 19 Ukaz je sestavljen iz samega ukaznega zloga in zlogov za argumente. Ukazi se delijo na dva tipa, in sicer na ukaze s katerimi podamo zahtevo za pridobitev vrednosti (get) na primer za meritev ali stanje vhoda ter na ukaze s katerimi napravam dodelimo stanje (set) na primer PWM vrednost ali izhod na določeno stanje. Ukazu sledijo polja argumentov, če je ukaz tako sestavljen. V največ primerih je argument 1 namenjen identifikaciji naprave, s katero želimo operirati. Tako lahko naslovimo do 2 temperaturna senzorja, 8 vhodov ter izhodov itn. Argument 2 je namenjen vrednosti, ki jo želimo neki napravi dodeliti na primer 1 ali 0 za bitni izhod. V protokolu MControl pa vsakemu ukazu oziroma zahtevi sledi tudi odgovor naslovljene naprave. To potrebujemo, da vemo, da je naprava ukaz sprejela in ga tudi obdelala. Če se naprava ne bi odzvala, sploh ne bi vedeli ali je bil ukaz pravilno sprejet. Odgovor naprave na dano zahtevo je v protokolu MControl kar enak zahtevi sami. Razlog za to je preprost. Na tak način lahko vedno vemo, kateri ukaz je naprava izvedla in katero stanje ji je bilo dodeljeno. To se izkaže, kot zelo uporabno pri priključenih več odjemalcih. V tem primeru so vsi odjemalci obveščeni, kateri ukaz je izvedla določena naprava in v katerem stanju se le-ta nahaja.

30 Krmilna enota Krmilna enota Sistem MControl obsega več gradnikov in najpomembnejši izmed teh je krmilna enota. Le ta je osrednja enota sistema, ki povezuje krmiljene naprave in senzorje z odjemalci oziroma uporabniškimi vmesniki na mobilnih ali spletnih aplikacijah. Namen krmilne enote je zagotavljati merilne podatke priključenih senzorjev, krmiljenje naprav in aktuatorjev ter posredovanje statusnih podatkov o sami krmilni enoti odjemalcem. Na enoto lahko priključimo poljubno napravo, aktuatorje ter različne senzorje, kot so releji, elektromagneti, optični sklopniki, servomotorji, elektromotorji, temperaturni senzorji, senzorji zračnega tlaka, senzorji krvnega tlaka, ph senzorji, senzorji relativne vlažnosti, viskoznosti, električne prevodnosti, senzorji za merjenje svetlosti, merilniki pospeška, senzorji drugih biokemičnih in fizioloških parametrov oziroma veličin itd. Krmilna enota je sestavljena iz mikrokrmilnika ter pripadajočega programa za krmilno enoto, ki skrbi za samo delovanje krmilne enote, logiko povezovanja odjemalcev ter zagotavljanje podatkov priključenih senzorjev ter naprav. Za osrednji del krmilne enote smo izbrali mikrokrmilnik ATmega16, ki omogoča priklop najrazličnejših naprav in dobro razširljivost za v prihodnje. Funkcionalnost sistema je tudi omogočanje sočasnega dostopa z mobilnim telefonom z uporabo mobilne aplikacije in s spletnim vmesnikom preko internetnega omrežja. Za to skrbi krmilna enota in logika povezovanja odjemalcev s podporo tej funkcionalnosti. Krmilna enota vsebuje še komunikacijski modul, ki skrbi za povezovanje odjemalcev na krmilno enoto. V našem primeru smo izbrali Bluetooth modul zaradi njegove vsestranskosti, preproste uporabe in razširjenosti na najrazličnejših uporabniških napravah. Bluetooth modul pa lahko zamenjamo s katerimkoli drugim komunikacijskim modulom, kot so na primer ZigBee, WiFi ali GPRS modul, saj nam univerzalna zasnova enote le-to tudi omogoča. V primeru, ko bi krmilno enoto uporabljali kot mobilno napravo ali nošeno napravo na primer za spremljanje človeških biokemičnih in fizioloških parametrov ali kot nadzorno

31 Krmilna enota 21 napravo v okolju, kjer ni zagotovljenega stalnega napajanja, jo je mogoče napajati s pomočjo akumulatorjev ali baterij. To nam omogoča izbira mikrokrmilnika in komunikacijskega modula z nizko porabo energije Mikrokrmilnik Za delovanje krmilne enote smo izbrali mikrokrmilnik ATmega16. To je 8 bitni mikrokrmilnik z AVR arhitekturo, ki je bila razvita v podjetju Atmel leta Arhitektura AVR je modificirana Harvardova arhitektura, kjer je programski pomnilnik fizično ločen od podatkovnega pomnilnika z različnimi naslovnimi prostori, vendar ima možnost branja ter pisanja v programski pomnilnik z uporabo posebnih programskih inštrukcij. AVR je bil med prvimi mikrokrmilniškimi družinami, ki je uporabljal bliskovni pomnilnik za programski pomnilnik, kar je bila novost od enkratno programabilnih ROM ali EPROM pomnilnikov, ki so bili uporabljeni v takratnem času [3]. Družina AVR mikrokrmilnikov se na splošno deli na: TinyAVR - 1 do 8 kb programskega pomnilnika, 8 do 32 priključkov na čip, omejen nabor programskih inštrukcij; MegaAVR - 4 do 256 kb programskega pomnilnika, 28 do 100 priključkov na čip, razširjen nabor programskih inštrukcij; XMEGA 16 do 384 kb programskega pomnilnika, 44 do 100 priključkov na čip, dodatne funkcionalnosti kot so DMA, sistem dogodkov in podpora za kriptografijo; namenski mikrokrmilniki AVR dodatne funkcionalnosti, kot so LCD krmilnik, USB krmilnik, napredni sistem PWM in CAN, idr.; FPSLIC AVR mikrokrmilnik s FPGA; SRAM kot programski pomnilnik; jedro AVR mikrokrmilnika do 50 MHz; AVR32 32 bitna RISC arhitektura AVR z nekaterimi sodobnimi inštrukcijami, kot so DSP, video in avdio procesiranje; namenjena je kot konkurenca ARM arhitekturi vendar nezdružljiva z ARM ali 8 bitnim AVR. Izbrani mikrokrmilnik ATmega16 spada v družino MegaAVR in ima bogato paleto vgrajenih funkcionalnosti. Nekatere od teh smo uporabili za osnovno funkcionalnost sistema MControl, preostale pa lahko uporabimo za dodajanje novih funkcionalnosti k sistemu. Mikrokrmilnik nam ponuja naslednje funkcionalnosti [3]: 32 splošnonamenskih registrov, prepustnost do 16 MIPS pri 16 MHz, 16 kb bliskovnega programskega pomnilnika,

32 Krmilna enota B EEPROM, 1 kb SRAM, zagonski nalagalnik, dva 8 b časovnika/števca, en 16 b časovnik/števec, 4 PWM kanali, 8 kanalni analogno digitalni pretvornik, zaporedna vrata USART, zaporedni vmesnik TWI, vgrajen analogni primerjalnik, notranje in zunanje prekinitve. Mikrokrmilnik omogoča branje in krmiljenje digitalnih vhodov ter izhodov, branje analognih vhodov, generiranje analognega signala ter tudi komunikacijo po poljubnem protokolu, ki bi ga lahko uporabljale naprave, ki jih želimo upravljati ali nadzorovati. Programiranje mikrokrmilnika se lahko izvaja na več načinov, kot so vzporedno programiranje, programiranje z zagonskim nalagalnikom, ki je zelo uporabno na že vzpostavljenem sistemu in predvsem služi za posodabljanje programa, programiranje z uporabo JTAG vmesnika, ki služi tudi kot razhroščevalnik in programiranje z uporabo ISP vmesnika. Slednji omogoča programiranje v delujočem sistemu, hkrati pa zasede zelo malo mikrokrmilniških priključkov AVR Studio AVR Studio je integrirano razvojno okolje za izdelke podjetja Atmel, namenjeno za operacijski sistem Microsoft Windows. Je orodje, ki omogoča programiranje 8 bitnih kakor tudi 32 bitnih mikrokrmilnikov in mikroprocesorjev z vmesniki za programiranje. Razvojno okolje omogoča pregledno delo s projekti in ponuja celovito okolje za razvoj ter podporo za razvojne plošče podjetja Atmel. AVR Studio vključuje simulator nekaterih pogosteje uporabljenih mikrokrmilnikov. Tako lahko simuliramo delovanje programa v začetnih stopnjah razvoja brez strojne opreme. Okolje nam nudi tudi napreden razhroščevalnik, kar nam omogoča iskanje ter odpravo napak v simulaciji kakor tudi v realnem sistemu s pomočjo JTAG vmesnika. Razhroščevalnik omogoča kontrolo nad izvajanjem programske kode, vpogled in manipulacijo registrov, pomnilnika in vrednosti vhodno izhodnih naprav med razhroščevanjem. AVR Studio podpira programiranje v zbirnem

33 Krmilna enota 23 jeziku, z uporabo vtičnikov, kot je WinAVR, pa lahko uporabljamo tudi programski jezik C in C++ [3]. Slika 4 prikazuje okno integriranega razvojnega okolja AVR Studio WinAVR Slika 4: Integrirano razvojno okolje AVR Studio WinAVR je zbirka odprtokodnih in brezplačnih orodij namenjena razvoju programske opreme za AVR 8 bitne ter AVR32 mikrokrmilnike in mikroprocesorje podjetja Atmel. Programi v zbirki so delo samostojnih projektov pretežno za Linux okolje, nato pa preneseni v Microsoft Windows okolje. Zbirka vsebuje vsa orodja za samostojen razvoj programske opreme, kot so prevajalnik, programske knjižnice, razhroščevalnik, programsko opremo za prenos programa v čip in osnovno razvojno okolje. Prevajalnik v WinAVR je GNU Compiler Collection (GCC), ki lahko deluje na različnih platformah, za razne procesorje oziroma operacijske sisteme in z različnimi programskimi jeziki. Priložen GCC je namenjen za AVR procesorje in prevaja programsko kodo napisano v jeziku C ali C++ v AVR zbirnik, kar je tudi njegova edina naloga. Je GCC prevajalnik prilagojen za AVR arhitekturo, ki se navaja tudi kot AVR GCC. Zbirka vsebuje tudi standardno C knjižnico za AVR GCC. Imenuje se avr-libc in poleg dokumentacije vsebuje tudi standardne C rutine in veliko nestandardnih rutin, ki so specifične za AVR procesor.

34 Krmilna enota 24 Priložen je tudi urejevalnik oziroma osnovno razvojno okolje. Imenuje se Programmers Notepad, ki je odprtokoden urejevalnik besedil in ima osnovne zmogljivosti razvojnega okolja. Ker so razvojna orodja WinAVR narejena za zagon iz komandne vrstice, lahko uporabimo katerikoli urejevalnik oziroma razvojno okolje. Mi smo, kot razvojno okolje, uporabili AVR Studio, kateremu smo integrirali WinAVR orodja za razvoj programske opreme v jeziku C. Za to smo se odločili, ker je AVR Studio uporabniško prijazno razvojno okolje, ponuja preglednejše delo s projekti, lažje razhroščevanje in podporo različnim razvojnim ploščam [4] Bluetooth modul Za komunikacijski vmesnik krmilne enote sistema MControl smo izbrali Bluetooth modul RBT-001 proizvajalca RoboTech. Modulu, ki ga prikazuje slika 5, je dodano manjše tiskano vezje, na katerem je napetostni stabilizator in priključna letev za lažjo priključitev. Slika 5: Bluetooth modul [7] Bluetooth modul je združljiv z Bluetooth specifikacijami 1.x in 2.0. Deluje v drugem razredu (Class II) in ima domet okrog 10 m, odvisno od konfiguracije okolja. Sam modul deluje z napajalno napetostjo 3,3V, s priloženim napetostnim stabilizatorjem pa ga lahko priključimo na napajalno napetost od 3,3V do 5V. Modul ima tudi nizko porabo energije, ki je v stanju mirovanja 100µA, pri komunikaciji pa do 25mA. Fizični vmesnik modula je UART in podpira hitrost komunikacije do 921,6 kb/s [7].

35 Krmilna enota 25 Ker Bluetooth specifikacije omogočajo povezovanje naprav v Piconet omrežje, nam je Bluetooth modul omogočil sočasni dostop sedmih aktivnih naprav. Modul ima tudi napreden programski vmesnik, ki dovoljuje kontrolo modula in kontrolo priključenih naprav v omrežje Bluetooth Aplikacija MControl AVR Za delovanje mikrokrmilniške enote smo razvili aplikacijo za mikrokrmilnik, ki upravlja z vsemi funkcijami ter napravami priključenimi na enoto. Aplikacija je napisana v programskem jeziku C in namenjena izbranemu mikrokrmilniku ATmega16. Za razvoj aplikacije smo uporabili razvojno okolje AVR Studio s programskimi orodji in knjižnicami iz paketa WinAVR ter razvojno ploščo STK500. Aplikacija v mikrokrmilniku je razdeljena na dva dela. Prvi del je inicializacija, katere kodo prikazuje slika 6, ki se izvede ob vsakem vklopu naprave. Pri tem mikrokrmilnik inicializira vhodno izhodne priključke, vzpostavi komunikacijo s temperaturnimi senzorji in inicializira PWM enote. Nadalje vključimo prekinitve v mikrokrmilniku in skočimo v neskončno zanko, v kateri se izvaja merjenje temperature in signalizacija delovanja s svetlečo diodo. Meritev temperature se izvaja v neskončni zanki, saj je za to meritev potrebno približno 500 ms, kar je odvisno od nastavitev točnosti meritve, da je podatek o temperaturi vedno dosegljiv, kadarkoli sprejmemo odjemalčevo zahtevo. Slika 6: Inicializacija mikrokrmilnika

36 Krmilna enota 26 Med inicializacijo vzpostavimo komunikacijo z modulom Bluetooth s pomočjo vmesnika UART, ki je vgrajen v mikrokrmilnik. UART inicializiramo na način dela s prekinitvami. To pomeni, da vedno, ko dobimo podatek, prekinemo običajno izvajanje programa, ki je v tem primeru meritev temperature in signalizacija delovanja ter izvedemo funkcijo preverjanja prejetega podatka od odjemalcev po Bluetooth povezavi. Ker vmesnik UART v mikrokrmilniku deluje v 8 bitnem načinu, se to zgodi za vsak zlog prejetih podatkov. Ko so sprejeti vsi zlogi v paketu, jih najprej preverimo z vpisano dolžino paketa, nato pa izvedemo preverjanje pravilnosti prejetega paketa z izračunom kontrolne vsote. V primeru napačnega izračuna kontrolne vsote, ki je opisana v protokolu MControl, se podatki zavržejo in UART enoto pripravimo na nadaljnje sprejemanje podatkov. V primeru pravilnega izračuna kontrolne vsote se izvede funkcija prepoznavanja ukazov in parametrov. Ob uspešno prepoznanem ukazu se posreduje odgovor z zahtevanim podatkom nazaj k odjemalcu. Na primer, če je v krmilno enoto prišla zahteva za posredovanje vrednosti na temperaturnem senzorju, se odjemalcu kot odgovor pošlje paket, v katerega se kot argument prenese shranjen podatek o temperaturi, ki smo jo odčitali že prej. Tako se zaključi komunikacijski cikel krmilne enote.

37 Mobilna aplikacija Mobilna aplikacija Dandanes zelo razširjene in povsod prisotne komunikacijske naprave so mobilni telefoni. Sodobni mobilni telefoni podpirajo najrazličnejše komunikacijske kanale, kot so govorno in podatkovno omrežje GSM in UMTS, povezljivost z brezžičnim omrežjem WiFi ter Bluetooth, najsodobnejši pa nudijo podporo tudi tehnologiji NFC. Uporabljajo procesorje z nizko porabo energije za povečevanje avtonomnosti, nekateri pa so tudi večjedrni za še večjo zmogljivost. Povečuje se velikost delovnega pomnilnika, uporablja se hitri bliskovni pomnilnik za programsko opremo, proizvajalci vgrajujejo visoko resolucijske zaslone, ki so občutljivi na dotik in ponujajo veliko možnosti za interakcijo za uporabniško prijazne aplikacije. Že nekoliko manj zmogljivi mobilni telefoni ponujajo veliko prej naštetih komunikacijskih možnosti za dodajanje funkcionalnosti s pomočjo mobilnih aplikacij. Nalaganje mobilnih aplikacij pa omogočajo vsi sodobnejši mobilni telefoni. Prej naštete zmožnosti mobilnih telefonov smo izkoristili za del sistema MControl ter jim dodali funkcionalnost spremljanja in možnost interakcije s sistemom, kar nam je omogočil razvoj mobilne aplikacije. Mobilna aplikacija sistema MControl omogoča uporabnikom spremljati sistem in interakcijo z njim, s pomočjo mobilnega telefona, praktično z dlani. Ker smo kot primarno komunikacijsko pot izbrali Bluetooth tehnologijo, ki jo imajo vgrajeno mobilni telefoni, nam le-ta omogoča lokalno interakcijo s sistemom, kar pomeni, da se lahko gibljemo v bližnjem okolju sistema, na primer v stanovanju, hiši ali podjetju. Aplikacija pa z uporabo komunikacijskih zmogljivosti podatkovnih omrežij GSM, UMTS ali WLAN omogoča interakcijo s sistemom kjerkoli na svetu z uporabo spleta in spletnega strežnika, ki je tudi del sistema. Razvoj aplikacije je omejen na sam izbor operacijskega sistema mobilnih telefonov. Ker so najbolj razširjeni operacijski sistemi s podporo Javi, smo razvili aplikacijo v programskem jeziku Java, in sicer v različici Java Mobile Edition (J2ME) [5]. S tem smo pridobili tudi na prenosljivosti aplikacije, z minimalnimi spremembami, na druge Java platforme.

38 Mobilna aplikacija Mobilni operacijski sistemi Mobilni operacijski sistemi so operacijski sistemi, ki nadzorujejo delovanje mobilne naprave. V splošnem so enaki operacijskim sistemom namenjenim namiznim ali prenosnim računalnikom, kot so Linux, Windows, Mac OS, vendar so predvsem preprostejši, manj kompleksni in se bolj posvečajo povezljivosti naprave in večpredstavnostnim vsebinam. Trenutno najbolj razširjen je mobilni operacijski sistem Android, ki ga izdaja podjetje Google. Je odprtokoden operacijski sistem, ki je nastal iz Linux jedra s poudarkom na mobilno platformo. Aplikacije zanj se razvijajo v programskem jeziku Java z uporabo odprtokodnih razvojnih okolij, kot sta NetBeans in Eclipse. Google ne proizvaja mobilnih naprav, ker pa je Android odprtokoden, ga v svoje mobilne naprave vgrajujejo drugi proizvajalci, kot so HTC, Samsung, LG idr. Podjetje Apple je proizvajalec mobilnih naprav, prav tako pa izdaja svoj mobilni operacijski sistem, ki se imenuje ios. ios je zaprtokoden mobilni operacijski sistem, ki ga ne tržijo drugim proizvajalcem, zato se uporablja samo na napravah podjetja Apple. Aplikacije za platformo ios se pišejo v objektnem C jeziku, podjetje pa zraven operacijskega sistema izdaja tudi razvojno okolje Xcode. Microsoft Windows Mobile in novejša različica Windows Phone 7 sta mobilna operacijska sistema podjetja Microsoft. Ker podjetje Microsoft ne proizvaja mobilnih naprav, temveč le razvija mobilni operacijski sistem, ga trži proizvajalcem mobilnih naprav, kot so HTC, Samsung, LG, SonyEricsson, Nokia idr. Je zaprtokoden operacijski sistem, aplikacije zanj pa se pišejo v jeziku C++ in C#. Razvojno okolje je Microsoft Visual Studio, ki ga prav tako izdaja podjetje Microsoft. Podjetje Research In Motion je proizvajalec mobilnih naprav BlackBerry, ki pa razvija tudi svoj operacijski sistem BlackBerry OS. Ker je zaprtokoden in ga ne tržijo drugim proizvajalcem, ga najdemo samo na mobilnih napravah istega proizvajalca. Aplikacije zanj se pišejo v jeziku Java, izdajajo pa tudi svoje razvojno okolje, prav tako pa nudijo podporo drugim razvojnim okoljem za Java programski jezik, kot sta Eclipse in NetBeans. Manj zmogljivi mobilni telefoni pa uporabljajo vgrajen sistem za upravljanje z zmogljivostmi naprave. V ta namen je bila izdana različica programskega jezika Java Micro Edition ali JavaME. Namenjena je manj zmogljivim mobilnim napravam in vgrajenim

39 Mobilna aplikacija 29 sistemom, v primerjavi z Java programskim jezikom pa ima JavaME omejeno funkcionalnost. Določene programske knjižnice so nedosegljive oziroma odstranjene NetBeans NetBeans je odprtokodno razvojno okolje, prvenstveno namenjeno za razvoj vseh vrst Java aplikacij. Razvit je v Java programskem jeziku in na voljo za platforme Windows, Mac, Linux in Solaris oziroma za vse operacijske sistem, kjer lahko poganjamo namizne Java aplikacije [10]. Omogoča razvoj spletnih, namiznih in mobilnih aplikacij z Javo kakor tudi drugimi programskimi ali skriptnimi jeziki, kot so C, C++, JavaScript, PHP idr. Je modularno zgrajeno razvojno okolje in vsaka funkcionalnost je samostojen modul, tako kot tudi funkcionalnost programiranja v programskem jeziku Java, ki je del razvojnega okolja. Del razvojnega okolja je tudi modul za izgradnjo uporabniškega vmesnika za Java aplikacije, razhroščevalnik ter modul za profiliranje aplikacij. To je zelo uporabno orodje, saj nam omogoča optimizacijo pomnilniške porabe aplikacije kakor tudi optimizacijo hitrosti. Moduli razvojnemu okolju NetBeans omogočajo tudi dodajanje funkcionalnosti, kot je podpora za druge programske jezike, podpora za razvoj Java spletnih aplikacij idr. NetBeans je zelo zmogljivo orodje, ki se neprestano razvija, k čemur pripomore tudi odprtokodnost. Slika 7: NetBeans IDE

40 Mobilna aplikacija LWUIT Razvoj aplikacij, namenjenih za več platform mobilnih naprav, predstavlja velik izziv. Zaradi veliko proizvajalcev, od katerih nekateri razvijajo svoje platforme, vgrajujejo različno strojno opremo in napredne funkcionalnosti interakcije z napravo, kot tudi zaradi raznovrstnih implementacij določenih funkcionalnosti in različnih velikosti ter ločljivosti prikazovalnikov, je težko razviti aplikacijo, ki bi bila grafično privlačna in obenem z minimalnimi spremembami prenosljiva na različne platforme ter bi zagotovila enako uporabniško izkušnjo ter izgled uporabniškega vmesnika [14]. V ta namen je podjetje Sun Microsystems razvilo orodje LWUIT (Light Weight User Interface Toolkit), ki je knjižnica za razvoj uporabniških vmesnikov. Najprej je bil LWUIT zastavljen kot interni projekt v podjetju, nato pa se je razvil v orodje za lažji razvoj uporabniških vmesnikov za mobilne telefone z omejenimi zmogljivostmi na platformi Java ME. Sedaj pa je prerasel v večplatformno orodje za izgradnjo uporabniških vmesnikov [8]. LWUIT je zasnovan s hierarhično strukturo osnovnih elementov uporabniškega vmesnika. Na tak način imamo pri razvoju pregled nad elementi, kakor tudi omogočeno gnezdenje komponent, kar nam daje možnost za izdelavo poljubnega uporabniškega vmesnika. Zbirka orodij vsebuje oblikovalca uporabniškega vmesnika LWUIT Designer (slika 8). Slika 8: Oblikovalec uporabniških vmesnikov - LWUIT Designer

41 Mobilna aplikacija 31 Z njim lahko sestavimo preprost uporabniški vmesnik brez programiranja, elementom vmesnika pa določimo atribute, kot so oblika in obroba gumbov, ozadje, celovita barvna shema, pisava, razmiki med elementi uporabniškega vmesnika idr. Najpomembnejši del zbirke pa je izvorna koda oziroma knjižnice LWUIT. Z uporabo le-teh lahko zgradimo napreden in grafično privlačen uporabniški vmesnik. LWUIT vsebuje veliko že izdelanih elementov, kot so forme, gumbi, tekstovni okvirji, spustni meniji, radijski gumbi, okvirji za prikaz slik ter animacij, preglednice, okvirji za prikaz HTML vsebin idr. Če nam obstoječe komponente ne ustrezajo ali potrebujemo novo, jo lahko zelo preprosto zgradimo iz že obstoječih ali sprogramiramo popolnoma novo. LWUIT daje veliko pozornosti na grafično privlačne elemente in na bogate možnosti urejanja uporabniškega vmesnika, kar lahko v razvoju dosežemo na dva načina. Vsako komponento lahko programsko oblikujemo po svojih željah in pri tem imamo popolnoma proste roke. Drugi način pa je, da z orodjem LWUIT Designer oblikujemo uporabniški vmesnik po svojih željah, vendar pri tem nimamo popolnoma prostih rok, saj lahko urejamo samo vnaprej pripravljene atribute. Prednost tega orodja je, da lahko atribute shranimo v datoteko, jo vključimo v aplikacijo in se na podlagi te datoteke prevzamejo atributi izgleda uporabniškega vmesnika. Če bi želeli preoblikovati videz uporabniškega vmesnika, samo zamenjamo to datoteko z drugo in aplikacija prevzame nove atribute izgleda uporabniškega vmesnika. Projekt je v stalnem razvoju, k čemur pripomore tudi dejstvo, da je odprtokoden in je tako na voljo skupnosti, ki je pripravljena sodelovati [9]. Knjižnico za izgradnjo uporabniških vmesnikov je mogoče uporabiti pri razvoju za mobilne naprave, ki temeljijo na Java ME platformi, platformi BlackBerry, ter Java Standard Edition platformi za namizne računalnike. Projekt je bil prenesen tudi na platformo Android, tako lahko LWUIT deluje skoraj povsod, kjer je prisotna Java Aplikacija MControl Java Za mobilni telefon je aplikacija napisana v programskem jeziku Java[11]. Pri razvoju smo uporabili NetBeans, kot Java razvojno okolje in LWUIT za izdelavo uporabniškega vmesnika aplikacije. Mobilno aplikacijo MControl smo razvili za mobilni telefon Samsung F-480, z uporabo Samsung SDK [12], ki ima podporo Java ME in je služil tudi kot testni telefon.

42 Mobilna aplikacija 32 Aplikacija je zgrajena iz dveh delov, uporabniškega vmesnika in programske logike za komunikacijo ter obdelavo podatkov. Uporabniški vmesnik aplikacije, ki ga prikazuje slika 9, je čisto osnoven in zgrajen s pomočjo izvorne kode LWUIT, ki smo jo dodali projektu. S tem smo pridobili fleksibilnost pri uporabi elementov uporabniškega vmesnika ter optimizirali in zmanjšali velikost končne aplikacije. Slika 9: Mobilna aplikacija V začetku razvoja smo definirali videz uporabniškega vmesnika, kar je potekalo popolnoma programsko. Osnovni element uporabniškega vmesnika je forma in predstavlja okno oziroma zaslon, na katerega vključujemo elemente za uporabniško interakcijo. V primeru prvega zaslona so to trije gumbi, naslovna vrstica in dva elementa z besedilom. Tako smo dobili objekt, ki ga lahko programsko prikažemo na zaslon, skrijemo, spremenimo vrednosti elementov oziroma prikazano besedilo gumbov ter besedilnih elementov in pošiljamo dogodke programskemu delu aplikacije ob uporabnikovem pritisku na gumb.

43 Mobilna aplikacija 33 Objekt je tako pripravljen za programski del aplikacije. Na enak način je izdelan tudi drugi zaslon, na katerem so prikazani podatki iz sistema. Programski del aplikacije skrbi za inicializacijo vseh uporabljenih sredstev in za komunikacijo po tehnologiji Bluetooth ali preko spleta, odvisno kaj nam je v danem trenutku na voljo. Prednost ima Bluetooth, saj nam zagotavlja neposredni dostop do sistema in brezplačno uporabo komunikacijske poti. Če se nahajamo izven lokalnega okolja sistema MControl, uporabljamo podatkovna omrežja GSM ali UMTS, katerih uporaba pa ni brezplačna. V tem primeru se povezujemo s pomočjo TCP/IP protokola na spletni strežnik sistema MControl. V aplikaciji se najprej inicializirajo objekti uporabniškega vmesnika in Bluetooth vmesnik mobilnega telefona. Definirajo se tudi akcije v uporabniškem vmesniku. To je tudi vstopna točka uporabnika, saj se mora najprej povezati v sistem. Ko uporabnik pritisne tipko Poveži, se izvede metoda vzpostavibt(), katere kodo prikazuje slika 10, v kateri se vzpostavi Bluetooth komunikacija. V metodi ustvarimo in inicializiramo objekt StreamConnection, kateri dodamo parameter url, ki predstavlja naslov Bluetooth modula v krmilni enoti. Nato ustvarimo vhodni in izhodni tok podatkov za komunikacijo, ki poteka po protokolu, ki smo ga definirali za sistem MControl. Slika 10: Vzpostavitev Bluetooth komunikacije Prikaže se drugi uporabniški zaslon v aplikaciji, ki je obenem pripravljena na uporabnikove zahteve, ki jih sprejema iz uporabniškega vmesnika. Ob uporabnikovi akciji, na primer za vklop svetleče diode, se pošlje paket z zahtevo za krmilno enoto po Bluetooth povezavi. Ko

44 Mobilna aplikacija 34 krmilna enota izvede zahtevo, mobilna aplikacija sprejme paket kot odgovor o opravljeni zahtevi. Če je paket pravilen in pri prenosu ni bilo napak, ga aplikacija obdela in glede na njegovo strukturo, ki je opisana v protokolu MControl, spremeni indikator gumba na zaslonu v stanje, kakršno je trenutno na svetleči diodi. V primeru zahteve za temperaturo se spremeni besedilo v okvirju, ki je namenjen prikazu temperature.

45 Spletna aplikacija Spletna aplikacija Splet je dandanes nepogrešljiv pri medsebojni komunikaciji, iskanju podatkov, prebiranju e-poštnih sporočil itn. Omogoča globalno povezljivost, tako lahko kjerkoli in kadarkoli dostopamo do želenih informacij. Spletne rešitve imajo veliko prednost pred namenskimi komunikacijskimi programi, saj omogočajo izvajanje različnih interakcij preko spletnega brskalnika in so neodvisne od operacijskega sistema ali spletnega brskalnika. Z namenom omogočiti globalno povezljivost sistema, smo razvili spletno aplikacijo MControl, ki bo omogočala oddaljen nadzor in upravljanje krmilne enote na oddaljenem računalniku po internetnem omrežju preko spletnega vmesnika. Za spletno aplikacijo potrebujemo spletni strežnik, na katerem gostimo spletno stran sistema. Ker pa le ta ne omogoča neposredne komunikacije s krmilno enoto preko Bluetooth povezave, smo razvili še servisno aplikacijo, ki nam to omogoča. Tako lahko spletna aplikacija dostopa do podatkov sistema preko servisne aplikacije, ki nam služi tudi za shranjevanje merilnih podatkov priključenih senzorjev. Med seboj se povezujeta s protokolom TCP/IP in tako lahko delujeta na ločenih sistemih, kar pomeni, da lahko servisno aplikacijo gostimo na domačem računalniku, spletno aplikacijo pa na javno dosegljivem računalniku z boljšo omrežno infrastrukturo, kot bi jo imeli doma. Z razvojem servisne aplikacije pa smo dobili še možnost, da se mobilne aplikacije povezujejo v sistem preko servisne aplikacije po internetnem omrežju. Tako se lahko tudi mobilna aplikacija uporablja kot globalno komunikacijsko orodje. Če ne želimo globalne povezljivosti sistema v internet, lahko spletni strežnik zamenjamo z osebnim računalnikom in spremljamo in nadzorujemo sistem kar z njega. Oba dela spletne aplikacije sta razvita v operacijskem sistemu Microsoft Windows v jeziku C# z uporabo razvojnega okolja Microsoft Visual Studio, spletni vmesnik pa uporablja še tehnologijo asp.net [6].

46 Spletna aplikacija Servisna aplikacija MControl - App Servisna aplikacija MControl App omogoča povezovanje spletnega vmesnika s krmilno enoto sistema. Nastala je zaradi nezmožnosti neposrednega povezovanja spletne aplikacije in krmilne enote. Težava je bila v naravi aplikacije, saj spletne rešitve, ki smo jih uporabili mi, niso prilagojene za povezovanje s takšnimi moduli. S tem pa smo se izognili tudi nepredvidenim težavam ob uporabi Bluetooth modula s spletno aplikacijo. Razvoj dodatne aplikacije pa nam je prinesel tudi nekaj dodatnih funkcij sistema. Servisna aplikacija, ki jo prikazuje slika 11, deluje kot program v ozadju oziroma servis v operacijskem sistemu Microsoft Windows in se zažene v sistemskem pladnju. Za delovanje potrebujemo še Bluetooth komunikacijski modul za računalnik, ki je lahko v obliki USB ključka ali vgrajene razširitvene kartice. Slika 11: Servisna aplikacija Ob zagonu aplikacije se le-ta skuša povezati na krmilno enoto in v intervalih preverja prisotnost enote in povezljivost. Ob uspešno vzpostavljeni povezavi je pripravljena za delovanje in čaka na zahteve iz spletne aplikacije MControl WEB po TCP/IP protokolu.

47 Spletna aplikacija 37 Obenem pa servisna aplikacija deluje neodvisno od spletne aplikacije in v ozadju bere podatke iz krmilne enote. Tako intervalno zbira merilne podatke o senzorjih, ki so priključeni na sistem in jih zapisuje v datoteko za kasnejši pregled. Servisna aplikacija ima v svojem uporabniškem vmesniku vgrajen graf, kjer se odčitani podatki prikazujejo. Vgrajen je tudi preprost izpis statusnih podatkov, s katerimi lahko spremljamo delovanje samega sistema in številčni izpis merilnih podatkov. Ker servisna aplikacija sprejema zahteve po TCP/IP protokolu, smo s tem omogočili dodatno funkcionalnost mobilnim telefonom in mobilni aplikaciji, in sicer komunikacijo s sistemom tudi kadar ni v območju Bluetooth omrežja krmilne enote. Takrat se lahko vzpostavi povezava po internetnem omrežju do servisne aplikacije in na tak način oddaljeno komunicira s sistemom. Servisna aplikacija prejete zahteve iz spletne aplikacije v večini primerov le posreduje do krmilne enote in nazaj pošlje odgovor s podatki, ki jih je vrnila krmilna enota. V primeru, ko spletna aplikacija zahteva zgodovino merilnih podatkov o senzorjih pa se to posreduje neposredno spletni aplikaciji brez komunikacije s krmilno enoto, saj so podatki že v sami servisni aplikaciji. Na tak način lahko spremljamo sistem tudi v daljšem časovnem obdobju in beležimo merilne rezultate in jih kasneje analiziramo oziroma dalje obdelamo Spletna aplikacija MControl - WEB Za globalno dosegljivost sistema MControl smo razvili tudi spletno aplikacijo MControl WEB. Deluje s pomočjo prej opisane servisne aplikacije MControl App, ki ji omogoča povezavo do krmilne enote. Napisana je z uporabo tehnologije asp.net, za njeno delovanje pa potrebujemo spletni strežnik Microsoft IIS. Spletne aplikacije razvite s tehnologijo asp.net, so sestavljene iz dveh delov, in sicer iz uporabniškega vmesnika (ang. Frontend), pri katerem se uporablja tudi HTML jezik, ter iz kode v ozadju (ang. Code Behind), ki je napisana v programskem jeziku C#. Vmesnik, kot ga prikazuje slika 12, je spletni vmesnik sistema MControl, ki omogoča enako funkcionalnost kot mobilna aplikacija in še več. Podpira izris trenutnega grafa odčitanih vrednosti senzorjev, izris zgodovine odčitanih vrednosti in izpis statusnih podatkov, da lahko spremljamo sistem kot iz servisne aplikacije. Če hoče uporabnik upravljati s sistemom, se mora najprej povezati z gumbom Poveži, šele nato lahko upravlja s sistemom. Ponujajo se funkcionalnosti sistema za vklop ali izklop

48 Spletna aplikacija 38 naprav, v tem primeru svetlečih diod, upravljanje s PWM kanalom ter delo z grafi in spremljanjem statusa krmilne enote. Slika 12: Spletna aplikacija V ozadju se vzpostavi povezava s servisno aplikacijo po TCP/IP protokolu. Glede na ukaz, ki ga uporabnik izvede, se v ozadju aplikacije izvede ustrezna funkcija in pošlje zahtevo servisni aplikaciji. Le ta se odzove z odgovorom, ki ga spletna aplikacija obdela ter prikaže vsako spremembo tudi na uporabniškem vmesniku spletne aplikacije.