Prosjektoppgave i EL2-203 SmartConnect Høst 2013. Forord



Like dokumenter
Brukarrettleiing E-post lesar

Brukarrettleiing. epolitiker

I denne oppgåva skal me lage eit enkelt spel der pingvinane har rømt frå akvariet i Bergen. Det er din (spelaren) sin jobb å hjelpe dei heim att.

Lotteri- og stiftingstilsynet

Pressemelding. Kor mykje tid brukar du på desse media kvar dag? (fritid)

Brukarmanual.

Kvifor kan ikkje alle krølle tunga? Nysgjerrigperprosjekt kl Davik Oppvekst

IKT-kompetanse for øvingsskular

mmm...med SMAK på timeplanen

Ipad som politisk verktøy. Surnadal kommune

FÅ VERDA HEIM TIL DEG. NÅR DU VIL. TUSSAFIBER KOPLING AV RUTER. FRITZ Box 7360/7390


FÅ VERDA HEIM TIL DEG. NÅR DU VIL. TUSSAFIBER KOPLING AV RUTER. Fritz!Box

POLITISKE SAKSDOKUMENT:

Her skal du lære å programmere micro:biten slik at du kan spele stein, saks, papir med den eller mot den.

Til deg som bur i fosterheim år

Rapport Mandatory Assigment 06 Photo Essay. Malin Ersland Bjørgen

ehandel og lokalt næringsliv

Brukarrettleiing. For bruk av datamaskin/projektor i undervisningsrom

Innhald Pålogging... 2 Viktige knappar... 3 Fronter som rom... 3 Leggje inn ei oppgåve i Fronter... 4 Litt om nokre ulike format for tekstbehandling

Nasjonale prøver. Lesing 5. steget Eksempeloppgåve 2. Nynorsk

Rettleiing til rapportering i Altinn, «Partifinansiering 2014», RA-0604 Partilag med organisasjonsnummer

RETTLEIAR BYGGSØK. Søknad om tiltak utan ansvarsrett PBL 20-2

Telemedisin Sogn og Fjordane Retningsliner for bruk av videokonferanse

Legge til brukar. Legge til ein lærar Då det er lite utskifting på lærarar så legg eg til dei manuelt 1. Klikk Kontoredigering Legg til Manuelt

Til bruk i utviklingssamtale på 8. trinnet. Samtaleguide om lesing

Lingspeak Lingit AS

Jon Fosse. For seint. Libretto

Emneregistrering i Studentweb, Historiestudiet ved Høgskulen i Volda

På tur i Midt-Telemark Informasjon om natur, kultur og friluftsliv

Kvifor er dei fleste mobiltelefonar rektangulære?

Norsk Hammeeting, Letohallen 5. april 2014 Frode Igland LA6VQ

AirLink 2200 FAQ. Side 2 Side 2 Side 3 Side 4 Side 6 Side 7 Side 8 Side 10 Side 11 Side 12 Side 13 Side 13 Side 14 Side 15 Side 16 Side 18

STUDENTARBEID. Front-end webklient for Enoro AS. Prosjektbeskriving. Kim René Merkesvik Anders Aalen Andrii Petrychak

Du kan skrive inn data på same måte som i figuren under :

NAMNET. Av Jon Fosse GUTEN JENTA

Kom i gang med SKYLAGRING. Frå Serit Fjordane IT

AirLink 2000 FAQ versjon April JensenScandinavia AS

EW-7438RPn Air Quick Installation Guide

AirLink 2400ac FAQ. Side 2 Side 2 Side 3 Side 4 Side 6 Side 7 Side 9 Side 11 Side 12 Side 13 Side 14 Side 14 Side 15 Side 16 Side 17

Spørjeskjema for elevar 4. klasse, haust 2014

TUSSAFIBER KOPLING AV RUTERMODEM RETTLEIING FOR KABEL-TV

Alle svar er anonyme og vil bli tatt vare på ved Norsk Folkemuseum kor vi held til. Ikkje nemn andre personar med namn når du skriv.

Bruk av reiserekning i Agresso

Kvinnherad kommune-lønsavdelinga. Visma.net Expense. Evelyn Tveito 1

Påmelding til renn i kretsen og utanfor kretsen.

LIKNINGA OM DEN VERDIFULLE PERLA

Stråling frå elektronisk kommunikasjon

Nytt HFK Intranett

RETTLEIING FOR BRUK AV «MIN SIDE» I DEN ELEKTRONISKE SKJEMALØYSINGA FOR FRI RETTSHJELP. Oppdatert 19.september 2012 Ove Midtbø FMSF

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

Månadsbrev for Rosa september 2014

Skal skal ikkje. Det startar gjerne med ein vag idé eller ein draum om å bruka interessene dine og kompetansen din på nye måtar på garden din.

GISKE OS øydelagd av orkanen Dagmar. Tekst: Kjell Mork Soot. Foto : Lars Petter Folkestad

Barnerettane i LOKALSAMFUNNET

Kjære føresette. Nok ein månad er snart over! Tida går veldig fort, spesielt når vi har det kjekt. Og det er akkurat det vi har på SFO:-)

FIBER TIL HEIMEN. Utbygging av fiber. Her følgjer nyttig informasjon knytt til fiberutbygginga. til din bustad.

Referat frå foreldremøte Tjødnalio barnehage

Nettbedrift nye funksjonar frå februar 2016

Molde Domkirke Konfirmasjonspreike

Partifinansiering 2017, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Minnebok. Minnebok NYNORSK

INTERNETTOPPKOPLING VED DEI VIDAREGÅANDE SKOLANE - FORSLAG I OKTOBERTINGET 2010

16. april Kurs i matrikkelføring. Adresseoppgåver

