Rajapintojen kehitys Sigfox-järjestelmäpiirille
Myllylä, Teemu (2017)
Myllylä, Teemu
Turun ammattikorkeakoulu
2017
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201705249997
https://urn.fi/URN:NBN:fi:amk-201705249997
Tiivistelmä
Sigfox-verkko on yksi monesta esineiden internetin laitteille kehitetyistä verkoista. Verkko toimii lisensoimattomilla taajuuksilla ja kilpailee muiden samankaltaisten verkkojen, kuten LoRan ja Weightlessin, kanssa. Sigfox-verkkoa operoi Suomessa Connected Finland, jonka ylläpitämään verkkoon tässä projektissa kehitetty järjestelmäpiiri on tarkoitus yhdistää.
Työn tavoitteena on kehittää tarvittavat rajapinnat uudelle Sigfox-järjestelmäpiirille. Vaadittuja toiminnollisuuksia ovat UART-kommunikaatio sekä GPIO-porttien hallinta. RCP Softwaren tuoteprototyypin toiminnollisuus on tarkoitus toistaa uudella Sigfox-piirillä käyttäen kehitettyjä rajapintoja. Tavoitteena on myös tutustua testivetoiseeen kehitykseen, hyödyntää sitä rajapintojen kehityksessä sekä pohtia sen tuomia hyötyjä ja haittoja sulautettujen ohjelmistojen kehityksessä.
Opinnäytetyön kehitysprojektissa luotiin rajapinnat RCP Softwaren omaan suunnitteluun perustuvalle Sigfox-järjestelmäpiirille. Rajapinnat kehitettiin UARTille, GPIO:lle sekä UARTin kautta vastaanotettaville komennoille. Projektin työstämisen aikana tutustuttiin testivetoisen kehityksen perusteisiin. Testivetoinen kehitys on ohjelmistonkehitysmuoto, jossa testitapaukset luodaan ennen ohjelmakoodia. Testivetoinen kehitys edistää ohjelmamoduulien keskinäistä riippumattomuutta, tuo varmuuden ohjelmakokonaisuuden toiminnasta ja toimii selkeänä dokumentaationa. Testivetoista kehitystä sovellettiin projektityön komentorajapinnan kehityksessä.
Projektin tuotoksena syntyi kolme toisistaan riippumatonta rajapintamoduulia. UART-rajapinta toteuttaa UART-viestien lähettämisen ja vastaanottamisen. GPIO-rajapinnalla pystytään hallitsemaan GPIO-portteja digitaalisina tuloina ja lähtöinä sekä asettamaan porteille keskeytyksiä. Komentorajapinta tulkitsee sille syötetyt komennot. Komennot määriteltiin vastaamaan toimeksiantajayrityksen tarpeita. Rajapinnat toteutettiin C-kielellä.
Projektityön tavoitteet täyttyivät lähes täysin. Kehitystyön aikana kohdattiin muutamia merkittäviä ongelmia, jotka venyttivät aikataulua. Ongelmat onnistuttiin selvittämään, mutta aikataulun venyttyä muutama ominaisuus jäi ajan puutteen vuoksi kehittämättä. Testivetoisen kehityksen todettiin olevan tehokas tapa ohjelmiston kehityksessä. Testivetoista kehitystä on mahdollista hyödyntää sulautettujen ohjelmistojen kehityksessä, kun tiedetään kohdelaitteiston tuomat rajoitukset.
Työn tavoitteena on kehittää tarvittavat rajapinnat uudelle Sigfox-järjestelmäpiirille. Vaadittuja toiminnollisuuksia ovat UART-kommunikaatio sekä GPIO-porttien hallinta. RCP Softwaren tuoteprototyypin toiminnollisuus on tarkoitus toistaa uudella Sigfox-piirillä käyttäen kehitettyjä rajapintoja. Tavoitteena on myös tutustua testivetoiseeen kehitykseen, hyödyntää sitä rajapintojen kehityksessä sekä pohtia sen tuomia hyötyjä ja haittoja sulautettujen ohjelmistojen kehityksessä.
Opinnäytetyön kehitysprojektissa luotiin rajapinnat RCP Softwaren omaan suunnitteluun perustuvalle Sigfox-järjestelmäpiirille. Rajapinnat kehitettiin UARTille, GPIO:lle sekä UARTin kautta vastaanotettaville komennoille. Projektin työstämisen aikana tutustuttiin testivetoisen kehityksen perusteisiin. Testivetoinen kehitys on ohjelmistonkehitysmuoto, jossa testitapaukset luodaan ennen ohjelmakoodia. Testivetoinen kehitys edistää ohjelmamoduulien keskinäistä riippumattomuutta, tuo varmuuden ohjelmakokonaisuuden toiminnasta ja toimii selkeänä dokumentaationa. Testivetoista kehitystä sovellettiin projektityön komentorajapinnan kehityksessä.
Projektin tuotoksena syntyi kolme toisistaan riippumatonta rajapintamoduulia. UART-rajapinta toteuttaa UART-viestien lähettämisen ja vastaanottamisen. GPIO-rajapinnalla pystytään hallitsemaan GPIO-portteja digitaalisina tuloina ja lähtöinä sekä asettamaan porteille keskeytyksiä. Komentorajapinta tulkitsee sille syötetyt komennot. Komennot määriteltiin vastaamaan toimeksiantajayrityksen tarpeita. Rajapinnat toteutettiin C-kielellä.
Projektityön tavoitteet täyttyivät lähes täysin. Kehitystyön aikana kohdattiin muutamia merkittäviä ongelmia, jotka venyttivät aikataulua. Ongelmat onnistuttiin selvittämään, mutta aikataulun venyttyä muutama ominaisuus jäi ajan puutteen vuoksi kehittämättä. Testivetoisen kehityksen todettiin olevan tehokas tapa ohjelmiston kehityksessä. Testivetoista kehitystä on mahdollista hyödyntää sulautettujen ohjelmistojen kehityksessä, kun tiedetään kohdelaitteiston tuomat rajoitukset.