IoT-yhdyskäytävälaitteen toteuttaminen : Case: ITKO-hanke
Björke, Mikael (2020)
Björke, Mikael
2020
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2020110222089
https://urn.fi/URN:NBN:fi:amk-2020110222089
Tiivistelmä
Opinnäytetyössä suunniteltiin ja toteutettiin IoT-yhdyskäytävälaitteille tarkoitettu ohjelmisto, joka kerää ja lähettää sensoreilta mitattua dataa palvelimelle aikasarjatietokantaan tallennettavaksi. Opinnäytetyö tehtiin toimeksiantona LAB-ammattikorkeakoulun ITKO-hankkeelle, jonka tarkoituksena on parantaa Päijät-Hämeen alueen yritysten IoT ja big data valmiuksia.
Opinnäytetyön teoriaosuudessa perehdytään erilaisiin viestintätapoihin ja datan kuljetusmenetelmiin. Lisäksi käydään läpi toteutuksessa käytettyjen sensoriteknologioiden toimintaperiaatteita ja ominaisuuksia.
Yhdyskäytävälaitteen ohjelmistokehityksessä päädyttiin käyttämään moniprosessista arkkitehtuuria, jonka myötä ohjelmiston toiminnallisuus jaettiin erillisiin prosesseihin. Ohjelmiston eri osat viestivät toisilleen käyttäen prosessien väliseen kommunikointiin tarkoitettua menetelmää hyödyntäen ZeroMQ-viestintäkirjastoa. Sensoreilta kerätyn datan lähettämiseen käytettiin MQTT-protokollaa, joka mahdollisti tietoturvallisen ja luotettavan kommunikointiväylän yhdyskäytävälaitteen ja palvelimen välille. Ohjelmointikielenä käytettiin pääasiassa Python-ohjelmointikieltä.
Lopputuloksena saatiin toteutettua yleiskäyttöinen IoT-yhdyskäytävälaite, joka mahdollistaa datan keräämisen ja lähettämisen erilaisilta sensoriteknologioilta käyttäen niiden rajapintoja. Ohjelmistokehityksessä käytetty arkkitehtuuriratkaisu tukee ohjelmiston skaalautuvuutta helpottamalla uusien sensoritukien ja ominaisuuksien kehittämistä. The goal of this thesis was to design and implement a software for IoT gateway devices that collects data from sensors and sends it to a server for storage in a time series database. The thesis was commissioned by the ITKO project of LAB University of Applied Sciences. The purpose of the ITKO project is to improve the IoT and big data capabilities of companies in the Päijät-Häme region.
The theoretical part of the thesis introduces various communication and data transport methods. In addition, it reviews operating principles and features of the sensors used in the implementation.
The software of the gateway device ended up implementing a multi-process architecture, which divided the software functionality into separate processes. The different parts of the software communicate with each other using an inter-process communication method utilizing the ZeroMQ communication library. The collected data was transmitted from gateway devices using the MQTT protocol, which offered a secure and reliable communication connection between gateway devices and the server. The software was mainly developed with the Python programming language.
The result of the thesis was general-purpose IoT gateway device that allows data to be collected and transmitted from various sensor technologies using different interfaces. The software architecture solution used in the implementation also supports software scalability by facilitating the development of new sensor supports and features.
Opinnäytetyön teoriaosuudessa perehdytään erilaisiin viestintätapoihin ja datan kuljetusmenetelmiin. Lisäksi käydään läpi toteutuksessa käytettyjen sensoriteknologioiden toimintaperiaatteita ja ominaisuuksia.
Yhdyskäytävälaitteen ohjelmistokehityksessä päädyttiin käyttämään moniprosessista arkkitehtuuria, jonka myötä ohjelmiston toiminnallisuus jaettiin erillisiin prosesseihin. Ohjelmiston eri osat viestivät toisilleen käyttäen prosessien väliseen kommunikointiin tarkoitettua menetelmää hyödyntäen ZeroMQ-viestintäkirjastoa. Sensoreilta kerätyn datan lähettämiseen käytettiin MQTT-protokollaa, joka mahdollisti tietoturvallisen ja luotettavan kommunikointiväylän yhdyskäytävälaitteen ja palvelimen välille. Ohjelmointikielenä käytettiin pääasiassa Python-ohjelmointikieltä.
Lopputuloksena saatiin toteutettua yleiskäyttöinen IoT-yhdyskäytävälaite, joka mahdollistaa datan keräämisen ja lähettämisen erilaisilta sensoriteknologioilta käyttäen niiden rajapintoja. Ohjelmistokehityksessä käytetty arkkitehtuuriratkaisu tukee ohjelmiston skaalautuvuutta helpottamalla uusien sensoritukien ja ominaisuuksien kehittämistä.
The theoretical part of the thesis introduces various communication and data transport methods. In addition, it reviews operating principles and features of the sensors used in the implementation.
The software of the gateway device ended up implementing a multi-process architecture, which divided the software functionality into separate processes. The different parts of the software communicate with each other using an inter-process communication method utilizing the ZeroMQ communication library. The collected data was transmitted from gateway devices using the MQTT protocol, which offered a secure and reliable communication connection between gateway devices and the server. The software was mainly developed with the Python programming language.
The result of the thesis was general-purpose IoT gateway device that allows data to be collected and transmitted from various sensor technologies using different interfaces. The software architecture solution used in the implementation also supports software scalability by facilitating the development of new sensor supports and features.