Daljinsko krmiljena vtičnica z vmesnikom Bluetooth

Similar documents
Delavnica za konfiguriranje dostopovnih točk WEB konfiguracija LANCOM L-54

Delavnica za konfiguriranje dostopovnih točk Konfiguracija LANCOM L-54 z uporabo orodja LANConfig

Vodnik skozi Google Analytics Beta verzija 1. del. prehod s stare kode (urchin.js), k novi kodi za sledenje (ga.js)

Hitra rast hranjenih podatkov

» Nakup in vzdrževanje Oracle programske opreme «Tehnične specifikacije

Organizacija računalnikov (OR) UNI-RI, 3.l. RS Vaje. doc.dr. Mira Trebar

Povezava DEQ v omrežje

RAZLOG ZA IZVAJANJE PROGRAMA POPRBAZA

BT121 Bluetooth Smart Ready Module. May 2015

IP PACKET QUEUING DISCIPLINES AS BASIC PART OF QOS ASSURANCE WITHIN THE NETWORK

formati slike in branje slike pomen in nekaj primerov EM spekter aplikacije v posameznih delih spektra o matriki slike

BT121 Bluetooth Smart Ready Module. July 2016

sodobne poslovnoinformacijske rešitve Birokrat Kratka navodila za namestitev demo verzije programa Birokrat

Sistemske zahteve za SAOP

BLUETOOTH KOMUNIKATOR ZA WINDOWS MOBILE 6.5

Primerjava izvornega in hibridnega razvoja mobilne aplikacije

Navodila za interaktivne naloge Bober

BLE121LR Bluetooth Smart Long Range Module 5/12/2014 1

Prometno načrtovanje xdsl

A Generic Timing Receiver for Event-Driven Timing Systems

Uvod v svetovni splet

Q: Do You made a backup before upgrade? A: Only cowards make backups!

Družina IEEE802 Poddružina IEEE802.1 Priključitev v omrežje IEEE802.1x

Lotus Quickr Najhitrejši način izmenjave poslovne vsebine

How we calculate volume with the use of NTF method. Kako izračunamo volumen z uporabo metode NTF

Prirejanje in preverjanje tipov

Povezava regulatorja DEQ v omrežje

Fakulteta za elektrotehniko, računalništvo in informatiko Inštitut za avtomatiko Laboratorij za obdelavo signalov in daljinska vodenja

Twitter Bootstrap in razvoj spletnega repozitorija za Cacti

ABBYY rešitve za prepoznavo in klasifikacijo dokumentov

Primerjava orodij za razvoj mobilnih aplikacij

Bluetooth Smart Development with Blue Gecko Modules. Mikko Savolainen October 2015

Mobilna aplikacija za pregled informacij o prometu v Sloveniji

Specification and Implementation of a Light-Weight Internet Content Delivery Platform

Session:E07 GALIO - DB2 index advisor, how we implemented it and what we get from self-made expert tool

Državni izpitni center SPOMLADANSKI IZPITNI ROK *M * NAVODILA ZA OCENJEVANJE. Četrtek, 2. junij 2016 SPLOŠNA MATURA

PULZON. Pametni temperaturni regulatorji / Smart temperature controllers

APLIKACIJE ZA SOCIALNA

Izdelava urejevalnika izvorne kode v oblaku z uporabo tehnologij HTML5

DB2 podatkovna baza v praksi

Lokacijske storitve na mobilnih napravah

TI C2000: Družina za vgrajene (embedded) aplikacije

Calculation of volume with the use of NTF method. Izračun volumnov z uporabo NTF metode

ERCOlight LUM je energetsko visoko učinkovita svetilka za visoke prostore z možnostjo številnih različnih modifikacij.

Navodila za uporabo izdelkov programske opreme Microsoft

Izdelava spletne aplikacije za video klepet

Mx381/382 komunikacijski vmesnik P1

Vzpostavitev spletnega vmesnika za prikaz tenziomiografskih meritev

Vmesnik za vodenje sistema Lego Mindstorms v razvojnem okolju Siemens Step7

Krmiljenje porabnikov na daljavo z uporabo pametnega telefona

Open IT VARNO POVEZOVANJE SODOBNIH ODPRTIH SPLETNIH APLIKACIJ V OBLAKU TYPO3, MAGENTO, ALFRESCO

Arhitektura oblaka Upravljanje v oblaku Delovanje v oblaku Arhitekturni okvir računalništva v oblaku

Aleksander Berus Analiza ogrodja MonoGame za medplatformni razvoj iger na mobilnih platformah

Navodila za nastavitev varne povezave po protokolu SSH

PMC DIGITAL SIGNALLING PROCESSOR UNIT

Vgrajen sistem za avtomobilsko diagnostiko z vmesnikom Bluetooth

Transakcije v MariaDB/MySQL (transakcija A)

Bluegiga Bluetooth Smart Software v.1.3 5/28/2014 1

UPORABA TEHNOLOGIJE VOIP NA MOBILNIH NAPRAVAH SYMBIAN

Aplikacija za prikaz prostorskih podatkov

Izdelava aplikacij s podporo delovnih tokov za okolje SharePoint Server

Postavitev in upravljanje zasebnega oblaka z uporabo Microsoft System Center 2012 R2 in Windows Azure Pack za ponudnike storitev

Kosovnica. Marko Obid. Kosovnica. Marko Obid

Sistem za upravljanje zgradb

Razvoj jezika za iskanje, povezovanje in predstavitev podatkov

Vodnik za povezavo (za COOLPIX)

Razvoj spletne trgovine z vključitvijo naprednih storitev

Izdelava hibridnih mobilnih aplikacij z ogrodjem Ionic

RAZVOJ ENOSTAVNE SPLETNE APLIKACIJE Z UPORABO FLEKSIBILNEGA OGRODJA NA ODPRTOKODNIH KNJIŢNICAH

PRISOTNOST PRI POUKU S POMOČJO RFID

Selitev aplikacije iz Oracle Forms v Oracle ADF (Application migration from Oracle Forms to Oracle ADF)

UNIVERZA NA PRIMORSKEM FAKULTETA ZA MATEMATIKO, NARAVOSLOVJE IN INFORMACIJSKE TEHNOLOGIJE. Razvijalska ogrodja za podporo večim mobilnim platformam

Razširitev in podpora serijskih komunikacijskih vmesnikov na Raspberry Pi platformi

BLED112 Bluetooth Smart USB Dongle 9/16/2013 1

RAZVOJ ENOSTRANSKIH SPLETNIH APLIKACIJ S PORTALNO PLATFORMO LIFERAY

Metode logičnega snovanja Programabilne logične naprave in VHDL. Miha Moškon

UDF for volume calculation with the use of NTF method. Lastne Excel funkcije za izračun prostornin po NTF metodi

Naslavljanje v IP. Miran Meža

E R S Š G L J U B L J A N A Š O L S K O L E T O

Multi-hop communication in Bluetooth Low Energy ad-hoc wireless sensor network

POROČILO PRAKTIČNEGA IZOBRAŽEVANJA

Mobilna aplikacija za pregledovanje slik visokih ločljivosti

RAZVOJ GENERATORJA POSLOVNIH SPLETNIH APLIKACIJ

nblue TM BR-MUSB-LE4.0-S2A (CC2540)

Vgrajeni sistem za brezkontaktno merjenje elektičnega toka na daljavo

Osnovna navodila za uporabo programskega paketa V3.1 STEP 7 MicroWIN 32

UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO. Dean Črnigoj. Izdelava odjemalca NFS za Windows DIPLOMSKO DELO

Developing Accessories for the Apple HomeKit Ecosystem. November 2016

Ogrodje za razvoj mikrostoritev v Javi in njihovo skaliranje v oblaku

Časovno omejevanje dostopa do interneta

New Media & Language Technologies Jozef Stefan International Postgraduate School January Speech apps. Jerneja Žganec Gros

SPLETNE SESTAVLJANKE IN POSLOVNI PORTALI

