MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

72
VIDZEMES AUGSTSKOLA INŽENIERZINĀTŅU FAKULTĀTE MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA BAKALAURA DARBS Autore: Laura Ozoliņa Stud.apl.Nr.: IT15010 Darba vadītājs: Mg.sc.comp. Gatis Blūms VALMIERA 2019

Transcript of MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

Page 1: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

VIDZEMES AUGSTSKOLA

INŽENIERZINĀTŅU FAKULTĀTE

MĀJAS VIEDĀ VESELĪBAS APRŪPES

SISTĒMA

BAKALAURA DARBS

Autore: Laura Ozoliņa

Stud.apl.Nr.: IT15010

Darba vadītājs: Mg.sc.comp. Gatis Blūms

VALMIERA 2019

Page 2: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

2

KOPSAVILKUMS

Autors: Laura Ozoliņa, Stud.apl.nr. IT15010

Darba vadītājs: Mg.sc.comp. Gatis Blūms

Mājas viedā veselības aprūpes sistēma. -Bakalaura darbs, Valmiera: Vidzemes augstskola,

2018.- 56 lp., 4 tabulas, 45 attēli, 3 pielikumi.

Veselības monitorings ir svarīgs jebkuram cilvēkam, jebkurā vecumā, taču vairums

cilvēku nav pieejams šāds pakalpojums vai arī pakalpojuma izmaksas ir pārāk augstas. Darba

mērķis ir izstrādāt mājas viedo veselības aprūpes sistēmu, izmantojot Arduino, Microsoft

Visual Studio un Android Studio piedāvātās iespējas. Lai sasniegtu mērķi, tika veidots darba

teorētiskais modelis, kurā tika izpētīti un salīdzināti dažādi mikrokontrolieri un lietotņu

izstrādes rīki. Viens no galvenajiem uzdevumiem bija sistēmas izstrāde ar Arduino, kuras

izejas datus pēc tam vizualizē autores izstrādātā Android lietotnē. Sistēma tika veidota pēc

ūdenskrituma metodes un testēšanas procesā tika izmantota melnās kastes testēšanas

metode. Darba rezultātā ir izveidota funkcionējoša sistēma, kura atļaus tās lietotājam mājas

apstākļos iegūt datus par savu veselību.

Bakalaura darbs izstrādāts no 19.10.18. līdz 19.05.19. Valmierā, Vidzemes

Augstskolā.

Page 3: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

3

SUMMARY

Author: Laura Ozoliņa, Student ID : IT15010

Supervisor: Mg.sc.comp. Gatis Blūms

Smart home health system. -Bachelor’s thesis, Valmiera: Vidzeme University of Applied

Sciences, 2018-56 pages, 4 tables, 45 pictures, 3 attachments.

Health monitoring is important for any person of any age, but most people do not

have access to such a service or the cost of the service is too high. The aim of the work is to

develop a home-based, smart health care system with the help of Arduino, Microsoft Visual

Studio and Android Studio. In order to achieve the goal, a theoretical model of work was

developed, in which author researched and compared various microcontrollers and

application development tools. One of the main tasks was the development of the system

with Arduino, the output of which is then visualized in the author's developed Android app.

The system was built using waterfall method and the black box testing method was used in

the testing process. As a result of the work, a functioning system has been created that will

allow its user to obtain data about their health at home.

Bachelor thesis was developed from 19.10.18. until 19.05.19 in Valmiera,

Vidzeme University of Applied Sciences.

Page 4: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

4

РЕЗЮМЕ

Автор: Лаура Озолиня, ID студента: IT15010

Супервайзер: Mg.sc.comp. Гатис Блумс

Умная домашняя система здравоохранения. - Работа Бакалауры, Валмиера:

Университет прикладных наук Видземе, 2018- 56, 4 столов, 45 картин, 3 приложений.

Мониторинг здоровья важен для любого лица любого возраста, но

большинство людей не имеют доступа к такой услуге или слишком высокая стоимость

услуги. Целью работы является разработка системы интеллектуального

здравоохранения на дому с помощью Arduino,Microsoft Visual Studio и Android Studio.

Для достижения этой цели была разработана теоретическая модель работы, в которой

автор исследовал и сравнивал различные микроконтроллеры и инструменты

разработки приложений. Одной из основных задач была разработка системы с

Arduino, выход которой затем визуализируется в разработанном автором приложении

для Android. Система была построена с использованием метода каскадная, и в

процессе тестирования использовался метод тестирования черного ящика. В

результате работы была создана функциональная система, которая позволит ее

пользователю получать данные о своем здоровье дома.

Бакалавриат был разработан с 19.10.18. до 19.05.19 в Валмиере, Видземском

университете прикладных наук.

Page 5: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

5

SAĪSINĀJUMI UN ATSLĒGAS VĀRDI

Android – operētājsistēma mobilajām ierīcēm, kas darbojas uz Linux kodola bāzes.

API (Application Programming Interface) – iepriekš definēta klašu, funkciju u.t.t.

kopums, kas tiek pasniegts kā pielikums.

APK (Android Package) - Android operētājsistēmu izmantots pakotnes faila formāts

lietotnes izplatīšanai un instalēšanai.

Apple Inc. – amerikāņu tehnoloģiju kompānija.

Arduino – elektronikas un programmatūras platforma.

C# - Microsoft izstrādāta programmēšanas valoda.

Datubāze – strukturizēts informācijas kopums.

Firebase – lietotņu izstrādes platforma.

Frekvence – svārstību skaits laika vienībā.

GitHub – tīmekļa bāzēts serviss versiju kontrolei.

Google Play Store – Android ierīcēm paredzēts elektronisks lietotņu veikals.

iCloud – mākoņpakalpojums datu uzglabāšanai un apstrādei.

IDE (Integrated Developement Environment ) – integrētā izstrādes vide, kas satur rīkus,

kas nepieciešami programmatūras izstrādei, atkļūdošanai un testēšanai.

iOS – Apple izstrādāta mobilā operētājsistēma.

JAVA - firmas Sun Microsystems izstrādāta objektorientēta programmēšanas valoda.

Kotlin – starpplatformu programmēšanas valoda.

Lietotne – programmatūra, kas darbināma uz mobilajām ierīcēm.

Lietu internets – fizisku ierīču savienošana.

Linux – UNIX veida operētājsistēmas kodols.

Microsoft Visual Studio – Microsoft izstrādātā integrētā izstrādes vide.

Mikrokontrolieris - mazs dators, kas sastāv tikai no vienas vienkristāla mikroshēmas.

Operētājsistēma – programmatūras kopums, kas kontrolē un vada datora aparatūru.

Partīcija – sadalīta diska sektors.

Python – augsta līmeņa programmēšanas valoda.

Ports – fiziskās ierīces komunikācijas galapunkts.

Prototipēšana – sistēmas sākuma modeļa izstrāde konceptu un procesu testēšanai.

Sensors - mērpārveidotājs vai ierīce, kas tieši uztver mērījamo lielumu un veido tā vērtībām

atbilstošu signālu virkni.

Page 6: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

6

Sinhronizācija – vairāku aktivitāšu norise vienlaikus.

Siri – Apple izstrādāts virtuālais asistents.

Šifrēšana – informācijas kodēšanas process.

URL (Uniform Resource Locator) – standartizēta resursu adrese internetā.

USB (Universal Serial Bus) - virknes kopnes standarts ārējo iekārtu pieslēgšanai.

Versiju kontrole – izmaiņu pārvaldības paņēmieni un rīki.

Viedtālrunis - mobilais telefons ar datoram līdzīgu funkcionalitāti.

WEP (Wired Equivalent Privacy) – drošības algoritms.

Wi-Fi – radio tehnoloģijas, kuras izmanto bezvadu savienojumiem.

Windows – Microsoft radīta operētājsistēma personālajiem datoriem un serveriem.

XML (eXtensible Markup Language) – jeb paplašināmā iezīmēšanas valoda ir W3C

rekomendācija speciālas nozīmes iezīmēšanas valodu veidošana.

Page 7: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

7

SATURS

KOPSAVILKUMS ..................................................................................................................... 2

SUMMARY ............................................................................................................................. 3

РЕЗЮМЕ ................................................................................................................................ 4

SAĪSINĀJUMI UN ATSLĒGAS VĀRDI ....................................................................................... 5

IEVADS ................................................................................................................................... 9

1 TEORĒTISKAIS PAMATOJUMS ...................................................................................... 11

1.1 Situācijas apraksts ................................................................................................. 11

1.2 Arduino pret Raspberry PI .................................................................................... 11

1.3 Arduino vēsture .................................................................................................... 12

1.4 Pieejamās komponentes ....................................................................................... 13

1.4.1 Plates ............................................................................................................. 13

1.4.2 Paplašināšanas plates (vairogi) ...................................................................... 17

1.4.3 Sensori ........................................................................................................... 20

1.4.4 Citas komponentes ........................................................................................ 22

1.5 Arduino plašu programmēšana ............................................................................ 24

1.6 Operētājsistēmas izvēle ........................................................................................ 26

1.7 Viedtālruņu operētājsistēmu apskats ................................................................... 26

1.8 Izstrādes vižu un programmēšanas valodu apskats ............................................. 35

1.9 Android un iOS savienojamība ar Arduino ............................................................ 37

1.10 Iespējamās platformas datu nosūtīšanai uz Firebase ....................................... 38

1.11 Secinājumi un OS/izstrādes vides un platformas izvēle .................................... 39

2 SISTĒMAS IZSTRĀDE..................................................................................................... 40

2.1 Programmēšanas vides instalācija un sagatavošana ............................................ 40

2.2 Arduino sagatavošana darbam ............................................................................. 40

2.3 Grafiskā interfeisa programmēšana ..................................................................... 41

2.4 Lietotnes programmēšana .................................................................................... 41

2.5 Testēšana .............................................................................................................. 42

3 PROGRAMMAS PROJEKTĒJUMA APRAKSTS ................................................................ 44

3.1 Ievads .................................................................................................................... 44

3.1.1 Nolūks ............................................................................................................ 44

Page 8: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

8

3.1.2 Darbības sfēra ................................................................................................ 44

3.1.3 Saistība ar citiem dokumentiem .................................................................... 44

3.2 Programmatūras projektējuma apraksta izgatavošanas apsvērumi .................... 44

3.2.1 Programmatūras dzīves cikls ......................................................................... 44

3.2.2 Programmatūras projektējuma apraksta nolūks ........................................... 45

3.3 Dekompozīcijas apraksts ....................................................................................... 45

3.3.1 Moduļu dekompozīcija .................................................................................. 45

3.4 Atkarību apraksts .................................................................................................. 48

3.4.1 Starp moduļu atkarība ................................................................................... 48

3.5 Detalizētais projektējums ..................................................................................... 49

3.5.1 Datu detalizētais projektējums...................................................................... 49

4 DARBA EKONOMISKAIS PAMATOJUMS ....................................................................... 51

5 SECINĀJUMI ................................................................................................................. 53

6 LITERATŪRA ................................................................................................................. 55

PIELIKUMI ............................................................................................................................ 57

I PIELIKUMS.PROGRAMMAS PIRMKODA FRAGMENTI. ....................................................... 58

II PIELIKUMS. APLIECINĀJUMS PAR AUTORA MANTISKO TIESĪBU NODOŠANU.................. 69

III PIELIKUMS. APLIECINĀJUMS PAR DARBA ATBILSTĪBU .................................................... 71

Page 9: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

9

IEVADS

Cilvēki ne tikai pasaulē, bet arī Latvijā ir vienmēr interesējušies par savu veselības

stāvokli. Mūsdienu tehnoloģijas ļauj precīzi izmērīt un analizēt mūsu vitālos rādījumus.

Ņemot vērā savu finansiālo stāvokli vai iespējas nokļūt līdz tuvākajam veselības monitoringa

punkta (ģimenes ārsts, slimnīca u.c.), vairums no cilvēkiem izvēlas šādu pakalpojumu

neizmantot, tāpēc to zināšanas par sava ķermeņa veselību ir salīdzinoši zemas.

Latvijā, balstoties uz Centrālās statistikas pārvaldes apkopotajiem datiem, 2017.gadā

20 % no aptaujātajiem Latvijas iedzīvotājiem gada laikā ne reizi nebija apmeklējuši ģimenes

ārstu, medicīnas vai ķirurģijas speciālistu, zobārstu, ortodontu, higiēnistu. Viskūtrākie ir tieši

jaunieši, vecumā no 16 līdz 24 gadiem.(Centrālā statistikas pārvalde, 2017)

2018.gadā aptuveni 90 % no aptaujātajiem atzina, ka visas pārbaudes un ārstēšanās

ir veiktas, taču citi kā šķērsli minēja to, ka nevar atļauties pakalpojumu, ir pārāk ilgi jāgaida

