Teknologi

I Bouvet er vi flere hundre teknologer som brenner for å programmere og utforme gode, digitale løsninger. I denne bloggen utforsker vi teknologien og deler det vi finner med dere.

Tingenes internett – fagtur til Jeløy Radio

Bouvet har lang tradisjon for fagturer. Avdelingene følger suksessoppskriften med opphold på et fint sted kombinert med en cocktail av fag og moro. Fagturen med RIA Oslo (Rich Internet Applications) var ingen unntak. 14 geeks skulle kose seg med god mat og godt drikke, og gruppearbeid med «tingenes internett» som tema.

Tingenes internett

Vi er vant til at våre telefoner, nettbrett, spillkonsoller og TVer er tilkoblet internett. Men det stopper neppe med det. Snart vil flere og flere ting rundt oss være på internett. Denne turen skulle brukes til å forske på tingenes internet, «internet of things», i samspill med webteknologi som jo er det vi til daglig jobber med.

Jeløy radio

Destinasjonen for årets tur var Jeløy Radio (www.jeloyradio.no). Det er en flott, gammel radiostasjon som befinner seg i idylliske omgivelser like utenfor Moss.

På veien dit stiftet vi bekjentskap med en nyansatt app-utvikler og en kollega fra Örebro-kontoret. Det viste seg at begge to passet Bouvet-profilen til det fulle med sin omgjengelige natur og tekniske kunnskap. I det maxi-taxien rullet inn på Jeløy radio, ble vi møtt av en snødekt aveny med en velstelt radiostasjon i enden, som nå var bygd om til konferanselokalet. Innsiden av bygget var om mulig enda mer imponerende. Interiør med buede vegger, spenstige farger og kunstinnslag var perfekte omgivelser for kreativt arbeid.

Jeløy Radio - gammel radiostasjon

Jeløy Radio hovedbygning

Etter innsjekking og en rask prat ved peisen var vi klare for oppgaveintroduksjon. Reglene var enkle, bruk webteknologi sammen med Tessel og/eller Hue. Beste gjennomføring og idé premieres. Gruppene var inndelt på forhånd og etter en rask «spin the bottle» valgte hver gruppe sin modul ettersom det bare var én av hver.

Før vi satte i gang fikk vi et lynkurs i de komponentene vi skulle bruke, Tessel og Hue. Begge tilfredsstiller kriterier for «internet of things» som i korte trekk er definisjon på en ting som man kan kommunisere med over Internett.

Tessel (tessel-io.bocoup.com)

Tessel mikrobrikke

På sine nettsider lover utviklere bak Tessel å forenkle hardware-utvikling. Dette høres enda mer lovende ut når vi får vite at man kan skrive kode i javascript. Etter at vi kontaktet Tessel for noen uker siden har Bouvet blitt én av 13 beta-testere. Vi fikk tilsendt tre Tessel mikrobrikker og noen moduler. Ideen er genial. En mini PC som kan utvides med ønskede moduler. Blant disse er:

  • Accelerometer: Detekterer bevegelse og orientering
  • Blåtann: Oppkobling og tilkobling
  • Gps: Detekterer global posisjon
  • MicroSD kort: Leser kortinnholdet
  • Ambient: Detekterer lyd- og lys
  • Servo: Styrer rotering
  • Climate: Måler temperatur og luftfuktighet
  • Relay: Bryter, som kontrollerer elektroniske koblinger

Vi regnet med å måtte knote litt, og måtte oppdatere firmwaren på mikrobrikken flere ganger. Adam gjorde en heroisk innsats og rakk å få brikkene opp og kjøre på avreisedagen. Tessel utviklere bistod så godt de kunne, var svært behjelpelige og responderende ekstremt fort når vi lurte på noe.

Hue (www.meethue.com)

Philips Hue starter pack

