110
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Nejc Arzenšek BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA Magistrsko delo Maribor, maj 2016

BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Nejc Arzenšek

BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA

Magistrsko delo

Maribor, maj 2016

Page 2: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

I

BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA

Magistrsko delo

Študent: Nejc Arzenšek

Študijski program: Študijski program 2. stopnje

Elektrotehnika

Smer: Elektronika

Mentor: doc. dr. Boštjan Vlaovič

Lektorica: Damjana Hundrić

Page 3: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

II

Page 4: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

III

ZAHVALA

Zahvaljujem se mentorju za pomoč

in vodenje pri opravljanju

magistrskega dela. Posebej sem

hvaležen svojim staršem, ki so mi

omogočili študij.

Page 5: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

IV

Brezžični nadzor in upravljanje strojnice bazena

Ključne besede: mikrokrmilnik, senzorji, komunikacija, mobilni telefon, bazen UDK: 621.395.721.5(043.2) Povzetek

V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki

uporabniku omogoča, da z aplikacijo na mobilnem telefonu preko brezžičnega vmesnika

krmili strojnico bazena ter sledi podatkom o temperaturi vode, njeni vrednosti pH in redoks

potenciala.

V magistrskem delu smo opisali razvoj aplikacije za mobilni telefon z operacijskim sistemom

Android ter razvoj strojne in programske opreme krmilnika za upravljanje strojnice. Bistveni

elementi vezja so mikrokrmilnik, modul BlueTooth in dodatna vezja za krmiljenje strojnice ter

zajem podatkov o temperaturi vode, njeni vrednosti pH in vrednosti redoks potenciala.

Page 6: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

V

Wireless monitoring and control of pool engine room

Key words: microcontroller, sensors, communication, cell phone, pool

UDK: 621.395.721.5(043.2) Abstract

This master's thesis presents the prototype hardware and software that allows the user to

wirelessly controll pool's engine room and track data on water temperature, pH value and

redox potential with the app on mobile phone.

In this thesis, we describe the development of application for mobile phones with the Android

operating system and the development of hardware and software for controller that controls

pool's engine room. The essential elements of the circuit are the microcontroller, Bluetooth

module and additional circuits for controlling the pool's engine room and for capturing data

of the temperature of the water, pH value and the redox potential.

Page 7: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

VI

Kazalo

1. UVOD ................................................................................................................................. 1

2. STROJNICA BAZENA ...................................................................................................... 3

2.1. Ventil ........................................................................................................................... 4

2.2. Opis črpalke ................................................................................................................. 6

2.3. Opis sonde pH ............................................................................................................. 8

2.4. Opis sonde redoks ..................................................................................................... 12

3. RAZVOJNA PLATFORMA ............................................................................................ 14

3.1. Android ...................................................................................................................... 14

3.2. Razvojno okolje Eclipse ............................................................................................ 17

4. BREZŽIČNA POVEZAVA .............................................................................................. 21

4.1. Bluetooth modul ........................................................................................................ 22

5. MIKROKRMILNIK ......................................................................................................... 31

5.1. Analogno-digitalna pretvorba .................................................................................... 34

5.2. USART ...................................................................................................................... 36

6. PROTOTIP KRMILNE ENOTE ...................................................................................... 45

6.1. Krmiljenje črpalke in 6-potnega ventila .................................................................... 46

6.2. Merjenje pH ............................................................................................................... 57

6.3. Merjenje potenciala redoks ........................................................................................ 67

6.4. Merjenje temperature ................................................................................................. 74

7. REZULTATI ..................................................................................................................... 86

7.1. Meritev vrednosti pH ................................................................................................. 86

7.2. Meritev potenciala redoks ......................................................................................... 87

7.3. Meritev temperature .................................................................................................. 88

8. SKLEP .............................................................................................................................. 91

9. VIRI .................................................................................................................................. 93

Page 8: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

VII

Kazalo slik

Slika 2.1: Primer strojnice bazena .............................................................................................. 3

Slika 2.2: Ročni 6-potni ventil ................................................................................................... 4

Slika 2.3: Elektronski 6-potni ventil .......................................................................................... 5

Slika 2.4: Štiri tipke za krmiljenje 6-potnega ventila ................................................................. 6

Slika 2.5: Črpalka ....................................................................................................................... 7

Slika 2.6: Stikalo in časovnik ..................................................................................................... 7

Slika 2.7: Podatki črpalke ........................................................................................................... 8

Slika 2.8: Temperaturne odvisnosti el. potenciala ................................................................... 10

Slika 3.1: Izdelava grafičnega vmesnika v okolju eclipse........................................................ 19

Slika 3.2: Deklaracija spremenljivk ......................................................................................... 19

Slika 3.3: Povezave preko ID-jev ............................................................................................. 20

Slika 4.1: podatkovno-povezovalne plasti WiFi povezave ...................................................... 21

Slika 4.2: Bluetooth modul RN-42 ........................................................................................... 22

Slika 4.3: Priključki modula BT ............................................................................................... 23

Slika 4.4: Modul BT in upora R6 in R8 .................................................................................. 24

Slika 4.5: Shema povezave modula BT na PC preko integriranega vezja MAX232 ............... 24

Slika 4.6: Integrirano vezje MAX232 in priključitev kondenzatorjev ..................................... 25

Slika 4.7: Razpored priključkov vrat RS232 ............................................................................ 26

Slika 4.8: Shema vezave modula BT na vrata RS232 preko integriranega vezja MAX232 .... 26

Slika 4.9: Povezava BT med osebnim računalnikom z modulom BT in mobilno napravo ..... 29

Slika 4.10: Nastavitve programa Putty ..................................................................................... 30

Slika 4.11: Nastavitve programa Hyper Terminal.................................................................... 30

Slika 5.1: Atmega8 v ohišju PDIP ........................................................................................... 32

Slika 5.2: Register ADMUX (ADC multiplexer selection register) ........................................ 34

Slika 5.3: Registra ADCL in ADCH sta podatkovna registra

analogno digitalne pretvorbe (ADC data register) .................................................. 35

Slika 5.4: Blokovni diagram generatorja urinega takta prenosne hitrosti ................................ 38

Slika 5.5: Register za hitrost prenosa ....................................................................................... 39

Slika 5.6: Blok shema priključitve mikrokrmilnika na osebni računalnik ............................... 40

Page 9: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

VIII

Slika 5.7: Blok diagram LCD zaslona DEM 16216 SYH ........................................................ 40

Slika 5.8: Nastavitev frekvence in naložitev .hex tatoteke za mikrokrmilnik

v simulatorju ISIS proteus ....................................................................................... 42

Slika 5.9: Nastavitve Virtual terminal-a ................................................................................... 43

Slika 5.10: Simulacija s simulatorjem ISIS Proteus ................................................................. 44

Slika 5.11: Povezava BT med mobilnim telefonom in BT modulom

priključenim na mikrokrmilnik. ............................................................................. 44

Slika 6.1: Blok shema krmilne enote (prototipa) ..................................................................... 45

Slika 6.2: Shema vezja z relejem ............................................................................................. 46

Slika 6.3: Vezje z releji ............................................................................................................ 47

Slika 6.4: Tripolno stikalo za krmiljenje črpalke ..................................................................... 48

Slika 6.5: Vezava dveh relejev za krmiljenje črpalke .............................................................. 48

Slika 6.6: Simulacija tipk in tripolnega stikala z uporabo V-m v ISIS proteus ....................... 49

Slika 6.7: Koda mikrokrmilnika za krmiljenje tipke »praznjenje« na 6-potnem ventilu ......... 50

Slika 6.8: Koda mikrokrmilnika za krmiljenje tipk »pranje filtra« in

»filtriranje« na 6-potnem ventilu ............................................................................. 51

Slika 6.9: Koda mobilne naprave za krmiljenje tipk 6-potnega ventila ................................... 52

Slika 6.10: Koda mobilne naprave za prikaz statusa 6-potnega ventila ................................... 53

Slika 6.11: Koda mikrokrmilnika za krmiljenje črpalke .......................................................... 55

Slika 6.12: Koda mobilne naprave za krmiljenje črpalke ........................................................ 56

Slika 6.13: Koda mobilne naprave za prikaz statusa črpalke ................................................... 57

Slika 6.14: Shema ojačevalnika za ojačenje napetosti s sonde pH .......................................... 58

Slika 6.15: Grafična predstavitev skaliranja ............................................................................ 61

Slika 6.16: Števec »izmen« ...................................................................................................... 63

Slika 6.17: Diagram poteka števca, ki določi, katera veličina se bo poslala

v trenutnem ciklu ................................................................................................... 64

Slika 6.18: Koda mikrokrmilnika za zajem preko ADC, pretvorbo in

ustrezno pošiljanje vrednosti pH .......................................................................... 65

Slika 6.19: Koda mobilne naprave za preverjanje, če je poslani niz niz pH

in odstranjevanje začetnega in končnega znaka .................................................... 65

Slika 6.20: Koda mobilne naprave za izpis vrednosti pH ........................................................ 66

Slika 6.21: Shema ojačevalnika potenciala redoks ................................................................. 68

Slika 6.22: Shema ojačevalnika potenciala redoks z nastavljenimi trimerji

za ojačenje in za napetost na negativni vhod ......................................................... 69

Page 10: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

IX

Slika 6.23: Grafični prikaz meritev potrebnih za skaliranje redoks potenciala........................ 71

Slika 6.24: Koda mikrokrmilnika za analogno-digitalno pretvorbo,

skaliranje in pošiljanje vrednosti potenciala redoks .............................................. 72

Slika 6.25: Koda mobilne naprave za preverjanje, če je poslani niz

niz potenciala redoks in odstranjevanje začetnega in končnega znaka ................. 73

Slika 6.26: Koda mobilne naprave za izpis vrednosti potenciala redoks ................................. 74

Slika 6.27: Konfiguracijski register ......................................................................................... 75

Slika 6.28: Beležka ................................................................................................................... 76

Slika 6.29: Logična 1 in logična 0 pri standardnem protokolu enožičnega vodila ................. 77

Slika 6.30: Temperaturni register senzorja DS18B20 .............................................................. 79

Slika 6.31: Povezava temperaturnega senzorja DS18B20 na mikrokrmilnik .......................... 80

Slika 6.32: Primer vrednosti, ki jih mikrokrmilnik pošlje preko usart-a ................................. 81

Slika 6.33: Koda mikrokrmilnika za zajem in pošiljanje temperature ..................................... 82

Slika 6.34: Primer novega niza za temperaturo, ki se pošlje preko usart-a .............................. 83

Slika 6.35: Razpored priključkov senzorja DS18B20 v TO-92 ohišju .................................... 83

Slika 6.36: Koda mobilne naprave za zaznavo poslanega niza za

temperaturo in izpis temperature ........................................................................... 84

Slika 6.37: Aplikacija STROJNICA naložena na mobilni telefon ........................................... 85

Slika 6.38: Temperaturi dodali enoto °C .................................................................................. 85

Slika 7.1: Senzor vstavljen v cevko ......................................................................................... 89

Slika 7.2: Cevka s senzorjem zalita s splastiko ........................................................................ 89

Slika 7.3: Cevka s senzorjem povita z izolirnim trakom in izolirana s termo skrčljivo cevko 90

Page 11: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

X

Kazalo tabel

Tabela 2.1: Redukcija/oksidacija. ............................................................................................ 12

Tabela 3.1: Verzije platforme Android in njihova imena ter API nivoji ................................. 16

Tabela 4.1: Oznake priključkov B ............................................................................................ 24

Tabela 5.1: Izbira in nastavitve eksterne ali interne ure za Atmega8....................................... 33

Tabela 5.2: Tabela frekvenc v odvisnosti CKSEL nastavitev za notranji RC oscilator ........... 33

Tabela 5.3: Izbira referenčne napetosti za A-D pretvorbo ....................................................... 35

Tabela 6.1: Niz za pH, poslan z mikrokrmilnika ..................................................................... 67

Tabela 6.2: Resolucija temperature in čas pretvorbe ............................................................... 75

Tabela 6.3: Temperaturni niz, ki ga dobimo z uporabo funkcije therm_read_temperature ..... 81

Tabela 7.1: Rezultati meritev pH vrednosti.............................................................................. 87

Tabela 7.2: Rezultati meritev redoks potenciala ...................................................................... 88

Tabela 7.3: Rezultati meritev temperature ............................................................................... 90

Page 12: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

XI

Uporabljeni simboli

I – tok

P – električna moč

W – električna energija

R – električna upornost

Vdd – enosmerna napajalna napetost

V – volt

Hz – (ang.Hertz) herc,

Ω – ohm

A – amper

˚C – stopinja celzija

Page 13: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

XII

Uporabljene kratice

BT – BlueTooth, modri zob

LCD – Liquid Crystal Display, zaslon s tekočimi kristali

PC – Personal Computer, osebni računalnik

ASCII – American Standard Code for Information Interchange, ameriški standardni nabor za

izmenjavo informacij

CMOS – Complementary Metal-Oxide-Semiconductor, komplementarni metal-oksidni

polprevodnik

ROM – Read-Only Memory, bralni pomnilnik

RAM – Random Access Memory, pomnilnik z naključnim dostopom

SRAM – Static Random Access Memory, statični RAM

ADMUX – Analog-to-Digital converter Multiplexer, multiplekser analogno digitalnega

pretvornika

ISP – In-System Programmable, programirljiv vgrajen sistem

GND – Ground, zemlja

LED – Light Emitting Diode, svetleča dioda

USART – Universal Synchronous Asynchronous Receiver Transmitter, Univerzalni sinhroni

asinhroni sprejemnik oddajnik

SPI – Serial Periphal Interface, je standard za sinhrono serijsko podatkovno povezavo

PDIP – Plastic Dual Inline Package, plastično dvolinijsko ohišje

LSB – Least Signicant Bit, najmanj uteženi bit

MSB – Most Significant Bit, najbolj uteženi bit

ADC – Analog to Digital Converter, analogno digitalni pretvornik

Page 14: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

XIII

SDK – Software Development Kit, programski razvojni paket

API – Application Programming Interface, vmesnik za programiranje aplikacij

XML – Extensible Markup Language, razširljivi označevalni jezik

UART – Universal Asynchronous Receiver/Transmiter, univerzalni asinhroni sprejemnik

oddajnik

USB – Universal Serial Bus, univerzalno serijsko vodilo

Page 15: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

1

1. UVOD

Vsi bazeni morajo biti opremljeni z osnovno opremo, ki jo po funkcijah delimo na:

površinsko zajemanje vode (skimer ali prelivni rob),

mehansko filtrirno napravo za odstranjevanje grobih delcev,

distribucijski sistem za povrat filtrirane vode v bazen (cevni razvod in šobe),

talni izpust za praznjenje bazena.

Filtrirno napravo predstavlja peščeni filter, ki iz vode odstranjuje fine nečistoče, kot so prah,

lasje, koža itd. Deluje tako, da vodo potiska skozi filtrirni medij, ki delce zadrži.

Vsak filter je opremljen s 6-potnim ventilom, ki deluje kot nekakšna kretnica za bazensko

vodo in določa, ali se voda filtrira ali se bazen prazni ali se filter izpira itd.

Bazenska črpalka predstavlja srce bazena, saj le-ta skrbi, da se voda po sistemu premika.

Črpalka je sestavljena iz grobega predfiltra, vstopnega in izstopnega priključka za cevi ter

turbine, ki jo poganja električni enofazni motor.

Strojnica bazena je prostor, kjer je fiksno postavljena bazenska oprema (filtri, črpalke …).

Strojnice so lahko locirane v hiši, kleti, garaži, vrtni lopi ali pa v izvedbi zidane strojnice ob

bazenu. Pri zidanih bazenih se strojni del prizida kar v nadaljevanju bazena [10].

Poleg mehanskega čiščenja bazenske vode s pomočjo filtrirnega sistema je potrebno v

bazenski vodi vzdrževati tudi ustrezno kemično ravnovesje. Slednje se izvaja z regulacijo

kislosti in bazičnosti vode (vrednost pH). Pravilna vrednost pH nam zagotavlja, da je voda

kopalcem prijazna, hkrati pa preprečimo razvoj mikroorganizmov in alg. V bazenski vodi

moramo vzdrževati rahlo bazično vrednost vode v območju pH 7,3 do 7,5. To dosežemo z

dodajanjem regulatorja pH-minus (zniževanje vrednosti pH – višanje kislosti) ali pH-plus

(zviševanje vrednosti pH – višanje bazičnosti). Ker ima voda v Sloveniji visoko koncentracijo

kalcijevih ionov (trda voda), ima posledično visoko vrednost pH, zato jo moramo v večini

primerov zniževati.

Page 16: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

2

Če ima bazenska voda previsoko vrednost pH, moramo uporabljati več dezinfekcijskih

sredstev. Poleg tega se na stene bazena in v filtru izloča vodni kamen. V primeru, da ima

bazenska voda prenizko vrednost pH, postane kemično agresivna. Posledici sta draženje

sluznice kopalcev in korozija kovinskih delov v bazenu.

V bazensko vodo z uravnoteženo in pravilno vrednostjo pH dodajamo sredstvo za

dezinfekcijo vode, ki preprečuje razvoj mikroorganizmov in alg. Najbolj razširjen dodatek je

klor v različnih oblikah. Zelo učinkovit je že v nizkih koncentracijah. Je edino sredstvo, ki se

lahko uporablja za dezinfekcijo v javnih kopališčih. Njegovo koncentracijo merimo posredno

prek vrednosti redoks potenciala bazenske vode ali direktno z meritvijo prostega klora v

bazenski vodi.

Večina bazenskih strojnic je vkopanih v zemljo, zato je dostop otežen, prostor v njih pa je

praviloma zelo omejen. To je še posebej moteče, ko uporabnik izpira pesek v filtru ali sesa

dno bazena, saj mora večkrat (po lestvi) v strojnico, da vklopi/izklopi črpalko in spremeni

položaj 6-potnega ventila. Če uporabnika zanima vrednost pH ali vrednost redoks potenciala,

mora prav tako v strojnico.

Cilj magistrske naloge je izdelati prototip strojne in programske opreme, ki bo preko

brezžičnega vmesnika omogočala krmiljenje strojnice bazena na daljavo, obenem pa iz

strojnice dobivala podatke o temperaturi vode, njeni vrednosti pH in vrednosti redoks

potenciala. Zaradi razširjenosti pametnih telefonov smo se odločili, da brezžični nadzor in

upravljanje omogočimo s temi napravami.

Magistrsko delo je razdeljeno na osem poglavij. V uvodnem poglavju bralca seznanimo s

temo magistrskega dela. V drugem poglavju predstavimo strojnico bazena in podrobneje

opišemo naprave v njej, ki smo jih krmilili oziroma z njimi pridobivali podatke. V tretjem

poglavju smo opisali operacijski sistem Android in razvojno okloje Eclipse. V četrtem

poglavju smo opisali brezžično povezavo BT in natančneje opisali BT modul, ki smo ga

uporabili. V petem poglavju smo opisali mikrokrmilnik, ki smo ga uporabili in natančenje

opisali nekatere njegove funkcionalnosti, ki smo jih uporabili. V šestem poglavju smo opisali

strojno in programsko opremo prototipa krmilne enote ter programsko opremo mobilnega

telefona. V sedmem poglavju smo predstavili rezultate. Zadnje poglavje je sklep, v njem

povzamemo opravljeno delo, ga ovrednotimo in opišemo možnosti izboljšave oz. nadgradnje

v prihodnosti.

Page 17: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

3

2. STROJNICA BAZENA

Slika 2.1 prikazuje strojnico vkopano v zemljo. Uporabnik mora vanjo po lestvi, če želi

vklopiti ali izklopiti črpalko, spremeniti pozicijo 6-potnega ventila, odčitati vrednost pH ali

redoks potenciala.

Slika 2.1: Primer strojnice bazena

Strojnica ima dve napravi, ki ju bomo krmilili: črpalko za vodo in 6-potni ventil, ki usmerja

pretok vode v želeno smer (npr. skozi filter nazaj v bazen, v odtok …).

V strojnici sta tudi dve sondi, s katerih bomo zajemali vrednosti. To sta sonda pH in sonda za

meritev redoks potenciala.

Page 18: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

4

2.1. Ventil