uz pieņemšanu vai bija pārāk tālu jābrauc.(Centrālā statistikas pārvalde, 2018)

Šobrīd plašākai sabiedrībai pieejamie monitoringa rīki, kā rokas pulksteņi vai cimdi.

Pēc mobilo sakaru operatora BITE veiktās klientu aptaujas divi no desmit BITE klientiem

izmanto dažādus servisus un ierīces sportam un veselībai, bet katrs trešais apsver lietot

tos.(BITE, 2017)

No šī arī izriet, ka šajā gadījumā galvenā problēma ir tas, ka daudzi Latvijas

iedzīvotāji vai nu nevar atļauties veselības monitoringu, vai tiem nav piekļuves šādam

pakalpojumam.

Darbā izmantotā literatūra sastāv gan no pieejamajiem avotiem internetā, gan no

grāmatām.

Darba mērķis:

Izstrādāt mājas viedo veselības aprūpes sistēmas prototipu, kas atļautu noskaidrot

lietotāja veselības rādītājus un vizualizēt tos lietotnē.

Darba uzdevumi:

· Teorētiskā modeļa izstrāde,

· Sistēmas izstrāde, izmantojot Arduino un Android Studio,

· Sistēmas testēšana.

Darba metodes:

· Teorētiskās literatūras, saistīto pētījumu un publikāciju analīze,

· Sistēmas programmēšana, izmantojot ūdenskrituma metodi,

Page 10: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

10

· Testēšana pēc melnās kastes metodes.

Darba izpildes posmi:

● Teorētisko materiālu izpēte un analīze,

● Programmas uzmetuma veidošana,

● Programmas funkcionālā un dizaina realizācija,

● Programmas precīza darbības veikšana,

● Uzlabojumu veikšana ieviešana.

Rezultātā ir izpētītas veselības monitoringa iespējas, izmantojot Arduino un Android un

ir izstrādāta funkcionējoša programma, kas ļauj tās lietotājam izmērīt savus veselības

rādītājus, kā arī redzēt to vizualizāciju un analīzi lietotnē.

Page 11: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

1 TEORĒTISKAIS PAMATOJUMS

Šajā nodaļā tiks aplūkotas tehnoloģijas un to alternatīvas sistēmas izstrādei. Tiks

aplūkotas autorei pieejamās platformas, sensorus un izstrādes vides, kā arī tiks veikti

secinājumi un izvēlēta atbilstošā tehnoloģija.

1.1 Situācijas apraksts

Ārsti gan pasaulē, gan Latvijā uzsver profilaktisko pasākumu nozīmi mūsu veselības

uzturēšanā. Pat sekojot līdzi standarta rādītājiem kā pulsam un ķermeņa temperatūrai cilvēks

var uzzināt par sava ķermeņa stāvokli.

2017.gadā Latvijā 56 % no mirušo kopskaita mira sirds un asinsvadu slimību dēļ.

(CSP 2019)

Pulsa ātrums ir tieši saistīts ar hipertensiju, aterosklerozi, sirds un asinsvadu

slimībām, infarkta un insulta risku, tāpēc palēninot sirds ritmu ir iespējams palielināt mūža

ilgumu.(Slimību profilakses un kontroles centrs, 2018)

Līdz šim cilvēki bija pieraduši doties pie ārsta, lai pārbaudītu savus veselības

rādītājus, taču tehnoloģijām attīstoties un kļūstot pieejamākām visiem, lielu popularitāti sāk

iegūt mājās lietojamās monitoringa ierīces, kas ļauj tās lietotājam veikt un fiksēt rādījumus

mājas apstākļos, jebkurā laikā. Daudzas no tām arī fiksē iegūtos datus, tos vizualizē un

analīzē. Bakalaura darba mērķis ir panākt to pašu, taču papildus lietotāja interfeiss tiks

latviskots, lai cilvēki varētu iegūt informāciju sev saprotamā valodā.

1.2 Arduino pret Raspberry PI

Kaut arī ir pieejamas neskaitāmas platformas, kas piedāvā ātri un ērti veidot

dažādus tehniskus risinājumus, šajā apakšnodaļā tiks apskatīti Arduino un Raspberry PI

plusi un mīnusi, apakšnodaļas nobeigumā izvēloties izdevīgāko no tām un nākamajās

nodaļās iedziļinoties konkrētās platformas papildus iespējās.

Galvenā atšķirība starp abām platformām ir tāda, ka Arduino ir mikrokontroliera

mātesplate, kas spēj darbināt vienu programmu, kamēr Raspberry PI ir uzskatāms par

datoru, kas spēj darbināt vairākas programmas vienlaicīgi.(Make, 2015)

Kaut arī Raspberry PI piedāvā lielāku funkciju apjomu un jaudu, tomēr ņemot vērā

Page 12: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

12

autores projektam nepieciešamo apjomu, kā arī ņemot vērā izmaksas (Raspberry PI un to

komponenšu cena ir lielāka par Arduino), autore izvēlās dziļāk izpētīt Arduino plates un

komponentes.

1.3 Arduino vēsture

Arduino ir atvērtā pirmkoda platforma, kura tiek izmantota elektronikas projektu

izstrādē. Arduino sastāv gan no fiziskas programmējamas shēmu plates ( ko bieži sauc par

mikrokontrolieri) un programmatūras vai IDE, kas darbojas ar datora palīdzību, kurā kodu

raksta un augšupielādē fiziskajā platē. (Sparkfun, 2013)

Arduino kļūst arvien populārāks to cilvēku vidū, kuri ir tikai iesācēji elektronikas

nozarē. Tam ir arī labs iemesls, jo atšķirībā no iepriekšējām platēm Arduino nav vajadzīga

programmēšanas iekārta, kura ielādē jauno kodu platē. Tā vietā tagad var izmantot parastu

USB kabeli. Papildus Arduino IDE izmanto vienkāršotu C++ versiju, kas atvieglo

programmēšanas apgūšanu.(Sparkfun, 2013)

Platformas pirmsākumi ir meklējami Itālijā 2005.gadā, kad Massimo Banzi un Deivids

Cuartielles dibināja Arduino ar mērķi izveidot iekārtas ar zemu pašizmaksu, kuras varētu

mijiedarboties ar ārējo vidi un sensoriem.(Kulkarni, 2017)

Viņiem pievienojās Deivids Mellis, kurš izstrādāja Arduino programmatūru, balstītu

uz Wiring platformas. Neilgi pēc tam pulkam pievienojās arī Džianluka Martino un Toms

Igo. Šie pieci entuziasti arī ir zināmi kā Arduino kompānijas dibinātāji.(Hughes, 2018)

Arduino atšķiras no citām platformām ar :

· tās multiplatformu vidi, kas atļauj darboties izmantojot gan Windows, gan

Macintosh, gan Linux datorus,

· ar viegli izmantojamo izstrādes vidi māksliniekiem un dizaineriem,

· shēmas programmēšanu caur USB kabeli, nevis seriālo portu, kura nav vairumam

jaunākās paaudzes datoru,

· atvērto koda programmatūru un ierīcēm – jebkurš interesents var lejupielādēt shēmas

diagrammu, iepirkt komponentes un izveidot savu plati, nepērkot to no Arduino;

(Banzi, 2011)

Page 13: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

13

1.4 Pieejamās komponentes

1.4.1 Plates

Tā kā jebkuram interesentam ir iespēja uztaisīt savu plati, ir grūti spriest, cik daudz

dažādu plašu veidi ir kopumā, tāpēc šajā apakšnodaļā tiks apskatītas populārākās Arduino

oficiālās plates

· Arduino Uno

Arduino Uno ir vispopulārākais modelis iesācējiem. Šī plate ir savietojama ar

vairāk vairogiem (plašu paplašinājumiem) nekā citu modeļu plates. Uno sastāv no

noņemama ATmega328 mikrokontroliera (8 bitu procesors, 16 MHz takts frekvence, 2KB

SRAM, 32KB zibatmiņa), 14 ciparu ieejas/izejas portiem, 6 analogie ieejas portiem, USB

porta. (Castle, 2013)

Viens no Uno mīnusiem ir tieši ATmega328, kuram nav pieejams liels apjoms

atmiņas – šis faktors ierobežo kādas programmas var uz tā lādēt, piemēram, ja projektam ir

nepieciešams displejs vai ir nepieciešams uzglabāt un lietot attēlus vai audio, ir iespējams

saskarties ar atmiņas nepietiekamību. (Castle, 2013)

1.4.1.1. attēls. Arduino Uno plate.

· Arduino Leonardo

Leonardo praktiski ir uzlabots Arduino Uno. Izskata ziņā tie ir ļoti līdzīgi, taču

atšķirībā no Uno Leonardo ATmega32u4 mikrokontrolieris ir pielodēts platei un tā atmiņa

Page 14: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

14

ir mazliet lielāka nekā Uno. Taču par vislielāko plusu var uzskatīt kontroliera iebūvēto USB

savietojamību. Tā atļauj datoram “redzēt” Leonardo kā datorpeli vai tastatūru. Leonardo ir

arī papildus analogie ievades porti. (Castle, 2013)

Interesantā kārtā Leonardo pat ir lētāks par Uno, taču balstoties uz Arduino forumos

izteiktajiem viedokļiem, Leonardo ir nestabils, ar kļūdām, tādēļ Leonardo ir ieteicams

izvēlēties jau pieredzējušajiem entuziastiem, nevis iesācējiem. (Castle, 2013)

1.4.1.2. attēls. Arduino Leonardo plate.

· Arduino Due

Viena no jaunākajām Arduino platēm ar Atmel SAM3X8E ARM Cortex-M3

mikrokontrolieri (32 bitu procesors, 84MHz takts frekvence, 96KB SRAM, 512KB

zibatmiņa), 54 ciparu ieejas/izejas portiem, 12 analogiem ieejas portiem, 2 analogajiem

izejas portiem, USB portu. (Castle, 2013)

Due ir vairāk paredzēts sarežģītākiem projektiem, kuriem būtu nepieciešams jaudīgs

procesors vai kuriem ir nepieciešams vairāk ieejas/izejas portu. Līdz ar to Due ir salīdzinoši

lielāks un dārgāks nekā Uno vai Leonardo. (Castle, 2013)

Due mīnuss ir tāds, ka tas darbojas izmantojot 3.3 voltu spriegumu atšķirībā no

pārējām Arduino platēm, kas izmanto 5 voltus. Šī sprieguma atšķirība samazina to ierīču

skaitu, kuras būtu saderīgas ar Due. (Castle, 2013)

Page 15: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

15

1.4.1.3. attēls. Arduino Due plate.

· Arduino Micro

Micro sevī iekļauj ATmega32u4 mikrokontrolieri (8 bitu procesors, 16MHz takts

frekvence, 2.5KB SRAM, 32KB zibatmiņa), 20 ciparu ieejas/izejas portus, no kuriem 12 var

izmantot kā analogās ieejas un USB. (Castle, 2013)

Kā jau nosaukums vēsta, Micro lieti noder tajos projektos, kur izmēram ir nozīme.

Kopā ar Arduino Nano un Arduino Mini, Micro neaizņem daudz vietas. Šajā gadījumā

vislabākā izvēle ir tieši Micro, jo būtībā tam ir tāda pati jauda un funkcionalitāte kā Arduino

Leonardo, tikai tas ir mazāks. (Castle, 2013)

Izmēra dēļ Micro nav savietojams ar lielu daļu no paplašināšanas platēm, taču tā

dizains atļauj to ievietot maketēšanas platē vieglākai prototipēšanai. (Castle, 2013)

1.4.1.4. attēls. Arduino Micro plate.

· LilyPad Arduino

LilyPad praktiski ir tāds pats kā Uno – abiem ir viens un tas pats mikrokontrolieris

Page 16: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

16

un tāds pats ieejas/izejas portu skaits. Vienīgā atšķirība ir tāda, ka LilyPad plate ir apļveida,

tās diametrs aptuveni 5 cm. (Castle, 2013)

LilyPad ir paredzēts valkājamu ierīču izveidē. Plates apaļā forma un īpaši veidotie

ieejas/izejas porti atvieglo LilyPad plates iešūšanu audumā. (Castle, 2013)

Pastāv arī citi LilyPad paveidi, kā LilyPad Arduino USB, kuram ir tāds pats

mikrokontrolieris kā Leonardo, LilyPad Arduino Simple, kam ir mazāk ieejas/izejas portu

,un LilyPad Arduino SimpleSnap, kuru var viegli ievietot un izņemt no auduma, lai to varētu

izmazgāt. (Castle, 2013)

1.4.1.5. attēls. LilyPad Arduino plate.

· Arduino Esplora

Esplora ir balstīta uz Leonardo, taču tai papildus ir arī ieejas un izejas ierīces, kas

gan ir pielodētas platei. Uz plates atrodas šādas ieejas ierīces – džoistiks, četras pogas, sliedes

