ArIoT arrangerte 9. -12. mars Arctic IoT, et tredagers hackaton med fokus på Internet of Things (IoT). Målet er å se hvem som kan utvikle den beste IoT løsningen på tre dager, samt møte likesinnede utviklere. Visma vant årets konkurranse, med produktet Cloud Bar.
I god tid før Artic IoT challenge arrangerte Visma en intern konkurranse for å plukke ut sine beste utøvere til konkurransen. Det hele handler ikke så mye om å vinne, men om å få mer erfaring med IoT og dyrke det kreative miljøet med ekte skaperglede. IT-bransjen er i stadig forandring og mange roller har forsvunnet med overgangen til en mer smidig utvikling. Utviklingsteamene er mer selvstendige og har blitt vant til å løse stadig nye utfordringer.
IoT er en ny utfordring, kode skal skrives for å fjern-administreres samtidig som hardware ressursene er begrenset. Ved å begrense hardware går strømforbruket ned og batteri og kjøling blir enklere. Dette er nødvendig da få konsumenter ønsker IoT enheter med hissige vifter. En heldig side effekt av dette er sterkt reduserte hardware-kostnader.
Ulempen er at det tar litt lenger tid å skrive kode på enheter enn i tradisjonell utvikling. Visma sitt team behersker de nye teknikkene og arkitekturen, men innså før konkurransen at kretskort og elektronikk kunnskapen fra skolebenken var litt rusten.
Teamet var førstereisgutt til Artic IoT challenge og følte på presset i ukene før konkurransen. Frykten var størst rundt produktet, hva skulle de lage? og kom de til å beherske elektronikken? Tiden gikk og teamet investerte stort i sensorer og microkontrollere fra https://www.sparkfun.com/. Delene kom raskt i posten og teamet begynte så smått og prøve enkelte sensorer. Det gikk overraskende lett og selvtilliten steg og teamet laget en ambisiøs plan om å automatisere øl-barer.
Konsept: effektiviser bryggeripuben
Moderne bryggeripuber har mange øl på tapp og gjerne helmanuelle håndskrevne tavler med pris-og øl-informasjon. Dette resulterer ofte i kø av kunder rundt baren som leser på skilt, og bruke forholdsvis mye tid på å bestille en øl. Ved å la kundene sitte på bordet, lese om øl og betale fra mobilen vil køen rundt bardisken reduseres, og kundene kan velge den ølen de virkelig har lyst på.
Kretsteknikk, husker vi det?
Artic IoT Challenge gir bare 3 døgn til programmering, og med et team på 6 personer bør det meste gå på skinner for å komme i mål med et produkt. Som fryktet så ble det noen mindre problemer med elektronikk underveis i utviklingen. For å drive ventiler ble det brukt 12v strøm og relé for å styre strømmen. Dessverre krevde reléene 5V og det måtte transistorer til, da de fleste enkortsmaskiner kun gir 3,3V signalstrøm. Med rusten kompetanse gikk det med et par timer på å koble og forstå forskjellen på MOSFETT, NPN og PNP. Mange transistorer brant opp i forsøkene, men tilslutt satt ventilstyringen som den skulle.
Tingene, kontakt med den fysiske verden
Når det jobbes med sensorer og styringssystemer er det viktig å bruke riktig hardware til riktig jobb. Teamet brukte billige ESP 8266 kontrollere (koster ned mot 20kr) til lesing av temperatur og vekt. Dette er kontrollere med lavt strømforbruk, og er enkle å programmere med Arduino og støtte for analoge signaler med 10 bits presisjon. Pedro Diaz i Microsoft har blogget på http://pedro.digitaldias.com/?p=404 om denne kontrolleren, den gir et teknisk innblikk. For å slippe å lodde anbefales det å kjøpe Sparkfun Dev Board eller Arduino Feather som er ferdig med pinner.
For tyngre oppgaver som styring av alle trappetårnene i en bar, med milliliters presisjon benyttes kraftige Raspberry PI 3 med Windows 10 Core Insider preview. Dette er en ypperlig liten datamaskin, men uten støtte for analoge signaler. Det må derfor kjøpes en liten edderkopp kalt ADC (Analog to Digital Converter) til, denne er billig, men krever 8 pinner/ledninger med dertil mengde kode for å fungere. For å komme rundt dette på kort tid, med høynivå programmering benyttet teamet en JavaScript basert kontroller for bartender delen av løsningen. Kortet var en https://tessel.io/ og falt godt i smak hos front-end utvikleren som skapte magi på det.
Tingene koblet til internett
Azure IoT HUB har støtte for de fleste språk og selv en liten enhet som ESP8266 har klientbibliotek for å koble seg til Azure IoT Hub. Raspberry Pi 3 med Windows snakker sømløst med hubben og teamet hadde erfaring med eventhubben fra før. Azure IoT Hub gir sikker to-veis kommunikasjon mellom enhetene og skyen. Dette gjør det mulig å flytte det meste av prosessering og logikk ut fra de enkelte enhetene og inn i skyen. Under Artic IoT Challenge ble dette redningen, da data i skyen er kjent materie for alle.
Transaksjonsstøtte og kapasitet til alle tappelinjer i Oslo
For å behandle data på en sikker og forutsigbar måte kreves det god arkitektur og nok regnekraft. Bestillinger på øl kom inn fra mobiltelefoner, potensielt flere tusen bestillinger i sekundet, samtidig som øl tappes og ordrer blir lagt på kø. Ved å bruke Azure Service Fabric med Actor pattern var teamet garantert at bestillinger ikke gikk i beina på hverandre (transaksjonsstøtte) og sikkerhet for at data ikke gikk tapt selv om enkelt noder skulle falle ned. Arkitekturprinsippene er noe uvante, men har blitt mer og mer vanlig det siste halvåret. Microsoft bygger det meste av sine tjenester på denne plattformen, så hvorfor skal ikke vi også gjøre det? En grunn kan være kostnaden, og det faktum at det må skrives litt mer kode, men når det først fungerer, som i vår bar, så er det helt fantastisk.
Resultatet av Artic IoT challenge 2017
Under konkurransen på Ariot laget teamet denne videoen, som viser to personer på en uteservering som er tom for øl. De Bestiller øl via mobiltelefonen, betaler, og går til baren for å få øl. Det er også monitorering og display for alt av statistikk, inkludert kostnader. Produktet er ikke dødt enda, og teamet jobber videre med baren og løsningen rundt.
Jobb hos oss
Ønsker du også å utforske IoT og jobbe med utvikling av skyløsninger for Norske virksomheter?
Vi søker flere dyktige utviklere med interesse og engasjement for ny teknologi!
Jobb hos oss