Mobiiliapplikaatio sähkörullalaudan hallintaan
Tamminen, Samuli (2017)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201704134794
https://urn.fi/URN:NBN:fi:amk-201704134794
Tiivistelmä
Tämän opinnäytetyön tarkoituksena oli kehittää älypuhelimilla toimiva prototyyppisovellus, jolla voi kerätä ja visualisoida sähkörullalaudan sensoritietoja sekä säätää laudan asetuksia. Työn toimeksiantajana oli ELMEV-toiminimellä toimiva Simo Sihvonen, joka oli kehittänyt sähkörullalaudan. Sovelluksen tarkoituksena oli tuoda anturitietoja laudan kehittäjän saataville ja siten helpottaa kehitystyötä. Sovelluksella ei ohjata rullalautaa, vaan kerätään ja visualisoidaan erilaisia sensoritietoja.
Sovellus kehitettiin alustariippumattomaksi React Native -sovelluskehystä ja JavaScript-kieltä käyttäen. Rullalaudan moottorinohjainpiirin ja mobiilisovelluksen välisessä kommunikoinnissa käytettiin Bluetooth Low Energyä, joka löytyy useimmista älypuhelimista.
Mobiilisovelluksen ja rullalaudan välistä tiedonsiirtoa varten suunniteltiin viisitavuinen protokolla, jonka kehys koostuu tunnisteesta (mikä tieto on kyseessä), komennosta (luku vai kirjoitus), kahdesta datatavusta ja lopetusmerkistä. Kaikki Bluetooth-liikenne käyttää määriteltyä protokollaa. Protokollan ja sovelluksen testausta varten kehitettiin rullalaudan moottorinohjainpiiriä simuloiva testilaite Arduino-kehitysalustasta ja Bluetooth Low Energy -piiristä.
Sovellus suunniteltiin helppokäyttöiseksi, ja sen ulkoasuun otettiin vaikutteita erilaisista liikuntasovelluksista. Datan kerääminen rullalautailun aikana on helppoa, ja sovellus tallentaa sensoritietojen lisäksi myös kuljetun reitin. Omaa rullalautailusuoritusta ja rullalaudan toimintaa voi tarkastella tallennuksen jälkeen, jolloin sovellus näyttää viivakuvaajat kerätystä datasta. Kerätyn datan voi myös viedä sovelluksesta tietokoneelle taulukkomuodossa myöhempää analyysiä varten.
Lopputuloksena saatiin Android- ja iOS-alustoilla toimiva sovellus, jolla voidaan kerätä sensoridataa rullalaudalta ja sijaintitietoa mobiililaitteelta sekä visualisoida niitä laitteessa ja viedä jatkokäsittelyä varten taulukkomuodossa. React Native osoittautui toimivaksi ratkaisuksi monipuolisempaan sovellukseen, joka käyttää GPS-paikannusta ja Bluetoothia. Suurimmat ongelmat kehityksen aikana olivat sovelluksen taustatoiminta ja tavumuotoisen datan käsittely JavaScript-kielellä. Ongelmat ratkaistiin ja sovelluksen kaikki vaaditut ominaisuudet toteutettiin.
Sovellus kehitettiin alustariippumattomaksi React Native -sovelluskehystä ja JavaScript-kieltä käyttäen. Rullalaudan moottorinohjainpiirin ja mobiilisovelluksen välisessä kommunikoinnissa käytettiin Bluetooth Low Energyä, joka löytyy useimmista älypuhelimista.
Mobiilisovelluksen ja rullalaudan välistä tiedonsiirtoa varten suunniteltiin viisitavuinen protokolla, jonka kehys koostuu tunnisteesta (mikä tieto on kyseessä), komennosta (luku vai kirjoitus), kahdesta datatavusta ja lopetusmerkistä. Kaikki Bluetooth-liikenne käyttää määriteltyä protokollaa. Protokollan ja sovelluksen testausta varten kehitettiin rullalaudan moottorinohjainpiiriä simuloiva testilaite Arduino-kehitysalustasta ja Bluetooth Low Energy -piiristä.
Sovellus suunniteltiin helppokäyttöiseksi, ja sen ulkoasuun otettiin vaikutteita erilaisista liikuntasovelluksista. Datan kerääminen rullalautailun aikana on helppoa, ja sovellus tallentaa sensoritietojen lisäksi myös kuljetun reitin. Omaa rullalautailusuoritusta ja rullalaudan toimintaa voi tarkastella tallennuksen jälkeen, jolloin sovellus näyttää viivakuvaajat kerätystä datasta. Kerätyn datan voi myös viedä sovelluksesta tietokoneelle taulukkomuodossa myöhempää analyysiä varten.
Lopputuloksena saatiin Android- ja iOS-alustoilla toimiva sovellus, jolla voidaan kerätä sensoridataa rullalaudalta ja sijaintitietoa mobiililaitteelta sekä visualisoida niitä laitteessa ja viedä jatkokäsittelyä varten taulukkomuodossa. React Native osoittautui toimivaksi ratkaisuksi monipuolisempaan sovellukseen, joka käyttää GPS-paikannusta ja Bluetoothia. Suurimmat ongelmat kehityksen aikana olivat sovelluksen taustatoiminta ja tavumuotoisen datan käsittely JavaScript-kielellä. Ongelmat ratkaistiin ja sovelluksen kaikki vaaditut ominaisuudet toteutettiin.