Návrh a implementácia Android aplikácie pre monitoring priemyselného procesu

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Stu wiki.png
Slovenská technická univerzita
Materiálovotechnologická fakulta so sídlom v Trnave
Mtf wiki.png
Návrh a implementácia Android aplikácie pre monitoring priemyselného procesu

Bakalárska práca


Autor:
Pedagogický vedúci: Ing. Juraj Ďuďák, PhD.
Študijný odbor: Aplikovaná informatika a automatizácia v priemysle

Akademický rok

2018/2019


Abstrakt

Bakalárska práca sa zaoberá návrhom a implementáciou mobilnej aplikácie pre operačný systém Android. Výstupom práce je klientská aplikácia pre prístup a vizualizáciu nameraných environmentálnych dát systému Sensorical. Implementácia aplikácie kladie dôraz na intuitívne používateľské rozhranie, navrhnuté v súlade s odporúčaniami Material Design. Práca je rozdelená do piatich kapitol. Prvá kapitola je venovaná opisu dátovej vrstvy informačného systému Sensorical a komunikačnému protokolu aplikačného programového rozhrania. Druhá kapitola pojednáva o základných princípoch platformy Android a nástrojoch, ktoré boli pri vývoji aplikácie využité. V tretej a štvrtej kapitole sú postupne opísané fáza návrhu a následná implementácia aplikácie. Piata kapitola je venovaná testovaniu.

Abstract

Bachelor thesis’s subject is design and implementation of the mobile application for operating system Android. The outcome is client application for access and visualization of measured environmental data of the system Sensorical. Implementation of the application puts emphasis on intuitive user interface, respecting all reccommendations of the Material Design. The thesis is divided into five chapters. The first chapter describes the data layer of the system Sensorical and communication protocol of the application programming interface. The second chapter focuses on basics of Android platform as well as used utilities. The third and fourth chapter describe stage of design followed by the implementation of the application. The last chapter describes the testing.

Úvod Žijeme v dobe informačných technológií. Prichádzame do styku s veľkým množstvom informácii a dát, ktoré by sme bez pomoci automatizovaných výpočtových systémov neboli schopní manuálne spracovávať. Jedným z takýchto systémov, ktorý bol navrhnutý pre automatizáciu procesov, je aj systém Sensorical. Tento systém slúži na monitoring a archiváciu nameraných environmentálnych dát a bol vytvorený špeciálne pre priemyselné použitie. Dáta archivované systémom sú produkované meracími zariadeniami, ktoré v stanovených časových intervaloch rôznymi meraniami monitorujú aktuálny stav prevádzky. Po dokončení meraní odosielajú meracie ústredne všetky namerané hodnoty do dátového úložiska na vzdialený server. Keďže v súčasnej dobe, pre svoju kompaktnosť a rýchlu dostupnosť, dokážu mobilné telefóny plnohodnotne zastúpiť iné platformy, naskytá sa príležitosť vytvoriť klientskú mobilnú aplikáciu pre prístup a vizualizáciu údajov systému Sensorical, ktorá umožní používateľom sledovať údaje v reálnom čase, v pár rýchlych klikoch.

Úlohou bakalárskej práce je túto mobilnú aplikáciu pre operačný systém Android navrhnúť a následne implementovať. Aplikácia používateľom poskytne vždy aktuálne namerané údaje spolu s možnosťou zobrazenia histórie nameraných údajov, pričom jednotlivé merania budú vyhodnocované formou základných štatistických informácií. Samotná aplikácia má disponovať intuitívnym používateľským rozhraním, v ktorom používateľ získa jasný a zrozumiteľný prehľad nad zobrazeným obsahom. Aplikácia dostala názov aAurela, ktorý vychádza z názvu pôvodnej desktopovej klientskej aplikácie nSoric Aurela.

Informačný systém Sensorical

Informačný systém Sensorical, navrhnutý v spoločnosti TNTech s.r.o., predstavuje komplexný systém zberu environmentálnych dát zahŕňajúci hardvérovú časť, dátovú vrstvu a softvérové nástroje.

