Sådan programmeres Internet of Things

Billige enheder giver gang i produktionen af IoT. Men værktøjsfeltet er broget, og sikkerheden spøger i kulissen. Der er meget at holde styr på, når der skal kodes og udrulles. To danske udviklere giver deres bud på, hvordan kagen skal skæres.

Internet of Things (IoT) er som bekendt betegnelsen for et gigantisk antal enheder, der kobles på internettet - temperaturfølere, biler, bygninger og alt muligt andet. Små indlejrede enheder er blevet billige og hvermandseje med produkter som eksempelvis minicomputeren Arduino, der kan udrette en masse med prisbilligt hardware.

Med fremkomsten af endnu billigere og mindre enheder med priser fra 20 kroner pr. stk. kan der forventes en stor vækst i IoT-anvendelser. Det er i hvert fald meningen blandt markedets spåkoner.

Civilingeniør Jakob Konradsen arbejder med IoT i virksomheden DesignIoT. Her udvikles blandt andet prototyper til markedsføring.

Dertil kommer moderselskabet Eupry, der udvikler IoT-enheder til temperaturovervågning i farma-branchen. Firmaet har været igennem mange værktøjer.

»I starten brugte vi Electric Imp, som er et udviklingsmiljø, til hele livscyklussen, fra programmering og test til udrulning og flådestyring.«

Det er tale om et kommercielt produkt til en vis pris. Men DesignIoT arbejder med mange mindre projekter, og her er favoritten den prisbillige wifi-processor ESP8266.

Den benytter firmaet sammen med open source-platformen NodeMCU, der indeholder et fuldt udviklingsmiljø med compiler og mere til.

»NodeMCU gør det superlet komme i gang med at lave noget, som er relativt komplet - som bare virker fra starten af.«

Der findes også en Arduino-grænseflade til ESP8266, så værktøjerne i det populære miljø kan anvendes. Her skrives koden i sproget C, som er den gamle traver i forbindelse med programmering af indlejrede enheder.

Det miljø får en opadvendt tommelfinger fra Jakob Konradsen.

»Arduino er en utrolig stærk platform. Der kommer flere og flere funktioner til hver dag.«

Test i køleskabet

Programmet på enheden testes via wifi eller serielporten, hvor en række brugsscenarier gennemgås. Det handler blandt andet om at teste sensorer med lys eller varme. En end-to-end-test kan for eksempel foregå ved at putte enheden i et køleskab og regulere temperaturen.

»Det er i dag vildt billigt at producere prototyper af 20-50 stk. og så sætte dem igennem en masse brugsscenarier.«

Det er også vigtigt at kalibrere og validere sensorerne. Forbindelseskvalitet kan være et andet emne for test, og det er lidt sværere at teste.

Når enhederne er udrullet i den virkelige verden, skal der holdes et vågent øje med dem.

Her har moderselskabet Eupry rullet sin egen backend til flådestyring, blandt andet af hensyn til sikkerheden. Derudover er dagens flådestyringsværktøjer ofte koblet til én bestemt hardwareplatform, hvilket gør det mindre fleksibelt.

Og så koster de også penge, forklarer Jakob Konradsen. Omkostningerne ved det færdige produkt reduceres ved at skabe sit eget system.

Skidt sikkerhed i IoT

Sikkerhed i forbindelse med IoT er et varmt emne, ikke mindst efter fremkomsten af botnets, som afvikles fra internet-koblet forbrugselektronik.

I og for sig er det ikke, fordi IoT stiller specielle krav til sikkerhed. Det handler - som sædvanlig - om at sikre, at alle forbindelser er krypterede, og at der benyttes standarder, protokoller og software, som er opdateret, samt at sikre, at der er kryptering på hele vejen fra enheden tilbage til backend-systemet.

Men Jakob Konradsen mener i øvrigt, at sikkerheden i forbindelse med IoT ofte er skidt.

»Hvis du ser på gængse platforme som NodeMCU, så er der mange steder, hvor der er sikkerhedshuller. For bare et halvt år siden var der ikke stor bekymring om sikkerheden.«

Først nu er der kommet fokus på problematikken.

»Det er en kæmpestor udfordring, man står med som virksomhed. Man bruger en platform, men hvor veldokumenteret er sikkerheden egentlig? Mange af de platforme, der findes i dag, er slet ikke sikre,« lyder vurderingen.

Det betyder også, at Eupry er gået uden om NodeMCU’s sikkerhedsløsninger til fordel for firmaets egen løsning. Men derudover mener Jakob Konradsen, at NodeMCU er et godt sted at starte med IoT.

»Det er noget alle kan komme i gang med, uanset baggrund.«

Hyldevareværktøjer i sigte

Googles Android-miljø er på vej med en udgave til IoT-udvikling, og andre store spillere er også klar med værktøjspakker til IoT-udvikling.

Fremkomsten af hyldevareværktøjer til IoT-udvikling er ifølge udvikler Jeppe Bjerre fra konsulentvirksomheden Delta en nødvendighed.

»Det er vigtigt, at udviklerne får simple værktøjer til at håndtere et stort antal enheder praktisk. Hvordan sørger du for, at de rigtige mennesker har adgang til data fra de rigtige enheder, og hvordan får man distribueret informationen? Der kan hyldevareværktøjer, som kan skræddersys til anvendelsen, gøre udviklingsprocessen nemmere og kortere.«

En udfordring med hyldevarer til IoT er, at det kan være svært at finde et, der passer. Så kan det som udvikler være fristende selv at skrive noget, men det er ikke nødvendigvis en god ide.