Najprej bomo opisali ročni 6-potni ventil, čeprav je v našem primeru 6-potni ventil

elektronski.

Pri ročnemu 6-potnemu ventilu (slika 2.2) mora uporabnik sam preklapljati med vsemi šestimi

pozicijami:

zaprto,

filtriranje (normalno, črpalka črpa vodo iz bazena skozi filter nazaj v bazen),

kroženje (brez filtriranja, mimo filtra nazaj v bazen),

pranje (pere filtrirni pesek, voda teče v odtok),

»rinse (izpiranje ventila) in

»waste« (praznjenje) mimo filtra v odtok.

Slika 2.2: Ročni 6-potni ventil

Elektronski 6-potni ventil (slika 2.3) opravlja isto funkcijo kot ročni, le da ga ni potrebno

preklapljati ročno, saj to opravlja motorček, ki je elektronsko krmiljen.

Page 19: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

5

Slika 2.3: Elektronski 6-potni ventil

Pri elektronskem 6-potnem ventilu ima uporabnik na razpolago le nekaj tipk, po navadi manj

kot 6, saj ko pritisnemo določeno tipko, npr. pranje filtra, elektronika krmili motorček, ki

krmili 6-potni ventil, tako da preklopi med določenimi položaji (izvede določeno zaporedje).

Med temi samodejnimi preklopi motorček tudi sam začasno izklopi črpalko. Tako uporabnik

ne izbira vseh 6 poti, saj so določene smiselne le v okviru izbranega zaporedja.

Uporabljen elektronski 6-potni ventil ima naslednje štiri tipke (slika 2.4):

izklop – izklopi vso elektroniko 6-potnega ventila,

filtriranje – voda gre skozi filter nazaj v bazen,

tipka za vklop praznjenja bazena – voda gre mimo filtra v odtok,

pranje filtra – s to tipko sprožimo celotni ciklus pranja filtra:

najprej se izvede pranje peska, nato pa še kratko izpiranje celotnega ventila. Med

vsakim preklopom pozicije ventila se samodejno izklopi in nato ponovno vklopi

črpalka za obtok bazenske vode. Ko je ciklus končan, se 6-potni ventil avtomatsko

vrne v normalno delovanje (filtriranje).

Page 20: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

6

Slika 2.4: Štiri tipke za krmiljenje 6-potnega ventila

Praviloma tipka za izklop ni v uporabi, saj je naprava vedno v načinu pripravljenosti. V tem

načinu je poraba zelo mala, zato smo predvideli krmiljenje le treh tipk.

Za krmiljenje potrebujemo tri I/O izhode iz mikrokrmilnika in tri releje, katere mikrokrmilnik

upravlja z uporabo časovnika, tako da, za pritisk tipke, vklopi rele za 1 sekundo in ga nato

izklopi. Podrobnejši opis izvedbe je v poglavju 6.1.

2.2. Opis črpalke

Črpalka črpa vodo iz bazena v smer, izbrano s 6-potnim ventilom. Pri normalnem delovanju

črpalka potiska vodo skozi filter nazaj v bazen. Črpalka z grobim predfiltrom, vstopnim in

izstopnim priključkom za cevi in turbino, ki jo poganja električni enofazni motor, je prikazana

na sliki 2.5.

Page 21: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

7

Slika 2.5: Črpalka

Črpalka je krmiljena s stikalom s tremi pozicijami:

časovnik: črpalka deluje na časovnik, ki vklaplja in izklaplja črpalko glede na čas,

izklopljeno: izklopljena črpalka,

vklop: vklop črpalke.

Na sliki 2.6 sta prikazana stikalo hager SF119 in časovnik. Slednji deluje, ko je stikalo v

zgornji poziciji.

Slika 2.6: Stikalo in časovnik

Page 22: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

8

Z nalepke na črpalki (slika 2.7) je razvidno, da je črpalka priklopljena na omrežno napetost

230 V in ima moč 0,37 kW.

Slika 2.7: Podatki črpalke

Črpalko želimo krmiliti brezžično, zato bosta vlogo tripolnega stikala v nadaljevanju prevzela

releja. Releja morata imeti izhodne kontakte, primerne izračunanemu toku in napetosti.

Ker so podatki za izhodne kontakte relejev po navadi maksimalna napetost in tok, izračunamo

tok po enačbi (2.2).

𝑃 = 𝑈 • 𝐼 2.1

Iz tega izpeljemo:

𝐼 =𝑃

𝑈 =

370

230= 1,6 𝐴 2.2

Za krmiljenje črpalke potrebujemo dva I/O izhoda iz mikrokrmilnika.

2.3. Opis sonde pH

Oznaka pH (pressure of hydrogen) predstavlja vsebnost aktivnih vodikovih ionov v raztopini,

ki je definirana z enačbo (2.3) .

Page 23: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

9

𝑝𝐻 = −𝑙𝑜𝑔 ([𝐻+])

2.3

Lestvica pH ima razpon od 0 do 14. pH-meter je dovolj občutljiv voltmeter, ki meri

potencialno razliko med referenčno in merilno elektrodo. Potencial merilne elektrode opišemo

z Nernstovo enačbo (2.4).

𝐸 = 𝐸0 − 𝑘 • 𝑇 • 𝑝𝐻 2.4

Pri čemer so: E = električni potencial med elektrodama, 𝐸0 = potencial referenčne elektrode,

T = temperatura v K, k = naklonski faktor, izračunan iz večih konstant (Faradayeva konstanta,

plinska konstanta) in pH = vrednost pH.

Iz enačbe (2.4) lahko razberemo, da je potencial, ki nam ga daje merilna elektroda, linearno

odvisen od vrednosti pH. Razvidno je da, imamo opravka z linearno funkcijo, katere naklon

nam določa naklonski faktor (kT).

Iz enačbe (2.4) lahko izračunamo električni potencial. Pri temperaturi 25 °C je, če je vrednost

pH enaka 7, električni potencial med elektrodama 0 V. Če se pH poveča za eno vrednost pH,

se električni potencial med elektrodama zmanjša za 59,16 mV. Če pa se pH zmanjša za eno

vrednost pH, se električni potencial med elektrodama poveča za 59,16 mV.

Primer: ko je vrednost pH 9, je električni potencial med elektrodama -118,32 mV.

Kot je razvidno z enačbe 2.4 in slike 2.8, je električni potencial med elektrodama tudi

temperaturno odvisen. Vendar je temperaturna odvisnost pri meritvi pH bazenske vode dokaj

zanemarljiva, saj temperatura vode nikoli ni pod 0 °C ali nad 50 °C, prav tako pa se vrednosti

pH bazenske vode gibljejo v okolici pH = 7 ± 1,5 pH.

Page 24: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

10

Slika 2.8: Temperaturne odvisnosti el. potenciala

S slike 2.8 je razvidno, da je temperaturna odvisnost električnega potenciala med elektrodama

v območju okoli pH = 7 mala, če upoštevamo, da temperature bazenske vode nikoli ne bodo

manjše od 0 °C ali večje od 40 °C. V času kopalne sezone, ko bo natančnost meritev pH

najpomembnejša, bo temperatura med 20 °C in 30 °C.

Najpomembnejši podatek sonde pH je naklon.

Prvi način podajanja naklona sond pH je sledeč: npr.: 59,16 mV na pH enoto, s toleranco ±3

mV, pri 25 °C. To pomeni, če se pH zmanjša za eno enoto pH, se bo napetost povečala za

59,16 mV, z možnim odstopanjem ±3 mV in obratno.

Drugi način podajanja naklona sond pH pa je naklon, podan v odstotkih.

Primer: naklon je od 95 % do 102 %. Odstotne vrednosti dobijo proizvajalci na sledeči način:

najprej izmerijo določeno vrednost napetosti pri določeni vrednosti pH, nato izmerijo še eno

vrednost napetosti pri drugi vrednosti pH (imajo različne spojine s točno določeno vrednostjo

pH). Nato izračunajo razliko med prvo in drugo napetostjo ter razliko pH pri prvi in drugi

meritvi. Razliko napetosti delijo z razliko vrednosti pH. V tej fazi imajo naklon podan v mV

na pH, tako kot v prejšnjem primeru. Nato to vrednost še delijo s teoretičnim (idealnim)

4 1 14 13 12 11 10 9 8 7 6 5 3 0 2

25 °C

50 °C

pozitivna napetost

negativna napetost

-448,8 mV

-414,0 mV

414,0 mV

448,8 mV 50 °C

25 °C

Page 25: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

11

naklonom, ta je 59,16 mV/pH, in množijo s 100, tako dobijo odstotno vrednost, pri kateri bi

100 % pomenilo idealno elektrodo, ki bi imela naklon 59,16 mV/pH.

Primer izračuna:

Elektroda pH, ki generira -15 mV, ko je potopljena v raztopino s pH = 7,01, in generira +160

mV, ko je potopljena v raztopino s pH= 4,01.

160 mV - (-15 mV) = 175 mV

175 mV / 3 = 58.33 mV/pH tako dobijo naklon v mV/pH enoto.

58.33/59.16 x 100 = 98.6% tako dobijo naklon v procentih

Po navadi je naklon elektrod med 90 in 105 %. Večina elektrod ima vrednosti manjše od 100

%.

Sonda EPHM

Obravnavana sonda EPHM ima 4,5 m kabla, ki se zaključi s konektorjem BNC. Maksimalni

pritisk je 7 barov, maksimalna temperatura pa 70° C. Proizvajalec podatka o naklonu ne poda.

Vsaka elektroda se posebej umeri, kar zagotavlja najbolj točne rezultate meritev. Umerjanje

se izvede tako, da postavimo elektrodo v raztopine različnih vrednosti pH, ki imajo dovolj

točno, stabilno in znano vrednost pH, in izmerimo električni potencial med elektrodama. Ko

imamo dve vrednosti pH in dve vrednosti električnega potenciala, izračunamo naklon.

Elektrode nismo umerjali, saj nismo imeli dostopa do raztopin za umerjanje, smo pa od

lastnika sond dobili podatke z zadnjega umerjanja.

Podatki uporabljene elektrode:

naklon: 59 mV/pH

offset: + 005 mV

Naklon nam poda linearno odvisnost napetosti med elektrodama od vrednosti pH. Offset nam

poda zamik, saj ni pri vsaki sondi napetost 0 mV točno pri 7,00 pH.

Za zajem vrednosti pH iz sonde bomo potrebovali ojačevalnik, ki ojači signal iz sonde, nato

pa bomo ta ojačeni signal povezali na analogno-digitalni pretvornik mikrokrmilnika, program

Page 26: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

12

v mikrokrmilniku pa bo poskrbel za ustrezno skaliranje in pošiljanje vrednosti na mobilni

telefon.

2.4. Opis sonde redoks

Beseda redoks izhaja iz besed redukcija in oksidacija. Reakcija redoks ali daljše redukcijsko-

oksidacijska reakcija je kemijska reakcija, pri kateri atomi spremenijo svoje oksidacijsko

stanje (tabela 2.1).

Tabela 2.1: Redukcija/oksidacija.

Reakcija Pot elektronov Poimenovanje snovi Oksidacijsko stanje

snovi

Redukcija Sprejemanje

elektronov

Oksidant se zmanjša

Oksidacija Oddajanje elektronov Reducent se poveča

Oksidanti lahko oksidirajo druge snovi, drugim snovem lahko odvzemajo elektrone, same pa

se pri tem reducirajo. Ker lahko od drugih snovi sprejemajo elektrone, se imenujejo tudi

akceptorji elektronov [11].

Reducenti lahko reducirajo druge snovi, drugim snovem lahko oddajajo elektrone, same pa pri

tem oksidirajo. Ker lahko drugim snovem oddajajo elektrone, se imenujejo tudi donorji

elektronov.

Potencial redoks merimo v V. Potencial redoks nam pove težnjo vodnega okolja k oksidaciji

ali redukciji snovi. Zato imajo raztopine z višjim redukcijskim potencialom, kot ga ima npr.

snov, ki jo dodamo raztopini, težnjo po oksidaciji dodane snovi. Podobno kot je pH povezan s

prenosom protonov med različnimi kemijskimi vrstami, je tudi redoks potencial povezan s

prenosom elektronov med različnimi kemijskimi vrstami. Redoks potencial je intenzivna

količina in ne določa kapacitete okolja za oksidacijo ali redukcijo, oz. pove nam, kakšna je

težnja vodnega okolja, da oksidira ali reducira snov, ne pa koliko snovi lahko oksidira ali

reducira.

Page 27: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

13

Če ima okolje previsok ali prenizek potencial redoks, potem tako okolje nima ugodnih

življenjskih pogojev za mikroorganizme. Primer: večina koliformnih bakterij ne preživi več

kot 30 sekund v močno oksidativnem okolju (potencial redoks > + 660 mV). Voda iz

vodovoda, ki jo natočimo v kozarec in je tako izpostavljena zraku, ima pri sobni temperaturi

potencial redoks približno od +450 do + 500 mV. Negativni potencial redoks pomeni, da je v

vodi zelo malo kisika in v takšnih pogojih lahko bakterije razgradijo nitrat. V bazenski vodi

imamo vedno pozitivni potencial redoks.

Višji potencial redoks pomeni bolj čisto vodo z več kisika. Če je potencial redoks previsok, je

to problematično. Želimo manj mikroorganizmov v vodi, ampak nočemo, da bi bila voda

škodljiva za ljudi (kopalce). Da spremenimo potencial redoks vode, ji dodamo klor. Vrednosti

potenciala redoks v bazenskih vodah moramo vzdrževati med 650 in 850 mV.

Sonda redoks

Glavne značilnosti uporabljene sonde redoks:

ime: erhm,

merilno območje: od -2000 do +2000 mV,

dolžina kabla: 4,5 m,

konektor: BNC.

Tudi sondo redoks je potrebno pred uporabo umeriti. To se naredi tako, da se sondo potopi v

referenčno raztopino. Po navadi je to raztopina za umerjanje sonde redoks, ki ima potencial

redoks 650 mV. Za razliko od sonde pH se pri sondi redoks umerja le odmik, naklon pa ne.

Elektrode nismo umerjali, saj nismo imeli dostopa do raztopin za umerjanje, smo pa od

uporabnika dobili podatke z zadnjega umerjanja. Ko bi moral redoks potencial biti 650 mV je

bil 654 mV, kar pomeni, da je odmik 4 mV.

Signal iz sonde redoks bomo ojačili ter z uporabo analogno-digitalne pretvorbe in korekcijske

funkcije dobili nominalno vrednost.

Page 28: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

14

3. RAZVOJNA PLATFORMA

3.1. Android

Android je odprtokodni operacijski sistem, zgrajen na osnovi Linux jedra. Namenjen je

pametnim telefonom in preostalim prenosnim napravam.

Google je hotel prodreti na tržišče mobilnih naprav, zato je kupil podjetje Android, Inc. Leta

2007 je ustanovil poslovno združenje, v katerem se združuje več podjetij, imenovano Open

Handset Alliance (OHA), v prizadevanju za skupni razvoj odprtih standardov in razvoj

inovacij za potrebe mobilnih naprav. Android je odprtokoden in brezplačen.

Operacijski sistem Android je sestavljen iz aplikacije, aplikacijskega ogrodja, knjižnic,

prevajalnika in jedra Linux [2].

Aplikacije

Aplikacije so napisane v programskem jeziku Java. Poleg Jave pa se za izdelavo aplikacij

uporablja tudi XML. Del kode, ki je napisan v XML, lahko generiramo tudi z uporabo

grafičnega vmesnika. Izvršna datoteka aplikacije ima končnico .apk in se zažene v okviru

lastnega procesa.

Ko se aplikacija zažene, se ustvari lastna identifikacijska koda. Identifikacijski kodi se

dodajo pravice za uporabo strojne opreme, v našem primeru pravica za uporabo BlueTooth

(BT).

Aplikacijsko ogrodje

V aplikacijskem ogrodju so sistemski procesi, ki koordinirajo delovanje aplikacij:

upravitelj aktivnosti (Activity Manager) – upravlja življenjski cikel posameznih

aplikacij in omogoča medsebojno komunikacijo med njimi,

upravitelj obvestil (Notification Manager) – skrbi za prikazovanje obvestil,

upravitelj lokacij (Location Manager) – omogoča določanje lokacije s pomočjo

modula GPS, WiFi dostopne točke ali omrežja mobilnega operaterja,

upravitelj telefonije (Telephony Manager),

Page 29: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

15

upravitelj pomnilnika,

sistem pogleda (View System) itd.

Knjižnice

Knjižnice so temeljni del sistema Android in se uporabljajo pri razvoju za dostop do strojnih

komponent naprave in funkcionalnosti sistema:

sistemska knjižnica C za mobilne naprave, prilagojena standardna sistemska knjižnica

libc,

večpredstavne knjižnice, ki temeljijo na knjižnicah paketa PacketVideo OpenCORE,

za predvajanje in snemanje večpredstavnih vsebin,

upravitelj površin (Surface Manager), ki upravlja dostop do zaslonskega podsistema in

sestavlja 2D- in 3D-sloje aplikacij,

LibWebCore in WebKit predstavljata vgrajeni brskalnik,

SGL za povezavo z osnovnim slojem 2D-grafičnega pogona,

OpenGL ES za izris 3D-grafike,

FreeType za prikaz bitne in vektorske pisave,

SQL (oz.SQLite) zagotavlja podporo za podatkovne baze itd.

Prevajalnik

Do različice 4.4 je operacijski sistem Android uporabljal prevajalnik JIT (Just in time

compiler). Tako je omogočen prenos iste izvorne kode na več različnih prenosnih naprav.

Možnost vklopa prevajalnika ART (Android Run Time), ki vse aplikacije prevede ob zagonu

(AOT), je bila uvedena v verziji 4.4. Prevajalnik ART je nekoliko boljši ravno zaradi AOT

(Ahead-of-Time compiler), ki procesira inštrukcije aplikacije, preden so potrebovane. Tako

ima uporabnik občutek, da vse teče bolj gladko (hitrejše izvajanje aplikacij).

Jedro Linux

Osrčje Androida, ki zagotavlja upravljanje s pomnilnikom, varnost, upravljanje s procesi,

omrežnim skladom in modeli gonilnikov, je jedro Linux, saj poveže strojno opremo s

programskim skladom. Jedro Linux je zanesljivo in robustno [9].

Andorid API (Application Programming Interface) so vmesniki, namenjeni lažjemu razvoju

aplikacij. Navadno so API kompatibilni s prejšnjimi verzijami, torej lahko programiramo in

Page 30: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

16

naredimo program v nižjem API-nivoju, kot ga ima Androidni operacijski sistem na napravi,

na katero naložimo program.

Pri izbiri API-nivoja je pomembno dvoje. Višji kot bo API-nivo, več bo funkcionalnosti,

ampak program ne bo deloval na starejših napravah, s starejšim operacijskim sistemom. Nižji

kot bo API-nivo, na več napravah bo program deloval, vendar smo z nižjim API-nivojem

izgubili določene funkcionalnosti.

Za izbiro API-nivoja moramo vedeti, kakšno funkcionalnost potrebujemo, in poznati verzijo

androidnega sistema naprave, ki ji bo aplikacija namenjena. Tako lahko izberemo API-nivo,

ki ustreza androidnemu sistemu na ciljni napravi in ima vse želene funkcionalnosti. Za nas je

bila pomembna funkcionalnost Bluetooth. Pri razvoju aplikacije ne izberemo ene same verzije

API-nivoja, ampak več API-nivojev v smislu od/do. Povezavo med različico platforme in API

nivoja prikazuje tabela 3.1.

Tabela 3.1: Verzije platforme Android in njihova imena ter API nivoji

Različica platforme API nivo Ime različice

Android 5.1 22 LOLLIPOP_MR1

Android 5.0 21 LOLLIPOP

Android 4.4W 20 KITKAT_WATCH

Android 4.4 19 KITKAT

Android 4.3 18 JELLY_BEAN_MR2

Android 4.2, 4.2.2 17 JELLY_BEAN_MR1

Android 4.1, 4.1.1 16 JELLY_BEAN

Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWICH_MR1

Android 4.0, 4.0.1, 4.0.2 14 ICE_CREAM_SANDWICH

Android 3.2 13 HONEYCOMB_MR2

Android 3.1.x 12 HONEYCOMB_MR1