Základom hardvérovej časti sú zariadenia využívajúce komunikačný protokol [math]\mu[/math]BUS. Jedná sa o hardvérové riešenie, ktoré pozostáva z meracích ústrední, do ktorých sú pripojené koncové meracie zariadenia (senzory). Meracie ústredne v pravidelných časových intervaloch načítavajú namerané údaje z pripojených senzorov. Ako fyzická vrstva je použitý priemyselný štandard RS-485.

Dátová vrstva pozostáva z databázového modelu a aplikačného programového rozhrania (API). Databázový model je reprezentovaný databázou uloženou na vzdialenom serveri. Pre prístup k údajom uloženým v databáze slúži API.

Softvérovú vrstvu reprezentuje množina softvérových produktov označovaných ako nSoric suite. Tento balík pozostáva z nástrojov: nSoric Cofig - konfigurácia meracích ústrední, nSoric Aurela (desktop aplikácia) - prístup k nameraným údajom, nSoric Serve - systémový daemon pre spúšťanie meraní na meracích ústredniach. V tejto kapitole je použitý zdroj .

Dátový model systému Sensorical

Dátový model je súčasťou dátovej vrstvy a je tvorený viacerými logicky oddelenými časťami: model hierarchickej kategorizácie rozmiestnenia senzorov, model s podrobným popisom vlastností senzorov, model ukladania nameraných údajov v režime dlhodobého snímania a v režime krátkodobého merania, model hierarchického prístupu k nameraným údajom a model definujúci používateľov systému.

Úlohy a využitie dátového modelu Sensorical

Jednotlivé časti dátového model vytvárajú komplexný celok, ktorého úlohou je:

  • udržiavanie konfigurácie daného Sensorical servera
    • zoznam všetkých meracích blokov spolu s ich nastavením,
    • zoznam všetkých pripojených senzorov a ich konfigurácie,
    • kategorizácia senzorov podľa typu (identifikácia zariadení zbernice [math]\mu[/math]Bus)
  • úplná evidencia nameraných hodnôt
  • kategorizácia rozmiestnenia a rozdelenia senzorov v rámci jedného Sensorical servera
    • kategorizácia prvej úrovne - rozdelenie do oblastí
    • kategorizácia druhej úrovne - rozmiestnenie do podoblastí (sektorov) v rámci oblastí
    • kategorizácia tretej úrovne - priradenie senzorov do sektorov
  • správa používateľských oprávnení
    • definovanie rôznych pohľadov na systém na základe prístupových oprávnení

Štruktúra dátového modelu

V aplikácii nie je využitý celý dátový model, pretože komplexný dátový model systému zahŕňa napríklad časti potrebné pre kalibráciu, nástroje pre spúšťanie meraní a iné, ktoré nie sú pre zabezpečenie požadovaných funkcií aplikácie relevantné. V aplikácii sú využité len tie časti dátového modelu, ktoré sú nevyhnutné pre prístup k údajom meracieho systému a ich prezentáciu v aplikácii. zobrazuje entito-relačný diagram časti dátového modelu, ktorá je využitá v aplikácii.

Entito-relačný diagram použitej časti dátového modelu
Entito-relačný diagram použitej časti dátového modelu

[fig:er_model]

Využité časti dátového modelu v aplikácii

  • model rozmiestnenia senzorov na definovanej oblasti
    • entity: area, sector, sensor, sensor_sector, group_view, important_view
  • model pre ukladanie nameraných údajov
    • entity: measurement, sensor_value, sensor_date
  • model definujúci používateľov systému
    • entita: user
  • model definujúci vlastnosti meracích zariadení
    • entity: sensor_properties, type, type_group

Model rozmiestnenia senzorov na definovanej oblasti

Rozmiestnenie meracích zariadení je definované hierarchickou štruktúrou. Najvyššia úroveň tejto hierarchie je oblasť (area). V rámci oblasti sú definované sektory (sector), do ktorých sú umiestňované jednotlivé meracie zariadenia (sensor).