Primož Hadalin IZDELAVA SPLETNEGA PORTALA POSLOVNE APLIKACIJE Z UPOŠTEVANJEM RAZLIK MED SPLETNIMI BRSKALNIKI

UPORABA SILVERLIGHT 4 ZA PODPORO PRI ELEKTRONSKEM PREVERJANJU ZNANJA

Matej Simčič. Avtomatizacija naročil v taksi službi UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO

Hierarhično načrtovanje. Načrtovanje digitalnih el. sistemov. Deklaracija komponent. Komponente

Koncepti izdelave mobilnih iger v operacijskem sistemu Android

TEHNIČNA DOKUMENTACIJA -URESK APRIL 2013

RAZVOJ BLUETOOTH APLIKACIJE V OKOLJU JAVA ME IN JAVA SE

Razvoj Windows Store aplikacij

Transcription:

Univerza v Ljubljani Fakuleta za elektrotehniko Primož Zelenšek Daljinsko krmiljena vtičnica z vmesnikom Bluetooth Diplomsko delo univerzitetnega študija Mentor: izr. prof. Andrej Trost Ljubljana, 2016

Zahvala Zahvaljujem se izrednemu profesorju Andreju Trostu za pomoč pri izdelavi in konzultacijah. Posebno zahvalo namenjam vsem mojim sošolcem in kolegom s fakultete. Zoranu za vse skupne noči pred knjigami, Tomažu za nesebično pomoč pri reševanju različnih problemov in sodelavcema v podjetju Chipolo, Juretu in Andreju za vse nasvete pri izdelavi diplome. Diplomo posvečam atu in ostali družini, ki so mi študij omogočili, partnerki Živi in hčerki Ani kot dokaz, da se vztrajnost vedno poplača.

Kazalo vsebine 1. Uvod 12 1.1 Namen diplomske naloge 13 2. Razvojne platforme 14 2.1 Vmesnik BLE112 Bluetooth Smart Module 14 2.2 Pametni mobilnik iphone 14 3. Razvojna okolja 16 3.1 Razvojno okolje za modul BLE112 16 3.1.1 Tehnologija Bluetooth 4.0 16 3.1.2 Tipična arhitektura BLE aplikacije 17 3.1.3 Programsko okolje Bluegiga Smart Software 19 3.1.3.1 Protokol BGAPI 19 3.1.3.2 Skriptni jezik BGScript 20 3.2 Razvojno okolje programa Eagle 21 3.3 Razvojno okolje programa Xcode 22 3.3.1 Programski jezik Objective C 22 4. Opis delovanja daljinsko krmiljene vtičnice 24 4.1 Elektronsko vezje 25 4.1.1 Napajalni del 28 4.1.2 Vklop in izklop delovanja oz preklop stikala 28 4.1.3 Vklop in izklop ter struktura LED osvetlitve 29 4.1.4 Zapisovanje in branje realnega časa - RTC 29 4.1.5 Merjenje temperature 30 4.1.6 Slike med gradnjo 31 4.2 Aplikacija za ios DKVVB 32 4.2.1 Opis razvoja ios DKVVB aplikacije 32 4.2.2 Struktura ios DKVVB aplikacije 32 4.2.3 Različna stanja DKVVB ios aplikacije in nastavitve 32 4.2.3.1 Vstop v DKVVB ios aplikacijo 32

4.2.3.2 Glavni zaslon ios DKVVB aplikacije 34 4.2.4 Struktura kode DKVVB ios aplikacije 37 4.3 Strojna koda DKVVB aplikacije 41 4.3.1 Struktura kode strojne kode DKVVB aplikacije 41 4.3.1.1 Datoteka Hardware.xml 41 4.3.1.2 Podatkovna baza gatt.xml 42 4.3.1.3 Glavni program Bgmain.bgs 43 5. Izboljšave 47 5.1 Senzor za ogljikov monoksid 47 6. Zaključek 48

Kazalo slik Slika 1: BLE112 pametni modul z vmesnikom Bluetooth [1] 14 Slika 2: Pametni mobilnik iphone 6 [2] 15 Slika 3: Razvojno okolje Bluetooth Smart Development Kit [3] 16 Slika 4: Modulni prikaz osnovne arhitekture BLE aplikacije 17 Slika 5: Struktura karakteristike BLE aplikacije 18 Slika 6: Primer strukture BLE aplikacije 19 Slika 7: Samostojen BGScriptov aplikacijski model [10] 21 Slika 8: Posnetek iz programa Eagle 21 Slika 9: Program Xcode 22 Slika 10: Prikaz osnovnih strukture DKVVB in principa delovanja 24 Slika 11: Prikaz sestave elektronskega vezja DKVVB po modulih 25 Slika 12: Shema izhodov modula BLE112 [13] 26 Slika 13: Shema napajalnega dela s RAC-03 usmernikom 28 Slika 14: Shema priključitve napajalne napetosti na BLE112 28 Slika 15: Shema krmiljenje releja DKVVB 28 Slika 16: Shema krmiljenje LED osvetlitve, Slika 17: Shema LED osvetlitve. 29 Slika 18: Shema vezja bralnika realnega časa - RTC, Slika 19: Blok diagram RTC [15]. 29 Slika 20: Temperaturna sonda KTY-81/210 30 Slika 21: Posnetek vezja iz sprednje strani, Slika 22: Posnetek vezja iz zadnje strani. 31 Slika 23: Vezje v prefabriciranem ohišju med gradnjo, Slika 24: Izgled končnega produkta. 31 Slika 25: Struktura DKVVB ios apliakcije 32 Slika 26: Posnetek iz DKVVB ios apliakcije - zagon 33 Slika 27: Posnetki osnovnih zaslonov DKVVB ios aplikacije. 33 Po vrsti iz leve: zaslon poveži, glavni zaslon in info zaslon 33 Slika 28: Posnetek iz DKVVB ios apliakcije - glavni zaslon 34 Slika 29: Posnetek iz DKVVB ios apliakcije - zagon - vklopljena funkcija LED 34 Slika 30: Posnetek iz DKVVB ios apliakcije - vklopljeno delovanje Power z LED 35 Slika 31: Posnetek iz DKVVB ios apliakcije - 24 urno delovanje 35 Slika 32: Posnetek iz DKVVB ios apliakcije - Termostat 36 Slika 33: Posnetek iz programa Xcode - struktura ios DKVVB aplikacije 37

Slika 34: Struktura treh ključnih delov kode 37 Slika 35: Del kode objektnega dela 38 Slika 36: Del odseka kode servisov in karakteristik 38 Slika 37: Del odseka kode BLE dela - branje vrednosti določenih karakteristik ko se povežemo na napravo 39 Slika 38: Del odseka kode grafičnega vmesnika - pritiski na gumbe v Glavnem zaslonu sprožijo reakcijo v 39 RoothViewControllerju 39 Slika 39: Prikaz Storyboard.storyboard iz datoteke Resources 40 Slika 40: Izsek datoteke Project.xml 41 Slika 41: Izsek datoteke Hardware.xml 41 Slika 42: Izsek kode iz podatkovne baze gatt.xml 42 Slika 43: Inicializacija programa 43 Slika 44: Thermostat v BGScript kodi 44 Slika 45: Temperatura v BGScript kodi 44 Slika 46: Timer v BGScript kodi 45 Slika 47: Zapisovlanik in bralnik realnega časa - RTC v BGScript kodi 46 Slika 48: Senzor za ogljikov monoksid na vezju 47 Slika 49: Celotna shema elektronskega vezja DKVVB 49 Slika 50: PCB - glavno vezje 50 Slika 51: PCB - osvetlitev LED 50 Kazalo tabel Tabela 1: Splošni vhodi modula BLE112 [14] 27 Tabela 2: Linearizacija vrednosti temperature v odvisnosti od ADC pretvornika 30 Tabela 3: Gap servis 43 Tabela 4: Servis 27e53514-309e-4e3c-928a-575d8602e51d 43