Philips Hue, et mer utprøvd produkt, fås kjøpt i Apple Store og består av tre lyspærer og en såkalt bro. Installasjonen er veldig enkel. Skru lyspærene inn i sokkel på en lampe eller lignende og koble broen til en router. Da oppretter broen et ZigBee nettverk som holder orden på alle lyspærene. Man skal da kunne styre lyspærene over et REST API.

Det vanligste bruksområde for Hue er å styre lysene hjemme via Hues app for IOS eller Android. Man legger til broen i appen og bekrefter koblingen ved å klikke på den blinkenede knappen på broen. Lett som bare det.

Hello world

Etter oppgaveintroduksjonen spiste vi 3-retters-middag med supplerende hvitvin og rødvin. Très bon! Med øl i den ene hånden og Tessel, Hue, laptop og mus i den andre bar det til gruppearbeid. Formålet var å skissere en idé og begynne smått å kode mot Tessel og Hue.

De fleste erfarte ganske raskt trøbbel med Tessels WiFi tilkobling. I tillegg var noen av modulene fortsatt under utvikling, slik som blåtann som vi dessverre ikke fikk til å fungere. Ambient modulen derimot herpet vi helt på egen hånd ved å legge den feil vei inn i Tesselen. Murphys lov og alt det der. Men stort sett så fungerte ting ganske kjapt, slik som Tessel Accelerometer og Climate, samt Hue som jo er et gjennomtestet produkt. Utover fredagen vekslet vi strategisk mellom øl foran peisen og øl foran laptopen før de fleste av oss tok kvelden i ett-tiden.

Eureka

Friske, opplagte og proppa på koffein var vi noe mer kreative enn dagen i forveien. Ideene kom på løpende bånd. Vi kodet så tastene føyk! Både Tessel og Hue var ment å være enkle i bruk, og det tok ikke langt tid før gruppene ble produktive. Man kunne stadig høre eureka-rop fra naborommene, «fett», «sweeet», «$#@!% så #!%$# kult». Et annet selskap, som også var på hotellet, må ha overhørt oss. Vi fikk besøk av direktøren deres som var nysgjerrig og lurte på hva vi drev med. Vi forklarte og demonstrerte raskt, Tessel styrer nettsiden som styrer Hue… Han likte det han så. Som alle normale folk spurte vi han hva de så drev med. «Forenkling av lovverk for kommuner». Spennende sa vi, men mente det ikke.

Nei, dette er ikke iscenesatt plassering av mennesker i et rom for å demonstrere interaksjon. Nederst fra venstre og i klokkeretning sitter Stig, Goran, Thomas, Ole Mikkel, Nikhil, Svein Aril, Adam, Henrik og Andreas.

Nei, dette er ikke iscenesatt plassering av mennesker i et rom for å demonstrere menneskelig interaksjon. Nederst fra venstre og i klokkeretning sitter Stig, Goran, Thomas, Ole Mikkel, Nikhil, Svein Aril, Adam, Henrik og Andreas.

Utover dagen nøt vi lunsjen, en porsjon (alle italienere må nå lukke øynene) taco-lasagne, gulasj til kvelds, tapas på kvelden og en øl her og der ved peisen. På tross av alle fristelsene, arbeidet vi hvert fall 10 timer i snitt hver. Det var ingenting å si på dedikasjonen som var motivert av nysgjerrighet mer enn konkurranseinstinkt. Vi delte api-er, Tessel- og Hue kode med hverandre. Det hele var bare moro og vi koste oss veldig.

Resultatene

Rett etter frokosten på søndag var det tid for uhøytidelig presentasjon av det vi hadde laget. For å gjøre det hele mer forståelig/uforståelig har jeg lagt til løsningsskisser før videoene.

Flyvende Tessel

Cathrine, Ole Mikkel, Stian og Adam liker å jobbe med behagelige bølger i bakgrunnen.

Cathrine, Ole Mikkel, Stian og Adam liker å jobbe med behagelige bølger i bakgrunnen.

Flyvende Tessel systemarkitekturskisse