area
Definuje zoznam oblastí jedného Sensorical servera. Počet oblastí nie je obmedzený. Pre zobrazenie konkrétnej oblasti musí mať používateľ definované prístupové oprávnenia, ktoré určuje entita group_view.
sector
Definuje zoznam sektorov. Vzťah medzi entitami area a sector je 1:N. Do jednej oblasti môže patriť jeden alebo viac sektorov a jeden sektor môže patriť len do jednej oblasti.
sensor
Reprezentuje zoznam všetkých dostupných koncových zariadení systému. Každý senzor je definovaný názvom, sériovým číslom, meracím rozsahom a špecifikáciou typu senzora.
sensor_sector

Reprezentuje vzťah medzi entitami sensor a sector. Modeluje situáciu vzťahu M:N, z ktorej vyplýva, že do určitého sektoru môžu byť priradené viaceré senzory a zároveň môže nastať situácia, kedy je jeden senzor priradený do viacerých sektorov.

group_view
Rieši používateľské oprávnenia. V systéme existujú používatelia, ktorí majú práva pristupovať len k určitým pohľadom na celý systém. Entita group_view definuje, konkrétne ktoré oblasti a jej prislúchajúce sektory má daný používateľ právo prezerať.
important_view
Slúži na uchovávanie používateľom vytvoreného zoznamu dôležitých resp. obľúbených senzorov. Každý používateľ si môže označiť ľubovoľný, jemu dostupný senzor ako obľúbený. Entita important_view uchováva ID senzorov pridaných do obľúbených. Vytvorená skupina obľúbených senzorov má prednostné zobrazenie.

Model pre ukladanie nameraných údajov

Entity tejto časti dátového modelu zabezpečujú archiváciu a kategorizáciu nameraných hodnôt, časových údajov jednotlivých meraní a zároveň umožňujú jednoznačné priradenie nameraných hodnôt k danému senzoru.

measurement
Zabezpečuje evidenciu a priradenie všetkých spustených meraní k danému senzoru. Meranie môže byť v princípe definované ako:
  • štandardné pravidelné meranie opakujúce sa každých n minút (meracia služba)
  • meranie spustené jednorazovo napríklad kalibračné alebo kontrolné meranie
sensor_date
Zabezpečuje archiváciu časových záznamov jednotlivých meraní, uchováva záznamy o dátume a čase jednotlivých meraní.
sensor_value
Entita, ktorá slúži na archiváciu nameraných hodnôt. Je previazaná s entitami sensor, sensor_date, measurement, vďaka čomu je možné priradiť namerané hodnoty k senzorom a taktiež k presnému dátumu a času, kedy sa meranie uskutočnilo.

Model definujúci používateľov systému

Keďže systém Sensorical je viac-používateľský, je potrebné uchovávať záznamy o jeho používateľoch a ich údajoch.

user
Reprezentuje zoznam všetkých používateľov systému. Každý používateľ má pre prístup do systému vytvorené používateľské meno a heslo. Pre jednoznačnú identifikáciu každého používateľa systému je využívaný atribút ID.

Model definujúci vlastnosti meracích zariadení

Táto časť dátového modelu slúži pre kategorizáciu senzorov, bližšiu špecifikáciu vlastností a klasifikáciu ich typov.

sensor_properties
Charakterizuje špecifické vlastnosti každého senzoru. Využíva sa pri zobrazovaní nameraných údajov jednotlivých senzorov. Konkrétne slúži pre zobrazenie maximálnej/minimálnej prípustnej meranej hodnoty resp. nastavených alarmov daného senzoru.
type
Kategorizácia typu senzora. Odkazuje na entitu type_group, prostredníctvom ktorej je možné zistiť fyzikálnu jednotku meraní daného senzora.
type_group
Obsahuje zoznam (číselník) podporovaných fyzikálnych jednotiek koncových zariadení systému.

Použitý komunikačný protokol

Pre komunikáciu so vzdialeným serverom sa využíva socketový dátový prenos s architektúrou klient-server. Samotný prístup k dátam uloženým na vzdialenom serveri umožňuje aplikačné programové rozhranie (API) a komunikačný protokol, ktorý je nad týmto API definovaný. Údaje sú medzi klientom a serverom prenášané v textovom formáte JSON. Pre spracovanie údajov tejto časti bol použitý zdroj .

API požiadavky

