mĀjas viedĀ veselĪbas aprŪpes sistĒma
TRANSCRIPT
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
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ā.
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.
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 в Валмиере, Видземском
университете прикладных наук.
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.
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.
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
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
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,
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ē.
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ā
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)
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
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)
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
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)
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)
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)
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
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)
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.
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
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.
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.
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)
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)
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
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
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.
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)
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
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)
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)
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ī.
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)
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)
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
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.
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.
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.
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
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,
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.
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ā,
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
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.
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.
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ā.
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ā.
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
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
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.
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
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.
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
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ī.
57
PIELIKUMI
I PIELIKUMS.PROGRAMMAS PIRMKODA
FRAGMENTI.
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
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() {
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");
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;
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;
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);
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-");
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ē!");
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");
68
alertDialogBuilder.setMessage("Pārbaudiet ierīces ID!");
alertDialogBuilder.setCancelable(true);
AlertDialog alert = alertDialogBuilder.create();
alert.show();
}
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
}
}
69
II PIELIKUMS. APLIECINĀJUMS PAR AUTORA
MANTISKO TIESĪBU NODOŠANU
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
71
III PIELIKUMS. APLIECINĀJUMS PAR DARBA
ATBILSTĪBU
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