TUSSA RADIOLINK RUTER - FRITZ BOX 3490/7490 TUSSA BREIBAND MONTERINGSRETTLEIING FOR KOPLING AV RUTER. tussa.no

Informasjonssbrev Arkivplan.no

INFORMASJONSHEFTE FOR STUDENTAR I LYEFJELL BARNEHAGE

Telefrukt AS. Medlemsportal - Introduksjon

Spørjegransking. Om leselyst og lesevanar ved Stranda Ungdomsskule. I samband med prosjektet Kvitebjørnen.

ÅRSMELDING. for Rasdalen grendalag 2013/2014

Det æ 'kji so lett å gjera eit valg når alt æ på salg Dialektundersøking

TUSSA RADIOLINK RUTER - FRITZ!BOX TUSSA BREIBAND MONTERINGSRETTLEIING FOR KOPLING AV RUTER. TIL RADIOANTENNE CAMBIUM PMP450b SM. tussa.

Overføre/kopiere bilde(filer) frå kamera/mobil til PC

Sognefrukt Medlemsportal - Introduksjon

Om utviklingsplanar for dei vidaregåande skulane i Eiksundregionen Høyring 1

Installasjonsrettleiing

Manual oppdatering av nettsider Sogndal idrettslag

Valdres vidaregåande skule

Geitekontrollen på internet- hva betyr det for meg?

Me har sett opp eit tankekart og mål for dei ulike intelligensane, dette heng som vedlegg.

«ANNONSERING I MØRE OG ROMSDAL FYLKESKOMMUNE»

ÅRSMELDING. for Rasdalen grendalag 2008/2009

På tur med barnehagen. Mars 2015-juni 2015 Fokusområde 11

Samarbeidsmeteorolog 2017: Kva tenkjer ungdomane i Vest-Telemark om eit felles ungdomsråd?

Rettleiing til rapportering i Altinn, «Partifinansiering 2014», RA-0604 Partilag utan organisasjonsnummer

Appkatalog og Software Center

Eleven i ein lærande organisasjon vurderingsarbeid i skulen. Presentasjon av eit dr.gradsarbeid Astrid Øydvin

Joakim Hunnes. Bøen. noveller

Epson-prosjektorar. Generelt. Tabell 1. Prosjektoroversikt

Månadsbrev frå oktober, Grøn avd.

Informasjon til elevane

Søk regionale miljøtilskudd elektronisk

Rettleiing aktivering av fritekstleverandørar i ehandel

Partifinansiering 2016, RA Rettleiing: Web-skjema. Finne ID og passord. Hente, fylle ut, signere og sende inn skjemaet elektronisk

Den nye seksjon for applikasjonar

BRUKARUNDERSØKING MOTTAK AV FLYKTNINGAR MOTTAK AV FLYKTNINGAR

Odd Petter Habbestad Prosjektleder i Bømlo Vatn og Avløpsselskap AS.

3 Gjer setningane om til indirekte tale med verba i preteritum. Han fortalde: Ho bur på Cuba. Han fortalde at ho budde på Cuba.

PGS - EKSAMEN BRUKARRETTLEIING FOR SKOLEN

Transkript:

Forord Denne rapporten omhandlar i hovudsak korleis vi gjekk frå en idé hos en gründer, til realisering av idéen av oss 4 studentar på automasjonslinja. Målet var å lage ein Android applikasjon som kan styre ei stikkontakt som gründer har utviklet. Vi vil gjerne få retta ein stor takk til gründer Frode Steen for idé, og for at han kontakta Høgskulen i Førde for å få realisert idéen. Vi vil også retta en takk til Marcin for ekstra undervisning til fordel for prosjektet, Bjarte Pollen for småelektroniske komponentar til styring av WiFi-enheter, Kamil Folkert for hjelp med Android-programmering og til slutt Preben Nes for hjelp med utvikling av spørjeundersøking vår. Det har vore eit spennande og lærerikt prosjekt, med mange utfordringar og enorm læringskurve. Vi har alle hatt eit godt utbytte av prosjektet. Førde 29.11.2013 Andrii Petrychak Per Øyvind Olset Torbjørn Aardal Lars Martin Gjeraker 1

Samandrag Vi er ei gruppe studentar frå ingeniørutdanninga, Automatiseringsteknikk, ved Høgskulen i Sogn og Fjordane. I faget «Elektronikk og datamaskiner» har vi gjennomført eit prosjekt. Prosjektet gjekk ut på at vi skulle lage ein Android-applikasjon for styring av SmartConnect-stikkontakter. I slutten av år 2013 vil første utgåve av SmartConnect-stikkontakten være i sal i vanlege dagligvarebutikkar. Desse stikkontaktene har same funksjon som ei vanleg stikkontakt. Gründer for SmartConnect, Frode Steen, har no ein idé om å oppgradere stikkontaktane med ein WiFimodul, sånn at dei kan bli styrt av ein smarttelefon via det trådlause nettverket i heimen. I applikasjonen vi har utvikla består denne styringa av å kunne slå SmartConnect-stikkontaktene av og på, sjekke temperatur, samt luftfuktighet, på kvar stikkontakt. Eventuelle framtidsplanar vil være å kunne måle mengda straum som går gjennom kvar kontakt, og tidsinnstille når kvar kontakt slår seg av og på. Vi valde å utvikle systemet for Android-plattforma. Android «byggjer» på programmeringsspråket JAVA, og man må kunne dette programmeringsspråket for å lage applikasjonar til Android. Vi programmerte også eit Arduino-program for å overvake temperatur. Brukarundersøkingar ved prosjekt i faget «Elektronikk og Datamaskiner» er sjeldan utført, men vi hadde lyst å gjere det for å finne ut meir om kor godt kjende folk er med teknologien vi brukte i vårt system. Med god hjelp frå Preben Nes, fikk vi utforma eit flott skjema med til saman 10 spørsmål. Vi brukte mykje tid på prosjektet. Vi brukte mykje meir enn rammene la opp til, men vi føler vi fekk stort utbytte av innsatsen og mykje tileigna kunnskap. 2