lineārais potenciometrs, mikrofons, gaismas sensors, temperatūras sensors un trīsasu

akselerometrs. Pieejamās izejas ierīces ir signālierīce, RGB LED gaisma un TFT displeja

savienojums, lai pievienotu LCD ekrānu (kas nav iekļauts platē). (Castle, 2013)

Tiesa, šajā platē nav ciparu un analogie ieejas/izejas porti, kas atļautu pievienot platei

papildus ierīces. To trūkums ierobežo kādus projektus var veikt ar plates palīdzību. Esplora

ir vispiemērotākā cilvēkiem, kas vēlās iemācīties kā lietot Arduino programmatūru, lai

izstrādātu programmas, kurām ir piekļuve standarta ieejas/izejas ierīcēm, neuztraucoties par

projekta elektronikas pusi. (Castle 2013)

Page 17: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

17

1.4.1.6. attēls. Arduino Esplora plate.

1.4.2 Paplašināšanas plates (vairogi)

Vairogi ir plates, kuras var pievienot uz Arduino platēm, paplašinot to iespējas.

Dažādie vairogi balstās uz tādu pašu filozofiju kā oriģinālā Arduino produkcija – tos ir viegli

pievienot un lēti ražot. (Arduino, 2018)

Zemāk tiks aplūkoti populārākie vairogi, balstoties uz lifewire.com veiktā apskata,

kur par novērtēšanas faktoriem vēra ņemti tika vairoga spējas, pieejamais atbalsts,

dokumentācija, papildus iespējas un cena.

· Liquidware Touch Shield

Ir vairāki vairogi, kas piedāvā papildināt jau esošo plati ar skārienjūtīgu ekrānu.

Piemēram, Liquidware Touch Shield apvieno 320x240 OLED ekrānu ar pretestības

skārienjūtīgu ekrānu. Viena no lielākajām priekšrocībām ir tāda, ka šis vairogs izmanto tikai

divus ciparu portus (D2 un D3), neskaitot barošanas un zemējuma portus. Lai Arduino varētu

rādīt attēlus, vairogs izmanto papildus procesoru, kas atrodas vairoga apakšā. Ja nebūtu šī

procesora, tad visa Arduino jauda tiktu patērēta, lai tikai darbinātu ekrānu. (Burris, 2018)

Liquidware Touch Shield maksā aptuveni 155 eiro un ir savietojams ar Arduino,

Duemilanove un Mega. Vairogs izmanto SubProcessing grafikas API un ir arī pieejamas

grafikas bibliotēkas. Ja nav nozīmes, cik porti tiks izmantoti, tad lētāka alternatīva būtu

Adafruit vairogs, kas aizņem līdz pat 13 portiem, taču ir aptuveni trīs reizes lētāks par

Liquidware Touch Shield un tam ir arī mikroSD kartes slots. (Burris, 2018)

Page 18: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

18

1.4.2.1. attēls. Pa kreisi - Liquidware Touch Shield. Pa labi – Adafruit.

· Adafruit Color TFT Shield

Šis vairogs nodrošina ar 128x160 pikseļu TFT ekrānu. Platē arī ir iekļauts microSD

kartes slots un džoistiks navigācijai. Vairogs maksā aptuveni 30 eiro, taču to ir nepieciešams

pielodēt paplašināmajai platei. Tas ir savietojams ar 3.3 V un 5 V Arduino modeļiem.

(Burris, 2018)

1.4.2.2. attēls. Adafruit Color TFT vairogs ar džoistiku un slotu microSD kartei.

· Xbee Shield

Šis vairogs nodrošina bezvadu komunikāciju starp Arduino iekārtām. Tas ir

savietojams ar gandrīz visiem Arduino modeļiem un atbalsta Xbee radio moduļus un Xbee

radio modeļus kā Series 1, Series 2, Standard un Pro. Diemžēl lai izmantotu vairogu ir

nepieciešami divi radio moduļu un vairogu komplekti. Vairogs maksā aptuveni 20 eiro,

kamēr moduļi – sākot no 22 eiro katrs. Iespējams būs nepieciešama arī to pielodēšana.

(Burris, 2018)

Page 19: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

19

1.4.2.3. attēls. Sparkfun Xbee vairogs.

· Mobilais vairogs

Sparkfun mobilais vairogs piedāvā Arduino platei dažādas iespējas, kādas parasti ir

tikai mobilajiem tālruņiem, piemēram, SMS, GSM/GPRS un TCP/IP. Lai veiksmīgi

darbotos būs nepieciešama aktīva SIM karte un antena. Vairogs maksā aptuveni 90 eiro, bet

GSM/GPRS antenas modulis maksā aptuveni 50 eiro. Šo vairogu vajadzēs pielodēt. (Burris,

2018)

1.4.2.4. attēls. Sparkfun mobilais vairogs.

· WiShield

Ja ir nepieciešams izmantot WiFi, tad lieti noderēs šis vairogs ar 802.11b

sertifikāciju, 1-2 Mbps caurlaidspēja caur SPI interfeisu. WiShield atbalsta infrastruktūru un

Page 20: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

20

ad hoc tīklus. Atbalstīta ir arī WEP, WPA un WPA2 šifrēšana. WiShield maksā aptuveni 50

eiro un ir savietojams ar Arduino Diecimila un Duemilanove. Alternatīva ir Sparkfun Wi-Fi

vairogs, kas maksā aptuveni 80 eiro un tam papildus ir mikroSD kartes slots un tas ir

savietojams ar gandrīz visiem Arduino modeļiem. (Burris, 2018)

1.4.2.5. attēls. Pa kreisi – WiShield, pa labi – Sparkfun Wi-Fi vairogs.

1.4.3 Sensori

Arduino sensori tāpat kā vairogi spēj paplašināt galvenās plates “redzesloku” un

iegūt papildus informāciju par apkārtējo vidi un mijiedarboties ar to.

Zemāk tiks apskatīti pāris no populārākiem sensoriem priekš iesācējiem, balstoties

uz etechnophiles.com veikto apskatu.

· Skāriena sensors

Atšķirībā no pogām, pieskāriena sensorus aktivizē fizisks kontakts. Tie ir ļoti jutīgi

un var atšķirt dažādus pieskārienu režīmus – pieskaršanos, ilgāku pieskārienu, pirksta

pavilkšanu u.t.t. (Negi, 2018)

1.4.3.1. attēls. ePro Labs skāriena sensors.

· Temperatūras sensors

Šis sensoru veids mēra apkārtējo temperatūru analogas voltāžas formā. (Negi, 2018)

Page 21: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

21

1.4.3.2. attēls. LM35 temperatūras sensors.

· Gaismas sensors

Gaismas sensors maina savu pretestību atkarībā no gaismas intensitātes, kas

krīt uz to. Pretestības vērtība ir proporcionāli apgriezta gaismas intensitātei. (Negi, 2018)

1.4.3.3. attēls. Gaismas sensors.

· Akselerometra sensors

Šie sensori mēra paātrinājumu trijās asīs un tos var izmantot, lai sajustu dažādas

kustības, pagriezienus. (Negi, 2018)

1.4.3.4. attēls. Akselerometra sensors.

Page 22: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

22

1.4.4 Citas komponentes

Šajā apakšnodaļā tiks aplūkotas dažādas komponentes, kas, pēc autores domām,

varētu būt noderīgas vairumam projektu.

· 9V bateriju konektors

Noderēs, ja būs vēlme savu projektu padarīt mobilu. (Negi, 2018)

1.4.4.1. attēls. 9V bateriju konektors.

· Korpuss

Korpuss lieti noderēs gan plates aizsardzībai, noturot to vietā, gan arī tas būs

kompakts un vizuāli pievilcīgs, tajā pat laikā atļaujot piekļuvi visiem plates konektoriem.

Lielākai drošībai ir iespējams korpusu arī saskrūvēt. (Negi, 2018)

1.4.4.2. attēls. Arduino Uno korpuss.

· Eksperimentālā plate

Šīs plates lieliski noder prototipēšanai un pagaidu elektrisko ķēžu izveidē. Kā liels

Page 23: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

23

bonuss ir pieminams tas, ka nav nepieciešams neko pielodēt. (Negi, 2018)

1.4.4.3. attēls. Eksperimentālā plate (breadboard).

· Displejs

Bieži vien ir nepieciešams iegūtos datus vizualizēt uzreiz, tāpēc Arduino piedāvā

dažnedažādus displejus jebkurai situācijai. (Negi, 2018)

1.4.4.4. attēls. LCD 16 X 2 displejs.

· LED apgaismojums

Var tikt izmantots, lai informētu par notiekošajiem procesiem vai arī dekoratīvos

nolūkos. (Negi, 2018)

1.4.4.5. attēls. Dzeltenās LED diodes.

Page 24: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

24

1.5 Arduino plašu programmēšana

Lai piešķirtu reālu funkcionalitāti Arduino platei, protams, vispirms būs

nepieciešams to programmēt. Sabiedrībai ir pieejamas vairākas izstrādes vides, dažas no tām

pēc iespējas vairāk vienkāršotas, ērtas iesācējiem. Šajā nodaļā apskatīsim dažas no

populārākajām vidēm.

· Arduino IDE

Šī ir oficiālā izstrādes vide, ko ir veidojis pats Arduino. Tā ir bezmaksas un

darbojas uz Windows, MacOS un Linux operētājsistēmām. Arduino IDE ir diezgan

minimālistiska vide, taču tā ir gandrīz pietiekama Arduino projektiem. (Maker.io, 2018)

Programmas augšējā izvēlne sastāv no standarta opcijām, kā File (jauna faila izveide,

faila ielāde, saglabāšana u.t.t.), Edit (fonta izvēle, kopēšana, ielīmēšana u.t.t.), Sketch

(kompilēšana un programmēšana), Tools (lietderīgas opcijas testēšanai) un Help (palīdzība).

Vidējā programmas daļa sastāv no vienkārša teksta rediģētāja, kurā var rakstīt programmas

kodu. Apakšējā sadaļa ir domāta kā izvades logs, kurā var redzēt kompilācijas statusu,

atmiņas lietojumu, programmas kļūdas un cita, noderīga informācija. (Maker.io, 2018)

Projektus, ko veido, izmantojot Arduino, sauc par skečiem (Sketch). Skeči parasti

tiek rakstīti C++ programmēšanas valodā, taču vairums no C++ piedāvātajām iespējām šajā

gadījumā nav izmantojamas, jo , programmējot Arduino plates, tiek izmantotas unikālas C++

bibliotēkas. (Maker.io, 2018)

1.5.1. attēls. Arduino IDE.

Page 25: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

25

· Eclipse Arduino IDE

Šis ir Eclipse spraudnis, kas ļauj izstrādāt programmatūru priekš Arduino. Šo

spraudni var lejupielādēt no Eclipse Marketplace. Protams, pirms tam būs nepieciešams

instalēt Eclipse C++ IDE. (Azzola , 2018)

· PlatformIO

PlatformIO ir viena no populārākajām alternatīvām standarta Arduino IDE. Tā

atbalsta ne tikai Arduino plates, bet arī Raspberry, ESP32, ESP8266 un citus. Vides interfeiss

ir patīkams un viegli saprotams. PlatformIO ir atvērtā koda programmatūra un to var

lejupielādēt no GitHub, taču lai darbotos, būs nepieciešams Python. Šim IDE ir divas versijas

– viena bāzēta uz Atom, bet otra veidota kā Visual Studio Code spraudnis.(Azzola, 2018)

1.5.2. attēls. PlatformIO IDE instalēts uz Visual Studio Code.

· Programino Arduino IDE

Šī ir alternatīva Arduino IDE ar pāris papildopcijām. Šis IDE ir savietojams ar

Arduino/Genuino platēm vai savietojamiem mikrokontrolieriem. Programino atbalsta

C/C++ valodu, taču ir arī iespējas rakstīt kodu HTML, Javascript un citās valodās. (Azzola,

2018)

Galvenās Programino iespējas ir sintakses izcelšana, funkciju pārlūks, koda

autopabeigšana, koda sakļaušana un aparatūras skats, kas ir ļoti noderīgs, jo var skatīt plati

un tās parametrus un nav nepieciešams atcerēties, piemēram, porta numuru. (Azzola, 2018)

Page 26: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

26

1.5.3. attēls. Programino Arduino IDE. Vidū -teksta rediģētājs, pa labi – pieslēgtā plate.

1.6 Operētājsistēmas izvēle

Tā kā iegūtos datus no Arduino ir paredzēts saglabāt un vizualizēt, ir nepieciešams

atrast visērtāko veidu kā to paveikt. Vairums cilvēku mūsdienās ir viedtālruņi, tāpēc autore

ir nolēmusi izpētīt divas no populārākajām viedtālruņu operētājsistēmām un to sadarbību ar

Arduino, lai varētu izlemt, kādu un kādām ierīcēm paredzētu aplikāciju būtu nepieciešams