Seznam uporabljenih kratic in simbolov ios ios Operating System; operacijski sistem ios, SDK Software Development Kit; zbirke knjižnic za razvoj aplikacij, ANSI American National Standards Institute; Ameriški državni inštitut za standarde, NIB NeXT Interface Builder; datoteka, izdelana v grafičnem vmesniku, WLAN Wireless Local Area Network; brezžično lokalno omrežje, URL Uniform Resource Locator; naslov spletnih strani v svetovnem spletu, IDE Integrated development environment; integrirano razvojno okolje, CAM - computer-aided manufacturing; računalniško podprta proizvodnja, PCB - printed circuit board; tiskano vezje, EDA electronic design automation; avtomatsko načrtovanje elektronike, BOM - bill of materials; seznam materiala, UUID - Universally unique identifier; univerzalna edinstvena identiteta, UART - Universal asynchronous receiver/transmitter; serijski asinhroni prenos podatkov, USB - Universal Serial Bus; univerzalno serijsko vodilo, BLE - Bluetooth Low Energy; Bluetooth z nizko porabo, API - Aplication Programe Interface; vmesnik za programiranje aplikacij, AAA-Standard 1,5V battery; standardna 1,5 V baterija, SMS - Short Message Service; kratka sporočila, GPS - Global Position System; globalni sistem pozicioniranja, SIG - Bluetooth SIG; krovna Bluetooth organizacija, RTC - Real Time Clock; ura z realnim časom, DKVVB - Daljinsko krmiljena vtičnica z vmesnikom Bluetooth, SoC - System on Chip; celoten sistem na enem čipu.

Povzetek V nalogi sem naredil zasnovo in izdelal Daljinsko krmiljeno vtičnico z vmesnikom Bluetooth. Vtičnico lahko vstavimo v vse šuko vtičnice in nadomešča analogno časovno nastavljivo vtičnico s stikalom. Namen vtičnice je, da deluje kot pametno stikalo z različnimi funkcijami nastavitev. Krmilimo jo brezžično s pametnim mobilnikom oz. z ios aplikacijo, narejeno prav zanjo. Naredil sem vezje in ga namestil v vtični modul. Spisal sem program za Bluetooth modul BLE112. Osnovne funkcije pametne vtičnice so: 24 urna časovna nastavitev s 15 minutnimi intervali vklopa in izklopa, vklop in izklop glede na nastavljeno temperaturo v prostoru, vklop in izklop ambientalne razsvetljave in pa preprost vklop in izklop. Vtičnica ima vgrajeno realno uro, kar pomeni, da lahko deluje popolnoma avtonomno od aplikacije, seveda, ko jo enkrat nastavimo. Ključne besede: ios, Bluetooth Low Energy, Bluetooth, pametna vtičnica, mobilnik, iphone, BLE112.

Summary In my thesis I designed and made Remotely controlled socket with Bluetooth interface. The socket is made for all grounded sockets and replaces analogue time switches for sockets. The purpose of the socket is to act as a smart switch with various settings. It is controlled wirelessly with a smart phone, with an ios app designed specifically for that purpose. I made the circuit and installed the plug-in module as well as wrote the program for the Bluetooth module BLE112 and made the ios application. The basic functions of the smart socket are: on and off switch, its function can be set for 24 hours with 15 minute intervals for activation and deactivation, turning on or off depending on the set temperature in the room, it can turn on or turn off ambient lighting. The socket has a built-in real-time clock which means, once set, it can operate completely independently of the application. Key words: ios, Bluetooth Low Energy, Bluetooth, smart socket, smart phone, iphone, BLE112.

1. Uvod Današnji svet si težko predstavljamo brez pametnih mobilnikov. Število uporabnikov raste iz dneva v dan in do leta 2019 naj bi že več kot 1/3 vseh ljudi na svetu uporabljala pametni mobilnik [1]. Od leta 2000, ko je bila Bluetooth tehnologija prvič uporabljena v mobilnikih, je danes v vsakem pametnem mobilniku, ki pride na trg. Nastaja ogromno drugih naprav, ki so na različne načine povezav povezane na pametni mobilnik in ena izmed možnost je tudi Bluetooth povezava. Bluetooth se je leta 2007 nadgradil v t. i. Bluetooth Smart oz Bluetooth 4.0. Ideja te verzije Bluetooth tehnologije je bila drastično zmanjšati porabo energije za prenos podatkov in poenostaviti povezovanje pametnega mobilnika in druge naprave. Z nižanjem porabe energije se je posledično zmanjšala tudi količina prenosa podatkov. Za primerjavo; maksimalna hitrost pri Bluetooth 3.0 je 24 Mbit/s pri BLE 4.0 je le 1 Mbit/s. BLE ne nadomešča Bluetooth 2.0 oz 3.0, ampak gre pri Bluetoothu 4.0 za popolnoma drug namen uporabe te povezave [2]. Za primer si lahko pogledamo Bluetooth slušalke, kjer prenos tolikšnih podatkov, kot je prenos zvoka pri Bluetooth 4.0, ni mogoč. Bluetoth 4.0 uporabljamo v vseh drugih napravah, ki pred Bluetooth 4.0 sploh niso obstajale. Gre za naprave, kot je denimo Chipolo [3] - naprava, ki jo namestimo na ključe, torbice ali jo damo v denarnico in jo lahko s pametnim mobilnikom enostavno najdemo. Življenjska doba baterije v napravi pa presega 12 mesecev. Bluetooth Smart je nenadoma postal zelo razširjen, ko je Apple v septembru 2013 napovedal operacijski sistem ios7 [4]. S tem operacijskim sistemov so razvijalcem ponudili možnost uporabe API-jev za ibeacon, to je protokol povezovanja Bluetooth naprav s pametnimi mobilniki. ibeacon omogoča, da vse Bluetooth LE naprave, ki oddajajo ta signal, opozorijo pametni mobilnik, da se naprava nahaja v bližini. Tak primer je naprava Estimote [5], ki jo lahko namestimo pod čevelj v trgovini in ko uporabnik pride blizu tega čevlja, dobi opozorilo na telefon, da je ta čevelj danes z določenim popustom. ibeacon omogoča veliko različnih primerov uporabe, saj so naprave lahko zelo poceni z dolgo življenjsko dobo. &12

1.1 Namen diplomske naloge Idejo za diplomsko nalogo sem dobil, ko smo doma prižigali peč na olje s preprostim analognim časovnim stikalom, ki je vklapljal in izkljapljal peč na določen prednastavljen 24 urni urnik. Želel sem si izdelati takšno pametno vtičnico za v 220 V vtičnico kot nekakšno predvtičnico, ki bo omogočala, da se nanjo priklopi kakršnakoli naprava z maksimalno močjo 3,5 kw. Omogočala bo nastavitve 24 urnega dnevnika delovanja s pametnega mobilnika. Dodal sem tudi funkcijo termostata, kjer s temperaturno sondo merim temperaturo v prostoru. Vtičnica pa omogoča, da se vklaplja oz. izklaplja glede na nastavljeno temperaturo. Vtičnico se lahko uporablja tudi za druge namene, zato sem dodal LED osvetlitev, s katero vidimo, ali je vtičnica preklopila stikalo ali ne. Pametna vtičnica deluje popolnoma avtonomno, kar pomeni, da ko jo enkrat iz apliakcije nastavimo tudi po izgubi električne energije ve, kakšen je njen režim delovanja. Spremenimo ga lahko šele, ko se ponovno s pametnim mobilnikom povežemo nanjo. Namen za izdelavo tega izdelka pa je bil spoznavanje različnih tehnologij, ki bodo zelo vplivale na svet v naslednjem desetletju. Predvsem Bluetooth je tehnologija, ki bo z manjšimi nadgradnjami in novimi verzijami spreminjala svet. &13