Innhald FORORD... 1 SAMANDRAG... 2 INNHALDSLISTE... FEIL! BOKMERKE ER IKKE DEFINERT. 1.0 INNLEIING... 4 2.0 ORD OG UTTRYKK... 5 3.0 PROBLEM/IDÉ... 6 4.0 VÅRT SYSTEM... 7 5.0 LITT OM JAVA OG ANDROID... 8 5.1 KORLEIS KOMME I GANG MED PROGRAMMERING I ANDROID STUDIO... 9 6.0 VÅR GJENNOMFØRING AV PROSJEKTET... 11 6.1 PLANLEGGING OG BYRJING... 11 6.2 KVIFOR ROVING WIFI-MODUL?... 11 6.3 PROSESSEN VIDARE... 12 7.0 ANDROID PROGRAMMERING... 13 7.1 OPPDAGING AV NYE SMARTCONNECT-ENHETER... 13 7.2 PERMANENT LAGRING... 14 7.3 SENDE KOMMANDOAR TIL SMARTCONNECT... 14 7.4 TEMPERATUROVERVAKING... 15 8.0 OPPKOPLING AV MODELL TIL PRESENTASJON... 16 9.0 MULIGHEITER OG UTVIKLING... 17 10.0 BRUKARUNDERSØKING FOR SMARTCONNECT... 18 11.0 TID OG ØKONOMI... 19 11.1 TIDSBRUK... 19 11.2 ØKONOMI... 20 12.0 KONKLUSJON OG ETTERORD... 21 KJELDER... 22 VEDLEGG... 22 3

1.0 Innleiing Vi er ei gruppe på 4 studentar frå ingeniørlinja automasjon, ved Høgskulen i Sogn og Fjordane. I faget «Elektronikk og datamaskiner» er det opplagt til et valfritt prosjekt som vi skal jobbe med gjennom semesteret. Vi skulle som sluttresultat ende opp med ein prosjektrapport samt ein munnleg presentasjon av prosjektet. Dette dannar då 40 % av karakteren i faget. Organiseringa av gruppa Andrii Petrychak Gruppeleiar og programmerar Lars Martin Gjeraker Programmerar Torbjørn Årdal Programmerar Per Øyvind Olset Design og maskinvare Mål med prosjektet Hovudmålet med prosjektet vårt var å fordjupe oss i Java og Android-programmering. 4

2.0 Ord og uttrykk Enhet Når vi skriv ein «enhet» så meiner vi eit elektrisk apparat, ofte noko som er tilkopla eit nettverk. Dette kan være ei SmartConnect-kontakt, ein PC, ein mobiltelefon, eit nettbrett etc. WPS (WiFi Protected Setup) «WiFi Protected Setup» (fork. WPS) er eit system som let ein enhet kople seg på eit trådlaust nettverk uten at brukar må taste inn passord. Man trykker på WPS-knappen til enheten man vil koble til nettverket, og deretter på WPS-knappen til ruteren. Enheten blir då automatisk kopla på nettverket. SmartConnect-systemet er avhengig av at din ruter har ein knapp for «WPS». IP-adresse Ei IP-adresse er kontakt-adressa til ein enhet på eit nettverk. Ei datamaskin har ei IP-adresse, ein mobiltelefon har ei anna. Det er ved bruk av denne adressa at man kan kontakte andre enheter på eit nettverk. Ei IP-adresse kan bli endra. Koplar man seg på eit nytt nettverk vil man få ei ny adresse. MAC-adresse Ei MAC-adresse er ein unik identifikator for utstyr som benyttes i, eller kan koplast til nettverk. Fysisk utstyr som datamaskiner, skrivarar, nettverkskort, rutarar, smarttelefonar etc, har ei MAC-adresse. Denne adressa kan ikkje bli endra. TCP/UDP «Transmission Control Protocol»(fork. TCP) og «User Datagram Protocol» (fork. UDP) er to forskjellige protokollar (sett med reglar) for å sende data frå ein avsendar til ein eller fleire andre mottakarar på eit nettverk. «UDP» sender pakkane med data «fritt» ut på nettverket, og alle enheter som «lyttar» vil motta dei. «TCP» opprettar ein «tunnel» mellom to enheter på nettverket og sender pakkar med data gjennom denne. QR-kode Ein QR-kode er nesten det same som ein vanleg strekkode. Ein sånn kode kan innehalde eit bilete, ein liten tekst, ein link til ei nettside etc. Når man skanner ein sånn kode med ein mobiltelefon så får man innhaldet av koden opp på skjermen. 5

3.0 Problem/Idé Figur 1. Stikkontakt uten wifi mulighet I slutten av år 2013 vil første utgåve av SmartConnect stikkontakter (Sjå figur 1) være i sal i vanlege daglegvarebutikkar. Desse stikkontaktene har same funksjon som ei vanleg stikkontakt har i dag, men i tillegg har den ein to-pola brytar og to uttak for USB lading. Du som kunde skal kunne gå i butikken og kjøpe deg ei SmartConnect-stikkontakt, akkurat som ei vanleg vare. Når du kjem heim pakkar du opp kontakta og koplar den i veggen. Ideen til oppdragsgivar Frode Steen er å oppgradere SmartConnect-stikkontaktane med ein WiFi-modul, sånn at dei kan bli styrt av ein smarttelefon via det trådlause nettverket i heimen. Man skal kunne styre med ein eller fleire smarttelefonar. Sjå figur 2 for illustrasjon. Figur 2: Illustrasjon av muligheten for Stikkontakt med wifi modul. 6