izveidot.

1.7 Viedtālruņu operētājsistēmu apskats

· Android

Balstoties uz mājas lapas gs.statcounter.com sniegtajiem datiem par 2018.gada

novembra mēnesi, Android ir vispopulārākā viedtālruņu operētājsistēma Latvijā, aizņemot

66.33% no kopējā tirgus. (StatCounter, 2018)

Page 27: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

27

1.7.1. attēls. Viedtālruņu operētājsistēmu lietošanas salīdzinājums Latvijā 2018.gada

novembrī.

Par oficiālu Android ēras sākumu varētu uzskatīt 2008.gada 22.oktobri, kad ASV

tika izlaists T-Mobile G1. Kaut arī daļa no pierastās funkcionalitātes, kā skārienjūtīgā

tastatūra, multi skārienjūtīga ekrāna un maksas lietotņu nebija vēl pieejamas, taču tika ielikts

stingrs platformas pamats. (Verge Staff, 2018)

Līdz pat mūsdienām ir tikusi saglabāta Android paziņojumu sistēma, kurai raksturīga

statusa josla, kas atrodas ekrāna augšpusē un kuru ir iespējams pavilkt, lai izlasītu visu

aplikāciju paziņojumus vienuviet. (Verge Staff, 2018)

Šajā laikā ir grūti iztēloties Android bez Play Store, kurā ir iespējams iegādāties un

instalēt dažādas lietotnes, taču pašos Android pirmsākumos lietotājiem nācās iztikt ar

Android Market, kurā bija pieejamas vien pāris lietotņu, kā arī tolaik nebija pietiekami

nostiprināta lietotņu apmaksas sistēma, kura tika nostiprināta vien gadu vēlāk. (Verge Staff,

2018)

2009.gada februārī tika izlaists pirmais Android atjauninājums – versija 1.1. Tā

nebija pārlieku revolucionāra, jo tajā bija izlabotas vien pāris iepriekšējās versijas kļūdu,

taču tā pierādīja, ka Android spēj izlaist atjauninājumus, kurus lietotājam ir ērti instalēt.

(Verge Staff, 2018)

Vēlāk izlaistā Android 1.5. versija bija ne tikai svarīga ilgi gaidīto funkciju dēļ, bet

arī tās nosaukuma dēļ – “Cupcake”, kas aizsāka tradīciju nosaukt Android versijas dažādu

saldumu vārdā. Lielākoties “Cupcake” mērķis bija uzlabot operētājsistēmas interfeisu, dažas

izmaiņas pat bija grūti pamanāmas. Taču “Cupcake” sev līdzi nesa arī daudz iespēju, kuras

piesaistīja lietotāju uzmanību. Viens no galvenajiem jaunumiem bija skārienjūtīgā tastatūra,

tomēr daudzi to uzskatīja par kļūmīgu un lēnu, salīdzinot ar iOS tastatūrām. Tāpēc Google

Page 28: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

28

pieņēma lēmumu atļauj trešās puses programmētājiem izveidot savas tastatūras un integrēt

tās operētājsistēmā, kas tolaik bija drosmīgs un pārdomāts lēmums, palīdzot nošķirt Android

no konkurējošajām platformām. (Verge Staff, 2018)

Papildus tam programmētājiem tagad bija iespēja aplikācijām izveidot savus

logrīkus, kas iepriekš nebija iespējams, jo izstrādātājiem no malas nebija pieejas

programmatūras izstrādes rīkiem. (Verge Staff, 2018)

Būtiskus uzlabojumus piedzīvoja arī kopēšanas un ielīmēšanas funkcija, kas iepriekš

bija limitēta un ļāva kopēt saites vai tekstu no teksta laukumiem. Ar “Cupcake” bija iespēja

kopēt tekstu tieši no pārlūka. (Verge Staff, 2018)

Arī iespēja uzņemt video un to atskaņot šajā versijā bija jaunums, taču tāpat kā

tastatūra, arī šeit bija problēmas ar kameras interfeisu. (Verge Staff, 2018)

1.7.2. attēls. Android “Cupcake” sākuma ekrāna interfeiss.

Pēc “Cupcake” nāca versija 1.6. – “Donut”. Šī versija saturēja ne tikai vizuālos

uzlabojumus, bet arī iespēju strādāt uz dažādu izšķirtspēju ekrāniem, ar dažādām attēla

proporcijām un novietojumiem. Šajā versijā parādījās arī ātrās meklēšanas opcija, kas ļāva

meklēt ne tikai lokālus vienumus, bet arī atgrieza rezultātus no interneta. (Verge Staff, 2018)

Ar šo versiju bija redzami uzlabojumi arī Android Market – lietotājam bija iespējams

redzēt populārākās bezmaksas un maksas lietotnes, kas bija ļoti svarīgi, jo tieši šajā laikā

bija vērojams trešo pušu izveidoto aplikāciju uzplaukums. Arī bija pamanāms uzlabotais

Page 29: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

29

kameras un galerijas interfeiss. (Verge Staff, 2018)

2009.gadā iznāca versija 2.0. jeb “Eclair”. Tā pievērsa sev uzmanību ar iespēju

pievienot vairākus Google kontus vienai ierīcei. Bez tā, arī Google Maps navigācija tika

atzinīgi novērtēta. Pēc izskata tā atgādināja navigāciju, kāda tā bija pieejama automašīnām

un turklāt tā bija bezmaksas, atšķirībā no tās konkurentiem. (Verge Staff, 2018)

2010.gada vidū tika izlaists “Froyo”, kurš atšķīrās ar sākuma ekrāna dizainu.

Papildus Google arī pievienoja paroles/ PIN koda opciju tiem lietotājiem, kas vēlējās ko

drošāku par Android unikālo raksta slēdzeni. (Verge Staff, 2018)

Pusgadu vēlāk parādījās “Gingerbread”. Kaut arī tā izmaiņas atsevišķi nešķita nekas

īpašs, tās kopā spēja uzlabot operētājsistēmas interfeisu, padarot to modernāku un

energotaupīgāku. (Verge Staff, 2018)

Vēlāk iznāca “Honeycomb” , kas gan bija paredzēta planšetēm, ne viedtālruņiem.

Arī tā piedzīvoja vizuālas izmaiņas, kā arī atteicās no fiziskām pogām. (Verge Staff, 2018)

Android 4.0 jeb “Ice Cream Sandwich” turpināja uzlabot interfeisu un tastatūru.

Tagad lietotājam tika atļauts izvēlēties pašam savas saīsnes, kā arī bija iespēja atbloķēt

telefonu izmantojot seju, kura tika noskenēta ar telefona kameras palīdzību. Bija iespējams

iepazīties ar patērēto mobilo datu analīzi(Verge Staff, 2018)

Savukārt “Jelly Bean” piedāvāja dinamiskākus paziņojumus, teksta paredzēšanas

funkciju, Miracast atbalstu, kas ļāva straumēt video no ierīces uz televizora vai citas iekārtas.

“Jelly Bean” arī neaizmirsa par cilvēkiem ar īpašām vajadzībām , piedāvājot ekrāna

pietuvināšanu, vilkšanu, teksta lasīšanu un žestu režīmu. (Verge Staff ,2018)

1.7.3. attēls. Android “Jelly Bean” sākuma ekrāna interfeiss.

Page 30: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

30

2013.gada oktobrī izlaistā 4.4. versija “KitKat” bija pārsteigums nosaukuma ziņā, jo

pirmo reizi Android sadarbojās ar ārējo zīmolu Nestle, kura pārdeva tāda paša nosaukuma

saldumus. Vislielākās pārmaiņas bija vērojamas sākuma ekrāna dizainā. Papildus tam

uzņēmums fokusējās, lai padarītu šo versiju ātrāku un samazinātu resursu patēriņu, kas

atļāva šo versiju uzstādīt arī vecākiem viedtālruņiem. “KitKat” beidzot piedāvāja iebūvētos

emodži un ikonas. (Verge Staff, 2018)

1.7.4. attēls. Android “KitKat” iebūvētās ikonas.

2014.gada novembrī Android izlaida versiju 5.0.- “Lollipop”. Šeit uzsvars tika liks

uz tiem, kuriem patika darboties ar vairākām aplikācijām reizē, ērti atļaujot atgriezties tur,

kur tika palikts iepriekš. Papildus tika vērsta uzmanība uz tā saukto projektu “Volta”, kuras

galvenais mērķis ir optimizēt baterijas darbību un piedāvāt rīkus, kas lietotājam ļauj sekot

līdzi baterijas darbībai un paildzināt tās darbības ilgumu, apturot aplikācijas, kuru darbība

neietekmē viedtālruņa darbību, bet patērē enerģiju. (Verge Staff, 2018)

Līdz ar “Lollipop” Android iekaroja ne tikai viedtālruņus, bet arī citas ierīces,

piemēram, viedos pulksteņus, brilles, televizorus un pat automašīnas, piedāvājot lietotājam

kontrolēt zvanus, īsziņas, navigāciju un mūziku ar balss vai mašīnas palīdzību. (Verge Staff,

2018)

Page 31: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

31

1.7.5. attēls. Android “Lollipop” viedtālrunis savienots ar automobiļa vadību.

2015.gada oktobrī tika izlaists Android “Marshmallow”, kas beidzot samazināja

plaisu starp Android un iOS. Gluži tāpat kā iOS, arī Google beidzot deva iespēju lietotājiem

atļaut vai aizliegt lietotnēm piekļuvi, piemērām, kamerai vai mikrofonam. Pāreja bija lēna,

jo lietotņu izstrādātājiem nācās pievienot šo funkciju saviem produktiem, taču tas bija

nozīmīgs solis tam, lai dotu lietotājam kontroli pār savu ierīci. (Verge Staff, 2018)

2016.gada augustā tika izlaists “Nougat”, kura līdz pat šai dienai ir vislietotākā

Android versija. Šī versija piedāvā parocīgu dalītā ekrāna funkciju, kas atļauj ekrānā attēlot

un darbināt divas lietotnes vienlaicīgi. Ar “Nougat” bija iespējams ātrāk atbildēt ziņām, pat

nenomainot lietotni. Lietotājam bija arī iespēja personalizēt ātros iestatījumus. Papildus bija

veikti uzlabojumi, kas atļāva veiksmīgi izbaudīt 3D grafikas un spēles. “Nougat” arī piedāvā

jaunu veidu kā instalēt jaunu Android versiju, lejupielādējot un instalējot to fonā, citā

partīcijā, liekot lietotājam tikai restartēt telefonu, lai pēc tam uzsāktu darbību jau jaunā

programmatūrā. (Verge Staff, 2018)

1.7.6. attēls. Android “Nougat” dalītais ekrāns ar divām lietotnēm.

2017.gadā iznāca 8.0. versija “Oreo”, kas gluži tāpat kā “KitKat” tika tā nosaukts,

balstoties uz sadarbību ar ārējo zīmolu. “Oreo” piedāvāja izmaiņas paziņojumu sistēmā, kā

arī emocijzīmēs un ikonās. Līdz ar šo versiju Android TV beidzot sāka saņemt vairāk

Page 32: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

32

atjauninājumus. (Verge Staff, 2018)

2018.gadā iznāca pašlaik jaunākā Android versija – 9.0. ar nosaukumu “Pie”. Šajā

versijā trīs pogu navigācijas vietā ir pieejama žestu navigācija. Kopā ar to Google arī

paziņoja, ka vērsīs uzmanību uz lietotņu monitoringu un to ierobežošanu ar saucamo Digital

Wellbeing, taču tā pašlaik ir iestrēgusi testa režīmā un tiks izlaista nākamajos

atjauninājumos. Tā sola sekot līdzi paziņojumiem, patērētajam laikam, kas pavadīts lietotnē

un sekos līdzi lietotājam, cik bieži tas apskata savu ierīci. Papildus tam Google plāno arvien

vairāk ieviest mākslīgo intelektu. (Verge Staff, 2018)

1.7.7. attēls. Android “Pie” Digital Wellbeing.

· iOS

Pēc Android, ar 32.57% tam seko iOS. Kaut arī Android ir izvirzījies vadībā, tomēr

arī Apple iekārtas ir spējušas iekarot lielu daļu Latvijas tirgus.

Viss sākās 2007.gadā, kad iznāca 1.0 versija, kura jau bija ieinstalēta iPhone. Tajā

laikā to sauca par iPhone OS un tikai pēc 4.0 versijas iznākšanas nosaukums mainījās uz

iOS. Tā piedāvāja multipieskāriena interfeisu, iTunes integrāciju un daudz ko citu, taču tā

neatbalstīja trešo pušu lietotnes.(Costello, 2018)

Page 33: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

33

1.7.8. attēls. iOS 1.0 versija.

Gadu vēlāk, kad iOS 1.0 bija pārspējis visas cerības, tika izlaista 2.0 versija, kuras