2. Razvojne platforme Daljinsko krmiljena vtičnica z vmesnikom Bluetooth (v nadaljevanju DKVVB) v osnovi temelji na dveh ključnih platformah. To sta Bluetooth Smart modul BLE112, podjetja Bluegiga, in pa pametni telefon iphone 6S, podjetja Apple. 2.1 Vmesnik BLE112 Bluetooth Smart Module BLE112 je pametni modul z vmesnikom Bluetooth [6], namenjen za uporabo pri aplikacijah, ki vsebujejo nizko porabne senzorje in druge dodatke. Modul je narejen na podlagi Bluetooth čipa CC2540, podjetja Texas Instrumenst. BLE112 lahko gosti tudi aplikacije za končne uporabnike oz.je SoC naprava, kar pomeni, da ne potrebuje nobenih dodatnih mikroprocesorjerv. Naprava se lahko napaja iz gumbne 3 V baterije ali pa iz dveh celičnih AAA baterij. Če je modul v najnižjem porabnem načinu, potem porabi okoli 500 na toka. Modul se lahko zbudi v nekaj 100 ms. Slika 1: BLE112 pametni modul z vmesnikom Bluetooth [1] 2.2 Pametni mobilnik iphone iphone je pametni mobilnik, podjetja Apple. Prva generacija mobilnika iphone se je začela prodajati v letu 2007. Najnovejši model je iphone 5SE, ki je bil predstavljen v letu 2016. Vse pametne mobilnike iphone poganja operacijksi sestem ios. Uporabniški vmesnik ios-a je zgrajen okoli zaslona na dotik (angl. multi-touch), vključno z virtualno tipkovnico. iphone ima vgrajen Wi-Fi in Bluetooth 4.0, tako da se lahko poveže na različne druge naprave. Z mobilnikom iphone lahko snemamo video posnetke, fotografiramo, predvajamo glasbo, pošiljamo in prejemamo e-pošto, itd. Revolucijo pa je Apple naredil z virtualno trgovino t. i. App Store, kjer razvijalci nalagajo mobilne aplikacije. Od oktobra 2013 je v virtualni trgovini App Store na voljo več kot milijon aplikacij. V mojem primeru bom na tej platformi zgradil ios aplikacijo, ki se bo preko BLE povezave povezovala z DKVVB. &14

Slika 2: Pametni mobilnik iphone 6 [2] &15

3. Razvojna okolja 3.1 Razvojno okolje za modul BLE112 Za razvoj elektronike in programske kode za pametni modul BLE112 sem uporabil razvojno okolje t. i. Bluetooth Smart Development Kit, podjetja Bluegiga. Razvojno okolje simulira kasneje uporabljeni modul BLE112 in ga še nadgrajuje z dodanimi strojnimi rešitvami. V nadaljevanju bom bolj natačno opisal vsa okolja in tehnologije, katere sem uporabil pri razvoju DKVVB. Slika 3: Razvojno okolje Bluetooth Smart Development Kit [3] 3.1.1 Tehnologija Bluetooth 4.0 Bluetooth LE t. i. Bluetooth 4.0 oz. krajše BLE je tehnologija nove generacije protokola Bluetooth povzave. Rečemo ji tudi nizko energijska Bluetooth povezava. Tehnologija je odprto kodna in razvita s strani podjetja Blutooth SIG. Za razliko od prešnjih Bluetooth tehnologij ima BLE tehnologija, ki porabi malo energije, podoben učinek kot prejšnje tehnologije. Ima tudi zelo kratek čas povezanja med napravami in je zanesljiva ter varna. Za primerjavo s prešnjo Bluetooth tehnologijo porabi 20 krat manj energije in je enako vsebino sposobna prenesti 50 krat hitreje [7]. Razvita je bila z namenom uporabe v novih aplikacijah in iskanja novih možnosti na trgu. Še vseeno pa omogoča enake funkcionanosti kot to omogoča klasična in uveljavnjena Bluetooth tehnologija. Ključne lastnosti BLE tehnologije so: robustnost in zanesljivost, varnost prenosa podatkov, globalna dosegljivost, možnost notranje obdelave podatkov. &16

Ključne funkcije BLE tehnologije: nizka poraba energije med delovanjem in v spanju, možnost delovanja v daljšem obdobju na gumbnih baterijah, nizka cena, domet signala do 50 m. Obstajata dva načina uporabe Bluetooth 4.0 tehnologije: Bluetooth 4.0 samostojni režim delovanje (angl. Single mode) - v tem načinu je podprto povezovanje le na naprave z BLE 4.0, kar nam optimizira porabo energije in zmanjša velikost naprave. Bluetooth 4.0 dvojni režim delovanja (angl. Dual Mode) - v tem načinu se naprava lahko povezuje na starejše različice Bluetooth naprav in na naprave, ki vsebujejo BLE 4.0. 3.1.2 Tipična arhitektura BLE aplikacije Strežnik (angl. Server) je naprava, ki dostavlja podatke. Tipično so to naprave, ki vsebujejo razne senzorje, termometre ipd. V našem primeru je to DKVVB. Klient (angl. Client) To je naprava, na katero so podatki servirani od Serverja. Se pravi naprava za prikaz in obdelavo. V našem primeru iphone. Slika 4: Modulni prikaz osnovne arhitekture BLE aplikacije Profil (angl. Profile) V profilu izvemo vse o napravi, katere podatke pošiljajo in kako se obnašajo. Podatki se prenašajo preko servisov (ang. Service), glej sliko 5. Profil lahko vsebuje več servisov. V profilu so lahko zapisani tudi drugi podatki, kot je način varovanja oz. kriptacije podatkov, intervalov oddajanja in drugih parametrov za povezovanje. Profil je 16-bitni UUID zapis. &17

Storitev (angl. Service) Storitev nam pove, kateri tipi podatkov se pošiljajo, kako do njih dostopamo in kako so ti podatki zahtevni z vidika varnosti. Podatki so opisani s karakteristikami (angl. Characteristics) in storitvami (angl. Service), lahko vsebujejo eno ali več lastnosti, nekatere značilnosti so obvezne druge pa ne. Obstajajta dva tipa storitev: primarna storitev (angl. Primary Service), sekundarna storitev (angl. Secundary Service). Nekatere storitve so predefinirane s strani Bluetotoh SIG organizacije. Seznam je dostopen na njihovi uradni spletni strani [8]. Vsaka standarizirana storitev je enako dolga kot profil in ima 16-bitno UUID. Za vse nestandardne storitve se uporablja 128 UUID zapis. Karakteristike (ang. Characteristic) Karakteristike se uporabljajo za predstavljanje podatkov. To je vrednost, ki je v tipu zapisov UINT8, UINT16, UTF-8 in podobno. Tako kot storitve (angl. Service) in profili (angl. Profile) imajo karakteristike (angl. Characteristic) unikaten UUID. Enostavno so zaznane po standarnih karakteristikah, ki uporabljajo 16-bitno UUID, ali karakteristikah, ki jih generirajo razvijalci s 128- bitno UUID. Slika 5: Struktura karakteristike BLE aplikacije &18