4.0 Vårt system P.g.a. begrensa tid så kunne ikkje vi oppfylle alle ynskjer til oppdragsgjevar. Her er ein gjennomgang på kva eigenskapar vi valde å inkludere i vårt prosjekt. Trådlaus styring av eitt, eller fleire, SmartConnect-greinuttak frå smarttelefon. Figur 3 Styring av fleire enheter Styringa skal ikkje være begrensa til kun ein smarttelefon. Fleire smarttelefonar skal kunne gå inn og styre eit greinuttak. Figur 4 - Styring frå fleire telefonar Temperaturovervaking av kvar SmartConnect-enhet. Dersom temperaturen overstig ei grense skal det dukke opp eit varsel på telefonen. Det same for luftfuktighet. Figur 5 - Temperaturvarsling Brukarvennleg design. Alle skal kunne forstå og nytte systemet på ein tilfredsstillande måte. Figur 6 Brukarvennleg grensesnitt 7

Ein siste funksjon vår oppdragsgivar etterlyste var ein timer-funksjon. Tanken med dette var å kunne programmere når SmartConnect-enheten automatisk skulle slå seg på, og når den skulle slå seg av. For eksempel at kaffitraktaren slo seg på ti minutt før vekkarklokka slo seg på om morgonen, så bebuarane kunne vakne til fersk kaffi (sett at traktaren var klargjort kvelden før). Vi hadde ei løysing for timer-funksjon under planlegging, men den vart ikkje implementert grunna tidsmangel. 5.0 Litt om JAVA og Android Vi valde å utvikle systemet for Android-plattforma. Android «byggjer» på programmeringsspråket JAVA, og man må kunne dette programmeringsspråket for å lage applikasjonar til Android. JAVA er eit programmeringsspråk som er utvikla av Sun Microsystems. Det blir nytta i fleire milliardar forskjellige enheter verden over. Det kan nyttast til å lage både enkle, og veldig avanserte program. Vi har hatt undervisning i JAVA i eit tidligare semester, så å utvikle denne applikasjonen for Android var dermed ei enkel avgjersle. 5.1 Korleis komme i gang med programmering i Android Studio Vi vil her prøve å beskrive korleis vi kom i gang, og korleis andre kan komme i gang med å lage sin første app. Vi tar her førehald om at du allereie har installert JAVA og JAVA SDK på din PC (noe som blir gjort 2 semester i faget datateknikk med programmering). Figur 7 - Utklipp av nettsida man kan laste ned Android Studio Det første du må gjere er å laste ned Android Studio. Det kan gjerast ved å søke etter Android Studio på f.eks. Google.com, eller følgje denne linken http://developer.android.com/sd k/installing/studio.html. Då skal sida, som vist på figur 7, komme fram. Nedst til høgre på biletet er det ein blå knapp som du trykkjer på, og følgjer anvisning til nedlastning. 8

Etter at programmet er nedlasta og installert, opnar du Android Studio og blir møtt av velkomstskjermen, som vist på figur 8. Velkomstskjermen er veldig intuitiv ved at du klikkar på «New Project». Figur 8 - Velkomstskjermen i Android Studio Application name: Her skriv du namnet på appen du skal lage. Module name: Namnet på applikasjonsmappa. Package name: Her kan du nytte com.example.<ditt prosjektnamn>. Project location: Staden prosjektet blir lagra på din datamaskin. Resten av vala treng man ikkje å endre. Deretter klikkar du «next» 3 gongar, og til slutt «finish». Figur 9 - Definering av nytt prosjekt i Android Studio 9

Figur 10 - Brukargrensesnittet til Android Studio ved nyleg oppretta prosjekt Gratulerer! Du har no laga din første app som seier «Hello World». For å få denne applikasjonen ut på telefonen din må du gjere følgjande: Kople telefonen din til datamaskina ved ein USB-kabel. I menyen i Android Studio, gå inn på: o «Run» o «Edit Configurations» o I vindauget som dukker opp, under «Target Device», klikk på «USB-device» På telefonen din, gå inn på: o «Innstillinger» o «Utvikleralternativer» (om du ikkje finner «Utvikleralternativer» går du inn på «Om telefonen», blar ned til «Byggnummer» og klikkar på denne 5-6 gongar). o Aktiver «USB-feilsøking» Telefonen er no klar til å motta programmet. Trykk på det grøne «Play»-ikonet på verktøylinja, øvst i Android Studio. 10