galvenais jaunums bija App Store uzlabojumi, kur tagad varēja lejupielādēt arī neatkarīgo

izstrādātāju lietotnes. Uzlabojumi bija arī karšu lietotnēs. (Costello, 2018)

3.0 versijā jau bija uzlabota kopēšanas un ielīmēšanas funkcija, kā arī parādījās MMS

atbalsts. Papildus tam, lietotājam bija iespēja ierakstīt video, izmantojot iebūvēto kameras

lietotni. Šī arī bija pirmā versija, kas atbalstīja iPad. (Costello, 2018)

iOS 4.0 nāca ar vairākām funkcijām un iespējām, kā FaceTime, iBooks, iespēju

organizēt lietotnes pa mapēm. Šī arī bija pirmā versija, kas pārtrauca atbalstu vecākām

iekārtām. (Costello, 2018)

2011.gadā iznāk 5.0 versija, kura tāpat kā iepriekšējā pārtrauca atbalstu vecākām

iekārtām. Šī versija arī sekoja līdzi trendiem un piedāvāja vairākas bezvadu opcijas, kā

iCloud, iespēja attālināti aktivizēt savu iPhone un sinhronizēties ar iTunes, izmantojot Wi-

Fi. (Costello, 2018)

2012.gadā iznāca 6.0 versija, kas saskārās ar vairākām problēmām, kaut arī tieši tad

tā iepazīstināja pasauli ar revolucionāro Siri. Galvenais problēmu cēlonis bija konkurence ar

Google, kura piedāvāja jau iepriekš instalētas Maps un Youtube lietotnes. Apple nolēma

izlaist savu Maps lietotni, taču tā tika slikti uzņemta, sakarā ar kļūmēm, sliktu virziena

noteikšanu un citām problēmām. (Costello, 2018)

Page 34: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

34

1.7.9. attēls. iOS 6.0 versija ar asistentu Siri.

Arī iOS 7.0 netika sagaidīts ar sajūsmu, jo izmaiņas dizainā noveda pie slikti

salasāma fonta un animācijām, kas izraisīja lietotājiem sliktas sajūtas. Taču papildus tika

ieviests AirDrop un Touch ID, kas noderēja, lai autentificētos un/vai veiktu maksājumus.

(Costello, 2018)

Ar iOS 8.0 līdzi nāca arī revolucionārais Apple Pay, kas ir bezkontakta maksāšanas

sistēma un ļauj iepirkties vai pārsūtīt naudu. (Costello, 2018)

1.7.10. attēls. Apple Pay bezkontakta maksājuma veikšanai.

iOS 9.0 atšķirībā no priekštečiem vairāk fokusējās uz jau esošo funkciju

nostiprināšanu, nevis jaunu ieviešanu. Bija vērojami uzlabojumu ātrumā un stabilitātē, arī

uz vecākām ierīcēm. Šāds solis ļāva piedāvāt lielāku uzlabojumu izlaišanu nākamajās

versijās. (Costello, 2018)

Pēc tam sekoja iOS 10.0 un 11.0. 11.0 savu fokusu bija izlēmis likt uz iPad, kurus

Apple plānoja izveidot par klēpjdatoru aizvietotājiem. Netika aizmirsts par papildinātās

realitātes ieviešanu un ilgi gaidīto iespēju izdzēst iebūvētās lietotnes. (Costello, 2018)

Jaunākā versija – 12.0 iznāca 2018.gada septembrī.

Page 35: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

35

Arī šeit nav vērojami daudz jaunumu, jo arī šajā versijā lielākais fokuss tika likts uz

stabilizāciju un uzlabošanu. (Costello, 2018)

1.7.11. attēls. iOS 12.0 sākuma ekrāns.

1.8 Izstrādes vižu un programmēšanas valodu apskats

Pašlaik lietotņu izstrādātājiem ir pieejams plašs klāsts vižu un rīku, lai izveidotu

savas lietotnes Android vai iOS operētājsistēmām. Šajā apakšnodaļā tiks aplūkotas

populārākās vides un valodas.

· Android Studio

Vide pirmo reizi tika atklāta 2014.gadā. Tā darbojas uz Windows, MacOS un Linux

platformām. Tā aizvietoja Eclipse Android Developement Tools. (Rouse, 2018)

Android Studio ir oficiālā izstrādes vide Android lietotnēm. Tā ir balstīta uz IntelliJ

IDEA, kas ir Javas integrētā izstrādes vide programmatūrai, un tā ietver tās koda rediģētāju

un izstrādes rīkus. (Rouse ,2018)

Lai nodrošinātu lietotņu izstrādi, Android Studio izmanto pakāpenisko kompilēšanu,

emulatoru, koda veidnes, Github integrāciju. Šī vide izmanto Instant Push, kas nosūta

izmainīto kodu uz jau ejošas lietotnes. Kode rediģētājs asistē izstrādātājam, piedāvājot koda

pabeigšanu, refrakciju un analīzi. Lietotnes ,kas izstrādātas Android Studio tie pārveidotas

APK formātā, lai tās varētu ievietot Google Play Store.

Android Studio piedāvā izstrādes procesā izmantot šādas valodas – Java, C, C++,

Kotlin.Android Studio ir bezmaksas. (Rouse, 2018)

Page 36: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

36

1.8.1. attēls. Android Studio emulators uz MacOS platformas.

· Xamarin (Visual Studio)

Xamarin ir rīks, kas atļauj izmantot aptuveni 90% no uzrakstītā koda uz citām

lielākajām platformām. Tā ir balstīta uz .NET ietvara un to 2016.gadā pārpirka Microsoft.

Xamarin atļauj izstrādātājam izveidot katrai platformai raksturīgu lietotāja interfeisu.

(AltexSoft, 2018)

Xamarin.Forms ir atsevišķs produkts, kas ļauj izstrādātājam simtprocentīgi izmantot

sarakstīto kodu gan iOS, gan Android vidē. Xamarin.Forms izmanto tikai vienu valodu -C#,

atšķirībā no Xamarin.iOS un Xamarin.Android, kur būs nepieciešamas respektīvi

Java/Kotlin un Objective-C/Swift. Papildus ir pieejams Xamarin.Mac, kas ļauj izstrādāt

produktus MacOS. Xamarin atbalsta lietotņu izstrādi arī valkājamiem produktiem, kā Apple

Watch vai Android Wear. (AltexSoft, 2018)

Izstrāde ar Xamarin lielākoties ir iespējama tikai uz Windows ierīcēm, kurām ir

instalēts Xamarin un Visual Studio, taču ir arī Visual Studio MacOS versija. (AltexSoft,

2018)

Tiesa Xamarin spēj pārnest uz visām platformām tikai biznesa loģiku, piekļuvi

datiem un tīkla savienojumu. Gadījumā, ja būs vēlme izstrādāt, piemēram, spēli, Xamarin

izmantošana varētu būt bezjēdzīga, jo tā vai tā katrai platformai būs nepieciešams rakstīt

savu kodu un pārnest varēs vien pāris procentus. (AltexSoft, 2018)

Page 37: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

37

1.8.2. attēls. Xamarin koda pārnešanas shēma uz iOS, Android un Windows platformām.

· Xcode

Xcode IDE ir bezmaksas platforma izstrādātājiem, kuri vēlās veidot produktus

Apple iekārtām. Tā ir integrēta ar Cocoa un Cocoa Touch ietvariem. Xcode ir asistējošs

interfeiss, kas izstrādātājam piedāvā failus, ko tas varētu uzskatīt par noderīgiem

programmēšanas procesā un pie tam netiek traucēta kodēšana vai citas darbības galvenajā

logā. Noderīga funkcija ir arī lietotāja dizaina prototipēšana. Xcode ir iespēja izveidot

prototipu, kas atdarina sistēmu vai vidi, kur lietotnei būtu jāstrādā. Ir arī iespējams salīdzināt

versijas, kurā var redzēt koda atšķirības starp esošo un iepriekšējo lietotnes iterāciju.

(FinancesOnline, 2018)

Xcode atbalsta C, C++, Objective-C, Objective-C++, Java, AppleScript, Python,

Ruby, Rez, un Swift valodas un to var izmantot tikai uz MacOS iekārtām. (FinancesOnline,

2018)

1.9 Android un iOS savienojamība ar Arduino

Tā kā projektā būs nepieciešams savākt datus no Arduino, nosūtīt tos uz reāllaika

datubāzi un tad datus no datubāzes vizualizēt lietotnē, tiks izpētītas iespējas kā to paveikt

abās platformās. Šajā gadījumā kā reāllaika datubāze tiks izmantota Google Firebase, ar ko

autorei jau ir pieredze. Lai nosūtītu datus no Arduino uz Firebase datubāzi, būs nepieciešams

izmantot Firebase Arduino bibliotēku. Uzstādīšanai vajadzēs iegūt datubāzes

Page 38: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

38

autentifikācijas atslēgu un datubāzes API URL. Apakšnodaļā tiks izpētītas un analizētas

nepieciešamās metodes, lai paveiktu iepriekšminēto.

Gan iOS, gan Android var pieslēgties un iegūt datus no Firebase datubāzēm. Lai to

izdarītu uz iOS platformas, izstrādātājam būs nepieciešams:

· Xcode 9.2. versija vai jaunāka;

· Xcode projekts, kura mērķis ir iOS 8 vai jaunāks;

· Swift projektiem jāizmanto Swift 3.0. versija vai jaunāka;

· CocoaPods 1.4.0. vai jaunāka.

Savukārt, ja mērķis ir Android iekārtas, tad būs nepieciešams:

· Iekārta, kas izmanto Android 4.1 vai jaunāku;

· Google Play Services 15.0.0 vai jaunāka;

· Jaunākā Android Studio versija.

1.10 Iespējamās platformas datu nosūtīšanai uz Firebase

Lai lietotājs varētu ērti izvēlēties kādus tieši datus un kad nosūtīt Firebase datubāzei,

ir nepieciešams izveidot grafisko interfeisu sensoru datu attēlošanai un nosūtīšanai,

vienlaikus ģenerējot unikālu laika zīmogu, lai datus pēc tam varētu attēlot attiecīgi pa

mēnešiem, dienām, stundām u.t.t.

Galvenie nosacījumi platformas izvēlei būtu:

· Iespēja ērti un ātri izveidot grafisko interfeisu;

· Var nosūtīt datus uz Firebase;

· Var atvērt un lasīt COM portus;

· Interfeiss darbosies uz Windows datoriem.

Ņemot vērā šos nosacījumus un autores iepriekšējo pieredzi, ir nolemts apskatīt

divas izstrādes platformas – Netbeans un Microsoft Visual Studio.

Abas platformas veiksmīgi darbojas uz Windows datoriem, kā arī tām var pievienot

bibliotēkas, kas nodrošina piekļuvi Firebase datubāzei. Ir iespējama seriālā komunikācija,

kā arī ir pieejami rīki interfeisa izveidei, taču, pēc autores domām, Microsoft Visual Studio

nodrošina vieglāku, ātrāku un estētiskāku grafisko interfeisu.

Page 39: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

39

1.11 Secinājumi un OS/izstrādes vides un platformas izvēle

Arduino savā attīstības gaitā ir spējis ne tikai attīstīties, piedāvājot arvien dažādākas

plates un/vai komponentes, bet arī ir spējis piesaistīt jaunus interesentus – gan elektronikas

entuziastus, gan tādus, kuri ir tikai iesācēji jomā un baidās no iespējamajiem sarežģījumiem.

Arduino risinājumi ir ne tikai viegli lietojami, bet arī finansiāli izdevīgi, ļaujot lietotājam

izveidot prototipus vai gatavus produktus ātri un lēti.

Autore atzinīgi novērtē Arduino piedāvātās iespējas un produktu dažādību, kas ļauj

lietotājam izvēlēties visatbilstošāko produktu, nepārmaksājot par lieku funkcionalitāti.

Veicot izpēti par populārākajiem Arduino produktiem, autore ir nolēmusi savā projektā

izmantot Arduino Uno plati, kura bija viena no lētākajām, bet ar funkcionalitāti bagātākajām

platēm. Papildus tiks izmantoti dažādi sensori, kas ļaus iegūt pēc iespējas vairāk informācijas

par lietotāja veselības rādītājiem.

Lai nodrošinātu datu nosūtīšanu no ierīces uz Firebase datubāzi, pēc iespējas samazinot

Arduino iekārtas apjomus, datu nosūtes grafiskais interfeiss tiks veidots, izmantojot

Microsoft Visual Studio.

Var redzēt, ka gan Android, gan iOS iet soli solī viens ar otru, cenšoties pārspēt viens

otru ar inovatīviem risinājumiem vai tieši otrādi – kopējot funkcionalitātes viens no otra.

Tiek domāts ne tikai par lietotājiem, bet arī izstrādātājiem, kuriem tiek piedāvātas

