IoT-datan tiedonkulku, varastointi ja esittäminen
Valtanen, Jere-Joonas (2019)
Valtanen, Jere-Joonas
Jyväskylän ammattikorkeakoulu
2019
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-201901211457
https://urn.fi/URN:NBN:fi:amk-201901211457
Tiivistelmä
Opinnäytetyössä suunniteltiin ja toteutettiin IoT-järjestelmä, joka kerää, lähettää, vastaanottaa, varastoi sekä esittää dataa. Kaikki järjestelmän osat toteutettiin erillisinä komponentteina, jotka suoritettiin omissa ympäristöissänsä Docker-konttien avulla. Työn tarkoituksena oli tuottaa Digia Oy:lle pohja mahdollisia tulevia IoT-projekteja varten. Lisäksi toimeksiantaja määritteli työssä käytettävät teknologiat, joiden toimivuus ja luotettavuus testattiin. Työssä tärkeää ei ollut se mitä dataa kerätään, vaan pikemminkin se miten sitä kerätään. Kerättävän datan lähde tulisi pystyä tarvittaessa pienellä vaivalla vaihtamaan.
Työssä kerättiin erilaisia ilmansaastetietoja ympäri maailmaa OpenAQ-palvelun avoimesta REST API -rajapinnasta. Dataa tuli kerätä suuria määriä, jotta järjestelmän kokema kuorma oli riittävän realistinen IoT-järjestelmälle. Dataa lähettävä ja vastaanottava applikaatio toteutettiin Java-ohjelmointikielellä sekä Spring Frameworkilla. Viestit lähetettiin IoT-järjestelmissä suositulla MQTT-protokollalla. Viestit kerättiin jonoihin sekä välitettiin oikeille vastaanottajille RabbitMQ-viestilähetin avulla. Data varastoitiin InfluxDB-aikasarjatietokantaan. Lopuksi data visualisoitiin loppukäyttäjälle Grafana-analytiikkatyökalulla.
Toteutettiin vaatimusten mukainen toimiva IoT-järjestelmä, jonka perusteella saatiin myös todennettua teknologioiden toimivuus. Kaikki työssä käytetyt teknologiat soveltuivat tehtäviinsä erinomaisesti. Työssä kerättiin InfluxDB-tietokantaan 1 958 641 datapistettä, jotka sisälsivät ilmansaastetietoja ympäri maailmaa. Suorituskykynsä puolesta aikasarjatietokanta oli hyvä valinta IoT-datan varastointiin. Data visualisoitiin kartalle sekä graafeihin Grafanassa. Lisäksi käyttäjä pystyi itse määrittelemään näytettävän saastetyypin, maan, sekä aikavälin. Yksittäisten kaupunkien saastetietoja pystyttiin tutkimaan omassa näkymässään tarkemmin.
Työssä kerättiin erilaisia ilmansaastetietoja ympäri maailmaa OpenAQ-palvelun avoimesta REST API -rajapinnasta. Dataa tuli kerätä suuria määriä, jotta järjestelmän kokema kuorma oli riittävän realistinen IoT-järjestelmälle. Dataa lähettävä ja vastaanottava applikaatio toteutettiin Java-ohjelmointikielellä sekä Spring Frameworkilla. Viestit lähetettiin IoT-järjestelmissä suositulla MQTT-protokollalla. Viestit kerättiin jonoihin sekä välitettiin oikeille vastaanottajille RabbitMQ-viestilähetin avulla. Data varastoitiin InfluxDB-aikasarjatietokantaan. Lopuksi data visualisoitiin loppukäyttäjälle Grafana-analytiikkatyökalulla.
Toteutettiin vaatimusten mukainen toimiva IoT-järjestelmä, jonka perusteella saatiin myös todennettua teknologioiden toimivuus. Kaikki työssä käytetyt teknologiat soveltuivat tehtäviinsä erinomaisesti. Työssä kerättiin InfluxDB-tietokantaan 1 958 641 datapistettä, jotka sisälsivät ilmansaastetietoja ympäri maailmaa. Suorituskykynsä puolesta aikasarjatietokanta oli hyvä valinta IoT-datan varastointiin. Data visualisoitiin kartalle sekä graafeihin Grafanassa. Lisäksi käyttäjä pystyi itse määrittelemään näytettävän saastetyypin, maan, sekä aikavälin. Yksittäisten kaupunkien saastetietoja pystyttiin tutkimaan omassa näkymässään tarkemmin.