Skip to main content

29 Tekniikkaa

29Tekniikka logo

IoT-ohjelmistokehitys yrityksille

IoT-projekteissa on yksi asia joka erottaa onnistuneet epäonnistuneista. Se ei ole laitteiden hinta eikä pilvipalvelun valinta. Se on se että ymmärretään mitä ollaan tekemässä ennen kuin aletaan tehdä.
Olemme nähneet projekteja joissa on valittu hienot anturit ja rakennettu hieno pilvi-infrastruktuuri. Sitten on huomattu että dataa tulee liikaa, akut kestävät viikon ja kukaan ei käytä järjestelmää. Nämä ovat kalliita oppitunteja.
Tässä tekstissä kerromme mitä teemme ja mitä olemme oppineet.

Mitä IoT-ohjelmistokehitys pitää sisällään

➠ IoT ei ole pelkkää ohjelmistokehitystä. Se on usean eri osa-alueen yhdistelmä ja jokainen niistä pitää saada toimimaan.
➠ Laitteet ja anturit keräävät dataa. Ne ovat fyysisiä esineitä joissa on rajoitetusti muistia, laskentatehoa ja akkua. Ne mittaavat lämpötilaa, kosteutta, sijaintia, kiihtyvyyttä tai mitä tahansa muuta.
➠ Firmware on se ohjelmisto joka pyörii laitteessa. Se lukee antureita, muotoilee dataa ja lähettää sen eteenpäin. Se on kirjoitettu yleensä C:llä tai C++:lla ja sen pitää toimia luotettavasti vuosia.
➠ Yhteydet ovat se miten data liikkuu. WiFi, Bluetooth, LoRa, NB-IoT, 4G tai 5G. Jokaisella on omat rajoituksensa ja valinta riippuu siitä mitä ollaan tekemässä.
➠ Pilvi vastaanottaa datan, tallentaa sen ja tarjoaa sen eteenpäin. Se pitää mitoittaa niin että se kestää sen datamäärän joka laitteista tulee.
➠ Sovellukset ovat se mitä ihmiset käyttävät. Ne näyttävät datan ymmärrettävässä muodossa ja antavat käyttäjän tehdä asioita sen perusteella.
➠ Analytiikka tekee datasta hyödyllistä. Raakadata ei kerro mitään. Analytiikka kertoo mitä on tapahtumassa ja mitä tulee tapahtumaan.
➠ Nämä kaikki pitää saada toimimaan yhdessä. Se on vaikein osa.

Milloin IoT kannattaa

IoT kannattaa silloin kun sinulla on fyysisiä asioita joita pitää seurata tai ohjata etänä.

Teollisuudessa tämä tarkoittaa koneita ja tuotantolinjoja. Niiden kuntoa pitää seurata. Niiden käyttöä pitää mitata. Niiden huoltoa pitää ajoittaa oikein.

Kiinteistöissä tämä tarkoittaa lämmitystä, ilmanvaihtoa ja valaistusta. Näitä voi ohjata automaattisesti ja säästää energiaa.

Logistiikassa tämä tarkoittaa kalustoa ja paketteja. Niiden sijaintia pitää tietää. Niiden kuntoa pitää seurata. Niiden olosuhteita pitää valvoa.

Mutta tässä on se juttu jota kukaan ei sano. IoT ei ole itseisarvo. Se on työkalu. Jos sinulla on ongelma joka ratkeaa ilman laitteita, älä osta laitteita.

Milloin IoT ei kannata

➢ IoT ei kannata jos ongelma ratkeaa ilman laitteita. Jos voit mitata saman asian käsin kerran viikossa, se voi olla riittävää. Automaatio on kallista.
➢ IoT ei kannata jos dataa ei käytetä mihinkään. Olemme nähneet järjestelmiä jotka keräävät dataa vuosia eikä kukaan katso sitä. Se on kallista ja hyödytöntä.
➢ IoT ei kannata jos kukaan ei ylläpidä sitä. Järjestelmä joka toimii tänään ei toimi vuoden päästä jos sitä ei seurata. Laitteet hajoavat. Yhteydet katkeavat. Data muuttuu.
➢ IoT ei kannata jos hyödyt eivät ylitä kustannuksia. Tämä kuulostaa itsestäänselvältä mutta sitä ei aina lasketa.