Požiadavky odosielané API musia byť na strane klienta transformované do formátu JSON. Jednotlivé typy požiadaviek môžu obsahovať nasledujúce časti:

  • version: definuje verziu protokolu
  • user: používateľské meno, ktoré je identifikovateľné a autorizované Sensorical databázou
  • pass: používateľské heslo pre autorizáciu s databázou
  • object: definuje k čomu sa požiadavka viaže, povolené sú nasledujúce hodnoty:
    • data: údaje v databáze
    • sensor: práca so senzormi
    • system: informácie o systéme Sensorical
  • request: definuje akciu. Význam tohto parametra určuje aj hodnota parametra object. Štandardné typy akcií: get, put, set
  • subject: definuje entitu, ktorej sa požiadavka týka, napr. users, sensor, sector,…
  • subject_params: definuje dodatočné parametre k parametru subject. Formát je jednoduché pole hodnôt. Parameter je povinný pre všetky požiadavky, avšak jeho hodnota môže byť prázdna - NULL.
    { "version": 1, "user": "aaa", "pass": "xxxxx", "object": "data", 
      "request": "get", "subject": "sensor", "subject_params": [] }

[listing:api_request]

API odpovede

Odpovede prijímané z API sú taktiež realizované vo formáte JSON a môžu obsahovať nasledujúce polia:

  • version: verzia používaného protokolu
  • server: názov Sensorical servera
  • user_rights: informácia o právach prihláseného používateľa
  • response: definuje typ odpovede (TABLE - údaje o nastavení servera, VALUE - namerané údaje, ERROR - chyby, INFO - informatívne údaje)
  • context: názov entity, ktorej sa odpoveď týka
  • data: dátová časť, pole záznamov. Formát prvkov tohto poľa je pre každý typ odpovede (response) iný
    { "user_rights": 2,   
      "server": "local.sensorical", 
      "vesion": "1", 
      "context": "sensor", 
      "data": [ 
          [19, "Vlhkomer H1_a", "0x2332b1", 1385218, 1, null, null, 0, 5, 1], 
          [20, "Vlhkomer H1_b", "0x2332b2", 1385218, 1, null, null, 0, 6, 1], 
          ... 
              ], "response": "table" }

[listing:api_response]

Softvérová vrstva nSoric

Keďže informačný systém nSoric tvorí komplexný merací a monitorovací systém, jeho softvérové súčasti sú rozdelené do niekoľkých modulov: zber a uloženie dát (nSoric Serve) a prezentácia dát (nSoric Aurela). Všetky softvérové súčasti sú naprogramované v multiplatformovom jazyku Java, čo zabezpečuje ich hardvérovú a softvérovú nezávislosť.

nSoric Serve

Softvér nSoric Serve je CLI (Command Line Interface) nástroj pre spúšťanie meraní a uloženie nameraných hodnôt do vrstvy pre ukladanie dát. Hardvérová konfigurácia meracej časti informačného systému je uložená v databáze. Podľa týchto informácií spúšťa nástroj Serve merania na vybraných meracích ústredniach. Spustenie merania na vybraných meracích zariadeniach demonštruje [listing:serve], kde <address> je adresa meracej ústredne.

    java -jar Serve.jar H /dev/ttyUSB0 <address>

nSoric Aurela

Softvér nSoric Aurela je desktopová aplikácia, ktorá slúži na vizuálnu prezentáciu dát (vľavo) a administráciu celého informačného systému (vpravo).

Desktopový softvér nSoric Aurela Desktopový softvér nSoric Aurela

Medzi základné vlastnosti vizualizácie údajov patrí:

  • zobrazenie posledných nameraných hodnôt spolu s vizualizáciou povoleného rozsahu hodnôt (spodný a horný alarm),
  • zobrazenie telemtetrických údajov (stav batérie) bezdrôtových senzorov,
  • zobrazenie nameraných časových priebehov zoskupených podľa sektorov,
  • zobrazenie udalostí zo systémového logu z informačného systému,
  • voľba časového intervalu zobrazených hodnôt (1 deň až 2 mesiace).

V administračnej časti je možné:

  • definovať nové oblasti a sektory,
  • meniť nastavenia existujúcich senzorov,
  • spravovať používateľské oprávnenia,
  • sledovať a spravovať stav meracej služby,
  • spravovať nastavenia meracích ústrední