Android 3.0.x 11 HONEYCOMB

Android 2.3.4

Android 2.3.3 10 GINGERBREAD_MR1

Android 2.3.2

Android 2.3.1

Android 2.3 9 GINGERBREAD

Android 2.2.x 8 FROYO

Android 2.1.x 7 ECLAIR_MR1

Android 2.0.1 6 ECLAIR_0_1

Android 2.0 5 ECLAIR

Android 1.6 4 DONUT

Android 1.5 3 CUPCAKE

Android 1.1 2 BASE_1_1

Android 1.0 1 BASE

Page 31: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

17

3.2. Razvojno okolje Eclipse

Za razvoj aplikacije smo uporabili razvojni programski paket Android SDK (software

development kit), ki vsebuje vsa potrebna orodja za razvoj, razhroščevanje in emuliranje

aplikacij.

Uporabili smo razvojno okolje IDE (integrated development environment) Eclipse, ki

uporablja vmesnik Android Development Tools (ADT).

Aplikacija se praviloma razvija v dveh delih. Prvi del je glavna aktivnost. Ta predstavlja

celotno obnašanje v ozadju uporabniškega vmesnika in se piše v programskem jeziku Java.

Uporabniški vmesnik je drugi del in povezuje glavno aktivnost z uporabnikom ter se

programira v programskem jeziku XML. Namesto pisanja XML kode lahko določene

elemente naredimo kar z grafičnim vmesnikom, ki sam kreira kodo XML, prav tako pa lahko

z grafičnim vmesnikom vplivamo na določene lastnosti teh elementov. Primer: kreiramo

gumb, mu določimo velikost ter njegovo pozicijo na zaslonu.

Aplikacija potrebuje dovoljenja za dostop do izbranih komponent, zato se pri razvoju

deklarira vsaka uporabljena komponenta v datoteki AndroidManifest.xml. V datoteki

AndroidManifest.xml so tudi ostali pomembni podatki o aplikaciji, na primer deklaracija

različic Androida, ki jih bo aplikacija podpirala. Navadno določimo:

minimalni (najnižji) API (minSdkVersion),

ciljna različica API (API, za katerega razvijamo aplikacijo) (targetSdkVersion) in

najvišji API (maxSdkVersion).

Aplikacija STROJNICA

Za komunikacijo s strojnico smo izbrali brezžično povezavo (BT), zato je aplikacija za

androidni telefon potrebovala funkcionalnost BT.

Preverili smo, če obstaja že kakšna odprto-kodna aplikacija. Našli smo aplikacijo

BluetoothChat, preko katere si lahko uporabnika pišeta sporočila. Funkcionalnost je podobna

SMS (Short Message Service), vendar deluje le v dosegu povezave BT. Odločili smo se, da jo

uporabimo pri razvoju.

Page 32: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

18

Aplikacija BluetoothChat za delovanje uporablja knjižnico Android Bluetooth API in nam s

tem nudi podporo za polno funkcionalnost povezave Bluetooth, to je:

iskanje dosegljivih naprav BT,

parjenje naprav BT,

vzpostavitev povezave s kanalom/vtičnico (channel/socket) RFCOMM (Radio

frequency communication),

povezovanje z napravami,

prenos podatkov preko povezave BT.

V istem zaporedju, kot smo funkcije našteli, se tudi izvedejo v programu za vzpostavitev

povezave. BluetoothChat aplikacijo smo preuredili po naših zahtevah. Natančneje je koda

opisana v 6. poglavju.

Za nadzor in upravljanje strojnice bazena potrebujemo gumbe, s katerimi upravljamo

delovanje 6-potnega ventila in črpalke. Potrebovali smo tudi izpis teksta (textView) za prikaz

temperature, potenciala redoks in pH-vrednosti vode.

Uporabili smo tri gumbe, s katerimi bo lahko uporabnik izbral delovanje črpalke:

vklop,

časovnik in

izklop.

In tri gumbe, s katerimi bo lahko uporabnik izbiral različne pozicije 6-potnega ventila:

filtriranje,

praznjenje in

pranje filtra.

Za izpis teksta smo potrebovali pet objektov textView za prikaz: temperature, potenciala

redoks, vrednosti pH, status črpalke in status 6-potnega ventila.

Potrebne gumbe in textView-je smo kreirali s pomočjo grafičnega vmesnika, tako da smo jih

izbrali iz zavihka Form Widgets in jih povlekli na zaslon, s tem smo tudi določili pozicijo

elementov na zaslonu (slika 3.1). Določene vrednosti smo določili v main.xml.

Page 33: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

19

Slika 3.1: Izdelava grafičnega vmesnika v okolju eclipse

Za povezavo elementa v delu programa, ki je napisan v Javi, in delom, ki je napisan v XML,

je pomemben id elementa. Id se priredi na način: android:id="@+id/textView2", tako je sedaj

id tega texview-ja textView2. Privzeti tekst, ki bo napisan v textView-ju, dokler ga program

ne spremeni, se določi na način: android:text="redoks". Velikost pisave teksta, ki se bo

izpisoval v tekstView-ju, se določi na način: android:textSize="32sp".

Najprej v delu programa, napisanega v programskem jeziku Java, deklariramo spremenljivke,

te so v našem primeru vse tipa textView, saj morajo na zaslonu naprave izpisovati tekst (slika

3.2).

Slika 3.2: Deklaracija spremenljivk

TextView text; TextView text2; TextView crpalka; TextView ventil; TextView temperatura;

Page 34: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

20

Nato moramo povezati spremenljivke z Java dela programa z elementi z XML dela programa

preko id-jev.

Primer za spremenljivko temperatura, ki jo moramo povezati z id-jem textView7:

temperatura = (TextView) findViewById(R.id.textView7);

Prav tako moramo preko id-jev povezati gumbe, saj se uporabljajo tako v kodi xml kot v kodi

Java. Vse povezave preko id-jev lahko vidimo v kodi na sliki 3.3.

Slika 3.3: Povezave preko ID-jev

Nadaljevanje kode za mobilno napravo z OS android sledi v poglavju 6.

text = (TextView) findViewById(R.id.textView1); text2 = (TextView) findViewById(R.id.textView2); crpalka = (TextView) findViewById(R.id.textView5); ventil = (TextView) findViewById(R.id.textView6); temperatura = (TextView) findViewById(R.id.textView7); Button button1 = (Button) findViewById(R.id.button1); Button button2 = (Button) findViewById(R.id.button2); Button button6 = (Button) findViewById(R.id.button6); Button button3 = (Button) findViewById(R.id.button3); Button button4 = (Button) findViewById(R.id.button4); Button button5 = (Button) findViewById(R.id.button5);

Page 35: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

21

4. BREZŽIČNA POVEZAVA

Skoraj vsak telefon z OS (operacijskim sistemom) android ima možnost brezžične povezave

Bluetooth, zato smo za brezžični nadzor in upravljanje strojnice izbrali povezavo Bluetooth.

Tako potrebujemo za povezavo poleg telefona z OS android le še modul Bluetooth, povezan

na mikrokrmilnik v strojnici.

Skoraj vsak telefon z OS android ima tudi možnost WiFi povezave in moduli za povezavo

WiFi so istega cenovnega razreda kot moduli za povezavo BT. Vendar smo se odločili za BT

zaradi bistveno večje kompleksnosti povezave WiFi, ki pa našemu projektu ne bi nič

doprinesla. Za boljšo predstavo kompleksnosti poglejmo sliko formata okvirja z

dvonivojskim referenčnim modelom OSI in podatkovno-povezovalne plasti (Data Link

Layer). Naši (uporabni) podatki so le del, na katerega kaže puščica na sliki 4.1.

Slika 4.1: podatkovno-povezovalne plasti WiFi povezave

Bluetooth

Bluetooth je brezžična tehnologija, ki za povezovanje različnih digitalnih naprav uporablja

frekvenčni pas med 2400 MHz in 2483,5 MHz. Bluetooth je zaenkrat najbolj razširjen v

mobilnih telefonih.

Maksimalna razdalja povezave je odvisna od razreda:

1. razred = 100 m,

2. razred = 10 m,

3. razred = 1 m.

Bluetooth standard zagotavlja varnost z naslednjimi ukrepi:

Page 36: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

22

da se dve napravi povežeta, potrebujeta ključ (ang.: passkey/passcode/pairing code),

bluetooth napravo lahko naredimo »nevidno«,

ko je zveza vzpostavljena, je zaščitena z (maksimalno) 128-bitno enkripcijo,

zamenjava (skakanje) frekvence (frequency-hopping spread spectrum) Bluetooth

razdeli podatke v pakete in vsak paket pošlje po enem od 79 Bluetooth kanalov. Vsak

kanal ima pasovno širino 1 MHz.

(Oziroma Bluetooth 4.0, ki uporablja razmik 2 MHz, ima lahko le 40 kanalov. Prvi se

začne pri 2402 MHz in konča z zadnjim 2480 MHz.)

Bluetooth zamenja frekvenco 1600-krat na sekundo [3].

4.1. Bluetooth modul

Izbrali smo modul RN 42 (slika 4.2), saj podpira povezavo UART (Universal asynchronous

receiver/transmitter), kar je priročno pri povezavi BT modula na mikrokrmilnik.

Ta modul smo izbrali tudi zato, ker ima dovolj veliko razdaljo povezave. Bil je takoj

dobavljiv in lahko z malo predelave deluje na 5 V. To je bilo za nas pomembno v začetnih

fazah, ko smo testirali povezavo Bluetooth in UART-povezavo BT modula z

mikrokrmilnikom in imeli mikrokrmilnik napajan s 5V, saj smo takšno napetost potrebovali

za zaslon LCD, ki smo ga uporabljali v fazi testiranja.

Slika 4.2: Bluetooth modul RN-42

Značilnosti modula RN 42:

možnost povezave UART s hitrostjo prenosa (baud rate) od 1200 b/s do 3 Mb/s,

delovanje na napetosti 3,3 V ali 5 V,

Page 37: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

23

Bluetooth v2.1 +EDR (možno izbrati druge verzije: 2.0/1.2/1.1) (EDR=Enhanced

Data Rate),

nizka poraba, ko je povezava vzpostavljena 8-30 mA, v mirovanju 2mA,

vgrajena antena (povezave PCB na ploščici so antena),

čeprav je modul 2. razred (class 2), kar pomeni, da naj bi povezava delovala na

razdalji 10 m, v dokumentaciji proizvajalca piše, da povezava deluje do 20 m

(Oddajna moč 4 dBm. Sprejemna občutljivost -80 dBm),

frekvenčni pas od 2402 do 2480 MHz, modulacija FHSS (Frequency-hopping spread

spectrum) in GFSK (Gaussian frequency-shift keying): 79 kanalov pri 1 MHz,

128-bitno šifriranje,

temperaturno območje delovanja od -40 °C do 85 °C,

dovoljena relativna vlažnost pri delovanju <90 %. [5]

Ker smo želeli, da modul BT deluje na napetosti 5 V, smo izbrali priključke B, saj priključki

A delujejo na napetosti 3,3 V. Razpored priključkov A in B je prikazan na sliki 4.3.

Slika 4.3: Priključki modula BT

Privzeto so aktivirani priključki A, da smo izbrali priključke B (jih aktivirali), smo odspajkali

upora R6 in R8, označena na sliki 4.4.

Page 38: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

24

Slika 4.4: Modul BT in upora R6 in R8

Pomeni priključkov na priključku B so razvidni iz tabele 4.1.

Tabela 4.1: Oznake priključkov B

Priključek Oznaka Opis

1 RX Sprejema UART

2 TX Oddaja UART

3 RTS Request To Send smo povezali na CTS

4 CTS Clear To Send smo povezali na RTS

5 VDD Napajanje: enosmerna napetost od 5 do 16 V

6 GND Masa

Najprej smo preverili delovanje modula z uporabo serijske povezave RS 232 z računalnikom.

Modul BT ima možnost povezave neposredno na RS232, z RS232 logičnimi nivoji na

priključkih A. Ker pa smo želeli testirati modul BT na linijah, s katerimi bo kasneje povezan

na mikrokrmilnik smo uporabili priključke B. Tako smo uporabili linije z logičnimi nivoji

TTL, pri tem smo za pretvorbo med RS232 in logičnimi nivoji TTL uporabili integrirano

vezje MAX232. Shemo povezave prikazuje slika 4.5.

Slika 4.5: Shema povezave modula BT na PC preko integriranega vezja MAX232

Bluetooth

modul

MAX 232 Osebni

računalnik

Page 39: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

25

Za pretvorbo logičnih nivojev TTL v logične nivoje RS232 potrebujemo poleg integriranega

vezja MAX232 še pet elektrolitskih kondenzatorjev vrednosti 1 uF. Ti so potrebni za

podvojitev napetosti (za voltage doubler) in za invertiranje napetosti (za voltage inverter).

Tako potrebuje integrirano vezje za napajanje le 5 V [7].

MAX2332 ima dva vhoda TTL/CMOS, ki jih pretvori na dva izhoda RS-232 in dva vhoda

RS-232, ki ju pretvori na dva izhoda TTL/CMOS. Razpored priključkov, priklop

kondenzatorjev in vezje MAX232 so razvidni s slike 4.6.

Slika 4.6: Integrirano vezje MAX232 in priključitev kondenzatorjev

Uporabili smo le en vhod TTL in en RS-232 vhod, saj smo za komunikacijo z računalnikom

uporabljali le liniji RxD (Received Data) in TxD (Transmitted Data).

Razpored priključkov vrat RS232 (COM1 (Communication port)) je prikazan na sliki 4.7.

Normalno oštevilčenje priključkov je za moški konektor (na računalniku), oštevilčenje

priključkov v oklepajih pa je za ženski konektor (kabel). Za nas so pomembni le priključki

2,3 in 7,8.

Page 40: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

26

Slika 4.7: Razpored priključkov vrat RS232

Pomen uporabljenih priključkov vrat RS232:

2 = Rx (recive data),

3 = Tx (transmit data),

7 = RTS (request to send),

8 = CTS (clear to send) [6]

Sprejemni priključek (Rx) modula BT povežemo z oddajnim priključkom (Tx) vrat RS232 in

obratno, vmes je integrirano vezje max232 zaradi prilagoditve logičnih nivojev. Shemo

vezave modula BT na vrata RS232 preko integriranega vezja MAX232 lahko vidimo na sliki

4.8, na kateri so tudi številke priključkov, ki so uporabljeni za povezavo. Ker linij RTS

(request to send) in CTS (clear to send) nismo uporabljali, saj jih pozneje v povezavi z

mikrokrmilnikom tudi ne bo, smo priključka 3 in 4 na modulu BT povezali s kratkostičnikom.

Na kablu RS232 smo povezali žici 7 (Request to Send) in 8 (clear to send).

Slika 4.8: Shema vezave modula BT na vrata RS232 preko integriranega vezja MAX232

Page 41: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

27

Ko je modul BT priključen na napajalno napetost, postane viden drugim napravam BT.

Tovarniško nastavljeno ime "FireFly-ABCD". "FireFly" je ime naprave, "ABCD"pa sta

zadnja dva zloga naslova MAC. Najenostavneje konfiguriramo modul z računalnikom.

Povežemo se lahko brezžično preko BT-vmesnika osebnega računalnika ali pa preko

serijskega vmesnika. Ko se povežemo, modul ustvari navidezna serijska vrata. Odločili smo

se za povezavo preko serijskega vmesnika, saj tako testiramo funkcionalnost, ki jo bomo v

nadaljevanju potrebovali.

Na računalniku lahko za pošiljanje znakov uporabimo katerikoli terminalski program, ki

podpira komunikacijo preko serijskih vrat. Za testiranje smo uporabili program »Putty«,

preverili pa smo tudi delovanje s »HyperTerminal«, ker je že del Windows operacijskega

sistema.

Pri prvem povezovanju modula BT je potrebno vnesti geslo, tovarniška nastavitev gesla je

»1234«. Modul BT je lahko v podatkovnem (Data mode) ali ukaznem načinu (command

mode) delovanja. Ko vključimo modul BT, modul deluje v podatkovnem načinu. To pomeni,

da lahko oddaja in sprejema podatke. Če želimo v ukazni način, moramo v 60 sekundah od

vklopa vpisati ukaz »$$$«. Če smo uspešno izbrali ukazni način, nam modul BT odgovori s

»CMD«. Ukazi za modul BT so sestavljeni iz znakov ASCII. Ko pošljemo veljaven ukaz,

nam modul BT odgovori z »AOK«, če pošljemo neveljaven ukaz, nam odgovori z »ERR«, če

pa pošljemo ukaz, ki ga ne prepozna, pa nam odgovori z »?«.

Privzeto je modul BT nastavljen na suženjski način. Modul BT deluje kot strežnik, druge

naprave Bluetooth ga lahko odkrijejo in se povežejo z njim.

Tovarniške nastavitve serijskega vmesnika modula BT so:

prenosna hitrost (baud rate) je 115200 bps,

dolžina podatka je 8 bitov,

pariteta se ne preverja (No Parity) ,

1 stop bit,

strojni nadzor prenosa podatkov je omogočen.

Ko smo v ukaznem načinu, lahko nastavljamo različne parametre. Nekaj primerov

nastavljanja parametrov:

ime naprave (ukaz: SN,<IME>),

Page 42: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

28

pariteta UART-a (ukaz: SL, <E,O,N> E=sodo (even), O= liho (odd), N= nič (non)),

enkripcija (ukaz: SE,<1,0> 1= vklopljeno, 0=izklopljeno),

nastavitev prenosne hitrosti (baudrate) ukaz: SU,<podatkovna hitrost>

Možnosti so 1200, 2400, 4800, 9600, 19.2, 28.8, 38.4, 57.6, 115K, 230K, 460K,

921K , samo prava dva znaka sta potrebna.

Prenosno hitrost smo nastavili na 9600, ker je takšna prenosna hitrost ustrezna za priključitev

modula BT na mikrokrmilnik. Ni potrebe po višji prenosni hitrosti, izbrano hitrost pa lahko

mikrokrmilnik doseže brez uporabe kvarčnega kristala, saj lahko deluje z uro z notranjega

oscilatorja R-C (v našem primeru 4 MHz). Za izbiro prenosne hitrosti 9600 smo poslali ukaz

SU,96.

Določene parametre lahko poleg tega, da jih lahko nastavimo programsko (z ukazi),

nastavimo tudi tako, da določene priključke GPIO (General-purpose input/output) postavimo

na visok ali nizek logični nivo. Prav tako pa so določeni priključki GPIO izhodi, ki

spremenijo logični nivo, odvisno od tega, kaj se dogaja. Primer: priključek GPIO2 preide na

visok logični nivo, če je modul povezan z napravo Bluetooth, če ni povezan, pa ima nizek

logični nivo.

Ko imamo modul BT povezan na osebni računalnik preko serijskega vodila in smo v ukaznem

načinu nastavili želene parametre, lahko vzpostavimo BT-povezavo s kakšno drugo napravo.

V našem primeru je bila ta naprava najprej prenosni računalnik z adapterjem USB/Bluetooth.

V terminalskem programu pošljemo preko serijske povezave modulu BT znak C, da se

povežemo (Connect) z drugo napravo BT, katere naslov ima modul BT že shranjen. Če

naslova še nima, uporabimo ukaz C,<naslov>, pri tem je naslov v hex formatu, po uspešni

izvedbi tega ukaza se naslov shrani v modulu BT.

Če ne poznamo naslova naprave BT, s katero se želimo povezati, pošljemo ukaz

I,<čas>,<COD>, tako modul BT išče/pridobiva (Inquiry) naslove naprav tako dolgo, kot smo

določili čas. COD je kratica, ki pomeni razred naprave Class of Device, če ne vpišemo nič,

išče med vsemi razredi.

Z uporabo programa Putty smo preko povezave BT v obe smeri pošiljali znake ASCII med

osebnim računalnikom z modulom BT in prenosnim računalnikom z adapterjem USB/BT, ki

je v terminalskem programu viden kot navidezna vrata COM1. Pozneje smo prenosni

računalnik nadomestili z mobilno napravo (mobilni telefon z OS Android), ki ima že vgrajen

Page 43: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

29

BT in naloženo aplikacijo Bluetooth Chat. Tako smo preko povezave BT v obe smeri pošiljali

