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

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.

Publisert

Ledige stillinger

Se alle

leserinnlegg ✍

Dette er et leserinnlegg fra en ekstern skribent, som betyr at innholdet ikke nødvendigvis speiler kode24-redaksjonens egne meninger.

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.

💡 Hva er en mikrokontroller?

  • En mikrokontroller er en elektronisk komponent, en chip, som kan utføre programmert logikk.
  • Denne erstatter behov for å designe den samme logikken med elektroniske komponenter og i seinere år er mikrokontrollere blitt så kraftige at de f.eks kan utføre http-kall, serialisere json-objekter og utføre kryptering.
  • Med en kommunikasjonskomponent kan koden oppdateres trådløst (Firmware Over The Air, FOTA) slik at oppførsel og bugs kan endres etter at produktet er solgt. Laptopen, telefonen og bilen din er stappfull av mikrokontrollere.

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.

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.

💡 Ulike typer utviklingskort

  • Det finnes idag en overflod av alternativer når man skal begynne med embedded programmering. Dette er gjerne en terskel for nybegynneren.
  • Et utviklingskort inneholder den faktiske mikrokontrolleren på et kretskort med alt som trengs av støttekomponenter. De har også en eller annen form for grensesnitt for å forenkle opplasting av kode, USB-C begynner å dominere.
  • Èn av kategoriene kort er kraftige og rettet mot AI. En annen kategori er strømgjerrig og egnet for batteridriftl. Arduino UNO er 10 år gammel men fortsatt et godt sted å starte.
  • Den har solgt over 10 millioner offisielle enheter og sikkert like mange kopier. Arduino står for verdens største open source-miljø, så det er lett å finne hjelp.

NB: Raspberry PI er en mini-PC og ikke regnet som en mikrokontroller.

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.

💡 Hvordan programmerer man et utviklingskort?

  • Flertallet av utviklingskort kan programmeres ved hjelp av en USB-kabel og Arduino IDE i browser eller installert på datamaskinen.
  • Du kan også bruke Visual Studio Code, men jeg anbefaler å starte med Arduino IDE. Mange utviklingskort støtter også micro python, hvor man skriver kode i filer på en virtuel disk.
  • Alle disse alternativene mangler dessverre en god debugger. For dette må man avansere og bruke IDE og noe mer avansert oppkobling enn USB, fra leverandøren av mikrokontrolleren.

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.

Ledige stillinger

Se alle
  • Feed
Powered by Labrador CMS