Návrh a implementácia Android aplikácie pre monitoring priemyselného procesu
![]() |
Slovenská technická univerzita
Materiálovotechnologická fakulta so sídlom v Trnave |
![]() |
Návrh a implementácia Android aplikácie pre monitoring priemyselného procesu Bakalárska práca |
Autor: | Matúš Ravas |
Pedagogický vedúci: | Ing. Juraj Ďuďák, PhD. |
Študijný odbor: | Aplikovaná informatika a automatizácia v priemysle
|
Akademický rok |
2018/2019
|
1. | Informačný systém Sensorical |
2. | Platforma Android |
3. | Návrh aplikácie nSoric aAurela |
4. | Implementácia aplikácie nSoric aAurela |
5. | Testovanie aplikácie nSoric aAurela
|
Obsah
- 1 Informačný systém Sensorical
- 1.1 Dátový model systému Sensorical
- 1.2 Použitý komunikačný protokol
- 1.3 Softvérová vrstva nSoric
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.
[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).
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í