neskaitāmas izstrādes vides.

Tā kā šajā nodaļā tika noskaidrots, ka tieši Latvijā vispopulārākie ir Android viedtālruņi,

kā arī autorei ir pieredze Android aplikāciju izstrādē un ir ērti pieejami nepieciešamie rīki

un vides, ir nolemts veidot aplikāciju, kas darbotos uz Android operētājsistēmām.

Ņemot vērā autores iepriekšējo pieredzi ar Android Studio un iespējamo nepieciešamību

pēc kompleksākas datu vizualizācijas, tika izlemts, ka izstrādes procesā tiks izmantota tieši

šī platforma.

Page 40: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

2 SISTĒMAS IZSTRĀDE

Šajā nodaļā tiks apskatīti sistēmas izstrādes soļi, lai varētu uzsākt sistēmas izstrādi. Tiks

aprakstīta nepieciešamo programmu instalācija un vispārīgi aprakstīti veicamie darbi

sistēmas izstrādē, neiedziļinoties programmas kodā.

2.1 Programmēšanas vides instalācija un sagatavošana

Lai veiksmīgi uzsāktu darbu pie Arduino programmēšanas, grafiskā interfeisa

izstrādes un Android lietotnes izstrādes, tika instalēta Android Studio, Microsoft Visual

Studio jaunākā versija, kā arī oficiālā Arduino IDE versija. Lai spētu nolasīt datus no pulsa

sensora, papildus tika instalēta PulseSensor Playground bibliotēka, kura piedāvā pamata

kodu dažādu datu ieguvei un aprēķiniem, ar iespēju to modificēt atbilstoši prasībām.

Lai spētu saņemt datus un tos vizualizēt, Android Studio tika pieslēgta Firebase

datubāze, savukārt, lai iegūtu datus no Arduino un nosūtītu tos uz datubāzi, Microsoft Visual

Studio papildus tika instalēta FireSharp bibliotēka.

2.2 Arduino sagatavošana darbam

Lai iegūtu nepieciešamos datus prototipa pirmajā izgatavošanas fāzē bija

nepieciešams:

· USB uz Serial kabelis;

· Arduino Uno;

· Maketēšanas plate (šajā gadījumā nav obligāti);

· Pulsa sensors;

· Temperatūras sensors;

· Savienojuma vadi.

Shēmas izveidošanai autore izmantoja mājaslapas circuito.io piedāvātās iespējas, kur

izvēloties nepieciešamās komponentes jau automātiski tiek saģenerēta shēma.

2.2.1. attēls. Circuito.io ģenerētā shēma pulsa un temperatūras sensora pievienošanai

Arduino Uno.

Page 41: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

41

Balstoties uz shēmu, autore pievienoja pulsa sensoru un temperatūras sensoru

Arduino Uno.

2.2.2. attēls. Autores saslēgtā shēma.

Prototipēšanas pirmajā fāzē iegūtie dati tiek parādīti Arduino IDE konsoles logā un

netiek sūtīti uz datubāzi.

Pulsa iegūšanai un aprēķināšanai tika izmantotas PulseSensor Playground iebūvētās

funkcijas, papildus kodam pievienojot iespēju iegūt temperatūras rādījumus.

Vēlāk, lai lietotājs varētu fiksēt rādījumus un tos nosūtīt uz datubāzi, tika izveidots

grafiskais interfeiss, izmantojot Micrisoft Visual Studio.

2.3 Grafiskā interfeisa programmēšana

Lai Arduino saņemtos datus varētu nosūtīt uz Firebase datubāzi, vienlaikus fiksējot

laika zīmogu, tika veidots grafiskais interfeiss, izmantojot Microsoft Visual Studio.

Sākumā tika izveidots interfeiss, kurš pēc tam pieslēdzas seriālajam portam, kuram

ir pieslēgts Arduino. Tiek saņemti dati un vizualizēti.

Kad lietotājs vēlas savus rādījumus saglabāt datubāzē, tiek nospiesta poga

“Saglabāt” un lietotājam tiek parādīti fiksētie dati un jautāts, vai tieši šos datus sūtīt uz

datubāzi.

Arduino uz lietotni sūta unikālu ierīces identifikācijas kodu, kuru grafiskais interfeiss

pārbauda, pirms veic ierakstu datubāzē.

2.4 Lietotnes programmēšana

Tā kā sākumā sensoru dati no Arduino vēl netiek nosūtīti uz datubāzi, lietotnes

prototipēšanai tika izmantoti lietotāja manuāli ievadītie dati Firebase datubāzē, lai varētu

Page 42: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

42

notestēt lietotnes pieslēgšanos datubāzei un datu saņemšanu.

Testa nolūkos autore nolēma sākt ar galvenā skata uzmetumu, ievietojot teksta lauku

un pogu, kurai pievienotā funkcionalitāte nodrošina, ka lietotājam to nospiežot tiek iegūti

dati no datubāzes.

2.3.1. attēls. Pa kreisi- lietotnes galvenā sadaļa, kur attēloti pulsa dati no datubāzes. Pa

labi – datu hierarhija Firebase

2.5 Testēšana

Sistēma tika testēta un atkļūdota paralēli tās izstrādei, lai pēc iespējas ātrāk atrastu

kļūmes un tās izlabotu. Tā kā sistēmai būtībā var izdalīt divas atsevišķas daļas, tad katrai

daļai nāca izmantot dažādas testēšanas un datu pārbaudes metodes.

Arduino koda pārbaude bija iespējams izmantot Arduino IDE, kurš nepieciešamības

gadījumā parādīja lietotājam saprotamus kļūdu paziņojumus. Taču vislielākās neērtības

sagādāja sensoru datu atkļūdošana, piemēram, pulsa sensora, kuram datu nolasīšanai ir

nepieciešams noteikts pirksta spiediens. Lai pārliecinātos par rādījumu pareizību, bija

nepieciešams pārbaudīt pulsu uz kakla.

Testēšana un datu pārbaude lietotnei bija ļoti ērta izmantojot Android Studio vidi,

Page 43: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

43

kura piedāvāja nepieciešamos rīkus atkļūdošanai, kā arī parādīja atbilstošus kļūdu

paziņojumus, kā arī ieteikumus koda optimizācijā.

Arī Microsoft Visual Studio ļoti palīdzēja atkļūdošanā, rādot kļūdu paziņojumus pat

pirms programmatūras palaišanas, ja tādu bija.

Zemāk ir redzams fragments no testēšanas atskaites, kur tiek pārbaudīts lietotnes

pieslēgums Firebase datubāzei

2.4.1. attēls. Fragments no testēšanas atskaites.

Testēšanas atskaite

Testa

nosaukums/#

Android-1

Testa mērķis Pārbaudīt vai ir izveidots savienojums ar Firebase datubāzi

Testa apraksts Pieslēgt Firebase.Instalēt un palaist lietotni uz tālruņa vai

emulatora

Testa nosacījumi Izveidota datubāze un pogas nospiešana datu attēlošanai lietotnē.

Sagaidāmie rezultāti

Dati no datubāzes tiks parādīti lietotnē.

Rezultāti V1 – Kļūda. Datubāzei nav tikušas uzstādītas lasīšanas un

rakstīšanas piekļuves.

Page 44: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

3 PROGRAMMAS PROJEKTĒJUMA APRAKSTS

Šajā nodaļā tiks aprakstīts programmas projektējuma apraksts par izveidoto veselības

sistēmu, izmantojot Android un Arduino.

3.1 Ievads

Šis projekts ir balstīts uz Android lietotnes izstrādi, kā arī uz sensoru pieslēgšanas un

Arduino Uno programmēšanas. Šajā dokumentā var iepazīties ar sistēmas moduļiem, datu

dekompozīciju, starpmoduļu atkarībām.

3.1.1 Nolūks

Programmas projektējuma apraksts sniedz informāciju par sistēma projektējumu,

par lietotnes veidošanu, Arduino programmēšanu un notiekošajiem procesiem un datiem.

Dokuments paredzēts konkrētās sistēmas izstrādātājiem, kā arī citiem interesentiem.

3.1.2 Darbības sfēra

Sistēma ir paredzēta personām, kuras vēlas uzzināt datus par savu vai kāda cita

cilvēka veselības stāvokli un redzēt datus lietotnē. Lietotnei ir jānodrošina saprotams

interfeiss tās lietotājiem.

3.1.3 Saistība ar citiem dokumentiem

PPA tika sastādīts pamatojoties uz „LVS 72:1996 Ieteicamo praksi programmatūras

projektējuma aprakstīšanai un PPS.

Dokuments kalpos par pamatu programmatūras izstrādē, kā arī vēlāk tas kalpos par

pamatu lietotāja dokumentācijas izstrādē.

3.2 Programmatūras projektējuma apraksta izgatavošanas apsvērumi

Šajā sadaļā tiks aprakstīts programmatūras dzīves cikls un šī dokumenta nolūks.

3.2.1 Programmatūras dzīves cikls

Programmatūras dzīves cikls sākās 2018.gada 16. oktobrī, iesniedzot bakalaura

tēmu. Praktiskā darba izstrāde sākās 2019.gada 6.februārī un pabeigta 2019.gada 20.maijā,

Page 45: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

45

iesniedzot bakalauru fakultātē.

3.2.2 Programmatūras projektējuma apraksta nolūks

Sistēmas sniegtās priekšrocības ļaus tās lietotājam noteikt savus vai kādas citas

personas veselības pamatrādītājus, kur iegūtie dati tiks saglabāti reāllaika datubāzē un

vizualizēti lietotnē. Dati lieti palīdzēt tās lietotājam iegūt informāciju par savu veselības

stāvokli un iespējamajām problēmām, ļaujot laikus veikt profilaktiskus pasākumus.

3.3 Dekompozīcijas apraksts

Šajā nodaļā tiks aprakstīta esošo modeļu dekompozīcija, kā arī redzamas moduļu

diagrammas un moduļu skati.

3.3.1 Moduļu dekompozīcija

Projekts tika sadalīts šādos moduļos:

· Datu ieguves un nosūtīšanas modulis;

· Galvenās sadaļas modulis;

· Dizaina modulis;

· Reģistrācijas modulis;

· Autorizācijas modulis.

3.3.1.1. attēls. Programmatūras moduļu diagramma

Attēlā ir redzams shematiskais moduļu savienojums. Ir redzams, ka dizaina modulis

ir saistīts ar galvenās sadaļas, reģistrācijas un autorizācijas moduli, visiem moduļiem

piešķirot vienotu dizainu.

3.3.1.1 Datu ieguves un nosūtīšanas moduļa apraksts

Šis modulis būtībā attēlo to sistēmas daļu, kas ir veidota ar Arduino Uno, Microsoft

Page 46: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

46

Visual Studio un sensoru palīdzību. Šis modulis atbild par datu saņemšanu no sensoriem un

to nosūtīšanu uz Firebase datubāzi.

3.3.1.1.1. attēls. Datu ieguves un nosūtīšanas moduļa blokshēma.

3.3.1.2 Galvenās sadaļas moduļa apraksts

Šī sadaļa satur informāciju par lietotāja pulsa un temperatūras datiem, kurus varēs

iegūt no datubāzes, nospiežot pogu “Iegūt datus”.

3.3.1.2.1. attēls. Galvenās sadaļas skats.

Page 47: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

47

3.3.1.3 Dizaina moduļa apraksts

Šis modulis ir izstrādāts izmantojot XML un tā galvenais uzdevums ir veidot

lietotnes skatu dizainu.

3.3.1.4 Reģistrācijas moduļa apraksts

Šis modulis ir paredzēts, lai lietotājs var reģistrēt savu profilu, piesaistot to savai

Arduino monitoringa ierīcei.

3.3.1.4.1. attēls. Reģistrācijas moduļa blokshēma.

Page 48: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

48

3.3.1.5 Autorizācijas moduļa apraksts

Šis modulis ir paredzēts jau reģistrētiem lietotājiem, lai tie varētu autorizēties un

redzēt savus datus.

3.3.1.5.1. attēls. Autorizācijas moduļa skats.

3.4 Atkarību apraksts

Šajā nodaļā aprakstītas esošo moduļu atkarības no citiem moduļiem.

3.4.1 Starp moduļu atkarība

Sistēmā ir sastopami moduļi, kas ir savstarpēji neatkarīgi, kā arī ir tādi, kuri ir

atkarīgi no kāda cita moduļa.

3.4.1.1 Datu ieguves un nosūtīšanas moduļa atkarība

Šis modulis ir neatkarīgs no citiem moduļiem, jo tam datu iegūšanai un nosūtīšanai

nav nepieciešams neviens cits modulis.

3.4.1.2 Galvenās sadaļas moduļa atkarība

Modulis ir atkarīgs no autorizācijas moduļa, jo nav iespējams iegūt datus, lietotājam

