IoT-anturiverkon toteutus tietoverkkojen opetusympäristöön
Niskanen, Niilo (2021)
Niskanen, Niilo
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202105118181
https://urn.fi/URN:NBN:fi:amk-202105118181
Tiivistelmä
Työn tavoitteena oli kehittää esimerkkiratkaisu IoT-anturiverkosta opinnäytetyön tilaajan, Kajaanin Ammat-tikorkeakoulun opetuskäyttöön. Opinnäytetyö on osa suurempaa Kajaanin Ammattikorkeakoulun tieto-verkkojen opetusympäristöhanketta. Esimerkkiratkaisu toteutettiin tilaajan määrittelemien vaatimuksien pohjalta. Työn käytännön toteutus jakautui kahteen osa-alueeseen, anturisolmuun ja taustajärjestelmään.
Anturisolmun tehtävä on kerätä ja lähettää anturidataa säännöllisin väliajoin langattomasti hyödyntäen MQTT-protokollaa. Anturisolmulla päätettiin mitata lämpötilaa, kosteutta ja ilmanpainetta. Suureita varten valittiin sopivat anturit. Koodi kehitettiin käyttäen Arduino IDE-ohjelmistoa. Anturisolmu suunniteltiin mah-dollisimman yksinkertaiseksi, koska pääpaino on anturisolmun tiedonsiirron demonstroimisessa, ei itse mit-taamisessa.
Taustajärjestelmä, josta käytetään opinnäytetyössä termiä klusteri, toteutettiin anturisolmun jälkeen. Klus-teri muodostuu neljästä Raspberry Pi 3B -mikrotietokoneesta, jotka on liitetty samaan lähiverkkoon. Rasp-berry Pi -mikrotietokoneiden käyttöjärjestelmät käynnistettiin USB-muistista SD-kortin sijaan elinkaaren pidentämistä varten. Yhdelle Raspberry Pi -mikrotietokoneelle asennettiin Ubuntu Server 18.04.5 LTS-käyttöjärjestelmä, muille asennettiin Raspberry Pi OS. Klusteriominaisuus luotiin Docker-ohjelmistoon si-säänrakennetulla Docker swarm-työkalulla. Raspberry Pi -mikrotietokoneet liitettiin Docker swarm-klusteriin, jonka jälkeen klusterille kehitettiin tilaajan vaatimusmäärittelyn mukaiset palvelut. Palveluihin kuuluu MQTT-protokollan mukainen välittäjäpalvelu, tilaajapalvelu ja tietokantapalvelu. Klusteriin lisättiin työn kehityksen aikana myös palvelut, jotka esittävät ajettavien palveluiden tilaa visuaalisesti ja anturidataa visuaalisesti.
Opinnäytetyön tuloksena Kajaanin Ammattikorkeakoulu saa käyttöönsä toimivan esimerkkiratkaisun siitä, kuinka Docker swarm-pohjainen klusteri voidaan toteuttaa. Opinnäytetyö toimii myös perusteellisena do-kumentaationa siitä, kuinka kyseinen klusteri kehitettiin. Dokumentaatio voi olla hyödyllinen projektin jat-kokehitystä ja ylläpitoa varten.
Anturisolmun tehtävä on kerätä ja lähettää anturidataa säännöllisin väliajoin langattomasti hyödyntäen MQTT-protokollaa. Anturisolmulla päätettiin mitata lämpötilaa, kosteutta ja ilmanpainetta. Suureita varten valittiin sopivat anturit. Koodi kehitettiin käyttäen Arduino IDE-ohjelmistoa. Anturisolmu suunniteltiin mah-dollisimman yksinkertaiseksi, koska pääpaino on anturisolmun tiedonsiirron demonstroimisessa, ei itse mit-taamisessa.
Taustajärjestelmä, josta käytetään opinnäytetyössä termiä klusteri, toteutettiin anturisolmun jälkeen. Klus-teri muodostuu neljästä Raspberry Pi 3B -mikrotietokoneesta, jotka on liitetty samaan lähiverkkoon. Rasp-berry Pi -mikrotietokoneiden käyttöjärjestelmät käynnistettiin USB-muistista SD-kortin sijaan elinkaaren pidentämistä varten. Yhdelle Raspberry Pi -mikrotietokoneelle asennettiin Ubuntu Server 18.04.5 LTS-käyttöjärjestelmä, muille asennettiin Raspberry Pi OS. Klusteriominaisuus luotiin Docker-ohjelmistoon si-säänrakennetulla Docker swarm-työkalulla. Raspberry Pi -mikrotietokoneet liitettiin Docker swarm-klusteriin, jonka jälkeen klusterille kehitettiin tilaajan vaatimusmäärittelyn mukaiset palvelut. Palveluihin kuuluu MQTT-protokollan mukainen välittäjäpalvelu, tilaajapalvelu ja tietokantapalvelu. Klusteriin lisättiin työn kehityksen aikana myös palvelut, jotka esittävät ajettavien palveluiden tilaa visuaalisesti ja anturidataa visuaalisesti.
Opinnäytetyön tuloksena Kajaanin Ammattikorkeakoulu saa käyttöönsä toimivan esimerkkiratkaisun siitä, kuinka Docker swarm-pohjainen klusteri voidaan toteuttaa. Opinnäytetyö toimii myös perusteellisena do-kumentaationa siitä, kuinka kyseinen klusteri kehitettiin. Dokumentaatio voi olla hyödyllinen projektin jat-kokehitystä ja ylläpitoa varten.