Älykodin IoT-järjestelmän kehittäminen : Firebase IoT-alustana
Suorsa, Matti (2021)
Suorsa, Matti
2021
Tietojenkäsittelyopin maisteriohjelma - Master's Programme in Computer Science
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2021-02-11
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202103042384
https://urn.fi/URN:NBN:fi:tuni-202103042384
Tiivistelmä
IoT-järjestelmän reunalla ovat IoT-laitteet, kuten tietoa keräävät sensorit sekä toimenpiteitä tekevät aktuaattorit. Sensorit ja aktuaattorit eivät usein kykene kommunikoimaan itsenäisesti suoraan Internetissä, ja niiden keräämä data usein vaatii muuntamista tai esiprosessointia ennen kuin sitä voidaan käyttää. Tähän tehtävään sovelletaan IoT-yhdyskäytäviä. Yhdyskäytävän täytyy pystyä kommunikoimaan laitteiden sekä itse IoT-alustan kanssa, jonne tieto lopulta siirretään. Tieto säilötään IoT-alustalla tietokannassa, jossa sitä voidaan myös prosessoida ja analysoida. Alustalle kerätty tieto visualisoidaan sekä esitetään reaaliaikaisesti käyttöliittymässä, josta voidaan myös ohjata järjestelmän laitteita.
Kokonainen IoT-järjestelmä rakentuu useista tasoista, joiden välille vaaditaan asianmukaiset protokollat tiedon siirtämiseen sekä keinot tiedon säilömiseen. Järjestelmän kehittämisessä tulee huomioida myös, kuinka saadaan säilytettyä yhteentoimivuus järjestelmän tasojen ohjelmistojen välillä ja kuinka sen skaalautuvuus voidaan varmistaa.
Työn tavoitteena oli kehittää yksinkertainen älykodin IoT-järjestelmä. Järjestelmälle luotiin oma IoT-yhdyskäytävä Raspberry Pi:llä, ja sen ohjelmisto kehitettiin Python-ohjelmointikielellä. Kommunikointiin yhdyskäytävän ja laitteiden välillä käytettiin HTTP-pohjaista RESTful API:a. IoT-alustaksi sovellettiin Google Firebase -pilvipalvelua, jossa tieto tallennettiin NoSQL-tietokantaan. Firebasen palveluiden käyttäminen toteutettiin sille tarkoitettujen ohjelmistokehityspakettien avulla. Järjestelmän käyttöliittymä luotiin Vue.js-ohjelmistokehyksellä, ja käyttöliittymässä tietoa visualisoitiin Chart.js JavaScript-kirjastoa apuna käyttäen.
Pilvipalvelun ilmainen maksusuunnitelma saatiin riittämään käyttötarkoitukseen ja käytetyt frameworkit pohjautuivat avoimen lähdekoodiin, joten kaikki järjestelmän kehittämiseen vaadittavat kulut muodostuivat käytettävästä laitteistosta. Firebasen tarjoamat ominaisuudet soveltuivat sen käyttämiseen IoT-alustana, eikä erilliselle palvelimelle ollut tarvetta. Firebasea voidaan siis erityisesti käyttää IoT-järjestelmän prototyypin kehittämisessä, ja sen skaalautuvuuden sekä tehokkuuden vuoksi myös todellisissa projekteissa, ainakin osana järjestelmää.
Kokonainen IoT-järjestelmä rakentuu useista tasoista, joiden välille vaaditaan asianmukaiset protokollat tiedon siirtämiseen sekä keinot tiedon säilömiseen. Järjestelmän kehittämisessä tulee huomioida myös, kuinka saadaan säilytettyä yhteentoimivuus järjestelmän tasojen ohjelmistojen välillä ja kuinka sen skaalautuvuus voidaan varmistaa.
Työn tavoitteena oli kehittää yksinkertainen älykodin IoT-järjestelmä. Järjestelmälle luotiin oma IoT-yhdyskäytävä Raspberry Pi:llä, ja sen ohjelmisto kehitettiin Python-ohjelmointikielellä. Kommunikointiin yhdyskäytävän ja laitteiden välillä käytettiin HTTP-pohjaista RESTful API:a. IoT-alustaksi sovellettiin Google Firebase -pilvipalvelua, jossa tieto tallennettiin NoSQL-tietokantaan. Firebasen palveluiden käyttäminen toteutettiin sille tarkoitettujen ohjelmistokehityspakettien avulla. Järjestelmän käyttöliittymä luotiin Vue.js-ohjelmistokehyksellä, ja käyttöliittymässä tietoa visualisoitiin Chart.js JavaScript-kirjastoa apuna käyttäen.
Pilvipalvelun ilmainen maksusuunnitelma saatiin riittämään käyttötarkoitukseen ja käytetyt frameworkit pohjautuivat avoimen lähdekoodiin, joten kaikki järjestelmän kehittämiseen vaadittavat kulut muodostuivat käytettävästä laitteistosta. Firebasen tarjoamat ominaisuudet soveltuivat sen käyttämiseen IoT-alustana, eikä erilliselle palvelimelle ollut tarvetta. Firebasea voidaan siis erityisesti käyttää IoT-järjestelmän prototyypin kehittämisessä, ja sen skaalautuvuuden sekä tehokkuuden vuoksi myös todellisissa projekteissa, ainakin osana järjestelmää.