Millaisia projekteja olemme tehneet

Tässä on esimerkkejä siitä millaisia projekteja olemme toteuttaneet. Nämä ovat muunneltuja mutta suuntaa-antavia.

Teollisuuden etävalvonta

➠ Eräällä asiakkaalla oli tuotantolinja jossa koneet hajosivat yllättäen. Jokainen seisokki maksoi tuhansia euroja tunnissa.
➠ Rakensimme järjestelmän joka kerää dataa koneista. Lämpötiloja, värähtelyä, virrankulutusta. Malli oppi mikä on normaalia ja hälyttää kun jokin ei ole.
➠ Tämä auttoi kahteen asiaan. Ensimmäinen on ennakoiva huolto. Laite huolletaan ennen kuin se hajoaa. Toinen on käytön optimointi. Kun tiedetään miten laitteita käytetään, niitä voi käyttää tehokkaammin.
➠ Seisokit vähenivät. Huoltokustannukset laskivat. Kukaan ei enää katsonut konetta ja miettinyt että onkohan se kunnossa.

Kiinteistöautomaatio

Eräällä asiakkaalla oli toimistorakennus jossa oli kallista lämmittää. Ihmiset valittivat että on kylmä. Silti energialasku oli suuri.

Rakensimme järjestelmän joka mittaa lämpötilaa eri puolilla rakennusta ja säätää lämmitystä sen mukaan. Se oppi mitkä tilat lämpenevät nopeasti ja mitkä hitaasti. Se oppi milloin ihmiset tulevat ja milloin he lähtevät.

Energiankulutus laski. Valitukset vähenivät. Kukaan ei enää säätänyt termostaattia käsin.

Logistiikan seuranta

➢ Eräällä asiakkaalla oli kalusto joka liikkui ympäri Suomea. He eivät tienneet missä se oli. He eivät tienneet milloin se saapuisi perille.
➢ Rakensimme järjestelmän joka seuraa kalustoa reaaliajassa. Se kertoo missä se on, milloin se saapuu perille ja onko sen olosuhteissa tapahtunut muutoksia.
➢ Tämä auttoi reitityksessä. Se auttoi aikataulujen suunnittelussa. Se auttoi ongelmien ratkaisemisessa ennen kuin ne kärjistyivät.

Älykkäät mittarit

➠ Eräällä asiakkaalla oli mittareita jotka luettiin käsin. Se vei aikaa ja siinä tuli virheitä.
➠ Rakensimme järjestelmän joka lukee mittarit automaattisesti ja lähettää datan eteenpäin. Se analysoi dataa ja kertoo poikkeamista. Jos kulutus yhtäkkiä nousee, se voi tarkoittaa vuotoa.
➠ Tämä auttoi laskutuksessa koska kulutus on tarkempaa. Se auttoi kunnossapidossa koska ongelmat huomataan aikaisemmin.

Maatalouden anturit

Eräällä asiakkaalla oli kasvihuoneita. Olosuhteet vaihtelivat. Kosteus, lämpötila, valon määrä.
Rakensimme järjestelmän joka mittaa näitä asioita ja kertoo mitä pitää tehdä. Kastelu pitää aloittaa. Lämpötila pitää nostaa. Valoa pitää lisätä.
Tämä vähensi resurssien käyttöä. Vettä kului vähemmän. Energiaa kului vähemmän. Sato parani.

Miten rakennamme nämä järjestelmät

  • Ensimmäinen kysymys on se että millaisia laitteita tarvitaan. Tämä riippuu siitä mitä mitataan ja missä mitataan.
  • Lämpötilan mittaaminen sisätiloissa on helppoa. Lämpötilan mittaaminen ulkona pakkasessa on vaikeampaa. Lämpötilan mittaaminen teollisuusprosessissa jossa on korkea lämpötila on vielä vaikeampaa.
  • Valitsemme laitteet sen perusteella mitä mitataan ja missä mitataan. Emme ota ensimmäistä halvinta vaihtoehtoa.