Flyvende Tessel systemarkitekturskisse (Klikk for større bilde)

Gruppen fikk den mest etterspurte modulen til Tessel, accelerometer. Den måler Tessels koordinater i tre dimensjoner. I sin presentasjon demonstrerer de hvordan Tessel styrer Hue lyspærene. Dette er i seg selv ikke så ekstremt nyttig, men viser hvordan fysisk input (bevegelse av Tessel) kan styre fysisk output (Philips Hue) via en nettside på en node.js server. Utfordringen lå i å få verdiene fra Tessel til serveren. POST fungerte ikke fra Tessel så de måtte i steden skrive Tessel koordinatene fortløpende på en fil som ble overvåket av node.js. Videre ble koordinatene sendt via socket til lysene og nettsiden samtidig. Wow-faktoren er når nettsiden tar imot koordinatene og viser et bilde av Tessel (i HTML canvas) som beveger seg i takt med den fysiske Tessel som Adam holder i hånden.

Temperatur Tessel

Jonas, Nikhil og Henrik trioprogrammerer.

Jonas, Nikhil og Henrik trioprogrammerer.

Temperatur Tessel systemarkitekturskisse

Temperatur Tessel systemarkitekturskisse (Klikk for større bilde)

Nikhil og co. lurte oss alle til å tro at de hadde laget klappestyring av lysene tidlig på lørdagen. Det viste seg at Nikhil bare satt og trykket på en knapp mens vi andre lavpannede klappet for livet. Dårlig gjort!

Denne gruppen fikk utdelt Tessels climate modul som måler temperatur og luftfuktighet. På samme måte som den forrige gruppen overvåker node.js filen med temperaturmålingene. Denne gruppen var den mest produktive, og leverte på løpende bånd. Aller først viser de hvordan temperaturavlesing styrer fargene til Hue lys. Lysene blir røde når temperaturen er høy og blå når den er lav. De laget også fargegjenkjenning i nettleseren som gir den gjennomsnittlige fargen fanget opp av webkameraet. I tillegg gjorde de det godt igjen ved å faktisk lage klappestyring av lysene via mikrofonen på laptopen. Til slutt styrer de fargene og intensiteten på Hue lysene med musikk. Imponerende!

Klinkekule Hue

Rittik (AFK), Michael og Thomas er alle tre Apple fanboys.

Rittik (AFK), Michael og Thomas er alle tre Apple fanboys.

Klinkekule Hue systemarkitekturskisse

Klinkekule Hue systemarkitekturskisse (Klikk for større bilde)

Sist ut til å velge gikk gruppen for blåtann modulen til Tessel. De fikk den dessverre ikke til å fungere i løpet av lørdagen. Tessel utviklere stod på, i tidssonen 6 timer bak oss, og leverte firmware som fungerte, men da var det dessverre for sent. Gruppen siktet likevel høyt og prøvde seg på et spillkonsept. Ved hjelp av mobiltelefonen styrer hver spiller sin kule i nettleseren. Phonegap app på mobilen leser mobilens accelerometer koordinater og pusher disse til node.js serveren. Videre sendes koordinatene via websocket til html canvas i nettleseren som viser klinkekulene på brettet. Hue lysene får også beskjed om å blinke når klinkekulene treffer kanten.

Spillet ble ikke helt ferdig. Tanken er at brettet skal både krenge og bli mindre. Spillere skal også kunne dytte hverandre ut av brettet. Vinneren er den som ikke faller ut.

Ruter Hue

Svein Arild, Andreas, Goran og Stig (utenfor bilde) liker gulasj, og hue.

Svein Arild, Andreas, Goran og Stig (utenfor bilde) liker gulasj, og hue.

Ruter Hue systemarkitekturskisse

Ruter Hue systemarkitekturskisse (Klikk for større bilde)