6.0 Vår gjennomføring av prosjektet Prosjektet vårt hadde ein god del utfordringar, både med tanke på programvare og maskinvare. Vi vil her gå gjennom prosessen vår med å løyse desse utfordringane, etter kvart som vi støtte på dei. 6.1 Planlegging og byrjing Når vi byrja på prosjektet så hadde vi berre erfaring med å programmere JAVA-program for PC. Sjølv om Android-programmering byggjer på JAVA, og alle på gruppa har hatt Android-telefonar i fleire år, så var det ei bratt læringskurve for oss i dette prosjektet. Vi hadde også ein del å lære om trådlause nettverk og kommunikasjon. Frå starten av hadde vi problem med å «finne ein ende å byrje i». Vi bestemte oss for å først finne ut kva program vi skulle bruke til å programmere applikasjonen vår. Alternativa var «Android Studio», «NetBeans» og «Eclipse». «NetBeans» hadde dårleg støtte for Android-utvikling så vi eliminerte dette raskt. Deretter prøvde vi ut programmet «Android Studio», men det falt ikkje heilt i smak hos alle gruppemedlemmer så dermed prøvde vi «Eclipse». Dette fungerte bra som eit alternativ, og utviklinga gjekk då vidare ved at vi nytta programma «Android Studio» og «Eclipse», og tok det beste begge hadde å tilby. Deretter starta vi på hovudpunktet vårt -trådlaus kommunikasjon via JAVA. Dette vart «kickstarta» med hjelp av ekstratimar med faglærar Marcin Fojcik. Oppdragsgjevar var også til stor hjelp ved å komme med fleire forskjellige trådlause nettverkskort som vi kunne bruke til testing og eksperimentering. Av desse korta valde vi ein modell som heitte «Roving Networks RN-XV-RD2», då denne modellen hadde mest av funksjonaliteten vi trengde. Vi fekk to eksemplar av denne typen. 6.2 Kvifor Roving WiFi-modul? Av dei tre modellane vi mottok av oppdragsgjevar vart vi raskt einige om at det var Roving Networks sin modell vi skulle arbeide vidare med. Denne type kort har 8 digitale og 3 analoge inn/utgangar, som dekker meir enn våre behov. Eitt av dei to korta vi fekk kom som ein «evaluation module». Det vil seie at kortet var montert på eit større kretskort som hadde innebygd Figur 11 - Bilete av rovingmodul 11

spenningsregulator, styrekrets, diverse målepunkt og to relé berekna for 240V. Roving-kortet hadde dessutan mest informasjon tilgjengeleg når det kom til å programmere og bruke det. Ein bonus oppå det heile var at Roving-kortet i tillegg var det fysisk minste av dei tre alternativa, som gjorde det lett å integrere i vår demo-modell. Dei to andre alternativa hadde enten berre temperaturmålingsfunksjonar eller berre eit rele tilgjengelig. I tillegg til å mangle funksjonalitet var dei to alternativa begrensa i den forstand at vi måtte bruke programvare frå leverandøren for å få styrt kortet. Til samanlikning var Rovingkortet fullstendig reprogrammerbart og opent for vår kode. Samtidig hadde det nok inn/utgangar til at vi kunne kople på meir utstyr for å få all den funksjonaliteten vi trengde. 6.3 Prosessen vidare Etter kvart som vi lærte meir og meir om trådlaus kommunikasjon klarte vi å få tilkoplinga meir og meir stabil. Fokuset gjekk dermed over på funksjonane til applikasjonen vår. Etter ynskje frå oppdragsgjevar skulle vårt program ikkje berre overvake kva greinuttak som var på, men også varmgang (sjå avsnitt 4.0). I tillegg måtte vi ha fokus på at alt skulle være så brukarvennleg som mulig. Den neste utfordringa vi tok tak i var at når SmartConnect-enheten vart aktivert første gong, så måtte vi ha ein enkel måte å kople den på det trådlause nettverket. Dette vart løyst ved hjelp av «WPS» (Wi-Fi Protected Setup). Etter dette var det hovudsakleg programmerings-relaterte problem vi måtte løyse. Desse vil vi gå nærare inn på i neste kapittel. 12

7.0 Android programmering I dette kapittelet skal vi snakke om dei største problema og utfordringane vi møtte når vi programmerte applikasjonen. Vi skal snakke om korleis vi fekk applikasjonen til å oppdage «nyinstallerte» SmartConnect-enheter, korleis desse vart lagra, korleis vi styrte dei og korleis vi lagde til temperaturovervaking. Sjå vedlegg 1 for algoritme av SmartConnect-applikasjon 7.1 Oppdaging av nye SmartConnect-enheter Vi ville i dette prosjektet få til å søke opp, og legge til, nye SmartConnect-enheter mest mulig automatisk, etter ynskje frå både oppdragsgjevar og oss sjølve. Dette viste seg etter kvart å bli ei sak som vi måtte bruke veldig mykje tid på å finne ut av. Vi prøvde to metodar før vi fann ut korleis vi skulle gjere det. Den første metoden var å feste ein QR-kode på SmartConnectenheten (sjå figur 12), skanne denne koden med applikasjonen vår og få MAC-adressa til enheten fram på telefonen. Ved bruk Figur 12 - Illustrasjon av telefon som skanner QR-kode av denne MAC-adressa ynskja vi at applikasjonen skulle kunne kontakte SmartConnect-enheten, og få tilsendt enhetens IPadresse. Etter ein del undersøking på internett så fann vi ingen god måte å gjere dette på. Den andre metoden var å få programmet til å prøve å sende eit «ping»-signal til alle IP-adresser på det lokale nettverket. Dette betyr at programmet prøver å kontakte alle enheter ved å sende ein liten pakke med data, og deretter sjå kva IP-adresser som svara tilbake. Dersom programmet mottar eit svar så veit vi at det er noko på andre enden, men ikkje kva type. Det kan være ein SmartConnect-enhet, ei datamaskin, ein mobiltelefon, eit nettbrett etc. Problemet med denne metoden var at den brukte for lang tid. Vi rekna ut at med 255 porter og søketid på ca. 21 sekund per port ville dette tatt ca. 12 min, noko som er lite ideelt for denne type produkt. Dermed undersøkte vi vidare og fann til slutt ein enkel og pålitelig måte å gjere det på. Det viste seg at WiFi-korta vi hadde mottatt av oppdragsgjevar sendte ut ein pakke med informasjon på nettverket, i takt med ein puls. I manualen vart dette kalla ein «hjarteslag-beskjed». Figur 13 - Illustrasjon av lytting etter SmartConnectenheter Denne pakken vart sendt på ein spesiell port (portnr. 2000). Vi programmerte då applikasjonen vår til å «lytte» til denne porten og plukke opp desse meldingane (Sjå figur 13). 13