»Android til IoT er rigtigt interessant, og Microsoft har også et produkt på hånden. Til nogle brugsscenarier vil det være en fordel, at du kan få et styresystem, hvor sikkerheden er administreret og bliver løbende opdateret, frem for at du selv skal vedligeholde det.«

Det er nemlig vigtigt at kunne vedligeholde software, så enheden ikke skal 'hjem igen' for at få softwaren opdateret.

»Det er naivt at tro, at man rammer rigtigt første gang, og at implementeringen af sikkerhed er gældende fem år senere.«

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (8)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Peter Christiansen

Til de interesserede findes der også et SDK
https://github.com/pfalcon/esp-open-sdk, så kan man programmere esp8266 i C, så behøver man ikke overhead så som en nodejs fortolker og endnu en abstraktion som arduino er.

Lær hvordan Xtensa lx106 arkitekturen virker, i stedet for at putte den ene efter den anden abstraktion over og så håbe på at sikkerheden er i orden.

  • 1
  • 1
Christian Nobel

https://www.visuino.com/

Skruet sammen af Boian Mitov som er kendt for de fantastiske AudioLab, VideoLab, IntelligenceLab, SignalLab, PlotLab og InstrumentLab software pakker.

Closed source, udelukkende for Windows - hmmm.

Satser nok mere på NodeMCU - det kan så godt være at man kan få et C program til at blive mindre, men hvis resultatet er man får pointet sig selv direkte ned i helvede, og der ellers er plads nok, så tror jeg faren for at nosse i det er langt mindre med NodeMCU.

Men det er selvfølgelig en temperamentssag.

Mht. sikkerhed er min holdning at IOT dimserne på ingen måde skal være tilgængelige fra ydersiden, kun den interne (web)server som samler trådene.

  • 1
  • 0
Kim Madsen

Nu kender du jo min holdning til open source... Det er ikke nødvendigvis et kvalitets stempel eller noget som i min verden overtrumfer brugsværdi m.m.
Hellere et super godt closed source program end et halvdårligt open source (jeg taler generelt og har ikke selv praktisk kendskab til NodeMCU som sikkert er et glimrende valg til mange ting.
At Visuino også er Windows only (lige nu) afskrækker mig heller ikke, da jeg arbejder 24x7 ved sådan et bæst og ikke er forskrækket over den ;)
mvh
Kim Bo

  • 1
  • 0
Christian Nobel

Nu kender du jo min holdning til open source...

Nah det gør jeg nu ikke, omend du nu har udtrykt den - fair nok.

Det er ikke nødvendigvis et kvalitets stempel eller noget som i min verden overtrumfer brugsværdi m.m.

Rimeligt nok, jeg ser bare lidt anderledes på det.

Hellere et super godt closed source program end et halvdårligt open source (jeg taler generelt og har ikke selv praktisk kendskab til NodeMCU som sikkert er et glimrende valg til mange ting.

Ja, men problemet er bare, ved jeg om det er et "super godt" closed source program?

Det jeg især godt kan lide ved OSS er også den tryghed i, at jeg ved at der som regel er mange rigtigt dygtige folk, spredt ud over hele kloden, som er rigtig gode til at pille OSS tingene i stykker, og dermed finde eventuelle sikkerhedsfejl.

Og så et stort community som man ikke altid kan finde for et lille lukket produkt.

Men der er selvfølgelig ingen garanti, hverken i den ene eller den anden model.

At Visuino også er Windows only (lige nu) afskrækker mig heller ikke, da jeg arbejder 24x7 ved sådan et bæst og ikke er forskrækket over den ;)

Sover du ikke? ;-D

Anyways, det er da sikkert også fint nok for dig, jeg ville bare fremhæve at det er en begrænsning, og for nogen en showstopper.

  • 2
  • 0
Erik Trolle

Jeg er selv lige startet på MQTT og Node Red, men kan benytte sig af andet, som programmeringssprog som fx. Java Script og html5. Python, Java o.a.

Det jeg syntes er vigtigt er brug af åbne standarder.

Jeg har tænkt at lave en MQTT broker på en VPS i skyen på en linux server, men man kan også benytte nogen som udbyder tjenesterne.

  • 0
  • 0
Erik Trolle

Der findes en meget god video om nogen der bruger MQTT til større IOT drift:

https://www.youtube.com/watch?v=r6HEQVhgnP8
(den er tibage fra 2015)

Her er nogen som laver IoT til home automation som jeg har tænkt at gøre:
https://www.youtube.com/watch?v=8mz5sCAvDAY#t=143.236576
https://www.youtube.com/watch?v=FJXrN5aq5fY
https://www.youtube.com/watch?v=WxUTYzxIDns

  • 0
  • 0
Povl H. Pedersen

Nu har prisen været under 20 kr i lang tid.
Og hvad er sikkerhedsproblemet ? Sålænge der er en nogenlunde hæderlig netværksstack, og tingene kan tilgås lokalt, så er det fint. Så skal en hacker også on-location for at lave noget.

Jeg ser det store problem når ting bruger UPNP og lignende for at få åbnet huller i routeren ind til en dum IoT. Drop dette. Stil krav om VPN.

Jeg er mest bange for noget som mit IP kamera. Det udstiller video på en kinesisk webserver. Her ved jeg ikke hvor mange der har adgang, om der kan sendes kommandoer den anden vej. Så jeg har blokeret i firewall. Der er ingen grund til at et ONVIF kamera skal udstille sig selv på Internet.

Overvejer at lave et ekstra VLAN til crap. Ingen udgående adgange.

  • 0
  • 0
Log ind eller Opret konto for at kommentere