ASCII znake med osebnim računalnikom z modulom BT in androidnim telefonom (slika

4.9).

Slika 4.9: Povezava BT med osebnim računalnikom z modulom BT in mobilno napravo

S tem smo testirali modul BT v celoti. Saj bo delovanje modula BT, ko bo priklopljen na

mikrokrmilnik isto, le da mu bo znake, ki smo mu jih pošiljali z računalnika preko serijskega

vmesnika pošiljal mikrokrmilnik preko UART-a z istimi nastavitvami (prenosne hitrosti …),

znake, ki jih bo sprejemal od mobilne naprave, pa bo preko UART-a poslal na mikrokrmilnik

namesto na računalnik.

Nastavitve, ki smo jih uporabili za terminalski program Putty prikazuje slika 4.10, nastavitve,

ki smo jih uporabili za terminalski za program HyperTerminal pa slika 4.11.

V našem projektu bo modul BT nastavljen v suženjski način, tako da mikrokrmilniku ne bo

potrebno krmiliti modula BT za vzpostavitev povezave, saj bomo z mobilno napravo (mobilni

telefon z OS Android) odkrili modul BT in se povezali z njim.

Mobilni

telefon

Bluetooth

modul

MAX 232 Osebni

računalnik

Page 44: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

30

Slika 4.10: Nastavitve programa Putty

Slika 4.11: Nastavitve programa Hyper Terminal

Page 45: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

31

5. MIKROKRMILNIK

Za krmiljenje strojnice z uporabo mobilne naprave potrebujemo na strani strojnice ne le

modul za brezžično povezavo, ampak tudi napravo, ki izvede vklop/izklop črpalke, spremeni

položaja 6-potnega ventila in mora zajemati podatke o vrednosti pH, potencialu redoks in

temperaturi ter jih ustrezno pretvoriti za brezžično pošiljanje (preko BT) na mobilno napravo.

Za to napravo smo izbrali mikrokrmilnik, saj je cenovno najbolj ugodna rešitev.

Izbrali smo mikrokrmilnik Atmega8 proizvajalca Atmel zaradi prosto dostopne razvojne

programske opreme WinAVR, cenovne ugodnosti in zadostne funkcionalnosti za naš projekt.

8-bitni ATmega8 v ohišju PDIP (plastic dual in-line package) z 28 priključki (slika 5.1) ima:

6 priključkov za analogno-digitalno pretvorbo, dva bomo potrebovali za zajem

vrednosti pH in potenciala redoks;

programljiv serijski vmesnik USART (Universal Synchronous and Asynchronous

serial Receiver and Transmitter), ki ga bomo uporabili za priklop modula BT;

23 digitalnih programljivih priključkov, ki so lahko uporabljeni kot digitalni vhodi ali

digitalni izhodi, ki jih bomo kot izhode potrebovali za krmiljenje črpalke in 6-potnega

ventila, 2 bosta uporabljena kot ADC, 2 za UART.

V fazi testiranja povezave USART in kasneje za testiranje povezave BT jih bomo

uporabili za priklop prikazovalnika LCD;

8 kB programljivega bliskovnega pomnilnika (ang.: Flash memory) z možnostjo

10000 vpisov/izbrisov, 512 zlogov EEPROM (Electrically Erasable Programmable

Read-Only Memory) in 1 kB SRAM (Static random-access memory);

uporabili bomo tudi notranji oscilator RC, da ni potreben signal ure z zunanjega

oscilatorja [4].

Page 46: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

32

Slika 5.1: Atmega8 v ohišju PDIP

Uporabljena programska oprema

V razvojnem okolju WinAVR smo programirali v programskem jeziku C++ in objektno

datoteko tipa .hex naložili na mikrokrmilnik s programom PonyProg2000.

Pri WinAvr moramo opisati makefile, to je datoteka, v kateri so določene osnovne nastavitve,

kot npr. tip mikrokrmilnika, frekvenca delovanja itd. Pomagamo si lahko s programom MFile,

ki nam avtomatsko generira datoteko makefile.

Ko nastavimo vse nastavitve v programu mfile, shranimo Makefile in ga v »WinAVR

Programmer s Notepad« vključimo v naš projekt.

Ko imamo v WinAVR Programmer z Notepad-u narejen projekt z ustreznim makefile-om in

vključene ustrezne zglavne datoteke, lahko pričnemo programirati (v C++ jeziku).

Ko želimo tvoriti objektno datoteko, kliknemo na zavihek Tools in nato kliknemo [WinAVR]

Make all, da nam zgenerira hex datoteko, nato je le-to potrebno prenesti na mikrokrmilnik.

Objektno datoteko smo prenesli na mikrokrmilnik z uporabo programatorja PonyProg 2000.

V zavihku Device izberemo, kateri mikrokrmilnik bomo programirali, nato odpremo hex

datoteko programa, ki bi ga radi prenesli na mikrokrmilnik, po potrebi nastavimo še

konfiguracijske in varnostne bite (Configuration and Security bites) ter kliknemo na gumb

Write Device.

Page 47: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

33

Primeri postavitev določenih konfiguracijskih bitov za Atmega8 so razvidni v tabeli 5.1.

Izbrali smo kalibrirani notranji oscilator RC. S postavitvijo bit-ov CKSEL (tabela 5.2) smo

določili tudi frekvenco delovanja mikrokrmilnika, 4 MHz. Podrobnejša predstavitev je na

voljo v [1].

Tabela 5.1: Izbira in nastavitve eksterne ali interne ure za Atmega8

Opcije ure CKSEL 3..0

Zunanji kristalni/keramični resonator 1111-1010

Zunanji nizko frekvenčni kristal 1001

Zunanji RC oscilator 1000-0101

Kalibrirani notranji RC oscilator 0100-0001

Zunanja ura 0000

Tabela 5.2: Tabela frekvenc v odvisnosti CKSEL nastavitev za notranji RC oscilator

CKSEL 3..0 Frekvenca [MHz]

0001 1,0

0010 2,0

0011 4,0

0100 8,0

Page 48: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

34

5.1. Analogno-digitalna pretvorba

Atmega8 v PDIP ohišju ima 6 vhodov za analogno-digitalno (A-D) pretvorbo, v drugih

ohišjih TQFP in QFN/MLF pa ima 8 vhodov za A-D pretvorbo. Vsi A-D vhodi so povezani

na analogni multiplekser, ko je izbran določen A-D vhod, se napetost na njem vzorči na 10

bit-nem analogno digitalnem pretvorniku.

Glavne značilnosti analogno-digitalne pretvorbe z Atmega8:

10-bitna resolucija, (8 bitov v enem registru + 2 bita v drugem registru),

0.5 LSB integralna nelinearnost,

pri tem predstavlja LSB (ang. = Least significant bit) najniže utežni bit.

± 2 LSB absulutna natančnost,

13 - 260 μs čas pretvorbe.

Pretvornik AD ima 10-bitno ločljivost, kar pomeni, da je vsaka pretvorba analogne napetosti

pretvorjena v 10-bitno število. 210 = 1024, torej lahko zavzame 1024 vrednosti.

Vsi ADC-vhodi so multipleksirani, ADC MULTIPLEXER SELECT (ADMUX) s pomočjo

MUX DEKODERJA določi, kateri od analognih vhodov ADC0 ÷ ADC7 je v določenem

trenutku izbran za AD-pretvorbo.

Atmega8 ima več možnosti izbire referenčne napetosti. Lahko je napajalna napetost

mikrokrmilnika Avcc = 5 V, ali notranja referenca 2,56 V ali zunanja napetost, ki jo

pripeljemo na AREF-priključek 21.

Za referenčno napetost smo izbrali notranjo napetost 2,56 V. Za izbiro referenčne napetosti

nastavimo bit-a REFS1 in REFS0 v ADMUX registru (slika 5.2). Nastavitve bitov za

referenčno napetost vidimo v tabeli 5.3.

Slika 5.2: Register ADMUX (ADC multiplexer selection register)

Page 49: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

35

Tabela 5.3: Izbira referenčne napetosti za A-D pretvorbo

REFS1 REFS0 Izbira referenčne napetosti

0 0 AREF, notranja referenčna napetost je izklopljena

0 1 AVCC z zunanjim kondenzatorjem na AREF priključku

1 0 Pridržano

1 1 Notranja ref. nap. 2,56 V z zunanjim kondenzatorjem na AREF priključku

Primer kode za izbiro notranje referenčne napetosti 2,56 V:

ADMUX|=(1<<REFS1)|(1<<REFS0);

S slike 5.3 je razvidno, kako se 10-bitna analogno digitalna pretvorba shrani v dva 8-bitna

registra ADCH (H=high) in ADCL (L=low).

Slika 5.3: Registra ADCL in ADCH sta podatkovna registra analogno digitalne pretvorbe

(ADC data register)

Ker so podatkovni registri le 8-bitni, se vrednost shrani v 2 registra. V enega 8 bitov in v

drugega 2 bita. Da iz dveh 8-bitnih registrov dobimo 10-bitno število, najprej preberemo nižje

Page 50: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

36

utežne vrednosti iz ADCL registra, nato pa jim dodamo še višje utežne vrednosti z ADCH

registra.

Primer kode napisane v jeziku C:

adc_vrednost = ADCL;

adc_vrednost += (ADCH<<8);

V prvi vrstici kode smo spremenljivki adc_vrednost priredili vrednost z registra ADCL, torej

spodnjih 8 bitov pretvorbe ADC.

V drugi vrstici kode, pa smo k prejšnjim 8 bitom dodali še 2 bita. Če bi ju samo prišteli, bi se

prištela na prvem in drugem bitu, mi pa jih moramo prišteti kot deveti in deseti bit. Zato smo

uporabili logični pomik za 8. Podrobnejša predstavitev analogno digitalne pretvorbe je na

voljo v [1].

5.2. USART

Za povezavo mikrokrmilnika in modula BT smo se odločili za povezavo z vmesnikom

USART (Universal Synchronous and Asynchronous serial Receiver and Transmitter).

Serijski vmesnik USAR v Atmega8 mikrokrmilniku omogoča sihroni in asihroni prenos

podatkov. Ker ima dva ločena registra za oddajo in sprejem, se lahko podatki istočasno

oddajajo in sprejemajo, kar omogoča obojesmerni (full duplex) prenos podatkov.

Sinhroni način prenosa podatkov se uporablja za pošiljanje daljših zaporedij znakov. Takta

oddajnika in sprejemnika sta sinhronizirana (se ves čas ujemata). Za to sinhronizacijo je

(poleg podatkovne linije) potrebna še sinhronizacijska linija, razen če sprejemnik

sinhronizacijsko informacijo dobi iz podatkovne linije (če je sinhronizacijska informacija

»modulirana« med podatke na podatkovni liniji).

Asinhroni način prenosa podatkov je primeren za pošiljanje posameznih znakov. Hitrost

prenosa (baudrate) mora biti že vnaprej določena in enaka pri sprejemniku in oddajniku.

Najprej se pošlje začetni bit (start bit), ki zbudi sprejemnik, za njim se pošlje znak. Če želimo

preverjati pravilnost prenosa, se za znakom pošlje znak za preverjanje paritete in na koncu se

pošlje še zaključni bit (stop bit). Sprejemnik ve, da bo dobil podatek (znak), ko dobi začetni

Page 51: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

37

(start) bit, nato podatek (znak) bere z vnaprej nastavljeno prenosno hitrostjo (baud rate), bere

tudi vnaprej nastavljeno število bitov, dokler ne pride do zaključnega bit-a.

Vmesnik USART ima generator urinega takta prenosne hitrosti (Baud Rate Generator), ki

generira glavni takt za oddajo in sprejem podatkov.

Vmesnik USART podpira štiri načine delovanja ure:

normalni asinhroni način,

asinhroni način z dvojno hitrostjo,

glavni sinhroni način (Master synchronous),

suženjski sinhroni način (Slave synchronous).

USART podpira naslednje podatkovne okvirje:

podatkovnih bitov je lahko 5, 6, 7, 8 ali 9,

1 ali 2 stop bita,

preverjanje in generiranje paritetnega bita je strojno podprto,

tri možne prekinitve, ki se sprožijo:

- če je podatkovni oddajni register (TX Data Register) prazen,

- če je končano sprejemanje podatka,

- če je končano pošiljanje podatka.

Slika 5.4 prikazuje generator urinega takta prenosne hitrosti. Števec, ki šteje navzdol

(Prescaling Down-Counter) s frekvenco sistemske ure fosc, se resetira na vrednost, zapisano

v registru UBRR (Baud Rate Register), vsakič ko pride do nič. Vsakič, ko števec (Prescaling

Down-Counter) pride na vrednost nič, se ustvari urin takt, ki predstavlja frekvenco za

prenosno hitrost, odvisno od izbire nastavitev bitov UMSEL, U2X in DDR XCK pa se ta

frekvenca deli še z 2, 4, ali 16. Deljenje s 16 se izvede tako, da se deli z 2, nato s 4 in še

enkrat z 2.

Page 52: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

38

Slika 5.4: Blokovni diagram generatorja urinega takta prenosne hitrosti

Tako lahko prenosno hitrost izračunamo po enačbi (5.1) :

𝐵𝐴𝑈𝐷 =𝑓𝑜𝑠𝑐

𝑑𝑒𝑙𝑗𝑖𝑡𝑒𝑙𝑗 • (𝑈𝐵𝑅 + 1)

5.1

Po navadi že poznamo želeno prenosno hitrost in želimo izračunati vrednost, ki jo moramo

vpisati v register UBRR, da dobimo želeno prenosno hitrost, to vrednost izračunamo po

enačbi (5.2):

𝑈𝐵𝑅𝑅 =𝑓𝑜𝑠𝑐

𝑑𝑒𝑙𝑗𝑖𝑡𝑒𝑙𝑗 • 𝐵𝐴𝑈𝐷− 1

5.2

delitelj je lahko 16, 8 ali 2:

delitelj je 16, če je izbran normalno asinhrono delovanje (asynchronous normal

mode) bit U2X na 0,

delitelj je 8, če je izbran asinhroni način delovanja z dvojno hitrostjo

(asynchronous double speed mode) bit U2X na 1,

delitelj je 2, če je izbran glavni sinhroni način (synchronous master mode),

BAUD = Baud rate prenosna hitrost v bitih na sekundo, bps (bits per second),

Page 53: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

39

f osc= frekvenca oscilatorja sistema, v našem primeru je to notranji R-C oscilator

ATM8 (ni nastavljen v c++ kodi v datoteki main.c npr: #define F_CPU 4000000,

ampak je bit-no izbrano pri samem nalaganju kode v ATM8 z PonyProg2000),

UBRR je vsebina UBRRH in UBRRL registrov (vrednost od 0 do 4095)

UBRRH je zgornji register (4 biti) za UBRR (Baud Rate Register), UBRRL pa spodnji

(8 bitov). Skupaj imata 12 bitov, kar je 4095 vrednosti (slika 5.5).

Slika 5.5: Register za hitrost prenosa

V končnem projektu bo mikrokrmilnik preko UART-a komuniciral z modulom BT, da pa smo

testirali kodo za UART, smo najprej mikrokrmilnik preko UART-a povezali na osebni

računalnik. Mikrokrmilnik smo preko serijske povezave RS 232 priklopili na računalnik (slika

5.6). Ker pa RS232 nima logičnih nivojev TTL, smo za pretvorbo logičnih nivojev uporabili

integrirano vezje MAX232 (kot že pri povezavi modula BT na osebni računalnik).

Na kablu RS232 smo povezali žico, ki gre na 7 priključek COM vrat (Request to Send)

COM, in žico, ki gre na 8 priključek COM vrat (Clear To Send). Da smo videli, če se znaki

prenašajo pravilno, smo (v tej testni fazi) dodali alfanumerični LCD ( liquid-crystal display)

zaslon.

Alfanumerični zaslon LCD, ki smo ga uporabili (DEM 16216SYH), ima krmilnik KS0070B,

ki je kompatibilen s HD44780. Na sliki 5.7 je prikazan zaslon DEM 16216SYH, ki je

sestavljen iz zaslona LCD, ki lahko prikazuje dve vrstici s po šestnajst znakov, KS0070B

kontrolerja in LED (light-emitting diode) osvetlitve (backlight).

Page 54: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

40

Slika 5.6: Blok shema priključitve mikrokrmilnika na osebni računalnik

Slika 5.7: Blok diagram LCD zaslona DEM 16216 SYH

Page 55: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

41

Opis priključkov alfanumeričnega LCD-ja:

Vdd in Vss sta napajalna priključka, Vdd = +5 V in Vss = masa.

Vo priključek je za nastavitev kontrasta zaslona. Med Vdd in Vss vežemo 10k

potenciometer, nastavljivi del potenciometra pa vežemo na Vo, tako s tem

potenciometrom nastavljamo kontrast.

D0–D7 so (dvosmerno) podatkovno vodilo.

R/W krmilni vhod, ki omogoči branje ali pisanje znakov iz oz. v LCD zaslon (določi

smer podatkovnega vodila).

RS je priključek za izbiro registra (register select). Kadar je RS = 0 (je izbran

instrukcijski register), podatki na vodilu DB0 ÷ DB7 se obravnavajo kot ukaz in če je

RS = 1, (je izbran podatkovni register), podatki na vodilu DB0 ÷ DB7 se obravnavajo

kot znakovni podatki.

E priključek omogoči ali neomogoči modul LCD. Ko je E priključek na nizkem

nivoju, bo LCD izklopljen in status RS, R/W linij ter podatkovnega vodila bo

ignoriran. Ko je E priključek na visokem nivoju, je LCD omogočen in status drugih

kontrolnih linij ter podatkovnega vodila bo LCD procesiral.

A (anoda +) in K (katoda -) sta napajanje za LED osvetlitev.

Podrobnejša predstavitev povezave LCD zaslonov z mikrokrmilnikom je na voljo v [1].

Preden smo naredili in testirali vezje s slike 5.6, smo pravilno izvajanje kode preverili s

simulatorjem ISIS Proteus. Brezplačno je na razpolago predstavitveni program (ang. demo),

drugače pa je ISIS Proteus plačljivo orodje.

Najprej smo s pomočjo grafičnega vmesnika narisali vezje. Nato smo na mikrokrmilnik

(ATM8) naložili HEX datoteko in nastavili frekvenco delovanja (slika 5.8). Frekvenca se

mora v simulatorju nastaviti, čeprav je morda že nastavljena v programu, iz katerega se je

zgenerirala .hex datoteka.

Page 56: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

42

Slika 5.8: Nastavitev frekvence in naložitev .hex tatoteke za mikrokrmilnik v simulatorju ISIS

proteus

V simulaciji smo uporabili Virtual Terminal, tako smo videli to, kar bi videli s putty-jem ali

hyperterminal-om, če bi dejanski mikrokrmilnik povezali z računalnikom. V Virtual

Terminal-u smo nastavili vse nastavitve tako, kot bodo pozneje, ko bomo mikrokrmilnik

povezali z računalnikom in nato še pozneje z Bluetooth modulom (slika 5.9):

prenosna hitrost (baudrate) 9600,

dolžina podatka je 8 bitov (Data bits:8),

pariteta se ne preverja (Parity: NONE) ,

1 stop bit.

Page 57: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

43

Slika 5.9: Nastavitve Virtual terminal-a

Za testiranje smo naredili program odmev (echo). Znak, ki ga pošljemo z računalnika, mora

mikrokrmilnik prebrati in isti znak poslati nazaj ter ga tudi izpisati na alfanumeričnem

zaslonu LCD. Na sliki 5.10 vidimo v simulaciji poleg poslanega znaka »a« in takoj za njim

prejetega znaka »a«, nad tem še napis »Testiranje USART-a134«. »Testiranje USART-a« je

niz, ki smo ga poslali za testiranje prenosa nizov, število »134« pa je število, ki smo si ga

izmislili, da smo testirali funkcijo, ki celoštevilčni tip (integer) pretvori v niz (string), saj ne

moremo izpisovati celih števil (integer), dokler jih ne pretvorimo v bodisi en sam znak (char),

če ima število samo enice (od 0 do 9), bodisi v niz (string), če je število večje. Če bi izpisali

število brez pretvorbe, bi se na zaslonu ali terminalu prikazali ASCII znaki, ki ustrezajo temu