Gruppen var fornøyd med å få Ambient modulen som skal kunne registrere både lys og lyd. Det så lovende ut! Murphys lov slo derimot inn, og modulen ble mest sannsynlig ødelagt når den ble lagt inn i Tessel feil vei. Derfor ble det i første omgang mye Hue. Gruppen likte tanken med live data som presenteres med noe analogt. Valget falt derfor på å vise hvor lenge det var til buss- og trikkavganger vha. Hue lysene. Node.js serveren sender koordinatene sine til Ruter som returnerer de nærmeste trikk/buss stoppene som rendres i nettleseren vha. React.js. Videre velger man hvilket lys som skal kobles med hvilken buss-/trikkavgang. Node.js henter da livedata for valgt avgang. Når det er mer enn 5 minutter eller under 1 minutt til avgang lyser tilhørende lys rødt. Den bussen rekker du ikke! Er det under 5 minutter lyser det gult. Til slutt er lyset grønt når det er under 2 minutter, og det blinker grønt når man må kjappe seg da det er snart 1 minutt til avgang. Videre utvikling kan være å tillate brukere å legge til egne lys som kobles til en avgang. Ditt eget pendlerlys altså.

Og vinneren er…

Rett etter presentasjonene stemte vi på den beste ideen og den beste gjennomføringen. Alle gruppene fikk stemmer, og det var ganske jevnt. Merk teksten etter kolon for å se vinneren.

Vinneren av beste idé ble, drum roll: «Ruter Hue»
Vinneren av beste gjennomføring ble: «Temperatur Tessel»

Beste idé-vinneren avventer premiering og kikker i nåværende stund på aktuelle duppeditter. Deltakere på gruppen som vant for beste gjennomføring fikk hver sin «Raspberry Pi». Dette er en mini-pc på størrelse med et kredittkort med utallige brukermuligheter.

Nå var det på tide å sjekke ut av hotellrommene og ta en følelsesladet avskjed med peisen. Vi lovet å se hverandre igjen. Vi bar sakene våre ut i ventende maxi-taxi, og jeg husker at jeg tenkte at dette hadde vært en fenomenalt gøy helg. Kombinasjonen bra folk, fint hotell og kule duppeditter anbefales på det sterkeste, og kommer definitivt til å gjentas.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Kotlin – an Introduction

At Google I/O 2017, Google announced that Kotlin would become a first-class language in Android. This means that Kotlin will be supported..

Eress Forum 2017

Eress and Erex Eress is an organisation created to provide a simple, efficient, reliable, accurate and flexible standard energy settlement..

Devoxx UK 2017

Introduksjon Devoxx UK er en todagers konferanse som holdes i London. Det er en mellomstor konferanse med over 1200 deltakere..

Bouvet Battle Royale – Robot Wars

Introduction Robot Wars, a robot-sumo competition, was held at Bouvet early April for students attending technology courses at the University in..

Magic Mirror – version 1

Introduction A while back I discovered the exciting world of “magic mirrors”. I don’t remember how or where it caught my attention, but..

DevOpsDays Oslo 2016

5.-6. september hadde eg gleden av å delta på den første norske DevOpsDays i Oslo. Her er en oppsummering av høydepunktene..

Bouvet at JavaZone 2016

This year JavaZone celebrated it’s 15th year with with 3000 attendees and over 170 sessions. As one of Norway’s premier Java..

IT years are like dogs years

One of the characteristics of the IT industry is that time works differently for us. This is challenging and fun,..

The Future of SharePoint

Den 4. mai holdt Microsoft en virtuell event om fremtiden til SharePoint, jeg fikk heldigvis anledning til å delta de..

SharePoint 2016 er på vei!

Som lovet var Microsoft ferdig med utviklingen av SharePoint Server 2016 (RTM – release to manufacturing) rett før påske, og..

Teknologi

I Bouvet er vi flere hundre teknologer som brenner for å programmere og utforme gode, digitale løsninger. I denne bloggen utforsker vi teknologien og deler det vi finner med dere.