Laitteiden valinta:
  • Firmware on se ohjelmisto joka pyörii laitteessa. Sen pitää olla luotettava. Sen pitää olla tehokas. Sen pitää toimia akulla vuosia.
  • Kirjoitamme firmwaren C:llä tai C++:lla riippuen siitä mikä laite on kyseessä. Käytämme valmiita kirjastoja siellä missä se on järkevää. Kirjoitamme omaa koodia siellä missä se on tarpeen.
  • Firmwaren kehityksessä on kaksi asiaa joihin kiinnitämme erityistä huomiota. Ensimmäinen on virrankulutus. Jokainen milliwatti ratkaisee kun akun pitää kestää vuosia. Toinen on luotettavuus. Laite ei saa kaatua. Se ei saa jäädä jumiin. Se ei saa hukata dataa.
  • Päivitykset ovat oma haasteensa. Jos laitteita on tuhansia, niitä ei voi päivittää käsin. Tarvitaan etäpäivitys joka toimii luotettavasti. Jos päivitys epäonnistuu, laite voi mennä rikki.
Firmwaren kehitys:
  • Yhteydet ovat se miten data liikkuu. Valinta riippuu siitä kuinka paljon dataa liikkuu ja kuinka kauas sen pitää kantaa.
  • WiFi on nopea ja halpa mutta kuluttaa paljon virtaa. Se sopii paikkoihin joissa on sähköä ja jossa dataa liikkuu paljon.
  • Bluetooth on vähävirtainen mutta lyhyen kantaman. Se sopii paikkoihin joissa laite on lähellä vastaanottajaa.
  • LoRa kantaa kilometrejä mutta siirtää vähän dataa. Se sopii paikkoihin joissa ei ole verkkoa ja jossa dataa tarvitaan harvoin.
  • NB-IoT on matkapuhelinverkon tekniikka joka on suunniteltu IoT-laitteille. Se voi toimia akulla pitkään mutta tämä riippuu paljon siitä miten usein dataa lähetetään ja millaisissa olosuhteissa laite toimii.
  • 4G ja 5G ovat nopeita mutta kuluttavat enemmän virtaa kuin kevyemmät tekniikat. Ne sopivat paikkoihin joissa dataa liikkuu paljon ja joissa on sähköä.
  • Valitsemme yhteyden sen perusteella mitä tarvitaan.
Yhteyksien suunnittelu:
  • Pilvi vastaanottaa datan. Sen pitää kestää se määrä dataa joka laitteista tulee. Jos laitteita on kymmenen, se on helppoa. Jos laitteita on kymmenentuhatta, se on vaikeampaa. Ja jos dataa tulee reaaliajassa, se on vaikeampaa vielä.
  • Rakennamme pilvi-infrastruktuurin joka skaalautuu. Se ottaa vastaan dataa kun sitä tulee. Se tallentaa sen kun sitä tarvitaan. Se poistaa sen kun sitä ei enää tarvita.
  • Käytämme AWS:ää, Azurea ja Google Cloudia. Käytämme myös kevyempiä ratkaisuja jos se on järkevää.
  • Tietoturva on tärkeää. Jokainen laite on mahdollinen hyökkäysvektori. Yhteydet pitää suojata asianmukaisesti ja käyttäjät pitää tunnistaa. Tämä ei ole yksinkertainen asia ja siihen pitää panostaa.
Pilvi-infrastruktuuri:

Sovellukset

➢ Sovellukset ovat se mitä ihmiset käyttävät. Ne näyttävät datan ja antavat käyttäjän tehdä asioita.
➢ Verkkosovellukset ovat yleisin vaihtoehto. Ne toimivat selaimessa ja niitä voi käyttää mistä tahansa.
➢ Mobiilisovellukset ovat toinen vaihtoehto. Ne toimivat puhelimessa ja niitä voi käyttää missä tahansa.
➢ Integraatiot ovat kolmas vaihtoehto. Data voidaan viedä olemassa oleviin järjestelmiin kuten toiminnanohjaukseen tai asiakkuudenhallintaan.
➢ Rakennamme sen mikä sopii parhaiten.

Analytiikka

➠ Data itsessään ei kerro mitään. Analytiikka kertoo mitä data tarkoittaa.
➠ Rakennamme analytiikkaa joka kertoo mitä on tapahtunut, mitä tapahtuu nyt ja mitä tulee tapahtumaan. Se kertoo myös mitä pitäisi tehdä.
➠ Yksinkertaisimmillaan analytiikka on raportti joka näyttää mittarit ja niiden kehityksen. Monimutkaisimmillaan se on malli joka ennustaa tulevaa ja ehdottaa toimenpiteitä.
➠ Rakennamme sen mikä on tarpeen.