Ut i frå desse meldingane kunne vi hente ut IP-adressa, og via den IP-adressa (samt litt ekstra kode) kunne vi også hente ut MAC-adressa til WiFi-kortet. Med andre ord, vi kunne no søke opp dei relevante enhetene som var kopla på nettverket, finne ut kva adresse desse kunne kontaktast på, og identifisere kva enhet vi hadde funne. 7.2 Permanent lagring Ein viktig eigenskap applikasjonen vår skulle ha var at når vi lagra ein enhet, så måtte telefonen hugse denne informasjonen. Dette er noko telefonen ikkje hugsar automatisk. Her også prøvde vi forskjellige ting, og brukte ein del tid på undersøking av forskjellige løysingar. Vi prøvde først å lagre informasjonen på filer som vi oppretta sjølv via programmet, men kort tid etter fann vi ein mykje betre måte å gjere det på. Løysinga vår vart å bruke «SharedPreferences». Dette er ein lagringsmetode som er innebygd i Android. Den lagar ei eiga «mappe» på telefonen der vi kan lagre kvar enhet med kvart sitt nummer, og dette nummeret fungerte som ein ID. Når vi då skulle hente ut igjen enheten frå minnet så trengte vi kun å kalle på denne ID-en, og enheten ville dukke opp (sjå figur 14). Figur 14 - Illustrasjon av korleis enhetene blir lagra på telefonen 7.3 Sende kommandoar til SmartConnect Prosessen for å slå enhetene av og på består av 3 steg. Vi valde å utføre desse stega via ein kommunikasjonsprotokoll som heiter «TCP». Alternativet var ein protokoll som heiter «UDP», men den er mykje meir upålitelig. Med «UDP» er det ingen garanti for at pakkane med data du sender ut på nettverket faktisk når fram. «TCP» sjekkar dette. 14

Prosessen for å slå av/på SmartConnect-enhet (Sjå også figur 15): 1. Opprette forbindelse. For å få kontakt med ein SmartConnect-enhet så må man opprette ein «socket». Sjå på dette som ein tunnel til mottakaren. For å kunne opprette ein «socket» så må man ha IP-adressa til mottakaren og port-nummeret som pakkane med data skal sendast gjennom. Vi visste at WiFi-korta våre nytta portnummer 2000, og IPadressa klarte vi som nemnt tidligare å hente ut. 2. Sende kommandoar. Ein SmartConnect-enhet treng éin kommando for gå inn i «administratormodus», éin kommando for å starte styring av releet, éin kommando for å slå det på og ein kommando for å slå det av. Sjå vedlegg 2 for dei forskjellige kommandoane. 3. Lukke forbindelsen. Når ein brukar er ferdig å styre SmartConnect-enheten så må vi lukke forbindelsen slik at andre brukarar kan gå inn og styre. Dette blir gjort ved å lukke «socketen» som vi omtala i steg 1. Desse stega, inkludert kommandoane i steg 2, blir utført i kronologisk rekkefølgje i løpet av ca. eit halv sekund i applikasjonen vår. Eit halvt sekund kan høyrest mykje ut, men 4/5 av den tida er forseinkingar som vi sjølv har lagt inn mellom kvart steg, og kvar kommando. Grunnen til det er at dersom vi ikkje hadde forseinkingar, så utførte applikasjonen det så fort at nettverkskorta rett og slett ikkje klarte å henge med. Sjå figur 15. Figur 15 - Oversikt over prosessen med å slå ein enhet av og på 7.4 Temperaturovervaking «Arduino er en plattform for prototyping av elektronikk basert på program- og maskinvare med åpen kildekode» 15

Noko vi må nemne er at det også er blitt nytta eit Arduino-kort i dette prosjektet. Når løysinga for overvaking av temperatur i SmartConnect-enheten skulle lagast, falt valet raskt på utviklingskortet Arduino. Dette er fordi at på ei laboratorieøving i faget «Elektronikk og datamaskiner», tidligere i semesteret, nytta vi dette kortet til måling av temperatur. Det einaste vi måtte gjøre var å skrive et program til Arduino-kortet som målte temperatur, og få dette til å kommunisere med Android-programmet vårt. Sjå vedlegg 3 for det komplettet programmet. 8.0 Oppkopling av modell til presentasjon Figur 16 - Bilde av demo-hus Når vi skulle presentere prosjektet vårt, og korleis det virka, tok vi i bruk eit demo-hus frå eit tidlegare prosjekt (Gruppe nr. 4 Jørn Gisle Holme og Jan Rune Bjørkelo. Våren 2005). Vi gjorde nokre endringar på modellen ved å sette i børsta pleksiglas som vindauge, og ei papplate som skiljevegg for å simulere to rom. Deretter rigga vi opp med våre trådlause kort, styrekretsar og lysdiodar innvendig. Sjå figur 17. Dei trådlause korta våre er veldig følsame på kor mykje spenning dei får tilført då dei ikkje har noko form for spenningsstabilisering, eller overspenningsvern innebygd. Dei er berekna for 3,3V, og viss dei får tilført ± 15% så verkar dei ikkje. Det eine kortet kom som ein «evaluation module», dvs. at kortet er montert på et større Figur 17 - Kopling innvendig i huset kretskort med innebygd spenningsregulator, overspenningsvern, knappar, diverse målepunkt og to rele. Det eine kortet kom utan dette kretskortet, og dermed måtte vi designe ein spennings-stabiliseringskrets 16