številu, ne pa to dejansko število.

ASCII znaki za števila od 0 do 9 so dejansko vrednosti od 48 do 57, za vsa večja števila od 9

pa se uporabi več kot en ASCII znak. Tako mora funkcija za izpis najprej ločiti enice,

desetice, stotice … in jih nato ustrezno izpisati (tako da znake »zloži« v niz).

Page 58: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

44

Slika 5.10: Simulacija s simulatorjem ISIS Proteus

Kot je razvidno s slike 5.10, simulacija deluje, ne da bi v simulatorju pripeljali LCD-ju

napajalno napetost in napetost za kontrast (priključki: 1,2,3). Zaslon LCD v simulaciji nima

priključkov 15 in 16, ki sta LED-osvetlitev zaslona LCD.

Zatem smo testirali BT povezavo na način, v katerem bo delovala v končni uporabi, torej med

mobilnim telefonom in BT modulom priključenim na mikrokrmilnik. V fazi testiranja je bil

na mikrokrmilnik priključen LCD zaslon (slika 5.11). Na mobilni napravi smo v tej fazi

uporabili še nespremenjeno aplikacijo BluetoothChat opisano v poglavju 3.2. Med napravama

smo pošiljali ASCII znake, vse je delovalo v skladu s pričakovanji.

Slika 5.11: Povezava BT med mobilnim telefonom in BT modulom priključenim na

mikrokrmilnik.

Mobilni

telefon

Bluetooth

modul

Mikrokrmilnik LCD zaslon

Page 59: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

45

6. PROTOTIP KRMILNE ENOTE

Krmilna enota, prikazana na sliki 6.1sestoji iz:

pH-ojačevalnika, ki ojači napetost s pH-sonde,

ojačevalnika za potencial redoks, ki ojači napetost s sonde redoks,

vezja z releji, ki se uporabljajo za krmiljenje črpalke in 6-potnega ventila,

temperaturnega senzorja, ki zaznava temperaturo vode,

modula BT za brezžično povezavo in

mikrokrmilnika (ATM8).

Slika 6.1: Blok shema krmilne enote (prototipa)

BT

modul

Mikrokrmilnik

pH sonda

redoks sonda

ventil

črpalka

pH ojačevalnik

Redoks ojačevalnik

Vezje z releji

temperaturni senzor

mobilni

telefon

Page 60: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

46

6.1. Krmiljenje črpalke in 6-potnega ventila

Z mikrokrmilnikom krmilimo 6-potni ventil in črpalko, ki je priključena na omrežno napetost

230 V. Ker imajo izhodni priključki mikrokrmilnika prenizko napetost (5 V) in imajo premalo

tokovno zmogljivost, maksimalno zmorejo 40 mA, smo skonstruirali vezje, ki omogoča,

krmiljenje porabnikov, ki delujejo na omrežno napetost. V našem primeru je to črpalka.

Glavni del vezja sta dva BC547C-tranzistorja tipa NPN, vezana v Darlingtonovo vezavo, saj

takšna vezava zagotovi dovolj tokovnega ojačenja za krmiljenje tuljave releja. Da lahko

vidimo, kdaj je rele vklopljen, ima vezje LED diodo (D2), ki služi kot indikator. Ker je

napajalna napetost vezja 5 V, ima dioda LED predupor (R2). Tuljava releja je zaščitena z

zaščitno diodo (D1), ki ščiti tuljavo releja. Vezje je prikazano na sliki 6.2.

Slika 6.2: Shema vezja z relejem

Napajalna napetost Vcc je 5 V, je enako napajalni napetosti za vezje mikrokrmilnika. Slika

6.3 prikazuje del vezja. Celotno vezje, ki je na shemi (slika 6.2), je narejeno petkrat. Tri

Page 61: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

47

potrebujemo za krmiljenje treh tipk pri elektroniki 6-potnega ventila in dva za krmiljenje

črpalke. Na vhode vezja so priklopljeni izhodni priključki mikrokrmilnika. Na izhode (rele-

kontakte) pa so vezane naprave, ki jih želimo krmiliti, v našem primeru črpalka in tipke 6-

potnega ventila.

Releja, ki vklapljata črpalko, zmoreta tok 12 A pri izmenični napetosti 250 V (slika 6.3), kar

je več kot dovolj za črpalko, ki potrebuje 1,6 A pri 230 V.

Slika 6.3: Vezje z releji

Vseh pet vezij je popolnoma enakih, razlika je le v signalih, ki jih na vhode dobijo z

mikrokrmilnika, tako da se potem tri obnašajo kot tipke za 6-potni ventil in dve kot tripolno

stikalo za črpalko.

Releje za krmiljenje treh tipk za 6-potni ventil smo povezali vzporedno k že obstoječim

tipkam, tako lahko uporabnik še vedno uporablja tudi originalne tipke. Releje za krmiljenje

črpalke smo povezali k že obstoječemu tripolnem stikalu, s tem da če namerava uporabnik

uporabljati brezžično upravljanje črpalke, mora dati že obstoječe tripolno stikalo v pozicijo,

pri kateri je črpalka izklopljena. Vezava že obstoječega tripolnega stikala je prikazana na sliki

6.4, pri čemer je pozicija:

Page 62: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

48

1 = vklapljanje črpalke preko časovnika,

2 = črpalka je izklopljena,

3 = črpalka je vklopljena.

Slika 6.4: Tripolno stikalo za krmiljenje črpalke

Vezava z dvema relejema za krmiljenje črpalke je prikazana na sliki 6.5. R1 je prvi rele. Ko je

le-ta vklopljen, je črpalka vezana na časovnik. R2 je drugi rele. Ko je le-ta vklopljen, je

črpalka vklopljena (vezana neposredno na fazo). Ko sta oba releja izklopljena, je črpalka

izklopljena. Zaradi »varnosti« smo dodali še stikalo za izklop, vidno na sliki 6.5 označeno

Sizk. Če uporabnik izklopi to stikalo, bo črpalka izklopljena ne glede na to, kako se bosta

vklapljala releja. Ko je stikalo Sizk izklopljeno, lahko uporabnik ročno vklaplja črpalko preko

že obstoječega tripolnega stikala (slika 6.4).

Slika 6.5: Vezava dveh relejev za krmiljenje črpalke

3

2

1

črpalka

časovnik

Sizk

R1

R2 črpalka

časovnik

Page 63: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

49

Za tipke (za krmiljenje 6-potnega ventila) smo uporabili priključke mikrokrmilnika PB0,PB1

in PB2 na vratih B. Za tripolno stikalo moramo krmiliti dva releja. Za to smo uporabili

priključka PB3 in PB4 na vratih B. Za testiranje kode v simulatorju smo na uporabljene

priključke mikrokrmilnika vezali V-metre (slika 6.6). Tako smo vedeli, da ko je na V-metru 0

V, bi bil rele izklopljen, ko pa je 5 V, bi bil rele vklopljen. Ko smo zagnali simulacijo, smo

preko virtual-terminala pošiljali ustrezne znake in na V-metrih gledali napetosti, s katerih je

bilo razvidno, ali se bodo releji obnašali pravilno. To pomeni, da ko se pošlje znak za

določeno tipko, mora določeni rele vklopiti za 1 s, ko pa se pošlje znak za tripolno stikalo, pa

je glede na poslan znak vklopljen en rele (vklopljena črpalka) ali drug rele (črpalka vezana na

časovnik) ali pa sta oba releja izklopljena (črpalka izklopljena).

Slika 6.6: Simulacija tipk in tripolnega stikala z uporabo V-m v ISIS proteus

V simulaciji je vse delovalo pravilno, zato smo zvezali vezje. Na rele smo priključili

porabnika 220 V - »breme«. V fazi testiranja je to bila žarnica 220 V, fazo za vklop žarnice

220 V smo priključili preko releja. Z mobilnim telefonom smo jo uspešno vklapljali in

izklapljali.

Page 64: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

50

Krmiljenje 6-potnega ventila

Določili smo znake s kode ascii, ki bodo poslani za vklop tipk, ti znaki so »v«, »i« in »z«.

Nato smo pogledali vrednost teh znakov s tabele ascii, vrednosti so v=118, i=105 in z=122.

Sama koda s pogojnim stavkom »if« preverja, če je mobilna naprava poslala mikrokrmilniku

katerega od teh znakov. Če je, potem da mikrokrmilnik ustrezen priključek na visok nivo (5

V), kar vklopi rele, ga pusti na visokem nivoju eno sekundo in nato spusti na nizek nivo (0

V), kar izklopi rele. Zatem pa še pošlje mobilni napravi znak, s katerega program na mobilni

napravi razbere, da se je pritisk tipke izvedel uspešno, poleg tega pa razbere tudi, katera tipka

je bila pritisnjena in tako mobilna naprava izpiše, kam je (po novem) obrnjen 6-potni ventil.

Na sliki 6.7 je prikazan primer kode mikrokrmilnika za tipko praznjenje: če mikrokrmilnik

prejme znak »v« = 118, potem da priključek PB2 na visok nivo, nato čaka (da se izteče delay

1000 ms) 1 s, nakar da priključek PB2 na nizek nivo. Zatem pošlje mobilni napravi znak »I«,

iz katerega mobilna naprava razbere, da je 6-potni ventil obrnjen na pozicijo praznejenje.

Slika 6.7: Koda mikrokrmilnika za krmiljenje tipke »praznjenje« na 6-potnem ventilu

Na sliki 6.8 je prikazan primer tipk »pranje filtra« in »filtriranje«: če mikrokrmilnik prejme

znak »i« = 105, potem da priključek PB0 na visok nivo, nato čaka 1s (da se izteče timer),

nakar da priključek PB0 na nizek nivo. Zatem pošlje mobilni napravi znak »K«, iz katerega

program v mobilni napravi razbere, da je 6-potni ventil obrnjen na pozicijo »pranje filtra«.

Če mikrokrmilnik prejme znak »c« = 122, potem da priključek PB1 na visok nivo, nato čaka 1

s (da se izteče timer), nakar da priključek PB1 na nizek nivo. Zatem pošlje mobilni napravi

if (c==118)

PORTB |= (1<<PB2);

_delay_ms(1000);

PORTB &= ~(1<<PB2);

uart_puts("I");

Page 65: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

51

znak »G«, iz katerega program v mobilni napravi razbere, da je 6-potni ventil obrnjen na

pozicijo »filtriranje«.

.

Slika 6.8: Koda mikrokrmilnika za krmiljenje tipk »pranje filtra« in »filtriranje« na 6-potnem

ventilu

Za gumbe na zaslonu na dotik na mobilni napravi, ki bodo upravljali tipke 6-potnega ventila,

smo uporabili funkcijo OnClickListener, ki preverja, če smo pritisnili gumb. Ko pritisnemo

določen gumb, se izvede koda v oklepajih v funkciji onClick.

Na sliki 6.9 na začetku vidimo kodo za gumb »praznjenje« (button1), to je gumb, ki bo 6-

potni ventil obrnil na pozicijo praznjenje. Ko pritisnemo gumb, mobilna naprava pošlje

mikrokrmilniku znak »v«, to mikrokrmilnik prepozna in vklopi rele, ki vklopi tipko (za 1s),

ki obrne (nastavi) 6-potni ventil v pozicijo za praznjenje.

Če pritisnemo gumb »pranje filtra« (button2), bo mobilna naprava poslala mikrokrmilniku

znak »i«, to mikrokrmilnik prepozna in vklopi rele, ki vklopi tipko (za 1s), ki obrne (nastavi )

6-potni ventil v pozicijo za pranje filtra.

if (c==105)

PORTB |= (1<<PB0);

_delay_ms(1000);

PORTB &= ~(1<<PB0);

uart_puts("K");

if (c==122)

PORTB |= (1<<PB1);

_delay_ms(1000);

PORTB &= ~(1<<PB1);

uart_puts("G");

Page 66: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

52

Če pritisnemo gumb »filtriranje« (button6), bo mobilna naprava poslala mikrokrmilniku znak

»z«, to mikrokrmilnik prepozna in vklopi rele, ki vklopi tipko (za 1s), ki obrne (nastavi) 6-

potni ventil v pozicijo za filtriranje.

Slika 6.9: Koda mobilne naprave za krmiljenje tipk 6-potnega ventila

Ko mikrokrmilnik prejme znake od mobilne naprave in pritisne ustrezne tipke na 6-potnem

ventilu, pošlje nazaj znak, tako mobilna naprava prepozna, da se je dejanje (pritisk določene

tipke) izvedlo pravilno, in to tudi izpiše.

Primer: Če smo na mobilni napravi na primer pritisnili gumb »praznjeneje« (button1), je

poslala mikrokrmilniku znak »v«, mikokokrmilnik je vklopil rele, ki vklopi tipko (za 1s), ki

obrne (ponastavi) 6-potni ventil v pozicijo za praznjenje. Nato mikrokrmilnik pošlje mobilni

napravi znak »I«, ko mobilna naprava dobi znak »I«, izpiše v textView, namenjen za status

ventila »praznjenje«. Tako uporabnik ve, da je 6-potni ventil obrnjen v pozicijo praznjenje.

Napis ostane viden, dokler ne izberemo kakšne druge pozicije 6-potnega ventila, takrat pa se

osveži z novo vrednostjo. Tako uporabnik vedno ve, v kakšnem položaju je 6-potni ventil.

button1.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("v"); ); button2.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("i"); ); button6.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("z"); );

Page 67: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

53

Razen ko zažene aplikacijo in še nikoli ni pritisnil nobenega gumba za spreminjanje pozicije

6-potnega ventila. Če se uporabnik želi prepričati o poziciji 6-potnega ventila enostavno

pritisne tipko za želeno pozicijo 6-potnega ventila, saj ni nič narobe, če izbere položaj, v

katerem je morda že 6-potni.

V kodi na sliki 6.10 so trije pogojni stavki if, ki preverjajo, če je mikrokrmilnik poslal mobilni

napravi znake, ki predstavljajo uspešno izvedbo spreminjanja položaja 6-potnega ventila,

obenem pa predstavljajo tudi pozicijo.

Prvi pogojni stavek if preverja, če je mikrokrmilnik poslal mobilni napravi znak »G«, če je, se

v textView za status ventila izpiše »filtriranje«.

Drugi pogojni stavek if preverja, če je mikrokrmilnik poslal mobilni napravi znak »I«, če je,

se v textView za status ventila izpiše »praznjenje«.

Tretji pogojni stavek if preverja, če je mikrokrmilnik poslal mobilni napravi znak »K«, če je,

se v textView za status ventila izpiše »pranje filtra«.

Slika 6.10: Koda mobilne naprave za prikaz statusa 6-potnega ventila

if(readMessage.contains("G")) ventil.setText("filtriranje"); if(readMessage.contains("I")) ventil.setText("praznjenje"); if(readMessage.contains("K")) ventil.setText("pranje filtra");

Page 68: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

54

Krmiljenje črpalke

Za krmiljenje črpalke potrebujemo tripolno stikalo. Tripolno stikalo smo naredili iz dveh

relejev. Tako je ena pozicija tripolnega stikala, da je vklopljen prvi rele in se črpalka vklaplja

preko časovnika (faza gre skozi časovnik). Druga pozicija je, ko je vklopljen drugi rele in prvi

izklopljen, tako je črpalka vezana neposredno na fazo (vklopljena). Tretja pozicija je, ko sta

oba releja izklopljena in je črpalka izklopljena. Vezava relejev je razvidna s slike 6.5.

Mobilna naprava pošlje mikrokrmilniku znak »a« za vklop črpalke preko časovnika, znak »e«

za vklop črpalke in znaka »g« in »c« za izklop obeh relejev. Slika 6.11 prikazuje del

programa za nadzor črpalke. Ob prejemu ukaza »a«, ki ima ASCII kodo 97, se onemogoči

neposreden vklop črpalke (postavi priključek PB3 na nizek nivo) in vklopi delovanje preko

časovnika (postavi priključek PB4 na visok nivo). Uspešen zaključek ukaza se potrdi s

poslanim znakom »C«, katerega program na mobilni napravi prepozna in potrdi, da se črpalka

vklaplja preko časovnika.

Ob prejemu ukaza »c«, ki ima ASCII kodo 99, mikrokrmilnik postavi priključek PB4 na nizek

nivo in s tem izklopi rele za vklapljanje črpalke preko časovnika. Mikrokrmilnik nato pošlje

mobilni napravi znak »E«, katerega program na mobilni napravi prepozna in potrdi, da je

črpalka izklopljena.

Ob prejemu ukaza »e«, ki ima ASCII kodo 101, mikrokrmilnik postavi priključek PB4 na

nizek nivo, s tem izklopi rele za vklapljanje črpalke preko časovnika. Zatem postavi

priključek PB3 na visok nivo, s tem vklopi rele, ki vklopi črpalko. Nato pa pošlje mobilni

napravi znak »A«, katerega program na mobilni napravi prepozna in potrdi, da je črpalka

vklopljena.

Ob prejemu ukaza »g«, ki ima ASCII kodo 103, mikrokrmilnik postavi priključek PB3 na

nizek nivo in s tem izklopi rele za neposredno vklapljanje črpalke. Mikrokrmilnik nato pošlje

mobilni napravi znak »E«, katerega program na mobilni napravi prepozna in potrdi, da je

črpalka izklopljena.

Page 69: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

55

Slika 6.11: Koda mikrokrmilnika za krmiljenje črpalke

Za gumbe na zaslonu na dotik, na mobilni napravi, ki upravljajo črpalko, smo uporabili

funkcijo OnClickListener, ki preverja, če smo pritisnili gumb. Ko pritisnemo določen gumb,

se izvede koda v oklepajih.

Na sliki 6.12 je prikazana koda za tri gumbe, s katerimi krmilimo črpalko. »Časovnik«

(button3) je gumb, ki ga uporabnik pritisne, če želi, da se bo črpalka vklapljala preko

časovnika. Ko pritisnemo gumb, mobilna naprava pošlje mikrokrmilniku znak »a«, to

mikrokrmilnik prepozna in vklopi rele, ki poveže črpalko na časovnik (še prej pa izklopi rele

za neposredno vklapljanje črpalke).

if (c==97)

PORTB &= ~(1<<PB3);

PORTB |= (1<<PB4);

uart_puts("C");

if (c==99)

PORTB &= ~(1<<PB4);

uart_puts("E");

if (c==101)

PORTB &= ~(1<<PB4);

PORTB |= (1<<PB3);

uart_puts("A");

if (c==103)

PORTB &= ~(1<<PB3);

uart_puts("E");

Page 70: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

56

Če pritisnemo gumb »Izklop« (button4), bo mobilna naprava poslal mikrokrmilniku znaka

»c« in »g«, to mikrokrmilnik prepozna in izklopi rele za vklop črpalke in rele za vklapljanje

črpalke preko časovnika.

Če pritisnemo gumb »Vklop« (button5), bo mobilna naprava poslal mikrokrmilniku znak »e«,

to mikrokrmilnik prepozna in vklopi rele za vklop črpalke (še prej pa izklopi rele za

vklapljanje črpalke preko časovnika).

Slika 6.12: Koda mobilne naprave za krmiljenje črpalke

Slika 6.13 prikazuje tri pogojne stavke if , ki preverjajo, če je mikrokrmilnik poslal znak, ki

mobilni napravi opiše status črpalke:

pogojni stavek if, ki preverja, če je mikrokrmilnik poslal mobilni napravi znak »A«, če

je, se v textView za status črpalke izpiše »črpalka vklopljena«,

pogojni stavek if, ki preverja, če je mikrokrmilnik poslal mobilni napravi znak »C«,

če je, se v textView za status črpalke izpiše »časovnik črpalka«,

button3.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("a"); ); button4.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("c");

sendMessage("g");

); button5.setOnClickListener(new View.OnClickListener() public void onClick(View v) sendMessage("e"); );

Page 71: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

57

pogojni stavek if, ki preverja, če je mikrokrmilnik poslal mobilni napravi znak »E«, če

je, se v textView za status črpalke izpiše »črpalka izklopljena«.

Slika 6.13: Koda mobilne naprave za prikaz statusa črpalke

6.2. Merjenje pH

Ker je napetost s sonde pH premajhna, da bi jo pripeljali neposredno na analogno-digitalni