neielogojoties sistēmā.

Page 49: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

49

Šis modulis ir atkarīgs arī no dizaina moduļa, jo, lai šim modulim iestatītu

dizainu, kā arī, lai varētu pievienot funkcionalitāte, ir nepieciešams saņemt informāciju no

dizaina moduļa.

3.4.1.3 Dizaina moduļa atkarība

Dizaina modulis ir neatkarīgs modulis un var darboties patstāvīgi.

3.4.1.4 Reģistrācijas moduļa atkarība

Modulis ir neatkarīgs un var darboties patstāvīgi.

3.4.1.5 Autorizācijas moduļa atkarība

Modulis ir atkarīgs no dizaina moduļa un reģistrācijas moduļa, jo nav iespējams

autorizēties, kamēr nav reģistrēts profils.

3.5 Detalizētais projektējums

3.5.1 Datu detalizētais projektējums

Detalizētais datu projektējums satur informāciju par ievadītajiem un izvadītajiem

datiem.

3.5.1.1 Pirmās datu entītijas detalizējums

Dati par ievadīto informāciju sakārtoti zemāk redzamajā tabulā.

3.5.1.1.tabula. Ievadītie dati

Lauks Tips Apraksts

PulseSensor int Lietotājs pieskaras pulsa sensoram

Temperature double Lietotājs pieskaras temperatūras sensoram

Device_id string Ierīces unikālais identifikators

3.5.1.2 Otrās datu entītijas detalizējums

Dati par izvadīto informāciju sakārtoti zemāk redzamajā tabulā.

Page 50: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

50

3.5.1.2.tabula. Izvadītie dati

Lauks Tips Apraksts

PulseSensor string Tiek parādīts pulss minūtē.

Temperature string Tiek parādīta temperatūra.

Send_firebase

button Nospiežot pogu “Saglabāt”, tiek fiksēta temperatūra un pulss. Lietotājam tiek vaicāts, vai tiešām nosūtīt šos datus

OK button Nospiežot,tiek ģenerēts laika zīmogs un dati tiek sūtīti uz Firebase

Page 51: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

4 DARBA EKONOMISKAIS PAMATOJUMS

4.1.tabula. Nepieciešamie resursi un izmaksas

Resurss Vienību

skaits

Izmaksas Skaidrojumi

Tehniskais nodrošinājums:

Personālais

dators

1 Nav Iegādāts pirms projekta veidošanas.

Interneta

pieslēgums

1 200 EUR Pieejams ViA studentu kopmītnēs un

skolā; tiek izmantots arī interneta

pakalpojums pamata dzīvesvietā – kopā 25

EUR mēnesī 8 mēnešus.

Arduino Uno

Starta

komplekts

1 20 EUR Komplektā ietilpst Arduino Uno, dažādi

sensori, kabeļi u.t.t.

ESP8266 Wifi

modulis

1 2 EUR Modulis nepieciešams interneta

savienojumam un datu nosūtīšanai uz

datubāzi.

Sirds pulsa

sensors

1 2 EUR Nepieciešams pulsa datu nolasīšanai no

pirksta vai ausu ļipiņas.

Programmatūra:

Android Studio 1 Nav Pieejama bezmaksas lejupielāde

https://developer.android.com/studio

Arduino IDE 1 Nav Pieejama bezmaksas lejupielāde

https://www.arduino.cc/en/main/softwar

e

Microsoft

Visual Studio

1 Nav Pieejama bezmaksas lejupielāde

https://visualstudio.microsoft.com/dow

nloads/

Kopējās izmaksas sastāda interneta pieslēguma īre ap 200 eiro par visu darba

periodu.

Kopējais projekta koda izveides laiks, koda optimizācija un testēšana aizņēma ap 4

Page 52: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

52

mēnešiem. Lielu darba daļu aizņēma Arduino iespēju izpēte un problēmu risināšana, kā ar

atkārtoti apgūta Android Studio platforma, Microsoft Visual Studio un Firebase integrācija.

Sistēmas lietotāji būs tie, kuriem būs nepieciešamība pēc ķermeņa temperatūras un

pulsa noteikšanas, kā arī būs vēlme datus saglabāt, lai vēlāk apskatītu tos lietotnē. Produkta

cena nevarētu būt pārāk augsta, jo ir citas alternatīvas kā sporta pulksteņi, kuri arī spēj veikt

šīs funkcijas un to cenu amplitūda mēdz būt ļoti liela – piedāvājumā ir ļoti lēti modeļi, kā arī

dārgāki, kas vairāk paredzēti profesionāļiem un entuziastiem.

Page 53: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

5 SECINĀJUMI

· Sekošana līdzi saviem veselības rādītājiem ir svarīga jebkura vecuma cilvēkam, taču

Latvijā vismazāk ārstus apmeklē tieši jaunieši vecumā no 16 līdz 24 gadiem.

· Daudziem trūkst informācijas par savu veselības stāvokli, jo dažādu iemeslu dēļ tiem

nav iespējams apmeklēt speciālistu. Populārākie iemesli – nav naudas, garas rindas,

ārsts atrodas pārāk tālu un nav iespējams nokļūt pie speciālista.

· Vislielākā mirstība Latvijā ir tieši no sirds un asinsvadu slimībām.

· Latvijā vispopulārākā viedtālruņu operētājsistēma ir Android, tāpēc datu

vizualizācijas lietotne tika izstrādāta tieši Android iekārtām, taču nākotnē noteikti

būtu vēlams izstrādāt lietotni arī otrai populārākajai operētājsistēmai – iOS.

· Izvirzītais darba mērķis ir sasniegts, jo ir izstrādāts sistēmas prototips, kas ļauj iegūt

pulsa un temperatūras mērījumus, kā arī nosūtīt tos uz Firebase datubāzi, līdz ar to

sniedzot iespēju attēlot mērījumus Android lietotnē.

· No izvirzītajiem uzdevumiem tika sasniegti sekojošie - teorētiskā modeļa izstrāde,

sistēmas izstrāde, izmantojot Arduino, Microsoft Visual Studio un Android Studio,

sistēmas testēšana.

· Studiju laikā iegūtās zināšanas Android lietotņu izstrādē, Firebase integrācijā un .Net

programmatūru izstrādē un tīmekļa vietnēs atrodamās dokumentācijas palīdzēji

veiksmīgi izstrādāt sistēmu.

· Konkrēti Android lietotnes izstrādē ļoti noderēja pēc iespējas jaudīgāks dators, kas

ļāva ātri darboties projektā, kompilēt kodu un darbināt emulatoru.

· Lai sistēmu izstrādātu, papildus bija nepieciešams iegādāties sensorus un Arduino

Uno. Sistēmas izstrādes izmaksas tika samazinātas, iegādājoties komponentes pa

tiešo no ražotāja, nevis izmantojot starpniekus, kuru produktu cenas bija vismaz

divas reizes lielākas.

· Ņemot vērā elektronisko komponenšu izmantošanu, bija jāievēro drošības pasākumi,

lai nesabojātu komponentes vai tām pieslēgto datoru.

· Sistēma sastāv no divām daļām – datu ieguves un datu vizualizācijas. Abu daļu

veiksmīgai izpildei ir nepieciešama datubāze, datu uzglabāšanai.

· Iegūstot rādījumus, autore sastapās ar neprecīzu vai apgrūtinošu datu ieguvi. Par

pamatu tam iespējams kalpoja nekvalitatīvi sensori vai nevienmērīgs spriegums.

Bakalaura uzdevums nebija izpētīt šos faktorus, tāpēc, balstoties uz tīmeklī iegūto

Page 54: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

54

informāciju, autore var tikai pieļaut, ka šie faktori ietekmēja rādījumu precizitāti.

· Rādījumu precizitāti var ietekmēt arī ierīces nepareiza izmantošana vai pārāk ilga

izmantošana, kad sensori uzkarst un rāda nepareizus datus.

· Sistēma ir tikai prototips, tad uzlabojumi ir ļoti vēlami. Noteikti būtu jāpadomā par

datu ērtāku iegūšanu, pēc iespējas samazinot ierīces apjomus, kā arī varētu veikt

papildus darbu pie lietotnes dizaina, kā arī piedāvāt papildus funkcionalitātes.

· Salīdzinot ar vairumtirdzniecībā pieejamiem fitnesa pulksteņiem, kas nodrošina

līdzīgu mērījumu veikšanu, autores izstrādātā sistēma ļauj izvēlēties, kādus datus

saglabāt, samazinot nevajadzīgu vai nepareizu datu nosūti.

· Sistēma atšķirībā jau no esošajiem risinājumiem nav paredzēta nepārtrauktai datu

nosūtīšanai ir datubāzi; viens no tās mērķiem ir datu ieguve lietotājam atrodoties

miera stāvoklī, nesportojot vai nestaigājot, lai iegūtu bāzes rādījumus.

· Izstrādes procesam traucēja gan laika trūkums, gan problēmas ar sensoriem, kuriem

tika pasūtīti aizvietotāji, kas nozīmēja, ka autore bija atkarīga no piegādātājiem un

nevarēja pilnvērtīgi turpināt darbu pie sistēmas.

· Sistēmas izstrādi arī palēnināja tas, ka autore nebija pietiekamu zināšanu Arduino

programmēšanā, taču tās tika apgūtas teorētisko materiālu izpētes laikā un izstrādājot

pašu sistēmu.

· Nākotnē, papildus pulsa ieguvei, būtu noderīgi arī iegūt arī sirds

elektrokardiogrammu, lai ļautu labāk analizēt sirds ritmu un jau laikus atklāt

problēmas tās darbībā.

· Kopumā sistēmas izstrāde un teorētisko materiālu izpēte autorei šķita interesanta un

noderīga. Tika iegūtais ne tikai papildus zināšanas programmēšanā, bet arī pulsa un

ķermeņa temperatūras analīzē, ņemot vērā dažādus ietekmējošos faktorus.

Page 55: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

6 LITERATŪRA

1. Altexsoft.2018.The Good and The Bad of Xamarin Mobile

Developement.https://www.altexsoft.com/blog/mobile/pros-and-cons-of-xamarin-

vs-native/ Resurss apskatīts 2019.gada 2.janvārī.

2. Arduino. 2018. Shields. https://www.arduino.cc/en/Main/arduinoShields Resurss

apskatīts 2018.gada 15.novembrī.

3. Azzola Francesco. 2018.10 Arduino IDE Alternatives to Start Programming.

https://dzone.com/articles/10-arduino-ide-alternatives-to-start-programming

Resurss apskatīts 2018.gada 22.novembrī.

4. Banzi Massimo.2011. Getting Started with Arduino. O'Reilly Media, Inc. ,p.118.

5. BITE.2017. Fiziskās aktivitātes un gadžeti: kā neapjukt piedāvājumā un izvēlēties piemērotāko? https://www.bite.lv/lv/fiziskas-aktivitates-un-gadzeti-ka-neapjukt-

piedavajuma-un-izveleties-piemerotako Resurss apskatīts 2018.gada 29.decembrī.

6. Burris Matthew. 2018. Five Best Arduino Shields. https://www.lifewire.com/five-

best-arduino-shields-818967 Resurss apskatīts 2018.gada 15.novembrī.

7. Castle Alex. 2013. Know Your Arduino: A Practical Guide To The Most Common

Boards https://www.tested.com/tech/robots/456466-know-your-arduino-guide-

most-common-boards/ Resurss apskatīts 2018.gada 14.novembrī.

8. Centrālā statistikas pārvalde.2017. Iedzīvotāju konsultēšanas biežums pie ģimenes (vispārējās prakses) ārsta, medicīnas vai ķirurģijas speciālista, zobārsta, ortodonta vai higiēnista 2017. gadā (%).https://data1.csb.gov.lv/pxweb/lv/sociala/sociala__veseliba__veseliba_modul

is/MOD17_05.px Resurss apskatīts 2018.gada 29.decembrī.

9. Centrālā statistikas pārvalde.2018. Pārbaužu veikšana vai ārstēšanās pie medicīnas speciālista (izņemot zobārstu) un apstākļi, kas traucējuši veikt pārbaudes vai ārstēšanos 16 gadus veciem un vecākiem iedzīvotājiem (%)https://data1.csb.gov.lv/pxweb/lv/sociala/sociala__veseliba__vesel_pasnovert

/VPG071.px Resurss apskatīts 2018.gada 29.decembrī.

10. Centrālā statistikas pārvalde.2019. CSP turpina aptaujāt par sirds un asinsvadu slimību riska faktoriem https://www.csb.gov.lv/lv/2624-csp-turpina-aptaujat-par-

sirds-un-asinsvadu-slimibu-riska-faktoriem Resurss apskatīts 2018.gada 29.decembrī.

11. FinancesOnline.2018.Xcode IDE Review.

https://reviews.financesonline.com/p/xcode-ide/ Resurss apskatīts 2019.gada 3.janvārī.