basert på regulatoren LM317. Denne kretsen måtte levere 3,3V frå ein 4,5V batteripakke. I tillegg måtte vi kople på eit relé for å styre lysdiodane. Vi berekna kretsen for LM317 ut i frå følgjande formel: Vut = 1,25V x (1+(R2/R1)). Der kom vi fram til at R1 på 360Ω, og R2 på 220Ω, ville gi oss 3,295V. Dette passa bra for vårt behov samt at desse motstandane var tilgjengelege frå delelageret. Dokumentasjonen til LM317 anbefalte å sette på ein kondensator på utgangen, og vi nytta ein kondensator på 10µF. Utgangen på Roving-kortet er 3,3V når «høg», men dette var akkurat ikkje nok til å aktivere releet vårt som vi måtte sette inn på den eine kretsen. Dette releet måtte ha 5V så vi kopla inn ein BC547-transistor som brytar til releet. Vi kopla utgangen på Roving-kortet via ein 2kΩ motstand på basen til transistoren. Dette ga 1V og ca. 1mA inn på basen til transistoren når utgangen på Roving-kortet var «høg». Deretter kopla vi releet mellom batteripakken og kollektor, slik at det får tilført 4,5V (som er innafor toleransenivået) når transistoren vart aktivert. Her valde vi å ikkje bruke ein motstand i serie med releet då vi målte coilmotstanden til 201Ω. Dette var fordi det då ikkje ville gå meir enn ca. 25mA inn på kollektor. Det andre kortet kom levert med alt det trengtes av stabilisering og rele, slik at vi berre trengde å lage ein plugg som passa for tilførselspenninga. Deretter kopla vi tilførselspenninga til lysdiodane inn på «common», og ut på «normally open» på eine releet. Vi brukte blå 5mm lysdiodar fordi det då vart lett å sjå når det vart lys i demomodellen, sjølv viss modellen var plassert i godt belyste rom. Kvar hovuddel i kretsen er oppbygd som ein eigen modul med skruklemme til ledningane. Dette gjorde det lett å både lage til, tilpasse under montering og å feilsøke viss noko vart øydelagt under testing. Vi festa kvar modul på plass i modellen med ein klatt smeltelim, nok til å halde det fast, men samtidig lett å løyse viss ein modul måtte bytast. Sjå vedlegg 4 for koplingsskjema. 9.0 Muligheiter og utvikling Hovudsaka med dette systemet er å kunne slå kontakta av og på, men kvifor stoppe der? Gründer Frode Steen ynskjer at man også skal kunne: Tidsinnstille når SmartConnect-enheten skal slå seg av og på. Ein timer-funksjon kan nyttast på mange måtar. Det kan være så enkelt at man koplar ein kupevarmar på ein SmartConnect-kontakt, og stiller inn den kontakta 17

til å slå seg på 20 min før man skal på jobb. Det kan også være at man reiser på ferie, og stiller inn varmepumpa til å slå seg på ein time før man kjem heim, sånn at huset er varmt og godt når man går inn døra. Sjå straumforbruket til tinga som er kopla til SmartConnect-enheten. Man går inn på applikasjonen, og deretter inn på ein enhet, og ser kor mykje straum som går gjennom den, og har gått gjennom den f.eks. dei siste sju dagane. Slå av straumen i eit heilt rom, eller til og med i heile huset, ved eit trykk på telefonen. Slå av straumen i heile huset når du reiser på ferie, eller slå av straumen på rommet til ungane når dei skal legge seg. Muligheitene er mange. Styre enhetene og sjekke status eksternt Tenk deg at du er på ferie og ligg på stranda og kosar deg. Plutselig blir du veldig usikker på om du hugsa å slå av kaffitraktaren din. Framfor å ringe til naboane og be dei sjekke så kan du enkelt sjekke sjølv. Berre gå inn på applikasjonen på mobiltelefonen din, og sjekk status i heimen. La SmartConnect-enheten fungere som ein forsterkar for Wi-Fi signalet Ved å putte en modul som forsterkar WiFi-signal inn i SmartConnect-kontakten, vil man dermed fjerne behovet for fleire rutarar i større bygg. Dette fører til at enhetene kan tjenast inn igjen ved at man slepper å kjøpe fleire rutarar for å forsterke og fordele det trådlause signalet. 10.0 Brukarundersøking for SmartConnect Brukarundersøkingar ved prosjekt i faget «Elektronikk og Datamaskiner» er sjeldan utført, men vi hadde lyst å gjere det. Med god hjelp frå Preben Nes, fikk vi utforma eit flott skjema med til saman 10 spørsmål. Sjå vedlegg 7. Grunnen til at vi laga ei brukarundersøking til dette prosjektet, er at vi vil ha ein indikator på om folk veit kva ein «WPS»-knapp er, og kva «WPS» betyr. Sida systemet vårt er avhengig av dette, var det viktig for oss å vete kor godt kjende folk er med dette systemet. Vi ville og sjekke andelen av Android-brukarar, og kor godt kjende dei er med å installere og bruke applikasjonar. Det må presiserast at dette IKKJE er meint som ei vitskapeleg undersøking. Den er laga for å danne eit bilete på kva folk vet om tekniske funksjoner rundt WiFi i heimen. 18