(ADC) vhod mikrokrmilnika, jo je bilo potrebno ustrezno ojačiti. Najboljša izbira za ojačenje

napetosti s sonde je operacijski ojačevalnik, odločili smo se za LM358. Glavni del vezja je

operacijski ojačevalnik, vezan v neinvertirajočo vezavo. Ojačevalno vezje ima napajalno

napetost Vpoz je +5 V, negativna napajalna napetost Vneg je -5 V.

Glede na to, da je pri sondi pH ena enota pH ekvivalent 60 mV, pri čemer je 0 V, ko je pH=7,

smo se odločili, da če nas pri bazenskih vodah zanimajo vrednosti pH +/- 2 enote pH od 7, se

pravi vrednosti pH od 5 do 9, potem moramo z ojačevalnikom ojačiti napetosti od -120 mV

do +120 mV. Da te vrednosti niso na robu merilnega območja, smo izbrali območje od -

135mV do +135 mV.

if(readMessage.contains("A")) crpalka.setText("črpalka vklopljena"); if(readMessage.contains("C")) crpalka.setText("časovnik črpalka"); if(readMessage.contains("E")) crpalka.setText("črpalka izklopljena");

Page 72: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

58

Slika 6.14: Shema ojačevalnika za ojačenje napetosti s sonde pH

Upor R7 je trimer in se uporablja kot delilnik napetosti v kombinaciji z uporom R6, na njem

je napetost, ki jo potrebujemo za negativni vhod operacijskega ojačevalnika. Na negativni

vhod pripeljemo to negativno napetost, zato ker mora ojačevalnik pH začeti ojačevati prej kot

pri 0 V.

Tako je naša napetost na negativnem vhodu ojačevalnika -135 mV, da pa se jo nastavljati s

trimerjem R7, kar nam omogoča, da lahko v prihodnje po potrebi spremenimo merilno

območje vrednosti pH.

Ker ima napajalnik negativno napetost Vneg = -5 V, smo izbrali upor R6 = 20 kΩ in linearni

trimer R7 = 1 kΩ, tako je s trimerjem enostavno nastaviti negativno napetost, ki jo

potrebujemo za negativni vhod operacijskega ojačevalnika.

Page 73: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

59

Razmerje, ki ga potrebujemo, je -135 mV proti -5 V, torej 1,35 : 50. Upornost R7 smo z

meritvijo nastavili s trimerjem, tako, da smo dobili -135 mV, lahko bi jo izračunali in

uporabili navaden upor. Enako velja za ojačenje, ki se nastavlja s trimerjem R2, vendar smo

želeli, da so možne prilagoditve, zaradi toleranc elementov in zato, da lahko pozneje po želji

širimo in ožimo merilno območje samo z nastavitvijo trimerjev ter s spremembo koeficientov

v enačbi za skaliranje v mikrokrmilniku.

Ojačenje

Ojačevalnik mora ojačiti napetost od -135 mV do +135 mV (razpon 270 mV) v napetost od 0

do 2,56V (saj ima ADC mikrokrmilnika za referenčno napetost 2,56 V). Takoj opazimo, da

mora biti ojačenje:

ojačenje = 𝑈𝑖𝑧ℎ𝑜𝑑𝑛𝑎

𝑈𝑣ℎ𝑜𝑑𝑛𝑎=

2,56

270•10−3 = 9,48

6.1

Formula za ojačenje za neinvertirajoč ojačevalnik:

Ojačenje = 𝑈𝑖𝑧ℎ𝑜𝑑𝑛𝑎

𝑈𝑣ℎ𝑜𝑑𝑛𝑎=

𝑅1+𝑅2+𝑅3+𝑅4

𝑅4

6.2

R2 je trimer, s katerim nastavljamo ojačenje. R1 in R3 sta dva 20 kΩ upora. Vrednost trimerja

R2 (če ga nastavimo na maksimalno vrednost) je 47 kΩ.

Tako bi bilo ojačanje pri nastavitvi maksimalnega ojačanja:

ojačenje = 20𝑘+47𝑘+20𝑘+10𝑘

10𝑘=

97𝑘

10𝑘= 9,7

6.3

Ojačenje lahko seveda poljubno zmanjšamo z nastavitvijo trimerja R2 in tako lahko

nastavimo želenih 9,48.

R2 in R7 sta trimerja tudi zato, ker imajo vsi elementi tolerance in zaradi rahlega odstopanja

napajalne napetost (npr.: napajalna napetost, ki naj bi bila 5 V, je v resnici 4,9 V). Zato je

dobro vezje »približno« izračunati, samo izvedbo pa narediti nastavljivo in jo potem v

dejanskem delovanju umeriti.

Page 74: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

60

Skaliranje

Ob vzorčenju napetost iz pH ojačevalnega vezja, mikrokrmilnik pretvori v 10-bitno število.

Skaliranje opisuje postopek pretvorbe tega števila v vrednost pH.

Izhodna napetost iz pH-ojačevalnika Uizh je napetost, ki je priključena na enega izmed

vhodov mikrokrmilnika za analogno–digitalno pretvorbo. Analogno-digitalnemu pretvorniku

smo za referenčno napetost nastavili 2,56 V, zato nas napetost s pH-ojačevalnika zanima le v

območju od 0 do 2,56 V.

Napetost na vhodu ojačevalnika Uvh je napetost, ki bo prišla s sonde pH. V času razvoja smo

napetost s pH-sonde Uvh »simulirali« tako, da smo jo nastavljali z nastavljivim

laboratorijskim napajalnikom, kajti če bi se priklopili na sondo pH, bi imeli konstantno

napetost. Velikost te napetosti bi bila seveda odvisna od vrednosti pH. Da pa bi jo spremenili

(dobili več točk meritve), bi morali vplivati na pH vode, v kateri bi bila sonda, ali pa sondo

potapljati v različne spojine, katerih pH bi nam bil znan.

Ko smo na ojačevalniku nastavili ojačenje in negativno vhodno napetost, smo opravili več

meritev in preverili linearnost, med drugim smo pridobili naslednje vrednosti:

pri 0 V na vhodu je bilo na izhodu ojačevalnika 1,28 V,

pri -136 mV na vhodu je bilo na izhodu 0 V in

pri 146 mV na vhodu je bilo na izhodu 2,56 V.

Grafično predstavitev skaliranja prikazuje slika 6.15. Na črti pH so predstavljene dejanske

vrednosti pH vode, v katero je sonda pH potopljena. Na črti Uvh je predstavljena napetost s

sonde pH, ki je priključena na vhod pH-ojačevalnika. Na črti Uizh je predstavljena napetost

na izhodu pH-ojačevalnika, ki je priključena na ADC priključek mikrokrmilnika. Zadnja črta

na sliki 6.15 predstavlja 10-bitno vrednost analogno-digitalne pretvorbe. Ko je izhodna

napetost iz ojačevalnika (to je napetost, ki gre na ADC) 0 V, je vrednost ADC enaka 0, ko

doseže svoj maksimum 2,56 V, pa je vrednost ADC- pretvorbe najvišja, kar je kar je 210 =

1024.

Page 75: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

61

Slika 6.15: Grafična predstavitev skaliranja

Da dobimo velikost pH merilnega območja (MO) naše meritve, od končne vrednosti

odštejemo začetno, kot je razvidno z enačbe (6.4).

MO = 9,43 - 4,73 = 4,7

6.4

S tem smo dobili vrednost MO. To pomeni, da imamo za 4,7 pH enot na razpolago 1024

vrednosti. Tako lahko izračunamo, s koliko moramo deliti ADC-vrednost, da dobimo enote

pH. Enačba (6.5)

1024

𝑥= 4,7

6.5

Iz tega sledi enačba (6.6):

𝑥 =1024

4,7= 217,87

6.6

Zaokrožitev:

x=218

Tako je enačba za pretvorbo ADC vrednosti v pH enote, enačba (6.7):

𝑝𝐻 = 9,4 − 𝑣𝑟𝑒𝑑𝑛𝑜𝑠𝑡 𝐴𝐷𝐶

218

6.7

0

9,43

-136

0

7

512

0

1,28 2,56

146

4,73

1024

Uizh [V]

Uvh

pH

ADC

vrednost

Page 76: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

62

Z enačbo (6.7) bi dobili dejansko vrednost pH, ampak bi morali preko BlueTooth pošiljati

dodaten znak, decimalno vejico, in mikrokrmilnik ne bi mogel več računati s (celoštevilčno)

spremenljivko tipa integer (potrebovali bi tip npr. float ali double). Zato smo se odločili, da

mikrokrmilnik pošilja vrednost pH, ki je desetkrat večja kot dejanski pH, nato pa jo na

sprejemni strani mobilna naprava deli z deset (oziroma v niz, vrine znak decimalne vejice).

Enačba za desetkrat večjo pH vrednost (6.8):

Z enačbo (6.8) dobimo z 10-bitne ADC-vrednosti, dejansko vrednost pH, ki jo, ko jo dobimo

preko BT na mobilno napravo, moramo le še deliti z 10.

Z mobilno napravo dejansko ne delimo vrednosti (zaradi načina zaokroževanja), ampak v niz,

ki je polje znakov, vrinemo znak decimalne vejice, saj vemo, da je v našem primeru vrednost

pH vedno sestavljena iz dveh števil, tako se vejica vrine vedno na isto mesto v nizu.

Natančneje: sam niz ima začeten znak, dve vrednosti, ki predstavljajo vrednost pH ter končen

znak. Znak decimalne vejice, je potrebno vriniti med dve števili, ki predstavljata vrednost

pH.

Da ločimo vrednosti, ki jih mikrokrmilnik pošilja za prikaz pH, in vrednosti, poslane za

prikaz potenciala redoks, in zato da naša aplikacija na mobilni napravi zazna, kdaj je dobila

celoten niz znakov, smo uporabili »posebne znake« za določitev začetka in konca niza znakov

za posamezno vrednost pH, potenciala redoks in temperature. Tako mikrokrmilnik doda znak

pred začetkom vrednosti pH, vrednosti potenciala redoks in temperature ter na koncu

vrednosti pH, vrednosti potenciala redoks in temperature.

Za te znake smo izbrali znake, ki se nikoli ne pojavljajo v vsebini ostalih sporočil. Tako smo

za začetni znak pH izbrali »:«, za končni znak pH pa ».«.

V kodi mikrokrmilnika je celoštevilčena (int) spremenljivka »izmen«, ta je števec, ki se

poveča za ena vsakič, ko se izvede glavni del programa. Ko števec prešteje do tri, se zopet

resetira na ena (slika 6.16). Ta števec uporabljamo, zato da s pogojnimi stavki določamo, kdaj

bomo skalirali in pošiljali vrednosti pH, potenciala redoks in temperature. Če tega števca in

pogojnih stavkov ne bi bilo, bi se vse tri vrednosti (pH, redoks, temperatura) pošiljale v

𝑝𝐻 = 94 − 𝑣𝑟𝑒𝑑𝑛𝑜𝑠𝑡 𝐴𝐷𝐶

22

6.8

Page 77: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

63

vsakem »ciklu« programa, kar pa se je izkazalo moteče na strani mobilne naprave, saj je

takšna frekvenca osveževanja podatkov moteča.

Slika 6.16: Števec »izmen«

Na sliki 6.17 je prikazan diagram poteka, ko je števec »izmen«:

enak 1, se izvede koda za AD- pretvorbo, skaliranje in pošiljanje vrednosti pH,

enak 2, se izvede koda za AD-pretvorbo, skaliranje in pošiljanje vrednosti potenciala

redoks,

enak 3 (oziroma če ni 1 in ni 2 »else« ), se izvede koda za pošiljanje vrednosti

temperature.

Ko se izvede katerakoli od treh možnosti, se program vrne na začetek glavnega programa.

Na sliki 6.18 je prikazana koda mikrokrmilnika za skaliranje in pošiljanje vrednosti pH. Na

začetku kode vidimo pogojni stavek if, ki preverja, če je vrednost spremenljivke »izmen«

enaka 1, če je, se izvede koda za AD-pretvorbo, skaliranje in pošiljanje vrednosti pH.

Najprej se naredi analogno-digitalna pretvorba napetosti na priključku, ki je priklopljen na

izhod ojačevalnika pH,

adc_start_conversion(0);

Vrednost AD-pretvorbe se nato priredi spremenljivki adc_vrednost, zatem pa se izračuna

dejanska (ampak 10-krat večja) vrednost pH po enačbi (6.8) in se priredi spremenljivki z

imenom ph, ki je celo številčni tip (integer).

int adc_vrednost=(adc_value);

int ph= (94-(adc_vrednost/22));

int izmen;

izmen=izmen+1;

if (izmen > 3)

izmen=1;

Page 78: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

64

Slika 6.17: Diagram poteka števca, ki določi, katera veličina se bo poslala v trenutnem ciklu

Nato se nominalna vrednost ph pretvori v niz

itoa( ph, buffer, 10);

Zatem se začne pošiljanje. Najprej se pošlje začetni znak za pH »:«, za njim vrednost pH kot

niz in za njo še končni znak za pH ».«.

uart_puts(":");

uart_puts(buffer);

uart_puts(".");

izmen=1

izmen=2

AD pretvorba, skaliranje

in pošiljanje pH vrednosti

AD pretvorba, skaliranje

in pošiljanje redoks

potenciala

pošiljanje temperature

ne

ne

da

da

Page 79: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

65

Slika 6.18: Koda mikrokrmilnika za zajem preko ADC, pretvorbo in ustrezno pošiljanje

vrednosti pH

Mobilna naprava od mikrokrmilnika (preko BT-modula) dobiva različne nize znakov (za pH,

za potencial redoks, za temperaturo) in znake (za status črpalke in 6-potnega ventila), da ve, v

katerem nizu so vrednosti katerih veličin, mora preverjati nize za začetni in končni znak. Tako

