Derfor bør utviklere bry seg om IoT - og sånn kommer du i gang

- Vi har knapt sett starten av digitalisering med sensorteknologi, skriver Arduino-fantast Eivind Holt.

Eivind Holt, vinner av fjorårets kode24-pris Årets koder, eksperimenterer med sensoren i sitt siste hobbyprosjekt. 📸: Eivind Holt
Eivind Holt, vinner av fjorårets kode24-pris Årets koder, eksperimenterer med sensoren i sitt siste hobbyprosjekt. 📸: Eivind Holt Vis mer

Hvorfor skal du som software-utvikler bry deg om elektronikk og embedded programmering?

Svarene på dette fant jeg etter en reise som startet for ti år siden. Til da hadde jeg stort sett levd i en trygg software-verden med verdens beste utviklingsverktøy. En dag fikk jeg lyst til å se hvor langt ned på “jernet” jeg kunne programmere.

Jeg skulle få en mikrokontroller til å skru av og på et lys når jeg trykket en knapp. Siden dette ikke er komplisert å løse med diskret komponenter (ren elektronikk, uten kode) ville jeg at knappen skulle dimme lyset når knappen ble holdt nede.

Jeg hadde ikke vært interessert i elektronikk da jeg studerte, hadde aldri brukt Ohms lov til noe praktisk og kunne ikke operere et multimeter.

Tente et lys

Heldig for meg var konseptet rundt Arduino akkurat begynt å bli tilgjengelig og jeg slapp arkaiske metoder for å programmere mikrokontrollere (MCU) ved hjelp av adaptere med spaker og nedarvede printerkabler. Jeg slapp til og med å lære assembly- og C-språk på nytt.

Det siste er en sannhet med modifikasjoner; det er fortsatt C som dominerer, men Arduino skjuler nitidig registermanipulasjon med intuitive makroer. Sensorer er i dag hovedsakelig digitale hvor man kommuniserer via API-er, fremfor å tolke analoge signaler. Opplevelsen av å skrive disse linjene kode tente bokstavelig et lys.

Ingen av de geniale idéene mine lot seg derimot gjennomføre siden det ikke fantes trådløse kommunikasjonsteknologier som lot enhetene kjøre særlig lenge på batteri. Jeg la det hele på hylla og gikk løs på mobilapputvikling som var det nye.

Nytt hobbyprosjekt

Da jeg børstet støv av Arduino-en igjen var det skjedd mye rundt lavenergikommunikasjon. LoRaWAN var i ferd med å eksplodere i Nederland og Telenor var i full gang med NB-IoT. Kort fortalt lar disse teknologiene oss lage enheter som kan kommunisere mange kilometer og leve på små batterier i mange år.

Mitt siste hobbyprosjekt er en proof-of-concept på en sensorenhet som stiller vekkeklokka litt tidligere når innkjørselen er nedsnødd. Dette har jeg oppnådd ved å kombinere en mikrokontroller med innebygd LoRaWAN-radio med en spesielt tilpasset ultralydavstandsmåler.

Dette er en av sensorenhetene Eivind Holt har lagt som stiller vekkeklokka litt tidligere når innkjørselen er nedsnødd. 📸: Eivind Holt.
Dette er en av sensorenhetene Eivind Holt har lagt som stiller vekkeklokka litt tidligere når innkjørselen er nedsnødd. 📸: Eivind Holt. Vis mer

Det hele er beskyttet fra herlig nord-norsk vinterklima ved hjelp av en resin 3D-printer. Grove beregninger tilsier at PoC-en kan sende målinger hvert 15. minutt i over tre år på ett AA-batteri, neste versjon vil klare mye mer takket være tilpasset kretskort og valg av komponenter.

"Sexy, interaktive grafer"

Hver måling fra enhetene kringkastes kryptert i en radius på rundt 10 kilometer. Her i Bodø har vi satt opp LoRaWAN-gateways knyttet opp mot et open-source, gratis å bruke IoT-nettverk som heter The Things Network.

Dette fungerer som en MQTT broker og lar meg sende målingene hvor som helst på internett. IFTTT er en regelmotor som er enkel å bruke ved hjelp av webhooks, jeg bruker derimot vanligvis MQTT-integrasjoner mot egne tjenester hos Microsoft Azure.

Her bruker jeg vanligvis IoT Hub i kombinasjon med Streams og Event Hub. Power BI er en veldig kraftig visualiseringsplatform som forenkler kombinasjon av datakilder og mekking av sexy, interaktive grafer.

Hvorfor skulle du bry deg om dette, igjen?

Krysningspunktet mellom utviklingen av mikroskopiske komponenter, kommunikasjonsteknologi, energihøsting og samfunnets ønske om digitalisering har åpnet et hav av muligheter for nye løsninger.

Forståelse er nøkkelen

Et område som tidligere dreide seg om tegning av kretskort, lodding og oppslag av registeradresser, handler idag om software-utvikling og integrasjoner mellom brukersystemer. Det minner veldig om hvordan vi utviklet native mobilapper i starten og vil antakelig følge liknende progresjon.

Profesjonelt jobber jeg overhodet ikke med elektronikk, men med å sørge for at målinger fra helsesensorer havner hos rett lege og visualiseres i din journal på sykehus, fastlege eller hos hjemmehjelpen.

Å forstå mulighetene og begrensningene til laveste nivå har vært nøkkelen for at jeg kan jobbe med dette spennende området. Å utvikle hardware til et salgbart produkt tar tid, å få noe godkjent for medisinsk bruk enda mer.

Konsekvensene er at teknologien som er i bruk til for eksempel hjemmeoppfølging av pasienter ligger langt bak teknologien jeg har brukt i mine private prosjekter. Å vite hva som venter er kjempeviktig når man skal lage ny arkitektur som skal ha flere tiår forventet levetid.

Ikke skummelt

Så hvordan kommer man i gang?

Bestill et Arduino starter kit og følg noen tutorials. Enda bedre, be arbeidsgiver gjøre som min, DIPS, å arrangere et hackathon! Jeg har satt i gang 10-åringer med Arduino-programmering og vi holder årlig kodekurs med microbit for ikke-utviklere, dette er ikke skummelt.

Når du har fått smaken på dette tar du en titt på The Things Network og lager en gratis konto. Her vil du finne et dekningskart som viser om du allerede er dekket av en åpen gateway. Da finnes det et bredt utvalg av utviklingskort med LoRaWAN-komponenter. Er du ikke dekket kan en TTN Indoor Gateway være en rimelig start.

Vi har knapt sett starten hva gjelder digitalisering ved hjelp av sensorteknologi, og behovet for software-utviklere eksploderer. Vil du være med på reisen?

Du kan følge mine prosjekter på Instagram, LinkedIn, Hackster.io, element14 og The Things Network.