Deklaracija karakteristike (angl. Characteristic declaration) Deklaracija vsebuje UUID od karakteristike, opis dostopa do zapisa (berljiv, zapisljiv, ). Vrednost karakteristike (angl. Charasteristic Value) vsebuje zapis (primer: vrednost pospeškometra). Deskriptor karakteristike (angl. Characteristic Descriptor) podaja dodatne informacije o karakteristiki (o uporabniku, klientu, ). Standardne karakteristike so dostopne na uradni spletni strani podjetja Bluetooth SIG [9]: Slika 6: Primer strukture BLE aplikacije 3.1.3 Programsko okolje Bluegiga Smart Software Podjetje Bluegiga je razvilo programsko okolje za hitrejši razvoj BLE aplikacij. Razdeljen je na dva dela: Bluetooth sklad (angl. The Bluetooth Smart Stack), ki ga sestavljajo vsi potrebni moduli, kot sta podrejena naprava (ang. Slave ( Peripheral )) in nadrejena naprava (ang. Master ( Central ), vsi protokolni sloji L2CAP, ATT, GAP in GATT ter skrbnik za varnost in povezovanje. Bluetooth zbirka za razvoj (angl. Bluetooth The Bluetooth Smart SDK), ki je sestavljena iz sledečih komponent: 3.1.3.1 Protokol BGAPI BGAPI je protokol za komuniciranje med Bluetooth skladom in gostiteljem oz. drugo napravo. Komuniciranje poteka preko UART ali USB povezave. BGAPI nam omogoča dostop do razvličnih nivojev v skladu: &19

Generic Access Profile - GAP nam omoogča upravljanje z različnimi načini povezovanja in vidnosti naprave. Security manager - omogoča dostop do funkcij za varnost povezavanja. Attribute database - omogoča dostop do lokalnih podatkovnih struktur. Attribute client - omoogča povezavo in upravljanje za iskanje, branje in pisanje različnih atributov. Connection - omogoča povezavo in upravljanje z BLE povezovanji. Hardware - omogoča upravljanje z različnimi nivoji strojne opreme, kot so časovniki, analogno digitalni pretvorniki, in ostalimi strojnimi vmesniki. Persistent Store - omogoča dostop do parametrov radijske opreme za branje in pisanje v pomnilniku. System - dostop do različnih sistemskih funkcij in ponastavljanja strojne opreme. 3.1.3.2 Skriptni jezik BGScript Bluegigovi produkti Bluetooth smart omogočajo razvijalcem ustvarjati produkte, ki delujejo samostojno oz. neodvisno od drugih platform in povezav. Podjetje Bluegiga je razvilo osnoven jezik za razvoj strojne-programske opreme t. i. BGscript. Jezik razvijalcem omogoča hitrejši in lažji razvoj aplikacij. Za BGScript omogoča uporabo enakega programskega in strojnega uporabniškega vmesnika kot BGAPI. Za razvoj in sestavljanje podatkov se uporabljajo brezplačna orodja podjetja Bluegiga. BGLib je knjižnica, ki omoogča protokolu BGAPI, da komunicira z gostiteljem preko UART ali USB povezave. Orodje za profile (angl. Profile Toolkit) je orodje, ki temelji na bazi GATT in razvijalcem omogoča hiter zapis profilov, servisov in karakteristik. Uporablja se osnova v XML zapisu. &20

Slika 7: Samostojen BGScriptov aplikacijski model [10] 3.2 Razvojno okolje programa Eagle Eagle je program za izdelavo simbolnih in vezalnih načrtov za elektronska vezja. Razvili so ga v podjetju CadSoft Comuputer GmgH. Je fleksibilen program, ki vsebuje funkcije, kot so EDA urejevalnik elektronskih shem, PCB urejevalnik končnega izgleda vezja. Vsebuje tudi funkcijo CAM in naredi seznam uporabljenega materiala BOM. Slika 8: Posnetek iz programa Eagle &21

3.3 Razvojno okolje programa Xcode Za krmiljenje DKVVB sem si izbral pametni mobilnik iphone. Za izgradnjo aplikacije na tem mobilniku se uporablja razvojna platforma Xcode [11]. To je orodje, ki ga razvijalci uporabljajo za ustvarjanje aplikacij tudi za ostale produkte Apple denimo, Mac, iphone, ipad, WatchOS in tvos. Xcode je izšel leta 2003. Zadnja različica, ki je na trgu, je 7.3.1. Orodje je optimizirano za lažji in hitrejši razvoj aplikacij. Platforma podpira uporabo izvorne kode v programskih jezikih C, C ++, Objective-C, Objective-C ++, Java, AppleScript, Python, Ruby, ResEdit (Rez) in Swift. V programu Xcode lahko razvijamo aplikacijo v celoti, saj so vsa orodja na enem mestu, torej pisanje kode kot tudi razhroščevanje le-te. Xcodov IDE (integrirano razvojno okolje) analizira detajle projekta in tako odkrije napake v logiki in sami sintaksi. Xcode IDE vsebuje inštrumente, kot so denimo simulator za ios naprave (iphone in ipad), najnovejše Mac OSX naprave in ios SDK ter veliko drugih zelo zmogljivih funkcij. Slika 9: Program Xcode 3.3.1 Programski jezik Objective C Objective C [12] je objektno usmerjen programski jezik. Opredeljen je kot zmogljiv nabor razširitve standardnega jezika ANSI C. Objective C je zasnovan tako, da jeziku C omogoča popolno objektno programiranje na enostaven način. Objective C sta v zgodnjih osemdesetih letih razvila Brad Cox in Tom Love v svojem podjetju Productivity Products International (Stepstone), v katerem sta zaslužila dovolj, da sta razvila nekaj različic Objective C. Brad Cox je potem izdal glavni opis delovanja programskega jezika v knjigi Object-Oriented Programming, An Evolutionary Approach. &22

Ko je Steve Jobs leta 1988 zapustil Apple Inc. in ustanovil podjetje NeXT, je kupil licenco za programski jezik Objective C, podjetja Stepstone, in izdelal lasten Objective C razhroščevalnik in knjižnice, na katerih je temeljil uporabniški vmesnik NeXTSTEP. Ko je leta 1996 Apple prevzel podjetje NeXT, je uporabil vmesnik OpenStep v novem operacijskem sistemu Mac OSX. Vmesnik OpenStep je vseboval programski jezik Objective C, razvojno orodje NeXT Objective C in okolje IDE. &23

4. Opis delovanja daljinsko krmiljene vtičnice Daljinsko krmiljena vtičnica z vmesnikom Bluetooth je sestavljena iz elektronskega vezja, ki je vstavljen v prefabricirano ohišje, in aplikacije za operacijski sistem ios. DKVVB vtaknemo v 220 V šuko vtičnico in deluje kot stikalo do zunanje priklopljene naprave. Seveda DKVVB deluje neodvisno od tega, ali je mobilnik povezan na DKVVB ali ne. Vendar pa moramo vsaj enkrat nastaviti režim delovanja oz. izbrati določeno funkcijo, pod katerimi pogoji bo DKVVB vklapljala ali izklapljala stikalo. Slika 10: Prikaz osnovnih strukture DKVVB in principa delovanja Funkcije DKVVB: Vklop in izklop delovanja oz. preklop stikala Ta funkcija nam omogoča, da enostavno vklopimo ali izklopimo stikalo oz. prekinemo napetost na priklopljeni napravi. 24 urni urnik delovanja t. i. Timer Ta funkcija nam omogoča nastavitev 24 urnega urnika delovanja s 15 minutnimi intervali. Termostat t. i. Thermostat Termostat deluje neodvisno od 24 urnega urnika delovanja in tudi enostavnega vklopa in izklopa stikala. V kolikor je funkcija termostata izbrana, omogoča, da nastavimo željeno &24

temperaturo v prostoru in DKVVB se bo, ko dosežemo željeno temperaturo, vklopila in po histerezi izklopila stikalo. LED osvetlitev t. i. LED Led osvetlitev je indikator vklopljenega stikala. Služi pa tudi za ambientalno osvetlitev. Termometer Znotraj aplikacije vidimo temperaturo, ki je v prostoru. V splošnem pa jo potrebujemo pri delovanju termostata. V vezju je uporabljen tudi časovnik za realen čas (angl. RTC). To omogoča modulu, da DKVVB, ko prejme režim delovanja iz aplikacije, deluje časovno bolj natačno tudi potem, ko modul ni več povezan s pametnim mobilnikom. Ko se naslednjič prijavimo na DKVVB iz telefona, prenesemo zadnji nastavljen režim delovanja. 4.1 Elektronsko vezje Slika 11: Prikaz sestave elektronskega vezja DKVVB po modulih Za jedro elektronike sem si zbral modul BLE112, gre za SoC čip. Je izredno fleksibilen strojni modul, ki se napaja z gumbno baterijo napetosti 3 V. V našem primeru modul deluje vedno le takrat, ko je DKVVB na 220 V napetosti. Poraba toka je tukaj nepomembna. Sicer pa je poraba toka sila pomembna in v najnižjem režimu delovanja modul porabi okoli 500 na toka in ga je mogoče zbuditi v nekaj 100 us. Je modul, ki omogoča le samostojen (ang.singel mode) režim delovanja, kar pomeni, da se lahko povezuje le na naprave, ki vsebujejo BLE module. Podpira režim nadrejene naprave (angl. Master) in podrejene naprave (angl. Slave), kar pomeni, da je lahko modul v nadrejenem načinu delovanja, kjer se več naprav povezuje nanj, ali pa v podrejenem, kjer se modul poveže le na eno nadnapravo in takšen režim uporabljamo v našem primeru. &25

BLE112 ima vgrajen sklad GAP, GATT, L2CAP, SMP. Moč na antenskem izhodu oz. moč TX (angl. TX power) je pri tem čipu lahko nastavljiva in je med +3 dbm in -23 dbm. Glede na čip anteno na BLE112 je za optimalno delovanje v prostoru potrebno nastaviti na +3 dbm, sicer je razdalja delovanja med pametnim mobilnikom in krmiljeno vtičnico zelo kratka. Občutljivost antene je med -85 dbm in - 91 dbm. V našem primeru je ta podatek nerelevanten. Modul ima 32 pinski priklop. Slika 12: Shema izhodov modula BLE112 [13] &26

Tabela 1: Splošni vhodi modula BLE112 [14] &27

4.1.1 Napajalni del Slika 13: Shema napajalnega dela s RAC-03 usmernikom Napajanje modula BLE112 je zagotovljeno iz AC-DC usmernika RAC-03, ki daje na izhodu 12 V enosmerne napetosti in regulacije na 3.3 V. Zraven napajalnih pinov je iz specifikacije razvidna priporočena vzporedna vezava 100 nf kondenzatorjev. Slika 14: Shema priključitve napajalne napetosti na BLE112 4.1.2 Vklop in izklop delovanja oz preklop stikala Glavna fukncionalnost DKVVB je vklop in izklop stikala oz. prekinitev 220 V napetosti na priključeni napravi, ki je priključena na DKVVB. Vklop in izklop se krmili s pomočjo 12 V releja, ki ga krmilimo z izhoda P1_4 BLE112 modula oz. preko n-kanalnega MOSFET tranzistorja. Slika 15: Shema krmiljenje releja DKVVB &28

4.1.3 Vklop in izklop ter struktura LED osvetlitve Z izhodom P0_1 BLE modula preko MOSFET tranzistorja krmilimo LED osvetlitev. Ta je nameščena na levo in desno stran ohišja DKVVB, služi kot indikator delovanja. Slika 16: Shema krmiljenje LED osvetlitve, Slika 17: Shema LED osvetlitve. 4.1.4 Zapisovanje in branje realnega časa - RTC Za točno delovanje 24 urnega režima je v vezje vgrajen RTC serije MCP7941. Čip je nizkoporabni, saj samodejno preklaplja v nižje porabni režim delovanja, ko zazna, da se ga ne potrebuje. BLE112 je programsko podprt za I2C komunikacijo. Uporabimo lahko izhode/vhode P1_6, I2C-data in pa P1_7 I2C-clock. Na RTC je vezana tudi 3 V baterija, kar nam omogoča, da lahko DKVVB preklopimo iz napajanja, kar bi v praksi pomenilo, da si, tudi če nekaj časa nima napajanja, zapomni točen čas. Slika 18: Shema vezja bralnika realnega časa - RTC, Slika 19: Blok diagram RTC [15]. &29

4.1.5 Merjenje temperature Na sondi KTY-81/210 je ustvarjen napetostni delilnik. Vrednost na delilniku pride na vhod P0_0. Različna temperatura spreminja upornost sonde, posledično se spreminja napetost na U(0). ADC pretvornik, da na vhodu 12 bitno predznačeno vrednost. To predstavlja 4095 delcev z vrednostmi od -2048 do 2047.Če naredimo primerjalno enačbo med vhodno napetostjo U(0) in maksimalno vrednostjo delcev ADC-ja dobimo enačbo: Če uporabimo podatke iz sonde KTY-81/210 iz spodnje tabele, formiramo linearno enačbo: Enačba je prilagojena prevajalniku za Bgscript, saj sem opazil, da se pojavijo težave z decimalnimi vrednostmi, zato je pomnožen del enačbe z 1000000. Podatki za R(KTY) so prepisani iz podatkovnega lista sonde KTY-81/201 podjetja NXP [16]. (1) (2) (3) Tabela 2: Linearizacija vrednosti temperature v odvisnosti od ADC pretvornika Slika 20: Temperaturna sonda KTY-81/210 &30

4.1.6 Slike med gradnjo Slika 21: Posnetek vezja iz sprednje strani, Slika 22: Posnetek vezja iz zadnje strani. Slika 23: Vezje v prefabriciranem ohišju med gradnjo, Slika 24: Izgled končnega produkta. &31

4.2 Aplikacija za ios DKVVB 4.2.1 Opis razvoja ios DKVVB aplikacije Kot sem že omenil, je bil motiv za DKVVB digitalizacija analogne stikalne vtičnice, ki ji je mogoče nastaviti različne funkcionalnosti. Pomemben mi je bil tudi uporabniški vmesnik, ki je zasnovan sila enostavno in uporabniku prijazno. 4.2.2 Struktura ios DKVVB aplikacije Aplikacija je na zunaj v osnovi sestavljena iz treh različnih zaslonov. Ko pridemo v aplikacijo, vidimo pozdravni zaslon in gumb za povezavo na DKVVB. Aplikacija je zasnovana tako, da omogoča Bluetooth povezavo le na dotičen modul z unikatnim UUID-jem. Ko se aplikacija poveže na napravo, grafika osveži zadnji nastavljen režim delovanja. Dostop do info zaslona nam omogoča kratek opis aplikacije in splošne podatke o diplomski nalogi. Slika 25: Struktura DKVVB ios apliakcije 4.2.3 Različna stanja DKVVB ios aplikacije in nastavitve 4.2.3.1 Vstop v DKVVB ios aplikacijo S pritiskom na ikono Diploma zaženemo aplikacijo. Vsi posnetki so narejeni na pametnem mobilniku iphone 6. &32

Slika 26: Posnetek iz DKVVB ios apliakcije - zagon S pritiskom na gumb t. i. Poveži se aplikacija poveže na DKVVB in preidemo na glavni zaslon. Aplikacija ves čas drži koncept, da krog predstavlja gumb, in ne glede na to, kaj pritisnemo, pride do neke akcije. Zasnova uporabniškega vmesnika je objektivno gledano sila preprosta in uporabnikom ios sistemov domača. Slika 27: Posnetki osnovnih zaslonov DKVVB ios aplikacije. Po vrsti iz leve: zaslon poveži, glavni zaslon in info zaslon &33

4.2.3.2 Glavni zaslon ios DKVVB aplikacije Slika 28: Posnetek iz DKVVB ios apliakcije - glavni zaslon Glavne funkcionalnosti DKVVB so: a) Vklop/izklop LED osvetlitve t. i. LED, ki deluje kot indikator delovanja. V primeru vklopa te funkcije ledice svetijo takrat, ko je stikalo DKVVB preklopljeno v stanje delovanja. Na aplikaciji DKVVB pa deluje takrat, ko vidimo na sredinskem gumbu Delovanje, ki je modro obarvan. Slika 29: Posnetek iz DKVVB ios apliakcije - zagon - vklopljena funkcija LED &34