za pH preverja, če ima niz znak »:« in znak ».« (vsebovati mora oba, zato vidimo v kodi

logični in (&&). Seveda se ti dodatni znaki ne izpišejo na zaslonu mobilne naprave, zato jih je

treba iz niza znakov (odrezati) odstraniti, preden niz (string) izpišemo. V kodi na sliki 6.19

vidimo ukaze za brisanje začetnega in končnega znaka v nizu.

Slika 6.19: Koda mobilne naprave za preverjanje, če je poslani niz niz pH in odstranjevanje

začetnega in končnega znaka

if(izmen==1)

adc_start_conversion(0);

int adc_vrednost=(adc_value);

int ph= (94-(adc_vrednost/22));

itoa( ph, buffer, 10);

uart_puts(":");

uart_puts(buffer);

uart_puts(".");

if ((readMessage.contains(":")) && (readMessage.contains("."))) String str = readMessage.toString().trim();

if(str.length()!=0) str = str.substring( 0, str.length() - 1 ); str = str.substring(1);

Page 80: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

66

Če bi vrednosti pH slučajno postale večje ali manjše, kot je merilno območje (manj kot 4,9 ali

več kot 9,2), mora program na to opozoriti. Del programa za preverjanje zgornje in spodnje

meje pH ter izpisa vrednosti pH vidimo na sliki 6.20. Meje merilnega območja preverjata dva

pogojna stavka if, ki preverjata, če so vrednosti prišle do roba merilnega območja. Da pa

lahko niz, ki predstavlja vrednost pH, primerjamo, ga moramo najprej pretvoriti v število, ker

je vrednost pH zaenkrat še desetkrat večja, ni decimalne vejice, zato lahko niz pretvorimo v

celoštevilčni tip (integer). Za spodnjo mejo vrednosti pH, ki je 4,9, se tako preverja, če je

število manjše od 49. Za zgornjo mejo vrednosti pH, ki je 9,2, pa se preverja, če je število

večje od 92.

Če je pH pod spodnjo mejo merilnega območja, se na delu zaslona, ki prikazuje pH, izpiše

»pH<4,9«.

Če je pH nad zgornjo mejo merilnega območja, se na delu zaslona, ki prikazuje pH, izpiše

»pH>9,2«.

Če pa je pH znotraj merilnega območja, se na drugo mesto v nizu (ki ima že odrezan začetni

in končni znak), vstavi decimalna vejica. Tako imamo sedaj dejansko vrednost pH na eno

decimalko. Na delu zaslona, ki prikazuje pH, se izpiše »ph:« in dejanska vrednost pH z eno

decimalko.

Slika 6.20: Koda mobilne naprave za izpis vrednosti pH

Primer, ko je pH = 7,8 :

int stevilo=Integer.parseInt(str.replaceAll("[\\D]","")); if(stevilo>92) text.setText("pH>9,2"); else if(stevilo<49) text.setText("pH<4,9"); else String x=str; x = x.substring(0, 1) + "," + x.substring(1, x.length()); text.setText("ph: "+ x);

;

Page 81: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

67

Mikrokrmilnik pošlje vrednost pH 10-krat večjo in z dvema ločilnima znakoma: ;78. (Tabela

6.1)

Tabela 6.1: Niz za pH, poslan z mikrokrmilnika

znak:1 znak:2 znak:3 znak:4

; 7 8 .

Mobilna naprava odreže prvi in zadnji znak, tako dobi vrednost 78, nato vstavi decimalno

vejico med prvi in drugi znak (na 2. mesto niza), tako dobimo vrednost 7,8. Preden jo izpiše,

pa še doda tekst »pH: «, izpis na zaslonu je tako: pH: 7,8

6.3. Merjenje potenciala redoks

Pri vodah v bazenih nas potencial redoks zanima v območuju od 630 mV do 850 mV.

Analogno-digitalni pretvornik v mikrokrmilniku ima za referenčno napetost napetost 2,56 V.

To pomeni, da smo morali narediti ojačevalnik, ki bo (linearno) ojačil vhodno napetost od 630

mV do 850 mV, na napetost na izhodu od 0 V do 2,56 V.

Za ojačenje je bil najbolj primeren operacijski ojačevalnik. Izbrali smo operacijski

ojačevalnik LM 358, saj je cenovno ugoden in za napajanje potrebuje le +5 V. Operacijski

ojačevalnik je vezan v neinvertirajočo vezavo.

Napetost na negativnem vhodu operacijskega ojačevalnika nam služi kot (»offset«/

»trashold«) meja, ki nam pove, kdaj bo ojačevalnik začel ojačevati.

Shema ojačevalnika potenciala redoks je prikazana na sliki 6.21. Upori R5, R6 in R7

sestavljajo delilnik napetosti. Delilnik napetosti je priklopljen na Vpoz (5 V) in na maso.

Upora R6 in R7 sta trimerja, R6 je za grobo nastavitev napetosti, R7 pa za fino nastavitev. S

pravo nastavitvijo trimerjev dosežemo ustrezen padec napetosti, tako da na uporu R7 dobimo

želeno napetost, ki jo »peljemo« na negativni vhod operacijskega ojačevalnika. Ta napetost je

630 mV oziroma malo manj (620 mV), tako da so meritve pri 630 mV v MO.

Page 82: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

68

Slika 6.21: Shema ojačevalnika potenciala redoks

Ojačenje

Ojačevalnik mora ojačiti napetost s sonde redoks (ta se giblje od 630 do 850 mV) na napetost

za analogno digitalni konverter (od 0 do 2,56 V).

Tako lahko po enačbi (6.9) izračunamo potrebno ojačenje ojačevalnika:

Vhodna napetost v enačbi (6.9) je 220 mV, saj je 850 mV -630 mV = 220 mV.

Ojačenje = 𝑈𝑖𝑧ℎ𝑜𝑑𝑛𝑎

𝑈𝑣ℎ𝑜𝑑𝑛𝑎 =

2,56

220•10−3= 11,63

6.9

Ker želimo rahlo razširiti merilno območje, zato da 630 mV ni robna vrednost, se bi v enačbi

(6.9) delilo z malo več kot 220 • 10−3, tako bi ojačenje bilo manj kot 11,63. R3 je trimer, s

katerim nastavljamo ojačenje.

Vsi izračuni so samo zato, da smo ugotovili vrednosti elementov, točne dejanske vrednosti pa

so umerjene s trimerji. To smo naredili tako, da smo opazovali napetost na vhodu

ojačevalnika na katerega je bila priključena napetost z nastavljivega laboratorijskega

Page 83: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

69

napajalnika, ki je simulirala sondo in prikaz na mobilni napravi. Na mobilni napravi je v tej

fazi bila prikazana vrednost 10-bitne AD-pretvorbe, brez skaliranja. Trimerje smo nastavljali

tako, da so se ujemale vrednosti napetosti na vhodu ojačevalnika in vrednosti, prikazane na

mobilni napravi. Ujemanje vrednosti smo najbolj opazovali pri vrednosti 0 in 1024, saj sta ti

vrednosti minimum in maksimum, potek vrednosti med njima pa je linearen.

Trimerje smo nastavili tako, da smo na vhod ojačevalnika priključili napetost 620 mV, nato

nastavljali trimerje in opazovali, kdaj se na mobilni napravi začne število 0 spreminjati v

večja števila. Nato smo na vhod ojačevalnika priključili napetost 850 mV in nastavljali

trimerje in opazovali kdaj se na mobilni napravi pojavi vrednost 1024.

Primer nastavitve napetosti, ki je speljana na negativni vhod operacijskega ojačevalnika

(trimer R6 in R7) in ojačenja (trimer R3), vidimo na sliki 6.22.

Slika 6.22: Shema ojačevalnika potenciala redoks z nastavljenimi trimerji za ojačenje in za

napetost na negativni vhod

Ko imamo nastavljene trimerje, lahko po enačbi (6.10) izračunamo ojačenje.

Page 84: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

70

Ojačenje = 𝑈𝑖𝑧ℎ𝑜𝑑𝑛𝑎

𝑈𝑣ℎ𝑜𝑑𝑛𝑎 =

𝑅2+𝑅3+𝑅4+𝑅1

𝑅1 =

47𝑘+20𝑘+20𝑘+10𝑘

10𝑘= 9,7

6.10

Čeprav že z meritev poznamo napetost, ki gre na negativni vhod operacijskega ojačevalnika

(620 mV), jo lahko še izračunamo, upoštevajoč nastavitev trimerjev. Razmerje upornosti v

delilniku napetosti je razvidno iz enačbe:

4,7 kΩ + 2 kΩ : 1 k Ω = 6,7 k Ω : 1 kΩ

6.11

Celotni delilnik napetosti je priključen na napetost 5 V in ima (celotno) upornost 7,7kΩ

(enačba 6.12)

4,7 kΩ + 2 kΩ + 1 k Ω = 7,7 kΩ.

6.12

R7 ima upornost 1 kΩ, tako lahko napetost na uporu R7 izračunamo po enačbi

𝑈𝑅7 =5

7,7= 0,649 𝑉 = 649 𝑚𝑉

6.13

Na sliki 6.23 vidimo, da ojačevalnik značne ojačevati prej kot pri 649 mV, in sicer pri 620

mV. Do napake v izračunu je najverjetneje prišlo zato, ker smo v enačbi (slika 6.13)

predpostavili, da imamo napajanje natančno 5 V, v resnici pa je bilo malo manj.

Zaradi takšnih odstopanj je bilo pametno, da smo vezje umerili z trimerji, ne pa uporabili le

elemente z izračunanimi vrednostmi.

Skaliranje

Na vhodu in izhodu ojačevalnika smo imeli merilna inštrumenta (V-meter). Ko smo

ojačevalnik nastavili s trimerji (in potenciometrom), smo izmerili, da (pri nastavitvah, kot so

na sliki 6.22) začne ojačevati pri 620 mV vhodne napetosti in doseže maksimum (2,56 V

napetosti na izhodu) pri 858 mV vhodne napetosti (slika 6.23).

Page 85: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

71

Slika 6.23: Grafični prikaz meritev potrebnih za skaliranje redoks potenciala

Po enačbi (6.14) smo izračunali območje, ki ga ojačevalnik ojačuje:

858 mV – 620 mV = 238 mV

6.14

Po enačbi (6.15) smo izračunali faktor za skaliranje:

x = 238

1024= 0,232

6.15

Tako smo dobili celotno enačbo (6.16):

Potencial redoks = ((ADC_vrednost • 23 ) / 100 ) + 620

6.16

ADC-vrednost je vrednost analogno-digitalne pretvorbe.

V enačbi (6.16) nismo množili z 0,238, temveč s 23, in nato delili s 100, tako smo lahko delali

s celoštevilčno spremenljivko tipa integer (int).

Na sliki 6.24 je prikazana koda mikrokrmilnika za skaliranje in pošiljanje vrednosti potenciala

redoks. Najprej vidimo pogojni stavek else if, ki preverja, če je za pošiljanje vrednosti mobilni

napravi na vrsti redoks potencial (slika 6.17). Če je, se izvede koda za analogno-digitalno

pretvorbo, skaliranje in pošiljanje vrednosti potenciala redoks.

Najprej se naredi analogno-digitalna pretvorba napetosti na priključku, ki je priklopljen na

izhod ojačevalnika potenciala redoks,

0

620

0

512

1,28 2,56

858

1024

Uizh

Uvh

ADC

vrednost

Page 86: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

72

adc_start_conversion(1);

Vrednost AD-pretvorbe se nato priredi spremenljivki »redoks«, zatem pa se izračuna

dejanska vrednos potenciala redoks po enačbi (6.16) in se priredi spremenljivki z imenom

»redoks2«, ki je celoštevilčni tip (integer).

int klor2 = ((klor*23)/100)+620;

Nato se nominalna vrednost potenciala redoks pretvori v niz.

itoa( klor2, buffer, 10);

Nato se začne pošiljanje. Najprej se pošlje začetni znak za potencial redoks »;«, za njim

vrednost redoks potenciala kot niz in za njo še končni znak za potencial redoks »~«.

Slika 6.24: Koda mikrokrmilnika za analogno-digitalno pretvorbo, skaliranje in pošiljanje

vrednosti potenciala redoks

Mobilna naprava od mikrokrmilnika preko BT modula dobiva različne nize znakov (za pH, za

potencial redoks in za temperaturo) in znake (za status črpalke in 6-potnega ventila). Da lahko

prepozna, v katerem nizu so vrednosti katerih veličin, mora preverjati nize za začetni in

končni znak. Tako za potencial redoks preverja, če ima niz znak »;« in znak »~«, vsebovati

else if (izmen==2)

adc_start_conversion(1);

int redoks=(adc_value);

int redoks2 = ((redoks*23)/100)+620;

itoa( redoks2, buffer, 10);

uart_puts(";");

uart_puts(buffer);

uart_puts("~");

Page 87: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

73

mora oba, zato je v kodi logični in (&&). Seveda se ti dodatni znaki ne izpišejo na zaslonu

mobilne naprave, zato jih je treba iz niza znakov odstraniti, preden niz izpišemo. V kodi na

sliki 6.25 vidimo ukaze za brisanje začetnega in končnega znaka v nizu.

Slika 6.25: Koda mobilne naprave za preverjanje, če je poslani niz niz potenciala redoks in

odstranjevanje začetnega in končnega znaka

Če bi vrednost potenciala redoks slučajno postala večja ali manjša, kot je merilno območje, to

je manj kot 625 mV ali več kot 850 mV, mora program na to opozoriti. Del programa za

preverjanje zgornje in spodnje meje potenciala redoks ter izpisa vrednost potenciala redoks

vidimo na sliki 6.26. Meje merilnega območja preverjata dva pogojna stavka, ki preverjata, če

so vrednosti prišle do roba merilnega območja. Da pa lahko niz, ki predstavlja vrednost

potenciala redoks, primerjamo, ga moramo najprej pretvoriti v število. Niz pretvorimo v

celoštevilčni tip. Za spodnjo mejo vrednosti potenciala redoks, ki je 625 mV, se tako preverja,

če je število manjše od 625. Za zgornjo mejo vrednosti potenciala redoks, ki je 850 mV, pa se

preverja, če je število večje od 850.

Če je redoks potencial pod spodnjo mejo merilnega območja, se na delu zaslona, ki prikazuje

potencial redoks, izpiše »redoks<625«.

Če je potencial redoks nad zgornjo mejo merilnega območja, se na delu zaslona, ki prikazuje

potencial redoks, izpiše »redoks>850«.

Če je potencial redoks znotraj merilnega območja, pa se na delu zaslona, ki prikazuje

potencial redoks, izpiše »redoks:« in dejanska vrednost potenciala redoks.

if ((readMessage.contains(";"))&&(readMessage.contains("~"))) String str = readMessage.toString().trim();

if(str.length()!=0) str = str.substring( 0, str.length() - 1 );

Page 88: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

74

Slika 6.26: Koda mobilne naprave za izpis vrednosti potenciala redoks

6.4. Merjenje temperature

Za merjenje temperature smo uporabili digitalni temperaturni senzor DS18B20, saj obstaja

vodotesna različica, je cenovno ugoden (6 EUR) in ima dovolj veliko temperaturno območje.

Pri testiranju prototipa smo uporabljali navaden temperaturni senzor zaradi možnosti takojšnje

nabave, delovanje vodoodpornega je popolnoma enako, tako da se pozneje samo zamenjata.

Glavne značilnosti temperaturnega senzorja DS18B20:

Komunikacija preko enožičnega vodila (1-wire), senzor z mikrokrmilnikom

komunicira po eni liniji. Da lahko po eni liniji pošiljamo podatke (v obe smeri),

potrebujeta senzor in mikrokrmilnik tudi skupno maso. Mikrokrmilnik je vedno

gospodar (master), senzor ali več senzorjev pa so vedno sužnji (slave).

Vsak senzor DS18B20 ima 64-bitno edinstveno serijsko številko, shranjeno v svojem

pomnilniku ROM (Read-only memory), zato, da lahko na isto linijo oz. vodilo

povežemo več senzorjev, saj 64-bitno serijsko številko uporabljamo za naslavljanje.

Ne potrebuje nobenih dodatnih zunanjih komponent, razen enega dvižnega upora.

Napajalna napetost je od 3,0 V do 5,5 V, napajan pa je lahko tudi preko podatkovne

linije.

Merilno območje temperature je od -55 °C do +125 °C.

Natančnost meritev je ±0.5 °C v območju od -10 °C do +85 °C.

Uporabnik lahko z bit-oma R1 in R0 izbira resolucijo temperature, vendar večja kot je

resolucija, daljši je čas pretvorbe (tabela 6.2).

int stevilo=Integer.parseInt(str.replaceAll("[\\D]","")); if(stevilo>850) text2.setText("klor>850"); else if(stevilo<625) text2.setText("klor<625"); else text2.setText("klor" + str);

;

Page 89: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

75

Tabela 6.2: Resolucija temperature in čas pretvorbe

R1 R0 Resolucija v

BIT-ih

Maksimalen čas pretvorbe

0 0 9 93.75ms (tCONV/8)

0 1 10 187.5ms (tCONV/4)

1 0 11 375ms (tCONV/2)

1 1 12 750ms (tCONV)

Bit-a R1 in R0 sta 6. in 5. bit konfiguracijskega registra (Configuration Register),

ostalih bit-ov v tem registru ne moremo spreminjati, saj jih potrebuje senzor za interno

uporabo (slika 6.27).

Slika 6.27: Konfiguracijski register

Možnost alarma: uporabnik lahko v senzor shrani spodnjo in zgornjo vrednost alarma,

tako aplikacijam, ki niso narejene za zajemanje temperature, ampak so narejene za

zaznavanje, če temperatura preseže določeno vrednost, ni potrebno kontinuirano brati

temperature, saj senzor sproži »alarm«, ko je vrednost, ki jo določimo, presežena.

Vrednosti Th (alarm high trigger register) in Tl (alarm low trigger register) EEPROM-

ov (Electrically Erasable Programmable Read-Only Memory) se shranijo v beležko

(scratchpad) pomnilnik. Beležka je pomnilnik SRAM (Static Random Access

Memory). Poleg Th in Tl se v pomnilnik beležka shranijo tudi vrednosti

konfiguracijskega registra.

Na sliki 6.28 lahko vidimo posamezne zloge pomnilnika beležka:

Zloga 0 in 1 sta namenjena hranjenju temperature,

v zlogu 0 se hranijo nižje uteženi biti (LSB – Least Significant Byte), v zlog-u 1 pa

višje uteženi biti (MSB – Most Significant Byte).

Ko senzor pošilja podatek o temperaturi mikrokrmilniku, začne z najmanj uteženim

bit-om in konča z najvišje uteženim bitom.

Page 90: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

76

Zloga 2 in 3 sta namenjena hranjenju alarmnih vrednosti Th in Tl.

Zlog 4 je namenjen hranjenju vrednosti Configuration registra.

Zlogi 5, 6 in 7 so rezervirani za senzor.

Zlog 8 za CRC (Cyclic Redundancy Check) kodo za zaznavanje napak.

Slika 6.28: Beležka

Enožično vodilo (protokol)

Najprej mikrokrmilnik kot gospodar (master) izvede reset (oz. inicializacijo) enožičnega

vodila. To naredi tako, da postavi podatkovno linijo na nizek nivo za 480 μs. Počaka 70 μs,

nato pa vzorči podatkovno linijo. Če je vrednost vzorčenja 0, pomeni, da je senzor (ali kakšna

druga naprava) prisoten na vodilu. Nato sledi zakasnitev 410 μs. Nato mora mikrokrmilnik

poslati ukaz, da sproži branje edinstvene 64-bitne kode senzorja (naprave).

Primeri ukazov za DS18B20:

Search ROM je ukaz za pridobitev edinstvene 64-bitne kode senzorja, če je na vodilu

več senzorjev (naprav). SEARCH ROM ukaz = [F0h].

Read ROM je ukaz za pridobitev edinstvene 64-bitne kode senzorja, če je na vodilu en

sam senzor (naprava). Ukaz READ ROM = [33h].

Page 91: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

77

Alarm Search je ukaz za pridobitev edinstvene 64-bitne kode senzorja, pri katerem se

je sprožil alarm pri zadnji pretvorbi temperature (zaradi presežene vrednosti Th ali Tl).

Ukaz ALARM SEARCH = [ECh].

Match ROM je ukaz, s katerim naslavljamo senzor z edinstveno kodo. MATCH ROM

ukaz = [55h].

Ko želi mikrokrmilnik komunicirati s senzorjem, na vodilo pošlje njegov edinstven 64-bitni

naslov. Sedaj mikrokrmilnik komunicira samo z naslovljenim senzorjem, ostali se ne odzivajo

na podatke na liniji. Ko mikrokrmilnik ponovno resetira omrežje, so zopet vsi senzorji (oz.

naprave) v stanju pripravljenosti na klic mikrokrmilnika.

Branje bita se izvede tako, da mikrokrmilnik podatkovno linijo postavi na nizek nivo za 6 μs

in sprosti vodilo, počaka 9 μs ter nato vzorči podatkovno linijo.

Da senzorju pošljemo bit z vrednostjo 1, mora mikrokrmilnik (master) postaviti podatkovno

linijo na nizek nivo za 6μs, zatem pa za 54 μs na visoki nivo.

Da senzorju pošljemo bit z vrednostjo 0, mora mikrokrmilnik postaviti podatkovno linijo na

nizek nivo za 50 μs, zatem pa na visok nivo za 10 μs.

Tako je za vsak bit predviden časovni okvir (reža) 60 μs, to je standardni časovni okvir,

obstaja tudi časovni okvir »overdrive«, ta traja le 8 μs.

Primer pošiljanja bita 1 in 0 v časovnem okvirju 60 μs prikazuje slika 6.29.

Slika 6.29: Logična 1 in logična 0 pri standardnem protokolu enožičnega vodila

Page 92: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

78

Ob vsakem začetku pošiljanja bita pri padajoči fronti signala se zažene monostabilni

multivibrator v senzorju (suženjski napravi) in izvede se sinhronizacija, zato ne potrebujemo

sistemske ure za povezovanje senzorjev (naprav) na enožično vodilo [8].

Ukazi za senzor DS18B20

Za nas so pomembni le trije ukazi:

»Convert temperature« je ukaz, ki se uporabi, da senzor izmeri temperaturo.

CONVERT T ukaz = [44h].

»Read scratchpad« je ukaz, ki se uporabi za branje vrednosti iz pomnilnika beležka.

Ukaz READ SCRATCHPAD = [BEh].

»Write scratchpad« je ukaz, ki se uporabi, če želimo vpisovati vrednosti v pomnilnik

beležka. Ukaz WRITE SCRATCHPAD = [4Eh].

Za pridobitev vrednosti temperature s senzorja, moramo izvesti tri korake:

1. Inicializacija, je že opisana na začetku opisa enožičnega vodila (protokola) kot reset,

ne kot inicializacija.

2. Ukaz ROM (ROM Command), opisani so pod naslovom enožično vodilo (protokol),

kot primeri ukazov za DS18B20, to so Search ROM, Read ROM itd.

3. Funkcijski ukaz za senzor DS18B20 (DS18B20 Function Command), opisani zgoraj,

to so Convert t itd.

Za pridobivanje vrednosti temperature s senzorja z mikrokrmilnikom, smo uporabili že

obstoječi program za senzor DS18B20 in ga priredili za naše potrebe. Tako smo že imeli

funkcijo, ki nam prebere zloga 0 in 1 s pomnilnika beležka in nato višje utežene bite množi ali

naredi logične premike ter prišteje nižje utežene bite, da dobimo vrednost temperature.

Zloga 0 in 1 s pomnilnika beležka sta dva 8-bitna registra (skupaj 16 bitov), biti, ki ostanejo

(tudi pri najvišji resuluciji temperature se porabi le 12 bitov), so predznak. Predznak nam

pove, če je nominalna vrednost temperature vrednost nad ničlo + ali pod ničlo -. Za pozitivne

vrednosti temperature so ti biti 0, za negativne vrednosti pa so ti biti postavljeni na 1.

Page 93: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

79

V kolikor izberemo manjšo resolucijo temperature kot 12 bitov, so določeni nižjeuteženi biti

neveljavni:

pri 11-bit resoluciji, je bit 0 nedefiniran,

pri 10-bit resoluciji, sta bita 1 in 0 nedefinirana,

pri 9-bit resoluciji, so biti 2, 1 in 0 nedefinirani.

Na sliki 6.30 je prikazan temperaturni register, pri čemer S (sign) predstavlja bite, ki

predstavljajo predznak.

Slika 6.30: Temperaturni register senzorja DS18B20

Simulacija

Ker je temperaturni senzor DS18B20 vsebovan v simulatorju ISIS proteus, smo delovanje

kode mikrokrmilnika najprej preverili v simulatorju. Dq priključek temperaturnega senzorja

smo povezali na 28. priključek mikrokrmilnika (PC5), to je naše enožično vodilo. Napajalni

priključek senzorja Vdd (oziroma v simulatorju označen Vcc) smo povezali na napajalno

napetost + 5 V in priključek GND (ground) povezali na maso. Med linjo enožičnega vodila

(Dq) in napajalno linijo (Vcc) smo povezali 4,7 kΩ dvižni upor. Povezava senzorja na

mikrokrmilnik je prikazana na sliki 6.31.

Ob zagonu simulacije, smo opazili, da nam pošiljanje takšnega niza temperature na USART v

Virtual Terminalu izpiše temperaturo s predznakom, z decimalno piko, s štirimi decimalkami

ter s presledkom in znakom »C« (celzija). Voda v bazenu ni nikoli pod ničlo (saj bi zmrznila),

zato je pošiljanje predznaka redundantno. Ker ima senzor za merjenje temperature natančnost

le do ±0.5 °C, je tudi izpis decimalk nepotreben. Znak °C lahko dodamo v izpis na mobilni

napravi, zato nam tudi znaka C (in presledka) ni potrebno pošiljati preko USART-a in BT.

Page 94: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

80

Slika 6.31: Povezava temperaturnega senzorja DS18B20 na mikrokrmilnik

Na sliki 6.32 je temperaturni senzor DS18B20 označen z U2. V simulaciji je na elementu, ki

simulira temperaturni senzor, tipka za povečevanje temperature, tipka za zmanjševanje

temperature in zaslon, ki nam prikaže, kakšno temperaturo trenutno simuliramo. V tem

primeru smo simulirali 32,0 °C.

Na sliki 6.32 je tudi Virtual Terminal, nanj je mikrokrmilnik preko USART-a poslal: vrednost

pH, vrednost redoks potenciala, temperaturo in nato zopet vrednost pH itd., dokler nismo

ustavili simulacije. Razvidno je, da je vrednost pH 10-krat večja in opremljena z začetnim

znakom »:« in končnim znakom ».«, tako kot smo opisali v poglavju 6.2. Razvidno je, da je

vrednost redoks potenciala opremljena z začetnim znakom »;« in končnim znakom »~«, kot

smo opisali v poglavju 6.3. Same vrednosti pH (94) in potenciala redoks (849) so odvisne od

nastavitev potenciometrov RV1 in RV2 (slika 6.31), saj le-ta vplivata na napetosti, ki so

priključene na ADC mikrokrmilnika. S spreminjanjem RV1 in RV2 smo simulirali različne

napetosti, ki bi jih ustvarili sondi. V oknu virtual terminala je razviden še prikaz temperature.

Temperatura je prikazana s predznakom, decimalno piko, štirimi decimalkami, presledkom in

znakom »C«.

Page 95: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

81

Slika 6.32: Primer vrednosti, ki jih mikrokrmilnik pošlje preko usart-a (simulacija v ISIS

Proteus)

Ker smo želeli preko BT pošiljati le niz, ki predstavlja prebrano temperaturo, nismo pa želeli

pošiljati še predznaka, decimalne pike, štiri decimalke, presledka in znaka »C«, smo iz

celotnega niza, kot ga dobimo z funkcijo therm_read_temperature (tabela 6.3) vzeli le 2. in 3.

znak. Primer v tabeli 6.3 je za temperaturo 32 °C.

Tabela 6.3: Temperaturni niz, ki ga dobimo z uporabo funkcije therm_read_temperature

1.znak 2.znak 3.znak 4.znak 5.znak 6.znak 7.znak 8.znak 9.znak 10.znak

+ 3 2 . 0 0 0 0 C

Na sliki 6.33 je prikazana koda mikrokrmilnika za zajem temperature in pošiljanje vrednosti

temperature (preko usart-a in preko BT) na mobilno napravo.

Začne se s stavkom else, saj, če v trenutnem ciklu izvajanja kode ni za pošiljanje na vrsti pH

ali potencial redoks, potem je na vrsti temperatura, kot je razvidno z diagrama na sliki 6.17.

Page 96: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

82

Za tem je razvidna funkcija therm_read_temperature z argumentom x, ko se le-ta izvede,

priredi spremenljivki x vrednost temperature (s predznakom, štirimi decimalkami, presledkom

in znakom »C« ). Zatem znaku (char) zn1 priredimo vrednost znaka na 2. mestu niza x. Zatem

znaku (char) zn2 priredimo vrednost znaka na 3. mestu niza x.

Nato je razvidno pošiljanje znakov preko usart-a. Najprej se pošlje začetni znak za pošiljanje

temperature »t«, nato dva znaka (zn1 in zn2), ki predstavljata vrednost temperature in zatem

še končni znak za pošiljanje temperature »T«. (Kot smo že omenili v prejšnjih poglavjih,

začetni in končni znak potrebujemo zato, da mobilna naprava prepozna, kdaj se pošiljajo

vrednosti, katere veličine, in zato da mobilna naprava prepozna, kdaj se prenos določene

veličine začne in kdaj konča).

Slika 6.33: Koda mikrokrmilnika za zajem in pošiljanje temperature

Na sliki 6.34 je prikazana simulacija novega niza temperature, ki ga pošljemo preko usart in

BT-modula mobilni napravi. Kot je razvidno s slike 6.34, smo v simulatorju imeli nastavljeno

temperaturo 32 °C. Kot je razvidno z Virtual Terminala, je sedaj niz vrednosti temperature

opremljen z začetnim znakom »t« in končnim znakom »T«, sama vrednost temperature pa je

le dvomestno število brez predznaka, v tem primeru »32«.

else

therm_read_temperature(x);

char zn1=x[1];

char zn2=x[2];

uart_puts("t");

uart_putc(zn1);

uart_putc(zn2);

uart_puts("T");

Page 97: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

83

Slika 6.34: Primer novega niza za temperaturo, ki se pošlje preko usart-a (simulacija v ISIS

Proteus)

Ker se je simulacija izvajala pravilno, smo senzor (in 4,7 kΩ dvižni upor) povezali na

mikrokrmilnik (enako kot v simulatorju). Razpored priključkov senzorja DS18B20 v ohišju

TO-92 je razviden s slike 6.35. Vse je delovalo skladno s pričakovanji.

Slika 6.35: Razpored priključkov senzorja DS18B20 v TO-92 ohišju

Page 98: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

84

Mobilna naprava od mikrokrmilnika preko BT-modula dobiva različne nize znakov in znake.

Nizi znakov predstavljajo vrednosti: pH, potencial redoks in temperaturo. Znaki pa: status

črpalke in 6-potnega ventila. Da mobilna naprava prepozna, v katerem nizu so vrednosti

katerih veličin, mora preverjati nize za začetni in končni znak. Tako za vrednost temperature

preverja, če ima niz začetni znak za temperaturo »t« in končni znak za temperaturo »T«.

Vsebovati mora oba, zato vidimo v kodi logični in (&&) med obema pogojnima stavkoma.

Seveda se ti dodatni znaki ne izpišejo na zaslonu mobilne naprave, zato jih je treba iz niza

znakov odstraniti, preden niz izpišemo. V kodi na sliki 6.36 so prikazani ukazi za brisanje

začetnega in končnega znaka v nizu. Nato je prikazana koda za izpis temperature. Na delu

zaslona, ki prikazuje temperaturo, se izpiše »temp:« in nato dejanska vrednost temperature,

izmerjene s senzorjem, brez predznaka in decimalk.

Slika 6.36: Koda mobilne naprave za zaznavo poslanega niza za temperaturo in izpis

temperature

Slika 6.37 prikazuje aplikacijo STROJNICA naloženo na mobilni telefon Samsung Galaxy

Trend Lite GT-S7390 z operacijskim sistemom Android 4.1.2.

Na vrhu zaslona so izpisane vrednosti temperature, redoks potenciala in vrednosti pH. Spodaj

levo so trije gumbi za krmiljenje črpalke: vklop, časovnik, izklop. Spodaj desno so trije gumbi

za krmiljenje 6-potnega ventila: filtriranje, praznjenje, pranje filtra.

Kot je razvidno s slike 6.37 je oznaka »temperatura« skrajšana v temp in prikazane vrednosti

nimajo enot, razlog za to je, da je tekst na mobilnem telefonu lahko večji, saj uporabnik

aplikacije pozna enote in ima raje večji tekst.

If ((readMessage.contains("t")) && (readMessage.contains("T"))) String str = readMessage.toString().trim(); if(str.length()!=0) str = str.substring( 0, str.length() - 1 ); temperatura.setText("temp:" + str);

Page 99: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

85

Slika 6.37: Aplikacija STROJNICA naložena na mobilni telefon

Če bi želeli prikazati še enote, bi le spremnili vsa tri textView polja in po potrebi velikost

pisave (android:textSize). Ker je na zaslonu mobilnega telefona Samsung S7390 (pri tej

velikosti pisave) bilo še dovolj prostora, smo temperaturi dodali enoto °C (slika 6.38).

Slika 6.38: Temperaturi dodali enoto °C

Page 100: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

86

7. REZULTATI

V tem poglavju so podani rezultati meritev vrednosti pH, potenciala redoks in temperature.

7.1. Meritev vrednosti pH

Na vhod ojačevalnika za ojačenje napetosti s sonde pH smo priključili nastavljiv

laboratorijski napajalnik s katerim smo simulirali sondo pH. Na vhod ojačevalnika za ojačenje

napetosti s sonde pH smo priključili tudi merilnik napetosti, saj je ta bolj natančen kot

napetost, prikazana na zaslonu laboratorijskega napajalnika. Izmerili smo celotno merilno

območje od -120 mV do +120 mV, torej območje pH od 5 do 9, v enajstih korakih. Ko smo

testirali vrednosti pH manjše od 7, smo na vhodu ojačevalnika pH zamenjali polariteto, saj se

na nastavljivem laboratorijskem napajalniku, ki smo ga uporabljali, ne da nastavljati

negativne napetosti. Tabela 7.1 prikazuje rezultate meritev vrednosti pH. Prvi stolpec

prikazuje vhodno napetost v ojačevalnik pH, to je napetost, ki bi prišla s sonde pH. Drugi

stolpec prikazuje idealni pH, to so matematično izračunane vrednosti pH glede na vhodno

napetost, torej te vrednosti bi bile idealni prikaz vrednosti pH. Tretji stolpec prikazuje

prikazan pH, to so vrednosti pH, ki so se prikazale na zaslonu mobilne naprave (mobilni

telefon z OS Android) v textView-ju za prikaz vrednosti pH v naši aplikaciji. Četrti stolpec

prikazuje absolutno napako. Te vrednosti smo izračunali tako, da smo od vrednosti v stolpcu

»prikazan pH« odšteli vrednosti v stolpcu »idelani pH«. V zadnjem stolpcu vidimo relativno

napako. To so vrednosti absolutnih napak, deljene z vrednostmi iz stolpca »idealni pH« in

množene s sto, da so izražene v odstotkih.

Page 101: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

87

Tabela 7.1: Rezultati meritev pH vrednosti

Vhodna U

[mV]

Idealni pH Prikazan pH Absolutna napaka Relativna napaka v %

-122.9 4.95 5.1 0.15 2.99

-59.7 6.01 6 0.00 -0.08

-37.6 6.37 6.4 0.03 0.41

-18.4 6.69 6.6 -0.09 -1.39

-11.9 6.80 6.7 -0.10 -1.49

10.9 7.18 7.1 -0.08 -1.13

58.7 7.98 7.9 -0.08 -0.98

79.8 8.33 8.2 -0.13 -1.56

84 8.40 8.3 -0.10 -1.19

102.7 8.71 8.6 -0.11 -1.28

119.3 8.99 8.9 -0.09 -0.98

7.2. Meritev potenciala redoks

Na vhod ojačevalnika za ojačenje napetosti s sonde redoks smo priklopili nastavljiv

laboratorijski napajalnik, s katerim smo simulirali sondo redoks. Na vhod ojačevalnika za

ojačenje napetosti z sonde redoks smo priključili tudi merilnik napetosti. Izmerili smo celotno

merilno območje od 620 mV do 850 mV. V tabeli 7.2 vidimo v prvem stolpcu vrednosti

vhodne napetosti v ojačevalnik potenciala redoks, to so napetosti, ki bi prišle s sonde redoks.

V drugem stolpcu vidimo vrednosti potenciala redoks ki so bile prikazane na zaslonu mobilne

naprave v textView-ju za prikaz vrednosti potenciala redoks v naši aplikaciji. V tretjem

stolpcu vidimo absolutno napako. Te vrednosti smo izračunali tako, da smo od vrednosti iz

stolpca »Prikazana U« odšteli vrednosti iz stolpca »vhodna U«. V zadnjem stolpcu je

prikazana relativna napaka. To so vrednosti absolutnih napak deljene z vrednostmi iz stolpca

»vhodna U« in množene s sto, da so izražene v odstotkih.

Page 102: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

88

Tabela 7.2: Rezultati meritev redoks potenciala

Vhodna U [mV] Prikazana U [mV] Absolutna

napaka [mV]

Relativna napaka

[%]

620 620 0 0.00

650 649 -1 -0.15

693 690 -3 -0.43

732 728 -4 -0.55

755 751 -4 -0.53

796 792 -4 -0.50

817 811 -6 -0.73

842 837 -5 -0.59

851 846 -5 -0.59

7.3. Meritev temperature

Senzor smo imeli na sobni temperaturi. V naši aplikaciji na mobilni napravi je bila prikazana

temperatura 23 °C, to se je ujemalo s sobno temperaturo, ki smo jo odčitali s živosrebrnega

termometra. Če smo senzor prijeli, smo videli, da se temperatura povečuje, tako smo videli,

da meritev temperature deluje.

Za natančne meritve z več temperaturnimi koraki čakamo vodoodporni senzor, nato pa bomo

dobili rezultate, tako da bomo senzor in digitalni termometer potopili v posodo z vodo. Voda

bo prej v hladilniku, tako da bodo temperature nizke (okoli 4 °C), potem pa jo bomo počasi

segrevali do npr. 80 °C in pri tem po korakih odčitavali vrednosti. Nato bomo te vrednosti

primerjali z vrednostmi, izpisanimi na zaslonu mobilne naprave.

Da pa smo opravili še nekaj meritev z nižjimi in višjimi temperaturami od sobne temperature,

smo izdelali vodoodporni senzor, tako da smo navaden senzor vstavili v cev in ga zalili s

plastiko. Izdelavo vodoodpornega senzorja prikazujejo slike 7.1, 7.2 in 7.3.

Page 103: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

89

Slika 7.1: Senzor vstavljen v cevko

Slika 7.2: Cevka s senzorjem zalita s splastiko

V tabeli 7.3 so prikazani rezultati meritev temperature. V prvem stolpcu je prikazana

temperatura odčitana na digitalnem termometru, v drugem stolpcu je temperatura, prikazana

na mobilni napravi, v tretjem stolpcu je prikazana absolutna napaka in v zadnjem relativna

napaka.

Page 104: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

90

Slika 7.3: Cevka s senzorjem povita z izolirnim trakom in izolirana s termo skrčljivo cevko

Tabela 7.3: Rezultati meritev temperature

Odčitana

temperatura [°C]

Prikazana

temperatura[°C]

Absolutna

napaka [°C]

Relativna napaka

[%]

6.20 6 -0.20 -3.22

15.50 15 -0.50 -3.22

35.20 35 -0.20 -0.56

Meritev temperature je delovala skladno z pričakovanji. Ker je senzor na mikrokrmilnik

povezan digitalno brez posebnih elementov, lahko predpostavimo, da bi morala biti točnost

takšna, kot jo navaja proizvajalec senzorja, torej ±0.5 °C.

Page 105: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

91

8. SKLEP

Cilj magistrske naloge je bil izdelati prototip strojne in programske opreme, ki bo preko

brezžičnega vmesnika omogočala uporabniku, da lahko preko aplikacije na mobilni napravi

krmili črpalko in 6-potni ventil v strojnici bazena, obenem pa iz strojnice pridobiva podatke o

temperaturi vode, njeni vrednosti pH in vrednosti potenciala redoks. Ta cilj smo dosegli, saj

se krmiljenje črpalke in šest-potnega ventila z uporabo aplikacije na mobilnem telefonu izvaja

skladno z zastavljenimi cilji. Prav tako iz strojnice uspešno dobivamo podatke o temperaturi

vode, njeni vrednosti pH in vrednosti potenciala redoks in jih prikazujemo v okviru aplikacije.

Rezulati meritev so potrdili, da je točnost in natančnost teh vrednosti dovolj dobra. Saj so

vrednosti meritev pH in potenciala redoks dovolj točne in natančne, da uporabnik ve kdaj

mora uporabiti kemikalije za regulacijo kislosti in bazičnosti vode in/ali sredstvo za

dezinfekcijo vode (klor). Najmanj natančna od vseh meritev je bila meritev temperature z

pogreškom 0,5 °C, kar pa je za meitev temperature bazenske vode še sprejemljivo. Če bi

želeli natančneje meriti temperaturo vode bi morali uporabiti drug temperaturni senzor.

V prihodnje bi lahko izdelali tiskanino, saj je celoten prototip narejen na ločenih

eksperimentalnih ploščicah (vezje mikrokrmilnika, vezje ojačevalnika pH, vezje ojačevalnika

potenciala redoks, vezje z releji), ki imajo konektorje in so med seboj povezane z žicami.

Če bi se vezje izdelovalo v večjem številu, bi lahko raziskali možnost uporabe cenejšega

mikrokrmilnika. Cena Atmega8 v DIP-ohišju je od 3 do 4 EUR pri nakupu enega samega

kosa. Prav tako bi bilo ceneje, da bi za krmiljenje tipk 6-potnega ventila za element, ki

omogoča krmiljenje in galvansko ločitev, uporabili optosklopnike namesto relejev.

Lahko bi uporabili cenejši BT-modul, ki bi deloval le na 3,3 V. Za razvoj prototipa smo

potrebovali takega, ki ima možnost delovanja na 5 V, saj je mikrokrmilnik moral delovati na 5

V v fazi testiranja, v kateri smo uporabili alfanumerični zaslon LCD, ki ga je potrebno krmiliti

s signali 5 V.

Čeprav je napetost na sondi pH v okolici vrednosti pH = 7 v okolju, v katerem nas pH pri

bazenskih vodah zanima (od 5 do 9) zelo malo temperaturno odvisna in tudi temperatura

bazenskih vod niha le za nekaj stopinj, bi lahko vseeno v enačbi za izračun vrednosti pH

Page 106: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

92

upoštevali temperaturo in tako naredili temperaturno kompenzacijo. To ne bi podražilo

izdelave, saj temperaturo že tako merimo. Zaenkrat tega nismo storili, ker bi vpliv bil tako

majhen, da ni bilo smiselno.

Največja izboljšava pa bi bila, da bi uporabnikom, ki uporabljajo tekoče kemikalije za

vplivanje na pH in potencial redoks vode, omogočali doziranje kemikalij. To bi naredili tako,

da bi dodali vezju z releji še dva releja za krmiljenje dveh motorčkov črpalk. Ti črpalki bi bili

krmiljeni s preprostima histereznima zankama, napisanima v kodi mikrokrmilnika, ena za pH,

druga za potencial redoks. Vrednost, na katero mora priti pH ali potencial redoks, da se vklopi

črpalka za kemikalije, bi lahko bila določena v mikrokrmilniku, še bolje pa bi bilo, če bi lahko

uporabnik sam izbral te vrednosti v aplikaciji na mobilni napravi in jih poslal mikrokrmilniku.

Page 107: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

93

9. VIRI

[1] Arzenšek, Nejc. Nadgradnja vektorskega merilnika frekvenčnih odzivov: analogno

digitalna pretvorba. Maribor: Fakulteta za elektrotehniko, računalništvo in informatiko

Univerze v Mariboru, 2010

[2] Wikipedija, »Android (operacijski sistem)«. [Elektronski], dostopno na:

http://sl.wikipedia.org/wiki/Android_%28operacijski_sistem%29. [Dostopano: 5. 4.

2015].

