Bluetooth Mesh -ohjainten taakanjako
Laine, Torsti (2022)
Laine, Torsti
2022
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-202203083222
https://urn.fi/URN:NBN:fi:amk-202203083222
Tiivistelmä
Insinöörityössä kehitettiin ohjelmistomoduuli, joka vastaa taakanjaosta Bluetooth Mesh -verkkoteknologiaan perustuvan valaisujärjestelmän yhteydessä toimivien ohjainlaitteiden välillä. Ohjain toimii yhdyskäytävänä valaisujärjestelmän ja pilvipalvelujen välillä.
Taakanjakomoduulin viestintää varten kehitettiin kaksitasoinen viestintäkerros, joka käyttää langallista lähiverkkoa. Alemman tason tehtävä on saattaa ohjaimet tietoisiksi toisistaan UDP-monilähetysviestejä käyttäen. Ylempi viestintäkerroksen taso vastaa varsinaisesta ohjainten välisestä viestinnästä, joka on toteutettu AMQ-viestintäprotokollaa käyttävällä RabbitMQ-viestijonolla. Kehitetty moduuli jakaa verkkosolmuja ohjainten välillä perustuen solmuilta vastaanotettavien viestien ’hops’-kentän arvoon, jolla mitataan viestin kulkemaa etäisyyttä verkossa. Periaatteena on, että ohjaimet saavat itseään lähinnä olevat solmut omistukseensa. Moduulia testattiin kahden ohjaimen välillä. Ohjainten tietokantoihin luotiin 200 lumesolmua, joille tuotettiin satunnaisesti ’hops’-arvo. Aluksi kaikki lumesolmut asetettiin toisen ohjaimen omistukseen, minkä jälkeen odotettiin taakanjako-operaation käynnistymistä. Toisessa testissä kullekin ohjaimelle annettiin 100 lumesolmua ja taakanjako-operaatio käynnistettiin samanaikaisesti kummassakin ohjaimessa.
Viestintäkerros luo yhteydet ohjainten välille automaattisesti, kykenee toipumaan virhetilanteista ja luo yhteydet uudelleen, mikäli yhteys katkeaa. Ohjainten välinen viestintä on luotettavaa, eikä testeissä havaittu yhtäkään tapausta, jossa viestit olisivat menneet sekaisin, tai viesti ei olisi saapunut määränpäähänsä.
Moduulin suorittama taakanjako toteutui odotetulla tavalla, ja jokaisessa toistossa noin puolet lumesolmuista siirrettiin toisen ohjaimen omistukseen. Samanaikaisten taakanjako-operaatioiden viestintä ei häiriintynyt, ja molemmissa tapauksissa lopputulos oli odotetun kaltainen.
Taakanjakomoduulin viestintää varten kehitettiin kaksitasoinen viestintäkerros, joka käyttää langallista lähiverkkoa. Alemman tason tehtävä on saattaa ohjaimet tietoisiksi toisistaan UDP-monilähetysviestejä käyttäen. Ylempi viestintäkerroksen taso vastaa varsinaisesta ohjainten välisestä viestinnästä, joka on toteutettu AMQ-viestintäprotokollaa käyttävällä RabbitMQ-viestijonolla. Kehitetty moduuli jakaa verkkosolmuja ohjainten välillä perustuen solmuilta vastaanotettavien viestien ’hops’-kentän arvoon, jolla mitataan viestin kulkemaa etäisyyttä verkossa. Periaatteena on, että ohjaimet saavat itseään lähinnä olevat solmut omistukseensa. Moduulia testattiin kahden ohjaimen välillä. Ohjainten tietokantoihin luotiin 200 lumesolmua, joille tuotettiin satunnaisesti ’hops’-arvo. Aluksi kaikki lumesolmut asetettiin toisen ohjaimen omistukseen, minkä jälkeen odotettiin taakanjako-operaation käynnistymistä. Toisessa testissä kullekin ohjaimelle annettiin 100 lumesolmua ja taakanjako-operaatio käynnistettiin samanaikaisesti kummassakin ohjaimessa.
Viestintäkerros luo yhteydet ohjainten välille automaattisesti, kykenee toipumaan virhetilanteista ja luo yhteydet uudelleen, mikäli yhteys katkeaa. Ohjainten välinen viestintä on luotettavaa, eikä testeissä havaittu yhtäkään tapausta, jossa viestit olisivat menneet sekaisin, tai viesti ei olisi saapunut määränpäähänsä.
Moduulin suorittama taakanjako toteutui odotetulla tavalla, ja jokaisessa toistossa noin puolet lumesolmuista siirrettiin toisen ohjaimen omistukseen. Samanaikaisten taakanjako-operaatioiden viestintä ei häiriintynyt, ja molemmissa tapauksissa lopputulos oli odotetun kaltainen.