b) Vklop/izklop delovanja t.i. Power deluje tako, da enostavno s pomočjo aplikacije vklopimo in izklopimo stikalo DKVVB v stanje delovanja. Slika 30: Posnetek iz DKVVB ios apliakcije - vklopljeno delovanje Power z LED c) Vklop/izklop 24 urnega urnika delovanja t. i. Timer deluje tako, da v kolikor pritisnemo na ta gumb, lahko nastavimo 15 minutne intervale delovanja vtičnice. Spodnji zasloni kažejo različna stanja. Na skrajni levi je ta režim le vklopljen, ker pa ni izbranega nobenega intervala, DKVVB ne deuje, sredinski gumb Delovanje je sive barve. Na sredinskem zaslonu izbiramo intervale in s pritiskom na gumb Potrdi potrdimo izbor intervalov. Na skrajni desni pa DKVVB deluje, to nam kaže modro obravan sredinski gumb Delovanje. Slika 31: Posnetek iz DKVVB ios apliakcije - 24 urno delovanje &35

d) Termonstat vklopimo s pritiskom na gumb Termostat. V primeru izbora tega režima,se 24 urni režim in režim Delovanje avtomatsko izklopita, saj možnosti niso komplementarne. Indikator Temperatura kaže trenutno temperaturo v prostoru na eno stopinjo natačno. V kolikor nastavimo višjo želeno temperaturo, le-to nastavljamo s spodnjim drsnikom. Ko je temperatura v prostoru enaka izbrani, se DKVVB izklopi. Na spodnji sliki na desni nam to kaže modro obravan gumb Delovanje in sivo temperaturo. Nastavljeno temperaturo nam kaže vrednost v gumbu Delovanje. Gumb LED pa je lahko vklopljen ali pa izklopljen, če je vklopljen, se osvetlitev prižge, ko DKVVB deluje. Slika 32: Posnetek iz DKVVB ios apliakcije - Termostat &36