[3] Wikipedia, »Bluetooth«. [Elektronski], dostopno na:

https://en.wikipedia.org/wiki/Bluetooth, [Dostopano: 4. 4. 2015].

[4] Atmel, »Datasheet Atmel AVR ATmega8/ATmega8L«. [Elektronski], dostopno na:

http://www.atmel.com/Images/Atmel-2486-8-bit-AVR-microcontroller-

ATmega8_L_datasheet.pdf, [Dostopano: 3. 2. 2015].

[5] Roving networks, »Bluetooth modul«. [Elektronski], dostopno na:

http://www.farnell.com/datasheets/1641068.pdf, [Dostopano: 1. 4. 2015].

[6] Wikipedia, »RS 232«. [Elektronski], dostopno na: http://en.wikipedia.org/wiki/RS-

232, [Dostopano: 2. 4. 2015].

[7] Maxim integrated, »RS-232 Drivers/Receivers«. [Elektronski], dostopno na:

http://datasheets.maximintegrated.com/en/ds/MAX220-MAX249.pdf, [Dostopano: 2.

4. 2015].

[8] Wikipedia, »1-wire«. [Elektronski], dostopno na: http://en.wikipedia.org/wiki/1-Wire,

[Dostopano: 3. 2. 2015].

[9] FRI, »FRI - Android Wiki«. [Elektronski], dostopno na: http://android.fri.uni-

lj.si/index.php/Platforma, [Dostopano: 6. 4. 2015]

[10] Ema-bazeni, »Osnovna oprema bazena«. [Elektronski], dostopno na: http://www.ema-

bazeni.si/osnovna-oprema-bazena, [Dostopano: 1. 2. 2015].

[11] Wikipedija, »Redoks reakcija«. [Elektronski], dostopno na:

https://sl.wikipedia.org/wiki/Redoks_reakcija, [Dostopano: 1. 2. 2015].

Page 108: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

94

Page 109: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

95

Page 110: BREZŽIČNI NADZOR IN UPRAVLJANJE STROJNICE BAZENA · V magistrskem delu je predstavljena izdelava prototipa strojne in programske opreme, ki uporabniku omogoča, da z aplikacijo

96