Datainnsamling For å få svar på spørjeskjemaet vi utforma delte vi ut skjema ved kantina, og ved resepsjonen på høgskulen. Sida hovudtrafikken på skulen går ved resepsjonen var det naturlig at det var der vi satt ei postkasse, som folk kunne legge utfylte skjema oppi. Hovudfunn Av totalt 80 skjema som vart laga vart det svart på 61. Det var 38% som svarte at dei visste kva «WPS» var, men 48% svarte at dei ikkje hadde «WPS»-knapp på sin trådlause ruter. Av dei 61 som svarte var 57 % Android-brukar. Sjå vedlegg 8 for komplett statistikk. Resultatet av spørjeundersøkinga var ganske som vi forventa. Vi hadde sjølvsagt håpa på at fleire visste kva «WPS» var, men vi håpar at dette blir eit meir velkjent system i framtida, og at fleire folk vil ha ein ruter med denne funksjonen. 11.0 Tid og økonomi «Omfanget av dette prosjektarbeidet er stipulert til ca. 40 timer per student. Her må studentane prøve å tenke ut størrelsesorden av sine prosjekt.» 11.1 Tidsbruk Når oppdragsgjevar Frode Steen presenterte ideen sin for oss for første gang så hadde vi ingen formeining om kor stort prosjekt dette kom til å bli. Vi estimerte ca. 100 timar per person i førprosjektet, og tenkte at det var meir enn nok. Vi brukte totalt 600 timar på prosjektet. Dette tilsvara ca. 150 timar per person, og er nesten over fire gongar meir enn dei 40 timane som var stipulert. Dette er jo ekstremt store tal, og mange vil nok spørje seg «kvifor kutta vi ikkje ned på prosjektet? Kvifor vart ikkje tidsbruken begrensa?». Svaret er at vi såg eit stort potensial i ideen, og ynskje til Frode om å få den realisert var ein stor motivasjon. Han hadde allereie ein avtale med Coop Vest om distribusjon av ein enklare versjon av produktet, og tanken på at dette allereie var på veg til å bli «eit reelt produkt» var ein veldig spennande tanke. Med tanke på dette satt vi veldig høge krav til oss sjølv. Dette skulle bli «skikkelige saker». Vi ynskja å lage ei så komplett løysing som mulig for å demonstrere det store potensialet ideen hadde. Vi hadde også veldig lyst å gje samarbeidet mellom skulen og gründerar eit så godt rykte 19

som mulig, ved å få til eit så godt resultat som mulig. Desse tinga kombinert gjorde til at vi følte at det var verdt innsatsen. Veldig mykje av tida har gått med til sjølvstudium og undersøking. Som nemnt tidlegare hadde vi ingen erfaring med programmering i Android når vi byrja, og vi har brukt enorme mengder tid på å finne svar på problem som har oppstått. I tillegg så brukte også mykje tid på å lære oss om nettverkskommunikasjon, og på testing og eksperimentering med dei trådlause korta vi fekk av Frode. 11.2 Økonomi Vi hadde ei budsjettramme på 1000 kr, men vi hadde ikkje store økonomiske utgifter. Det som kosta mest pengar var dei trådlause nettverkskorta, men desse hadde vi, som tidlegare nemnt, fått gratis av oppdragsgjevar. Dei andre utgiftene vi hadde var som følgjer: Antal Pris Batteri 3 26,97kr Grenuttak 1 99,90kr Lysdioder 10 20kr Roving WiFi-kort 2 Fått av Frode Steen Regulator LM317 1 Fått av HISF Transistor BC547 1 Fått av HISF Div. motstandar 5 Fått av HISF Papirutskrift (Spørjeundersøking) 80 20kr Papirutskrift (rapport) TOTALT Figur 18 Budsjetts-oversikt. 20

12.0 Konklusjon og etterord Vi konkludera med at vi er veldig godt nøgde med vårt eige resultat. Vi fekk til det vi hadde planlagt, med unntak av ein timer-funksjon. Vi har designa systemet og Android-applikasjonen til å være så brukarvennleg som mulig etter våre evner. Det er vanskeleg å planlegge tidsbruken på eit slikt omfattande prosjekt. Sjølv om vi brukte veldig mykje tid så er vi veldig godt nøgde med resultatet, og vi sitter igjen med ei stor mengde kunnskap som vi elles kanskje ikkje ville ha tileigna oss. Vi er veldig godt nøgde med valet av oppgåve, og vi fekk arbeide mykje med noko vi interesserar oss veldig mykje for. Dette vert også gjenspegla i timeforbruket vårt. Ting vi kunne gjort betre Vi bestemte oss veldig seint for strukturen på applikasjonen vi skulle lage. Dette førte til at vi improviserte ein del og tok utfordringane litt som dei kom. Hadde vi planlagt dette betre hadde vi nok spart oss for litt tid. Etterord Til slutt kan vi seie at dersom vi ikkje begynte så tidlig som vi gjorde, så hadde vi nok ikkje klart å ferdigstille prosjektet på ein tilfredsstillande måte. Vi er veldig glade for at vi byrja tidleg, og jobba målretta med prosjektet gjennom heile semesteret. Sjå vedlegg 9 for resultat. 21

Kjelder http://mbed.org/components/roving-networks-wifly-rn-171-xv (Roving Wi-Fi kort) http://no.wikipedia.org/wiki/mac-adresse (Definisjon på ei MAC-adresse) developer.android.com http://stackoverflow.com (Veldig mykje av det vi har lært om Android, har vi lest på desse sidene) http://thenewboston.org/list.php?cat=6 «The new boston» er ei video-guide for diverse programmeringsspråk, inkludert Android. Vedlegg 1) SmartConnect applikasjon algoritme 2) Roving Wi-Fi kort bruksanvisning/datablad (Vedlegg 2 - rn-xv-rd2-v1.01-userguide.pdf på vedlagt USB-minnepenn) 3) Arduino program for temperaturovervaking (Vedlegg 3 - SmartConnectTemperatureAuto_v1_12_LMG på vedlagt USB-minnepenn) 4) Koplingsskjema demo-modell 5) Datablad, LM317-D Regulator (Vedlegg 5 - LM317-D.pdf på vedlagt USB-minnepenn) 6) Datablad, BC547B Transistor (Vedlegg 6 - bc547b.pdf på vedlagt USB-minnepenn) 7) Spørjeskjema, SmartConnect spørjeundersøking 8) Resultat, SmartConnect spørjeundersøking 9) Den fullførte Andorid-applikasjonen. (SmartConnectProject.rar på vedlagt USB-minnepenn) 22