Missä IoT-projektit yleensä kaatuvat

Olemme nähneet monenlaisia projekteja. Osa onnistuu, osa ei. Tässä on yleisimmät syyt epäonnistumiseen.

Laitteet eivät toimi odotetusti

Laitteet ovat fyysisiä esineitä ja ne käyttäytyvät fyysisen maailman sääntöjen mukaan. Ne hajoavat. Ne menettävät yhteyden. Ne kuluttavat akkua nopeammin kuin odotettiin.

Yhteydet eivät toimi kaikkialla

Verkko ei ole kaikkialla. Se ei ole luotettava. Se ei ole nopea. Tämä pitää ottaa huomioon suunnittelussa.

Data on huonoa

Anturit antavat virheellisiä lukemia. Dataa tulee väärään aikaan. Dataa tulee liikaa tai liian vähän. Datan siivoaminen on iso työ.

Kustannukset karkaavat

Pilvi maksaa. Yhteydet maksavat. Laitteet maksavat. Ylläpito maksaa. Kokonaiskustannus on usein suurempi kuin aluksi arvioitiin.

Kukaan ei käytä järjestelmää

Järjestelmä rakennetaan mutta kukaan ei ota sitä käyttöön. Tämä johtuu yleensä siitä että käyttäjät eivät ole olleet mukana suunnittelussa.

Tietoturva laiminlyödään

IoT-laitteet ovat tunnettu tietoturvariski. Ne ovat usein heikosti suojattuja ja niitä on paljon. Yksi haavoittuvuus voi vaarantaa koko järjestelmän.

Nämä ovat asioita joita kerromme asiakkaille ennen kuin työ alkaa.

Miten työ etenee

➠ Aloitamme palaverilla. Kerrot ongelmasta ja me kysymme kysymyksiä. Tämä ei maksa mitään.
➠ Sen jälkeen kartoitamme tilanteen. Katsomme mitä mitataan, missä mitataan ja mitä dataa tarvitaan. Tämä on ratkaiseva vaihe.
➠ Jos konsepti on selkeä, teemme suunnitelman. Suunnitelmassa lukee mitä tehdään, mitä se maksaa ja milloin se on valmis.
➠ Sitten rakennamme prototyypin. Tämä on pieni versio joka osoittaa toimiiko idea. Se ei ole valmis tuote. Sen tarkoitus on vastata kysymykseen että kannattaako tätä jatkaa.
➠ Jos prototyyppi toimii, rakennamme tuotantoversion. Siinä kiinnitämme huomiota luotettavuuteen, tietoturvaan ja kustannuksiin.
➠ Jos prototyyppi ei toimi, kerromme sen. Se on mahdollista ja sitä tapahtuu.

Mitä tämä maksaa

➢ IoT-projekti maksaa enemmän kuin tavallinen ohjelmistoprojekti. Tämä johtuu siitä että siinä on fyysisiä laitteita ja enemmän epävarmuutta.
➢ Prototyyppi maksaa yleensä muutaman tuhannen euron. Se kertoo toimiiko idea.
➢ Tuotantoversio maksaa kymmeniä tuhansia. Se riippuu siitä kuinka monta laitetta on ja kuinka monimutkainen järjestelmä on.
➢ Jatkuva ylläpito maksaa kuukausittain. Laitteita pitää seurata. Dataa pitää säilyttää. Järjestelmää pitää päivittää.
➢ Emme anna tarkkoja hintoja tässä koska ne riippuvat liikaa yksityiskohdista. Annamme aina tarjouksen ennen kuin työ alkaa.

Miksi tehdä tämä meidän kanssa

Olemme tehneet näitä projekteja vuosia. Tiedämme mitkä asiat toimivat ja mitkä eivät. Tiedämme missä vaiheessa projektit yleensä kaatuvat ja osaamme varautua siihen.

Kerromme rehellisesti jos jokin ei ole realistista. Jos laitteet eivät toimi siinä ympäristössä, sanomme sen. Jos kustannukset tulevat olemaan suuremmat kuin hyödyt, sanomme sen.

Emme myy sinulle IoT:tä jos et tarvitse sitä.