4.2.4 Struktura kode DKVVB ios aplikacije Projekt Diploma.xcodeproj je sestavljena iz virov datotek, kjer je jedro sredstvo aplikacije (angl. Sources), ki jih potrebujejo viri (angl. Resources), podpornih datotek za delovanje aplikacije (angl. Supporting files) in prednapisanih delov kode (angl. Frameworks), katere potrebujemo za delovanje kode. Slika 33: Posnetek iz programa Xcode - struktura ios DKVVB aplikacije V osnovi pa je koda sestavljena iz treh ključnih delov. Ostale datoteke so pomožne ali pa jih program Xcode generira sam. Slika 34: Struktura treh ključnih delov kode Objektni del (angl. Objects) skrbi za povezovanje in pošiljanje podatkov na DKVVB. V datoteki AppEngine.m se zažene iskanje dotične naprave, in v kolikor je DKVVB v dometu signala, se nanjo poskuša povezati. V tem delu kode se lahko povezava tudi prekine zaradi drugačnega zahtevka. Skratka objektni del skrbi za povezavo do vtičnice DKVVB. &37

Slika 35: Del kode objektnega dela Del za komunikacijo BLE skrbi za obdelavo in prenos podatkov med uporabniškim vmesnikom (angl. Interface) in odzivom DKVVB na vse spremembe. V datoteki BLEAdresses.h imamo definirane servise (angl. Services) in karakterisitke (angl. Characteristics) ter maske, ki jih potrebujemo za prenos vrednosti. Natačnejše delovanje servisov in karakteristik je kasneje opisano pri strojni kodi DKVVB. Slika 36: Del odseka kode servisov in karakteristik &38

V datoteki BLEDevice.m in v datoteki BLEDevice.h definiramo vse metode za branje in pisanje vrednosti servisov in karakteristik. Ko se povežemo na napravo DKVVB, sprva preberemo vse vrednosti, saj tako dobimo podatke zadnjih nastavljenih vrednostih in lahko postavimo grafiko. Z metodami se prijavljamo tudi na določena opozorila (angl. Notifications), kot denimo na spremembo temperature. Slika 37: Del odseka kode BLE dela - branje vrednosti določenih karakteristik ko se povežemo na napravo Del za upravljanje z grafičnim vmesnikom (angl. Interface) je sestavljen iz šestih datotek, ki glede na obnašanje uporabnika znotraj aplikacije generiranjo tri različne zaslone, katere sem opisal pri vsebini 4.3.2 Struktura aplikacije. Gre za Zaslon poveži, ki je definiran z upraviteljem RootViewController.h in.m. Ko se povežemo na napravo DKVVB, se ga ne uporablja več in preidemo na Glavni zaslon, ki je definiran z upraviteljem DeviceViewController.h in.m. Tretji zaslon je Info Zaslon in je deviniran z upraviteljem InfoViewController.h in.m. Pod mapo Interface spada še datoteka Clock, v kateri pa je posebej definiran način izrisovanja grafike 24 urnega delovanja. Slika 38: Del odseka kode grafičnega vmesnika - pritiski na gumbe v Glavnem zaslonu sprožijo reakcijo v RoothViewControllerju &39

Vsi trije upravitelji, opisani zgoraj, so grafično nadgrajeni v datoteki Storyboard.storyboard. Lahko vidimo povezave med njimi in pa osnovne izrise grafičnega vmesnika Slika 39: Prikaz Storyboard.storyboard iz datoteke Resources &40

4.3 Strojna koda DKVVB aplikacije 4.3.1 Struktura kode strojne kode DKVVB aplikacije Struktura kode za modul BLE112, napisana s pomočjo jezika BGScript, se bistveno ne spreminja od programa do programa. Z datoteko Project.xml definiramo vse datoteke, ki naj bi bile del programa tako, da jih zna prevajalnik tudi uporabiti. Program Project.xml sestavljajo datoteke: Slika 40: Izsek datoteke Project.xml bgmain.bgs - definira BGScript datoteko, ki vsebuje BGScript programsko kodo, Hardware.xml - definira XML datoteko, ki vsebuje podatke o strojnih nastavitvah modula BLE112, attributee.txt - ustvari prevajalnik, vsebuje vrednosti za upravljanje s karakteristikami, gatt.xml - definira atribute oz. karakteristike, out.hex - ustvari prevajalnik, program se naloži na modul, cdc.xml - definira datoteko za konfiguracijo modula, project.xml - definira vse datoteke, ki spadajo k projektu. 4.3.1.1 Datoteka Hardware.xml Slika 41: Izsek datoteke Hardware.xml Datoteka hardware.xml vsebuje podatke o konfiguraciji strojnega dela BLE112 modula. Definira, katere funkcionalnosti so uporabljene in kakšne so njhove lastnosti. &41

Obrazložitev vsebine hardware.xml : Sleeposc - Vključen je 32.768KHz oscilator, ki nam omogoča, da gre modul v režim spanja, Usb - Povezava do USB je izključena zaradi varčevanja porabe energije, Txpower - Oddajna moč Tx je nastavljena na +3 dbm, vsak korak od 0 do 15 nam dvigne moč na anteni za 1 dbm. Vrednosti gredo od -24 dbm do +3 dbm. Usart channel= 0 - Vklučena je SPI podatkovna komunikacija, Script - Vključena je BGscripta, Port - Konficuracija porta 0. 4.3.1.2 Podatkovna baza gatt.xml Slika 42: Izsek kode iz podatkovne baze gatt.xml Baza gatt v našem primeru vsebuje dva servisa. GAP in pa servis Bluetooth Vticnica. &42

Servis GAP - Generic access Profile Za vsako BLE napravo moramo definirati GAP servis. Je zelo preprost in vsebuje dve karakteristiki. Ti dve spremeljivki sta narejeni le za branje in sta konstanti. UUID IME karakteristike OPIS karakteristike 2A00 Bluetooth Vticnica Definira ime naprave 2A01 4142 (tip HEX) Definira izgled naprave Tabela 3: Gap servis Servis 27e53514-309e-4e3c-928a-575d8602e51d V splodnji tabeli so napisana imena servisov, ki jih uporabljamo za delovanje DKVVB. UUID IME karakteristike OPIS karakteristike FFF0 MODE definira stanje naprave (b3 - Termostat, b2-timer, b1 - LED, b0 - Power) FFF1 CLOCK definira čas, ki ga pridobi iz sistemskega časa FFF2 THERMOSTAT vrednost nastavljene temperature na termostatu FFF3 TEMPERATURE vrednost temperature v prostoru FFF4* CO* vrednost prisotnosti plina FFE0 TIMER vrednost 15 minutnih intervalov *Opisana pri izboljšavi Tabela 4: Servis 27e53514-309e-4e3c-928a-575d8602e51d 4.3.1.3 Glavni program Bgmain.bgs Ponastavitev in inicializacija Slika 43: Inicializacija programa &43