12. Hughes J.M. 2018. Arduino: A Technical Reference

Page 56: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

56

https://www.oreilly.com/library/view/arduino-a-

technical/9781491934319/ch01.html Resurss apskatīts 2018.gada 13.novembrī.

13. Kulkarni Udayakumar G.2017. Arduino: A Beginner’s guide. Udayakumar G. Kulkarni.,p.90.

14. Make.2015.Raspberry Pi or Arduino Uno? One simple rule to choose the right

board.https://makezine.com/2015/12/04/admittedly-simplistic-guide-raspberry-pi-

vs-arduino/ Resurss apskatīts 2019.gada 25.martā.

15. Maker.io .2018.Introduction to the Arduino IDE

https://www.digikey.com/en/maker/blogs/2018/introduction-to-the-arduino-ide

Resurss apskatīts 2018.gada 22.novembrī.

16. Margaret Rouse.2018.Android Studio.

https://searchmobilecomputing.techtarget.com/definition/Android-Studion Resurss

apskatīts 2019.gada 2.janvārī.

17. Negi Ankit. 2018.Top 10 Arduino Sensors With Projects For Beginners.

https://etechnophiles.com/top-10-arduino-sensors-projects-beginners/ Resurss

apskatīts 2018.gada 21.novembrī.

18. Sam Costello.2018.The History of iOS, from Version 1.0 to 11.0.

https://www.lifewire.com/ios-versions-4147730 Resurss apskatīts 2018.gada 30.decembrī.

19. Slimību profilakses un kontroles centrs.2018.Sirds un asinsvadu veselības formula. https://www.spkc.gov.lv/upload/Infografikas/08.2018./sirds_veselibas_veicinasan

as_bukletsweb.pdf Resurss apskatīts 2018.gada 29.decembrī.

20. Sparkfun.2013.https://learn.sparkfun.com/tutorials/what-is-an-arduino/all Resurss

apskatīts 2018.gada 12.novembrī.

21. Statcounter.2018.Mobile Operating System Market Share in Latvia.

http://gs.statcounter.com/os-market-share/mobile/latvia Resurss apskatīts 2018.gada 29.decembrī.

22. Verge Staff.2018.Android:A 10-year Visual

History.https://www.theverge.com/2011/12/7/2585779/android-10th-anniversary-

google-history-pie-oreo-nougat-cupcake Resurss apskatīts 2018.gada 29.decembrī.

Page 57: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

57

PIELIKUMI

Page 58: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

I PIELIKUMS.PROGRAMMAS PIRMKODA

FRAGMENTI.

Page 59: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

59

package com.example.user.bakalaurs;

import android.content.Intent;

import android.support.annotation.NonNull;

import android.support.v7.app.AlertDialog;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import com.google.firebase.database.DataSnapshot;

import com.google.firebase.database.DatabaseError;

import com.google.firebase.database.DatabaseReference;

import com.google.firebase.database.FirebaseDatabase;

import com.google.firebase.database.ValueEventListener;

public class Login extends AppCompatActivity {

EditText usr;

EditText pass;

Button signin;

Button signup;

String app_user;

String app_pass;

@Override

Page 60: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

60

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

usr=(EditText) findViewById(R.id.username);

pass=(EditText)findViewById(R.id.password);

signin=(Button)findViewById(R.id.sign_in);

signup=(Button)findViewById(R.id.sign_up);

signup.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

startActivity(new Intent(Login.this, Signup.class));

}

});

signin.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

app_user=usr.getText().toString();

final DatabaseReference DBRef =

FirebaseDatabase.getInstance().getReference();

final DatabaseReference users = DBRef.child("users");

users.addListenerForSingleValueEvent(new ValueEventListener() {

@Override

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

//saliidzina lietotaju

if (dataSnapshot.child(app_user).exists()) {

// run some code

DatabaseReference the_user = users.child(app_user);

the_user.addListenerForSingleValueEvent(new

ValueEventListener() {

Page 61: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

61

@Override

public void onDataChange(@NonNull DataSnapshot

dataSnapshot) {

app_pass=dataSnapshot.child("password").getValue().toString();

//saliidzina paroles

if(app_pass.equals(pass.getText().toString())){

Log.d("myTag", app_pass);

//ja viss kartiba un profils eksiste, tad atver galveno skatu

startActivity(new Intent(Login.this, DAta.class));

}

else{

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(Login.this);

alertDialogBuilder.setTitle("Kļūme");

alertDialogBuilder.setMessage("Nepareiza parole!");

alertDialogBuilder.setCancelable(true);

AlertDialog alert = alertDialogBuilder.create();

alert.show();

}

}

@Override

public void onCancelled(@NonNull DatabaseError

databaseError) {

}

});

Log.d("myTag", "ir");

Page 62: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

62

}

else{

Log.d("myTag", "nav");

Log.d("myTag", app_user);

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(Login.this);

alertDialogBuilder.setTitle("Kļūme");

alertDialogBuilder.setMessage("Šāds lietotājs neeksistē!");

alertDialogBuilder.setCancelable(true);

AlertDialog alert = alertDialogBuilder.create();

alert.show();

}

}

@Override

public void onCancelled(@NonNull DatabaseError databaseError) {

}

});

}

});

}

}

package com.example.user.bakalaurs;

import android.app.DatePickerDialog;

import android.support.annotation.NonNull;

Page 63: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

63

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.Button;

import android.widget.DatePicker;

import android.widget.EditText;

import android.widget.Spinner;

import android.widget.TextView;

import com.google.firebase.database.DataSnapshot;

import com.google.firebase.database.DatabaseError;

import com.google.firebase.database.DatabaseReference;

import com.google.firebase.database.FirebaseDatabase;

import com.google.firebase.database.ValueEventListener;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Date;

public class Signup extends AppCompatActivity {

Spinner tipi;

TextView new_user;

Page 64: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

64

TextView new_pass;

TextView deviceid;

Button was_born;

Button create_profile;

String uname;

String pass;

String device;

int pass_lenght;

int device_lenght;

long min_min_date;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_signup);

SimpleDateFormat simpleDate = new SimpleDateFormat("dd/MM/yyyy");

String min_date="01/01/1910";

Date mDate = null;

try {

mDate = simpleDate.parse(min_date);

min_min_date=mDate.getTime();

} catch (ParseException e) {

e.printStackTrace();

}

Date currentTime = Calendar.getInstance().getTime();

String datums = simpleDate.format(currentTime);

create_profile=(Button)findViewById(R.id.create_profile);

was_born=(Button)findViewById(R.id.dz_data);

new_user=(TextView)findViewById(R.id.username);

Page 65: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

65

new_pass=(TextView)findViewById(R.id.password);

deviceid=(TextView)findViewById(R.id.device_id);

was_born.setText(datums);

was_born.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

DatePickerDialog datePickerDialog = new DatePickerDialog(Signup.this,

new DatePickerDialog.OnDateSetListener() {

@Override

public void onDateSet(DatePicker datePicker, int year, int month,

int day) {

year = year;

month = month;

day = day;

was_born.setText((new StringBuilder().append(day)

.append("/").append(month+1).append("/").append(year)

.append(" ")));

}

}, 0, 0, 0);

datePickerDialog.getDatePicker().setMinDate(min_min_date);

datePickerDialog.getDatePicker().setMaxDate(System.currentTimeMillis() - 1000);

datePickerDialog.show();

}

});

tipi=(Spinner)findViewById(R.id.blood_type);

ArrayList<String> list=new ArrayList<>();

list.add("0+");

list.add("0-");

Page 66: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

66

list.add("A+");

list.add("A-");

list.add("B+");

list.add("B-");

list.add("AB+");

list.add("AB-");

ArrayAdapter<String> adapter=new

ArrayAdapter<String>(this,android.R.layout.simple_spinner_dropdown_item,list);

tipi.setAdapter(adapter);

create_profile.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

uname=new_user.getText().toString();

pass=new_pass.getText().toString();

pass_lenght=pass.length();

device=deviceid.getText().toString();

device_lenght=device.length();

final String chosen_type = tipi.getSelectedItem().toString();

final DatabaseReference DBRef =

FirebaseDatabase.getInstance().getReference();

final DatabaseReference users = DBRef.child("users");

users.addListenerForSingleValueEvent(new ValueEventListener() {

@Override

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

if (dataSnapshot.child(uname).exists()){

Log.d("myTag", "aiznemts");

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(Signup.this);

alertDialogBuilder.setTitle("Kļūme");

alertDialogBuilder.setMessage("Šāds lietotājvārds jau eksistē!");

Page 67: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

67

alertDialogBuilder.setCancelable(true);

AlertDialog alert = alertDialogBuilder.create();

alert.show();

}

else{

Log.d("myTag", "brivs");

if (pass_lenght<6){

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(Signup.this);

alertDialogBuilder.setTitle("Kļūme");

alertDialogBuilder.setMessage("Parole ir par īsu!");

alertDialogBuilder.setCancelable(true);

AlertDialog alert = alertDialogBuilder.create();

alert.show();

}

else{

if(device_lenght==8){

//viss kartiba

String dzimsana=was_born.getText().toString();

final DatabaseReference DBRef =

FirebaseDatabase.getInstance().getReference();

final DatabaseReference users = DBRef.child("users");

users.child(uname).child("password").setValue(pass);

users.child(uname).child("device_id").setValue(device);

users.child(uname).child("birth").setValue(dzimsana);

users.child(uname).child("blood_type").setValue(chosen_type);

}

else{

AlertDialog.Builder alertDialogBuilder = new

AlertDialog.Builder(Signup.this);

alertDialogBuilder.setTitle("Kļūme");

Page 68: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

68

alertDialogBuilder.setMessage("Pārbaudiet ierīces ID!");

alertDialogBuilder.setCancelable(true);

AlertDialog alert = alertDialogBuilder.create();

alert.show();

}

}

}

}

@Override

public void onCancelled(@NonNull DatabaseError databaseError) {

}

});

}

});

}

}

Page 69: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

69

II PIELIKUMS. APLIECINĀJUMS PAR AUTORA

MANTISKO TIESĪBU NODOŠANU

Page 70: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

APSTIPRINĀTS

ar Vidzemes Augstskolas rektora

2017.gada 17.maija rīkojumu Nr.7-r

APLIECINĀJUMS

par autora mantisko tiesību nodošanu

Bakalaura darbs (turpmāk – Darbs)

“MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA”,

izstrādāts Vidzemes Augstskolas Inženierzinātņu fakultātē

Pamatojoties uz Autortiesību likuma 15.pantā noteiktajām mantiskajām tiesībām,

kuras darba autors var nodot trešajām personām, piekrītu, ka mans Darbs tiek padarīts sabiedrībai pieejams bez maksas pilnā apjomā:

Nepiekrītu, ka manu Darbu padara sabiedrībai pieejamu

Lūdzam norādīt pamatotu iemeslu:

_________________________________________________________________________

_________________________________________________________________________

______

Darba autors: _______________________, Laura Ozoliņa, 20.05.2019. paraksts vārds, uzvārds datums

Page 71: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

71

III PIELIKUMS. APLIECINĀJUMS PAR DARBA

ATBILSTĪBU

Page 72: MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA

72

APLIECINĀJUMS

par darba atbilstību

Ar savu parakstu apliecinu, ka darbs izstrādāts patstāvīgi un tajā ir atsauces uz visām

izmantotajām citu autoru atziņām un datiem. Darbs izstrādāts saskaņā ar ViA ētikas

pamatprincipiem, Studējošo akadēmiskās ētikas nolikumu un fakultātes metodiskajiem

norādījumiem. Apzinos, ka plaģiāta konstatēšanas gadījumā darbs tiks noraidīts.

Iesniedzot darbu, uzņemos atbildību par jebkuras konfidenciālas informācijas, kas iegūta

darba izstrādes gaitā, neizplatīšanu.

Bakalaura darbs

„MĀJAS VIEDĀ VESELĪBAS APRŪPES SISTĒMA”

izstrādāts Vidzemes Augstskolas Inženierzinātņu fakultātē.

Darba autors: Laura Ozoliņa / / autora vārds un uzvārds paraksts datums

Darbs iesniegts fakultātē / /

fakultātes vecākā speciālista vārds un uzvārds paraksts datums

Rekomendēju

darbu aizstāvēšanai / / (aizpildīt, ja fakultātē noteikts) darba vadītāja zinātniskais grāds, vārds un uzvārds paraksts datums

Darbs aizstāvēts 2019.gada ___. ___________ ar vērtējumu ( )

vērtējums cipariem vērtējums vārdiem

Valsts pārbaudījumu komisijas priekšsēdētājs (bakalaura un maģistra darbam)

/ /

vai studiju programmas

direktors (gada projektam)

valsts pārbaudījumu komisijas priekšsēdētāja vai

studiju programmas direktora vārds, uzvārds

paraksts datums