Pri zagonu programa se sistem postavi in inicializirajo se uporabljene spremenljivke. To je tudi vstop za vse dele BGScript kode. V tem segmentu so tudi definiran časi za oglašanje (ang. Advertising time) aplikacije, kar je sicer zelo pomembno, če je modul priključen na baterijo. V našem primeru je ta podatek nepomemben in uporabimo priporočene nastavitve. Kot je definirano v GATT tabeli, ios aplikacija pošlje na karakteristiko MODE podatek, v kakšnem stanju so nastavitve aplikacije. To stanje se zapiše v mode_value. ios DKVVB aplikacija je prijavljena na notifikacijo temperature in tudi prisotnost plina v potencialni nadgradnji. Opis funkcije Termostat v BGScript kodi Slika 44: Thermostat v BGScript kodi V kolikor je vključena ta funkicja, rele preklopi, če je temperatura višja od trenutne temperature v prostoru. Narejena je tudi histereza, kjer počakamo, da se temperatura nekoliko ustali, da ne preklaplja okoli nastavljene temperature ves čas. Opis funkcije Temperatura v BGScript kodi Slika 45: Temperatura v BGScript kodi Surove podatke sprva obdelamo. Vrednost iz ADC-ja 12-bitna poravnana na levo in v dveh besedah. To pomeni, da so efektivni biti sledeči: 'bbbb bbbb bbbb xxxx'. Spodnji 4 biti so neuporabni, zato je &44

potrebno vrednost za 4 bite (kar je 2^4=16) premakniti v desno. To je deljenje s 16. Naredil sem tudi odmik od reference. To sem enostavno določil z merjenjem realne temperature v praksi. S pomočjo opozorila osvežujemo podatek na ios DKVVB aplikaciji. V spodnji obliki ios DKVVB aplikacija pridobiva podatke o temperaturi: $2F - (40C)... $1 - (1C) $0 - (0C)... $85 - (-5C) Opis funkcije 24 urni urnik delovanja oz Timer v BGScript kodi Slika 46: Timer v BGScript kodi V kolikor imamo vklopljeno 24 urno delovanje TIMER, iz apliakcije na to karakteristiko prejmemo podatek kateri, interval je vklopljen in kateri ne. Seveda je pri 24 urnem delovanju pomemben tudi RTC, ki nam omogoča pridobivanje točnega časa. &45

Zapisovanje in branje realnega časa t. i. RTC v BGScript kodi Slika 47: Zapisovlanik in bralnik realnega časa - RTC v BGScript kodi BLE112 bere podatke o uri na vsako minuto. Prvi čas pa dobi, ko se ios DKVVB aplikacija prvič poveže na BLE112 modul in seveda vsakič naslednjič. &46

5. Izboljšave Produkt bi lahko izboljšal praktično na vseh nivojih. Pri ios DKVVB aplikaciji bi vsekakor moral dodati možnost povezave na več naprav h krati in seveda predelati tudi strojno kodo. Poskrbeti bi bilo potrebno tudi za bolj optimalen način povezovanja na napravo in splošno uporabnost. Aplikacijo bi lahko naredil tudi za Android platformo. Pri elektronskem vezju pa je bil predviden senzor za ogljikov monoksid, katerega bom v nadaljevanju bolj podrobno vpisal in tudi napisal razloge, zakaj ni bil vključen v končen produkt. 5.1 Senzor za ogljikov monoksid DKVVB ima vgrajen tudi senzor za ogljikov monoksid. V primeru povečanja prisotnosti tega plina v prostoru vtičnica pošlje opozorilo na pametni mobilnik oz. DKVVB aplikacijo. Osnova je senzor MQ-7. Princip delovanje je sledeč. Površinska napetost senzorja Rs je v relaciji z napetostjo bremena preko sledeče enačbe: Rs\RL = (Vc-VRL) / VRL. Če poenostavim, za delovanje senzorja moramo le-tega segrevati in ohlajati v 150 s intervalu tako, da nanj pritisnemo napetost 5 V+-0.1 V in 1,4 V+-0.1 V. S tem grejemo žico senzorja. V primeru, da senzor zazna plin, se mu spremeni upornost, sprememba upornosti pa povzroči spremembo napetosti in to spremembo začutimo na vhodu BLE112. Vse razen strojne kode je pripravljeno za uporabo senzorja. Za dokončanje bi potreboval referenčni merilni instrument za merjenje prisotnosti oglikovega monoksida in pa konstanten vir tega plina. Slika 48: Senzor za ogljikov monoksid na vezju &47

6. Zaključek Podobni produkti se že pojavljajo na trgu, zato verjamem, da jih bo v prihodnosti še več. Pri hišnih instalacijah je problem v tem, da se jih ne menja prej kot v 30 letih, zato pametne instalacije prihajajo zelo počasi v domove. Aplikacijo bi moral nadgraditi z Wi-Fi modulom, saj bi s tem dobili neodvisnost od pametnih mobilnikov in bi lahko pametno vtičnico krmilili praktično s pomočjo vsake naprave, ki je povezana na svetovni splet. Druga pot bi bila izdelava modula za modularno instalacijo, kar bi pomenilo, da bi v sklopu vtičnic le zamenjali en modul in bi dobili posamezne sklope pametne. Modul bi lahko vgradili tudi v plafonjero za luči in tako bi si lahko zgradili pametni dom na obstoječih instalacijah. &48

Slika 49: Celotna shema elektronskega vezja DKVVB &49

Slika 50: PCB - glavno vezje Slika 51: PCB - osvetlitev LED &50

Literatura in spletni viri, dosegljivi septembra 2016 [1] Statistika o številu uporabnikov pametnih mobilnikov: https://www.statista.com/statistics/330695/number-of-smartphone-users-worldwide [2] Primerjava povezav Bluetooth 3.1 in Bluetooth 4.0: http://techpp.com/2012/10/13/bluetooth-3-1-vs-bluetooth-4-0/ [3] Spletna stran o produktu Chipolo: http://www.chipolo.net [4] Razširitev BLE na pametne mobilnike: http://www.theverge.com/2013/6/13/4427674/apple-expands-bluetooth-support-for-smartwatchesfitness-trackers [5] Estimote t. i. Beacon: http://estimote.com [6] Opis vmesnika BLE112 https://www.bluegiga.com/en-us/products/ble112-bluetooth-smart-module/ [7] Bluetooth Low Energy, The developer s Handbook, Robin Heydon, 2013 [8] Seznam predefiniranih storitev (angl.services) podjetja Bluetooth SIG https://www.bluetooth.com/specifications/gatt/services [9] Seznam predefiniranih karaktristik (angl.characteristics) podjetja Bluetooth SIG https://developer.bluetooth.org/gatt/characteristics/pages/characteristicshome.aspx [10] Samostojen BGScriptov aplikacijski model https://www.bluegiga.com/en-us/products/software-bluegiga-bluetooth-smart/ [11] Opic programa Xcode https://en.wikipedia.org/wiki/xcode [12] Opis programskega jezika Objetive-C &51

https://en.wikipedia.org/wiki/objective-c [13] Shema modula BLE112 http://datasheet.octopart.com/ble112-a-v1-bluegiga-technologies-datasheet-11764420.pdf [14] Splošni vhodi modula BLE112 http://datasheet.octopart.com/ble112-a-v1-bluegiga-technologies-datasheet-11764420.pdf [15] Blokovna shema RTC http://www.farnell.com/datasheets/1738903.pdf [16] Podatkovni list elementa KTY-81/210 http://www.nxp.com/documents/data_sheet/kty81_ser.pdf &52