Diplomsko delo - COnnecting REpositories · 2017-11-28 · Zahvala Zahvaljujem se mentorju...
Transcript of Diplomsko delo - COnnecting REpositories · 2017-11-28 · Zahvala Zahvaljujem se mentorju...
Matej Dominko
BREZŽIČNI MERILNI SISTEM
Diplomsko delo
Maribor, julij 2013
BREZŽIČNI MERILNI SISTEM
Diplomsko delo
Študent: Matej Dominko
Študijski program: Visokošolski študijski program,
Elektrotehnika
Smer: Elektronika
Mentor: doc. dr. Matej Šalamon
Somentor: viš. pred. dr. Mitja Solar
Lektorica: Polona Završnik
Zahvala
Zahvaljujem se mentorju profesorju doc.
dr. Mateju Šalamonu za pomoč, nasvete in
vodenje skozi proces nastajanja diplomske
naloge.
Posebej bi se zahvalil staršem, ki so mi
omogočili študij, mi izkazovali podporo in
me spodbujali na poti do cilja.
Brezžični merilni sistem Diplomsko delo
II
Brezžični merilni sistem
Ključne besede: mikrokrmilniki, brezžični sistem, vgrajeni sistemi, brezžična omrežja,
razvojno okolje Arduino
UDK: 004.777:[621.317.3+53.08](043.2)
Povzetek
V okviru diplomskega dela smo razvili mikrokrmilniško napravo za brezžično
komunikacijo z Internetom na podlagi standarda 802.11 b/g. Poimenovali smo jo
Brezžični merilni sistem. Sistem je realiziran kot spletni strežnik in sestavljen iz
mikroprocesorja ATmega328P in modula za brezžično komunikacijo RN-XV 171. S
pomočjo senzorjev in preprostih elektronskih vezij pridobivamo podatke o temperaturi,
relativni zračni vlagi, zračnemu tlaku ter enosmerni napetosti in toku. Te podatke
prikažemo na spletni strani, ki nam ponuja tudi možnost upravljanja z napravo. Merilni
sistem je razvit s pomočjo odprtokodnega programskega orodja Arduino.
Brezžični merilni sistem Diplomsko delo
III
Wireless Measurment System
Key words: microcontrollers, wireless system, integrated system, Arduino development
environment
UDK: 004.777:[621.317.3+53.08](043.2)
Abstract
Within the thesis we have developed a microcontroller device for wireless
communication with wireless Internet on the basis of a standard 802.11 b/g. We name it
wireless measurement system. The system is realized as a web server and it consist of
an Atmega328P microprocessor and a RN-XV 171 module for wireless communication.
With the help of the sensors and simple electronic circuit we obtain data on temperature,
relative humidity, air pressure, dc voltage and current. We display these data on the
website, which offers the possibility to control the device. The measuring system is
developed using open-source electronics prototyping platform Arduino.
Brezžični merilni sistem Diplomsko delo
IV
Vsebina
1 Uvod ...................................................................................................................... - 1 -
2 Brezžična omrežja ................................................................................................. - 2 -
2.1 Kratek zgodovinski pregled brezžičnih omrežij ................................................ - 2 -
2.2 Splošno o brezžičnem lokalnem omrežju ........................................................ - 3 -
2.3 Standardi brezžičnih krajevnih omrežij ............................................................ - 4 -
2.4 OSI model standarda 802.11 .......................................................................... - 7 -
2.5 Arhitektura brezžičnih lokalnih omrežij .......................................................... - 10 -
3 Varnost v brezžičnih lokalnih omrežjih ................................................................. - 13 -
3.1 Standard WEP .............................................................................................. - 13 -
3.2 Standard WPA .............................................................................................. - 15 -
3.3 Standard WPA 2 ........................................................................................... - 16 -
3.4 Filtriranje MAC naslovov ............................................................................... - 16 -
4 Moduli za brezžično komunikacijo ........................................................................ - 17 -
4.1 Brezžični modul RN-XV 171 ......................................................................... - 17 -
4.2 Brezžični modul WIPORT ............................................................................. - 21 -
4.3 Arduino WIFI modul ...................................................................................... - 22 -
5 Elektronske komponente ..................................................................................... - 23 -
5.1 Arduino programsko okolje ........................................................................... - 23 -
5.2 Mikrokrmilnik Atmega328P-PU ..................................................................... - 25 -
5.3 Temperaturni senzor DS18S20..................................................................... - 27 -
5.4 DHT11 senzor vlage in temperature ............................................................. - 28 -
5.5 BMP085 senzor zračnega tlaka in temperature ............................................ - 29 -
5.6 Merjenje enosmerne napetosti ...................................................................... - 29 -
5.7 Merjenje enosmernega električnega toka ..................................................... - 31 -
6 Načrtovanje merilnega sistema ............................................................................ - 33 -
6.1 Načrtovanje tiskanega vezja ......................................................................... - 33 -
Brezžični merilni sistem Diplomsko delo
V
6.2 Opis programske kode mikrokrmilnika .......................................................... - 36 -
6.3 Komunikacija med spletnim brskalnikom in strežnikom ................................. - 38 -
7 Lastnosti brezžičnega merilnega sistema ............................................................ - 41 -
7.1 Merjenje električnih in drugih veličin ............................................................. - 41 -
7.2 Krmiljenje naprave na daljavo ....................................................................... - 43 -
8 Sklep ................................................................................................................... - 44 -
9 Viri in literatura ..................................................................................................... - 45 -
10 Priloge .............................................................................................................. - 47 -
10.1 Programska koda.......................................................................................... - 47 -
10.2 Izjave ............................................................................................................ - 55 -
Kazalo slik
Slika 2.1 OSI referenčni model brezžičnega omrežja .................................................... - 7 -
Slika 2.2 Primer priložnostnega ADHOC omrežja ....................................................... - 10 -
Slika 2.3 Primer infrastrukture osnovne postavitve brezžičnega omrežja (lokalno
omrežje) Ali povsod postaviš pike ali pa nikjer ............................................................ - 11 -
Slika 2.4 Razširjena postavitev brezžičnega omrežja .................................................. - 12 -
Slika 4.1 Brezžični modul RN-XV 171 ......................................................................... - 17 -
Slika 4.2 Serijska komunikacija med dvema napravama ............................................. - 20 -
Slika 4.3 Nedovoljena vezava naprav preko UART vmesnika ..................................... - 20 -
Slika 4.4 Brezžični modul WIPORT ............................................................................. - 21 -
Slika 4.5 Brezžični modul Arduino Wifi ........................................................................ - 22 -
Slika 5.1 Arduino UNO označbami priključkov ............................................................ - 24 -
Slika 5.2 Aduino IDE programsko okolje ..................................................................... - 25 -
Slika 5.3 Priključki mikrokrmilnika Atmega 328-P ........................................................ - 26 -
Slika 5.4 Parazitna vezava senzorja DS18S20 ........................................................... - 27 -
Slika 5.5 Standardna vezava senzorja DS18S20 ........................................................ - 27 -
Slika 5.6 Senzor DHT11 ............................................................................................. - 28 -
Slika 5.7 Tiskana ploščica s senzorjem BMP085 in potrebnimi elementi ..................... - 29 -
Slika 5.8 Vezje za merjenje enosmerne napetosti ....................................................... - 30 -
Slika 5.9 Vezje za merjenje enosmernega toka ........................................................... - 31 -
Brezžični merilni sistem Diplomsko delo
VI
Slika 6.1 Celotni načrt brezžičnega merilnega sistema. .............................................. - 34 -
Slika 6.2 PCB načrt tiskanega vezja ........................................................................... - 35 -
Slika 6.3 Prikaz 3D pogleda tiskanine ......................................................................... - 36 -
Slika 6.4 Izgled spletnih strani brezžičnega merilnega sistema ................................... - 38 -
Slika 6.5 URL naslov v primeru POST in GET metode ................................................ - 40 -
Slika 7.1 Merjenje električnih in drugih veličin z brezžičnim merilnim sistemom .......... - 41 -
Slika 7.2 Fotografija končnega brezžičnega merilnega sistema .................................. - 42 -
Slika 7.3 Krmiljenje (vklop/izklop) naprave na daljavo ................................................. - 43 -
Kazalo tabel
Tabela 5.1 Uizh v odvisnosti od Uvh ........................................................................... - 30 -
Tabela 7.1 Veličine merjene z brezžičnim merilnim sistemom ..................................... - 42 -
Uporabljeni simboli
Mbps – megabit na sekundo (enota za hitrost prenosa podatkov)
Hz – hertz (enota za frekvenco)
Ω – ohm (enota za elektrino upornost)
˚C – stopinja Celzija (enota za temperaturo)
m – meter (enota za dolžino)
V – volt (enota za električno napetost)
s – sekunda (enota za čas)
Pa – pascal (enota za tlak)
A – amper (enota za električni tok)
Brezžični merilni sistem Diplomsko delo
VII
Uporabljene kratice
WLAN – Wirelles local area network (brezžično lokalno omrežje)
LAN – Local area network (lokalno omrežje)
IEEE – Institute of electrical and electronics engineers (Svetovno združenje inženirjev
elektronike in elektrotehnike)
PHY – Physical layer (fizični sloj)
MAC – Media access control (krmiljenje dostopa do medija)
CSMA/CA – Carrier sense multiple access/colision avoidance (dostop z zaznavanjem
nosilca z odkrivanjem trkov)
RTS/CTS – Request to send/Clear to send (zahteva za pošiljanje/pripravljenost za
pošiljanje)
OSI – Open system interconnection (skupina za povezovanje odprtih sistemov)
WEP – Wired protected privacy (zasebnost enaka žični povezavi)
WPA – Wifi protected access (zaščiten brezžični dostop)
TCP – Transmission control protocol (protokol transportnega sloja)
GPIO – General purpose input/output (namenski vhodno/izhodni priključki)
IP – Internet protocol (Internetni protokol)
UART – Universal asynchronus receiver/transmitter (univerzalni asinhroni sprejemnik
in oddajnik)
UDP – User datagram protocol (nepovezavni protokol transportnega sloja)
SPI – Serial peripheral interface bus (serijski periferni vmesnik)
SSID – service set identification (ime brezžičnega lokalnega omrežja)
Brezžični merilni sistem Diplomsko delo
VIII
SDA – Serial data (serijski podatek)
SCL – Serial clock (serijska ura)
DHCP – Dynamic host configuration protocol (omrežni protokol za dinamično
nastavitev gostitelja)
HTML – Hyper text markup language (jezik za oblikovanje večpredstavnostnih
dokumentov)
Brezžični merilni sistem Diplomsko delo
- 1 -
1 Uvod
V današnjih časih čedalje več ljudi in podjetij različnih panog posega po napravah, ki
komunicirajo brezžično. Brezžične komunikacije na nekaterih območjih predstavljajo
edino možno rešitev povezave z internetnim omrežjem. S pojavom in hitrim razvojem
majhnih brezžičnih naprav pridobiva tehnologija brezžičnih omrežij izjemno priljubljenost,
pojav javnih, odprtih brezžičnih omrežij pa je omogočil dostop uporabnikov do interneta,
ne glede na lokacijo, če je le-ta pokrita s signalom.
Cilj diplomskega dela je bil načrtovanje in realizacija brezžičnega merilnega sistema, ki bi
omogočal merjenje nekaterih električnih in fizikalnih veličin. Merilni sistem temelji na
mikrokrmilniku, s pomočjo katerega se izvajajo meritve, brezžična povezava pa je
vzpostavljena s pomočjo modula RN-XV 171, ki podpira standard 802.11 b/g. Izdelali smo
tudi spletno stran, na kateri so prikazani rezultati meritev in možnost vklopa in izklopa
naprave.
V prvem delu diplomske naloge, ki obsega dve poglavji, so opisani začetki brezžičnega
komuniciranja in brezžična lokalna omrežja. Predstavljen in opisan je obstoječ standard
IEEE 802.11, uporabljen pri komunikaciji naprav preko internetnega omrežja. Opisane so
obstoječe arhitekture brezžičnih omrežij in varnostni protokoli.
V drugem delu diplomske naloge je opisano načrtovanje in izvedba brezžičnega merilnega
sistema. Predstavljen je celoten proces, od izbire primernega modula za vzpostavitev
brezžične komunikacije do strojne izdelave sistema. Opisanih je nekaj modulov, ki
omogočajo povezavo mikrokrmilniških aplikacij na podlagi standarda 802.11 b/g. Med
temi smo za naš primer izbrali cenovno najugodnejšega.
Celoten sistem je razvit v odprtokodnem okolju Arduino. Opisane so glavne značilnosti v
sistemu ter osnovne lastnosti orodja Altium Designer, s pomočjo katerega smo načrtovali
tiskano vezje brezžičnega merilnega sistema. Pojasnjen je proces načrtovanja sistema ter
programske kode. Podane so tudi omejitve in zmogljivosti brezžičnega merilnega sistema.
Brezžični merilni sistem Diplomsko delo
- 2 -
2 Brezžična omrežja
2.1 Kratek zgodovinski pregled brezžičnih omrežij
Prvi zametki in ideje o brezžičnih omrežjih, kot jih poznamo danes, segajo v 19. stoletje, v
leto 1888, ko je nemški fizik Heinrich Rudolf Hertz odkril prvi radijski val. Radijski valovi
so postali temelj komunikacije, tako se je pojavilo komuniciranje preko telegrafskih žic, ki
so sprejemale radijske valove v obliki signalov. Z odkritjem radia se je v nekaj letih
izjemno razširil doseg pošiljanja radijskih signalov, najprej na dve milji, leta 1901 pa so
lahko radijski signal poslali preko Atlantskega oceana.
Med drugo svetovno vojno, ki je predstavljala veliko odskočno desko za razvoj radijskih
signalov, so Združene države Amerike kot prve, radijske valove uporabljale za prenos
podatkov. Tako so se pojavile špekulacije, da bi radijske signale lahko izkoristili še za
nekaj širšega in večjega kot do tedaj. Leta 1971 je skupina raziskovalcev iz univerze na
Havajih ustvarila prvo paketno komunikacijsko omrežje, ki so ga poimenovali Alohanet.
Omrežje Alohanet tako velja za prvo brezžično lokalno omrežje, na kratko WLAN. Prvo
brezžično omrežje ni bilo nič posebnega v primerjavi z današnjimi omrežji, je pa
predstavljalo veliko odkritje, saj je združevalo sedem računalnikov, ki so komunicirali
drug z drugim. Leta 1972 se je Alohanet povezal z WLAN sistemom, imenovanim Arpnet,
kar velja za prelomnico v brezžičnih računalniških telekomunikacijah.
Brezžična omrežja so bila zelo redka, izjemno draga, počasna in nezanesljiva, poleg tega
pa niso bila združljiva med seboj. Leta 1990 je bila zato ustanovljena skupina za razvoj
WLAN standardov IEEE, ki si je prizadevala izdelati enoten standard za komunikacijo
med računalniki. Leta 1997 je bil sprejet standard IEEE 802.11 kot standard, ki določa
komuniciranje preko WLAN. WLAN tehnologija je v naglem razvoju in se bo razvijala in
razširjala verjetno še desetletja, saj se različne vlade in velike korporacije ozirajo za vedno
večjimi hitrostmi podatkovnega prenosa. [16]
Brezžični merilni sistem Diplomsko delo
- 3 -
2.2 Splošno o brezžičnem lokalnem omrežju
Omrežje, v katerem je na širšem geografskem območju združeno večje število
računalnikov, imenujemo lokalno omrežje ali LAN. Izraz WLAN predstavlja enak sistem
povezave računalnikov v omrežje, razlika je v tem, da v primeru brezžičnega omrežja
medij za prenos podatkov predstavlja zrak. Nagel razvoj računalniške strojne opreme in
brezžičnih tehnologij je povzročil izjemno razširjenost in priljubljenost brezžičnih omrežij,
ki imajo kar nekaj prednosti pred klasičnimi žičnimi omrežji, npr. večja mobilnost ter
prilagodljivost uporabnikov oziroma postaj. Brezžična omrežja niso več omejena samo na
določena območja, saj radijski valovi potujejo skozi ovire, kot so stene, drevesa ipd.
Preprosto lahko spremenimo tudi konfiguracijo omrežja, na primer iz adhoc arhitekture v
arhitekturo osnovne postavitve omrežja. Poglavitno prednost predstavlja odvečnost žic kot
prenosnega medija, kar omogoča, da so brezžična omrežja implementirana v okoljih, kjer
ni pogojev za nameščanje žične napeljave, ali pa ta, zaradi velike razdalje, ni smiselna in bi
predstavljala velik strošek. Ob nastanku brezžičnih omrežij so bila ta izjemno draga, s
časom pa se je cena zmanjšala, povečala pa se je hitrost prenosa podatkov, ki je v letu 2003
dosegla 54 Mbps. Leta 2007 je bil sprejet standard 802.11n, ki omogoča hitrost prenosa
podatkov z več kot 150 Mbps.
Prenos podatkov v brezžičnih omrežjih poteka z oddajanjem in sprejemanjem radijskih
valov med oddajnikom in sprejemnikom. Na količino prenesenih podatkov v glavni meri
vpliva frekvenca in pa način modulacije. Širši frekvenčni pas omogoča prenos večje
količine podatkov, moč signala pa upada z večanjem razdalje med oddajnikom in
sprejemnikom. Upadanje moči signala lahko zmanjšamo z namestitvijo ojačevalnikov
signala. Prav tako pa na kakovost signala vplivajo pojavi, kot so npr. kozmično sevanje,
sevanje mikrovalovnih pečic ali drugih naprav, ki delujejo oziroma prenašajo podatke na
enakem frekvenčnem območju. Da bi zmanjšali motnje, lahko spremenimo frekvenco
oziroma kanale v območju med 2,4 in 2,4385 GHz. Zaradi omejene pasovne širine se
včasih pojavi problem prenasičenosti frekvenčnega pasu. Večina WLAN naprav je
zgrajena tako, da z lahkoto zamenjamo kanal, za kar se uporabljajo različne tehnike.
Nekateri standardi uporabljajo tehniko SS (ang. Spread Spectrum) razširjenega signala, kar
pomeni, da ima prenosni signal na razpolago celotno pasovno širino. Prednost omenjene
tehnike je manjša možnost motnje signala s strani drugih naprav. Obstajata dve SS tehniki
Brezžični merilni sistem Diplomsko delo
- 4 -
in sicer FHSS (ang. Frequency Hop Spread Spectrum) in DSSS (ang. Direct Sequence
Spread Spectrum).
Za vzpostavitev brezžičnega lokalnega omrežja potrebujemo tudi določeno opremo, ki jo
najpogosteje sestavljajo dostopna točka, naprava z mrežno kartico in antena. Dostopna
točka običajno ni mobilna in je po navadi priključena na žično omrežje. Postaje, ki jih
predstavljajo naprave z vgrajeno brezžično omrežno kartico, se za dostop do omrežja
povežejo z dostopno točko. Pomembno komponento predstavljajo tudi antene. Obstaja kar
nekaj vrst anten, v grobem pa jih delimo na usmerjene in razsmerne antene. Razsmerne
antene razširijo signal na vse smeri, obratno pa usmerjene antene oddajajo signal le v eno,
točno določeno smer. Razsmerne antene ponujajo večjo prilagodljivost, ki uporabniku
omogoči gibanje v območju omrežja. Infrardeča tehnologija pa je primer, kjer se
uporabljajo usmerjene antene. [1]
2.3 Standardi brezžičnih krajevnih omrežij
Standard 802.11
Standard 802.11 je prvotni WLAN standard. Deluje v frekvenčnem območju 2,4 GHz s
spodnjo frekvenco pri 2,402 GHz in zgornjo frekvenco pri 2,480 GHz. Standard podpira
hitrost prenosa podatkov pri 1 Mbps in 2 Mbps. Standard prav tako podpira tri različne
fizične sloje: infrardeči spekter, analogni način s frekvenčnim skakanjem in razpršenim
spektrom ter digitalni način z DSSS. Čeprav so podprte vse tri tehnologije, se je med
uporabniki najbolj obdržala tehnologija DSSS. Kasneje so dodali še dva dodatna fizična
sloja. Prvi sloj se imenuje OFDM in podpira hitrost prenosa podatkov do 54 Mbps, drugi
sloj pa služi kot podaljšek DSSS plasti in se imenuje DSSS-PHY. 2,4 GHz spekter je bil
prvotno razdeljen na 14 različnih kanalov pasovne širine 22 MHz s 5 MHz razdalje med
sosednjima kanaloma. Ker je medsebojna razdalja med sosednjima kanaloma relativno
majhna, je med njima prihajalo do motenj. Pravilno delovanje oziroma delovanje brez
motenj je realizirano tako, da je med dvema kanaloma vsaj 25 MHz razlika, kar pomeni, da
sta kanala med seboj ločena z vsaj petimi kanali. [23]
Brezžični merilni sistem Diplomsko delo
- 5 -
Standard 802.11a
Standard 802.11a je bil sprejet ob približno istem času kot standard 802.11b. Definiran je
za frekvenčno področje 5 GHz, kar pomeni, da ni združljiv z drugimi standardi, ki delujejo
v 2,4 GHz frekvenčnem spektru. Frekvenčni spekter med 5,125 in 5,850 GHz je razdeljen
na štiri frekvenčne pasove. Čeprav je frekvenčna pasovna širina za oddajanje podatkov
širša kot pri sorodnih standardih, je maksimalna oddajna moč manjša, s tem pa je manjši
tudi doseg oddajanja, ki je med 35 in 120 metri. Standard omogoča hitrost prenosa
podatkov do 54 Mbps, vendar pa je dejanska hitrost prenosa podatkov manjša skoraj za
polovico, kar je posledica CSMA/CA podatkovno povezovalne poti. Standard predstavlja
dobro alternativo v primeru zasedenosti 2,4 GHz spektra. Njegovi slabi lastnosti sta manjši
doseg zaradi krajše valovne dolžine in s tem tudi slabši prehod skozi ovire. Tehnologija
oziroma strojna oprema je dražja in pogostokrat ni združljiva s strojno opremo, ki se
uporablja pri sorodnih standardih. [23]
Standard 802.11b
Standard 802.11b je nadgradnja osnovnega standarda 802.11. Njegova izboljšava je
uporaba višje stopnje fizičnega sloja za zagotovitev hitrejšega povezovanja v WLAN
omrežje, ki deluje v 2,4 GHz frekvenčnem spektru. Izboljšava je bila nujna, saj je
predhodni standard postal prepočasen za najnovejšo strojno opremo, ki se je pojavila na
trgu. Prvotni standard je ponujal hitrost prenosa do 2 Mbps, kar ni zadovoljilo potrebe po
hitrejšem prenosu podatkov. Tako je nastal standard 802.11b, ki je ponudil hitrost prenosa
do 11 Mbps, njegova dobra lastnost je bila združljivost s predhodnim standardom, kar je
povzročilo, da so brezžična omrežja postala izjemno priljubljena. Nov standard je, za
razliko od predhodnika, uporabljal drugačno shemo kodiranja za prenos podatkov pri
hitrosti prenosa podatkov, ki je višja od 2 Mbps. Uporabljal je CCK način kodiranja in
QPSK modulacijo za prenos podatkov pri hitrostih 2, 5,5 in 11 Mbps ter BPSK modulacijo
pri hitrosti 1 Mbps. [23] Sprememba modulacije je omogočala prenos večje količine
podatkov v enakem časovnem obdobju, tipični doseg pa je bil med 38 in 140 metri.
Brezžični merilni sistem Diplomsko delo
- 6 -
Standard 802.11g
Leta 2002 je organizacija IEEE ratificirala standard, imenovan 802.11g kot dodatek k že
obstoječima standardoma 802.11 in 802.11b in odgovor na vse pogostejše zahteve po
večjih hitrostih prenosa. Standard deluje v istem frekvenčnem spektru kot predhodnika,
zato ima posledično enake pomanjkljivosti, in sicer omejeno pasovno širino v 2,4 GHz
spektru ter zasedenost 2,4 Ghz frekvenčnega spektra oziroma zasedenost WLAN okolja.
Dodatna težava je nastala ob dokončnem razvoju standarda 802.11g. Standard je bil
zasnovan tako, da je bil združljiv s standardom 802.11b. Vendar pa standard 802.11b ni
razumel oddanih podatkov standarda 802.11g. Da bi se izognili omenjeni težavi 802.11g,
standard uporablja prenosno zaznavni mehanizem imenovan RTS/CTS kot varnostni
mehanizem. Standard 802.11g je združljiv s prejšnjima standardoma 802.11 in 802.11b,
zato uporablja za hitrost prenosa podatkov do 11 Mbps enako modulacijo in kodirno
shemo. OFDM modulacijo pa uporablja za večje hitrosti prenosov. 802.11g standard
podpira hitrosti prenosa pri 6, 9, 12, 18, 24, 36, 48 in 54 Mbps z uporabo razširjenega
ERP-OFDM načina modulacije in kodiranja, doseg omrežja pa se ni povečal in tipično
znaša med 38 in 140 metri. [23]
Standard 802.11n
Najnovejši standard z oznako 802.11n je nastal z namenom povečanja hitrosti prenosa
podatkov v 2,4 GHz in tudi v 5 GHz frekvenčnem spektru. Povečanje hitrosti prenosa
podatkov so dosegli z uporabo tako imenovanih MIMO anten. Izboljšano in dodelano pa je
tudi kodiranje podatkov. Z uporabo več anten in vzporednim delovanjem se je hitrost
prenosa podatkov povečala na kar 150 Mbps, s povezovanjem kanalov pa na kar 300
Mbps. Vse to pa je bilo mogoče brez povečanja pasovne širine in oddajne moči. Najboljši
rezultati se dosežejo ob uporabi sistema 3x3 anten, kar pomeni tri oddajne in tri sprejemne
antene. Vendar pa je ta sistem cenovno drag, zato se kot alternativa uporabljajo
konfiguracije 2x2, z dvema oddajnima in dvema sprejemnima antenama, ter sistem 2x1, z
dvema sprejemnima in eno oddajno anteno. Vendar pa ta dva sistema ne zagotavljata
takšnih lastnosti kot sistem 3x3 [12]. 802.11n standard je, prav tako kot so ostali standardi,
občutljiv na motnje v omrežju, v nekaterih primerih celo bolj. Posledice občutljivosti na
motnje so veliko manjše hitrosti prenosa podatkov kot oglaševane teoretične hitrosti. [20]
Brezžični merilni sistem Diplomsko delo
- 7 -
2.4 OSI model standarda 802.11
OSI (ang. Open System Interconnection) model predstavlja modularno zgradbo
protokolov, zgrajeno iz sedmih različnih slojev, vsak sloj pa ima svojo natančno določeno
nalogo. Prvi, najnižji sloj predstavlja fizični sloj, nato pa ji po vrsti sledijo še povezovalni,
omrežni, pogovorni, predstavitveni in kot sedmi, aplikacijski sloj. Na sliki 2.1 2.12.12.1je
prikazan referenčni model OSI, ki se dandanes uporablja v izobraževalne namene. Nižji
sloji se ukvarjajo z električnimi signali, binarnimi signali in usmerjanjem podatkov v
omrežje. Višji sloji pa zajemajo omrežne zahteve in odgovore ter predstavitev podatkov in
omrežnih protokolov, ki so vidni uporabniku. [17]
Slika 2.1 OSI referenčni model brezžičnega omrežja
Brezžični merilni sistem Diplomsko delo
- 8 -
Aplikacijski sloj – Sloj predstavlja oziroma skrbi za vmesnik, ki je potreben za interakcijo
oziroma komunikacijo uporabnika z aplikacijo. Obsega protokole in storitve, ki jih uporabi
za dostop do omrežnih storitev, in končni videz omrežja, ki je viden uporabniku.
Predstavitveni sloj – Njegova naloga je kodiranje, dekodiranje, šifriranje in zgoščevanje
podatkov. Odgovoren je za opredelitev, na kakšen način oziroma v katerem formatu bodo
posredovani in predstavljeni elementi spletne strani.
Pogovorni sloj – Naloga pogovornega sloja je razlikovanje med različnimi načini omrežne
povezave in zagotavljanje posredovanja podatkovnih paketov k pravi, ciljni postaji. V
sodelovanju s transportnim slojem pa je odgovoren za vzpostavitev in prekinitev povezave.
Pogovorni sloj skrbi za vzpostavitev dialoga in dodeljevanje prednosti za nekatere vrste
podatkov med enakima procesoma med dvema vozliščema.
Transportni sloj – Transportni sloj, kot že samo ime pove, skrbi za prevzemanje in
predajanje podatkovnih paketov med sosednjima slojema, višjim pogovornim in nižjim
mrežnim slojem. Opravlja več pomembnih nalog, kot so: razdeljuje večje podatkovne
pakete na manjše, omogoča zanesljiv in pravilen prenos podatkov, multipleksira podatke
ter odkriva in popravlja napake.
Mrežni sloj – Skrbi za pravilno potovanje podatkovnih paketov od izvorne do ponorne
postaje, obenem pa definira logične naslove. Na podlagi številčenja omrežij poskrbi za
pravilno doseganje ciljnih komponent ter omogoča podatkovni promet med posameznimi
sloji.[17]
Povezovalni sloj – Naloga povezovalnega sloja je zagotoviti zanesljiv prenos podatkovnih
paketov višjemu mrežnemu sloju. Sloj določa dostop posamezne komponente do medija, s
katerim je povezan, obenem pa razdeli daljše zaporedje bitov na manjše okvirje.
Odgovoren je za pravilno zaporedje oddajanja okvirjev ter zaznavanje in odpravljanje
napak med sosednjima vozliščema. Skrbi za nadzor porazdeljenosti podatkov na fizičnem
nosilcu. Povedano z drugimi besedami, skrbi za pravilno razdeljevanje razpoložljive
pasovne širine na posamezne kanale, obenem pa sporoča posameznemu kanalu, kdaj naj
sprejema ali oddaja podatke ter s tem skrbi za preprečevanje trkov med podatki. Njegova
Brezžični merilni sistem Diplomsko delo
- 9 -
poglavitna naloga je nadzor MAC (ang. Media Access Control) oziroma nadzor dostopa do
prenosnega medija. [21]
Fizični sloj – Prvi ali najnižji sloj referenčnega modela se imenuje fizični sloj, katerega
poglavitna naloga je, da definira električne in mehanske lastnosti vodnikov in priključkov.
Prav tako pa definira prenosne frekvence, napetostne nivoje ter zapisovanje podatkov v
obliko, ki je primerna za določen prenosni medij. [21]
Brezžični merilni sistem Diplomsko delo
- 10 -
2.5 Arhitektura brezžičnih lokalnih omrežij
Kot glavna gradnika brezžičnih lokalnih omrežij bi izpostavili dostopno točko (ang. Acces
Point) in brezžično postajo oziroma brezžični odjemalec (ang. WLAN client). Brezžična
postaja je naprava, ki je povezana z brezžičnim omrežjem preko ustrezne radijske
frekvence in jo običajno predstavljajo naprave, kot so: računalniki, dlančniki, pametni
telefoni in druge naprave, opremljene z brezžično mrežno kartico. Dostopna točka pa je
krmilna enota, ki skrbi za dostop do omrežja in dodeljevanje zmogljivosti posamezni
brezžični postaji. Glede na način uporabe omenjenih dveh gradnikov, ločimo tri arhitekture
oziroma topologije brezžičnih lokalnih omrežij. [1]
ADHOC ali priložnostna omrežja
Pod pojmom ADHOC ali priložnostna omrežja razumemo skupino brezžičnih postaj, ki se
hočejo povezati druga z drugo, za medsebojno komunikacijo pa ne potrebujejo dostopne
točke. Ker morajo naprave v ADHOC omrežju komunicirati druga z drugo in vzpostaviti
medsebojno komunikacijo, taka omrežja niso prav učinkovita za brezžično komuniciranje
oziroma brezžičen prenos podatkov v velika brezžična omrežja. Uporaba ADHOC omrežij
je smiselna za medsebojno povezavo manjšega števila računalnikov. Na sliki 2.2 vidimo
ADHOC omrežje izvedeno s štirimi brezžičnimi postajami. [23]
Slika 2.2 Primer priložnostnega ADHOC omrežja
Brezžični merilni sistem Diplomsko delo
- 11 -
Osnovna postavitev omrežja -– LAN
Osnovno arhitekturo omrežja predstavlja brezžično omrežje z eno dostopno točko in
poljubnim številom brezžičnih postaj. Dostopna točka predstavlja vozlišče v omrežju,
preko katerega poteka ves podatkovni promet, postajam pa ponuja tudi dodatne storitve,
kot so varčevanje z energijo, QoS (ang. quality of service) in multicast. Tudi v primeru, ko
želi prva postaja poslati podatke drugi postaji, bo prva postaja poslala podatke k dostopni
točki, ta pa bo nato podatke poslala oziroma preusmerila do druge, ciljne postaje. V tem
primeru so podatki odposlani dvakrat in zavzemajo dvakrat več medija kot v primeru
ADHOC omrežja. Čeprav izkoriščenost pasovne širine v tem primeru ni najboljša, so
takšna omrežja, z vidika uporabe, bolj učinkovita kot ADHOC omrežja, saj posamezne
postaje nimajo potrebe po neposredni medsebojni vzpostavitvi komunikacije. Na sliki 2.3
je prikazan primer infrastrukture osnovne postavitve brezžičnega omrežja z eno dostopno
točko in štirimi brezžičnimi postajami. [23]
Slika 2.3 Primer infrastrukture osnovne postavitve brezžičnega omrežja (lokalno
omrežje) Ali povsod postaviš pike ali pa nikjer
Brezžični merilni sistem Diplomsko delo
- 12 -
Razširjena postavitev omrežja -– WAN
Pri infrastrukturi razširjenega omrežja obstaja več dostopnih točk in poljubno število
brezžičnih postaj, ki skupaj tvorijo večje brezžično omrežje. V tovrstnem omrežju lahko
določena postaja komunicira z drugo preko dostopne točke, čeprav se postaji ne nahajata v
istem osnovnem omrežju. Medij, ki medsebojno poveže dve osnovni omrežji, imenujemo
distribucijski sistem, ki je običajno kar žično omrežje. Dostopna točka bo ugotovila, če
morajo poslani podatki potovati nazaj v isto osnovno omrežje k drugi postaji, k drugi
dostopni točki drugega osnovnega omrežja, ali pa je cilj v nekem drugem žičnem omrežju.
Dostopne točke podatke posredujejo naprej, naj si bo to iz enega osnovnega omrežja v
drugo osnovno omrežje ali od ene dostopne točke k drugi dostopni točki. Prednost tega
omrežja je komuniciranje oziroma združevanje brezžičnih omrežij s tradicionalnimi
izvedbami omrežij. Na sliki 2.4 je prikazana razširjena postavitev brezžičnega omrežja z
več dostopnimi točkami. [23]
Slika 2.4 Razširjena postavitev brezžičnega omrežja
Brezžični merilni sistem Diplomsko delo
- 13 -
3 Varnost v brezžičnih lokalnih omrežjih
Tehnologija brezžičnih omrežij ponuja poceni, preprosto komuniciranje naprav brez
uporabe kakršnekoli žične napeljave, z razmeroma velikim dometom. Komuniciranje
poteka preko medija, ki ga predstavlja zrak, zato so takšna omrežja lahko tarča napadalcev,
ki komunikaciji prisluškujejo ali celo spreminjajo podatkovne pakete.
Zagotavljanje varnosti v brezžičnih omrežjih je v preteklosti predstavljalo veliko težavo,
saj prvotni varnostni ukrepi niso učinkovito zaščitili omrežij, preko katerih je potekal
podatkovni promet z občutljivo vsebino. Omrežja so bila sicer zadostno zaščitena pred
vsakdanjimi laičnimi uporabniki, skrb so vzbujali raznorazni strokovnjaki, ki so vdirali v
omrežja. Pojavila se je potreba po naprednem varnostnem mehanizmu, ki je predstavljen v
naslednjem poglavju. [1]
3.1 Standard WEP
Naloga standarda WEP (ang. Wired Equivalent Privacy ) je enakovredna zaščita brezžičnih
omrežij kot pri tradicionalnih žičnih omrežjih. Da bi zagotovili zadostno stopnjo zaščite in
zagotovili zadostno stopnjo zaupnosti podatkov z občutljivo vsebino, je potrebno izvajati
preverjanje prisotnosti (identifikacija), to pomeni, da z določenim brezžičnim omrežjem
vzpostavijo povezavo le pooblaščene postaje.
Osnovni namen standarda WEP je preprečevanje prisluškovanja za zagotovitev zasebnosti
sporočil in njihove integritete. V ta namen standard uporablja RC4 algoritem za šifriranje
podatkov. Šifriranje je simetrično, kar pomeni, da prejemnik in pošiljatelj uporabljata enak
šifrirni ključ za šifriranje oziroma dešifriranje podatkov. WEP standard deluje na principu
primerjanja dveh integritetnih vrednosti, ki se imenujeta ICV (ang. Integrity Check Value)
Prva integritetna vrednost se kreira tik preden je podatek poslan in je izračunana na podlagi
paketa podatkov, ki ga želimo poslati. Ko podatek prispe na cilj k prejemniku, prejemnik
izračuna drugo integritetno vrednost, ki jo nato primerja s prvotno, shranjeno integritetno
vrednostjo. Če se ti vrednosti ujemata, podatkovni paket na poti od pošiljatelja do
prejemnika ni bil spremenjen. Po generiranju ICV vrednosti se generira še naključni vektor
imenovan IV (ang. Initiation Vector). IV vektor se uporablja skupaj s šifrirnim ključem, ki
je lahko dolg 64 ali 128 bitov, 24 izmed teh bitov pa zasede IV vektor. Ko paket prispe k
Brezžični merilni sistem Diplomsko delo
- 14 -
prejemniku, ta uporabi šifrirni ključ skupaj z IV vektorjem za dešifriranje podatkovnih
paketov, da jih lahko prebere (dešifrira). Dostopna točka uporablja enak šifrirni ključ za
preverjanje prisotnosti klientov. Ta način se imenuje skupni ključ, kar pomeni, da lahko z
omrežjem vzpostavijo povezavo le tiste postaje, ki imajo enak šifrirni ključ. Ko hoče
določena postaja vzpostaviti povezavo z omrežjem oziroma dostopno točko, dostopna
točka pošlje postaji odpeta sporočila (plaintext). Postaja odgovori dostopni točki s
povratnim sporočilom, sestavljenim iz šifriranega niza znakov, ki ga nato dostopna točka
dešifrira in, če je rezultat enak prvotno poslanemu, odpetemu sporočilu, se vzpostavi
komunikacija med postajo in dostopno točko.
Kljub velikemu številu dobrih lastnosti ima WEP standard še vedno veliko
pomanjkljivosti, ki brezžičnega omrežja ne zaščiti do te mere kot so zaščitena žična
internetna omrežja. Z naraščanjem klientov v omrežju se posledično poveča tveganje glede
zasebnosti podatkov, kar predstavlja veliko težavo, saj vsi uporabniki uporabljajo enak
šifrirni ključ. Posledično lahko določena postaja prebere sporočilo, ki ni bilo namenjeno
njej. Teh težav se najlažje znebimo tako, da skrbnik omrežja redno spreminja šifrirni ključ.
WEP standard prav tako ponuja niz šifrirnih ključev, ki se izmenjujejo med skrbnikom in
klientom v omrežju, kar sicer ne poveča varnosti, zagotavlja pa večjo zasebnost med
uporabniki v omrežju. Ta način zaščite deluje tako, da ima vsaka postaja svoj edinstven
šifrirni ključ, ki ga deli z dostopno točko.
Težave pa predstavljajo tudi pomanjkljivosti v šifrirni metodi. Šifriranje s 40-bitnim tajnim
ključem je bilo izbrano predvsem zaradi ustrezanja zakonodajam v posameznih državah. V
primeru, da bi izbrali 104-bitni tajni ključ večina proizvajalcev strojne opreme svojih
produktov ne bi smela izvažati v države z drugačno zakonodajo. Težave v 40-bitnem
šifriranju pa predstavlja relativno preprost tajni ključ. Napadalec lahko v nekaj urah
preizkusi vse možne kombinacije (brute force) in tako odkrije šifrirni ključ. S podaljšanjem
ključa na 104 bite se poveča tudi potreben čas za tovrstno odkrivanje ključa. Ena izmed
slabosti je ta, da so določeni proizvajalci strojne opreme dodelili IV vektor, tako da se ta ne
generira naključno in je vedno enak, kar povzroči vedno identično šifriranje. Posledica
tega je, da napadalci prisluškujejo podatkovnemu prometu in s časom preberejo IV vektor,
ki ga nato uporabijo za dešifriranje podatkovnih paketov. WEP standard predstavlja
zadostno stopnjo varnosti le v primeru komunikacije med dvema postajama ali
Brezžični merilni sistem Diplomsko delo
- 15 -
komunikacije med postajo in dostopno točko. Kot izboljšavo šifriranj je mogoče omogočiti
časovno spreminjanje šifrirnega ključa.
Obstaja pa tudi druga verzija WEP standarda, preprosto imenovana WEP 2. Standard prav
tako uporablja RC4 algoritem za šifriranje podatkovnih paketov in 128-bitni šifrirni ključ,
ki se za razliko od prvotnega standarda spreminja dinamično. Vendar pa tudi WEP 2 ne
predstavlja zadostno stopnjo varnosti, saj je občutljiv na problem IV vektorja, kar pomeni,
da napadalci še vedno lahko pridobijo šifrirni ključ in dešifrirajo podatke. [1]
3.2 Standard WPA
WPA (ang. WIFI Protected Access) standard ponuja 128-bitni dinamični šifrirni ključ,
nadzor dostopa in preverjanje prisotnosti v omrežju. Obstajata dve verziji standarda. Prva
verzija se imenuje »WPA personal« in varuje pred nedovoljenim dostopom do omrežja z
uporabo nastavljivega gesla. Druga verzija pa se imenuje »WPA enetrprise«, ta preverja
uporabnike omrežja preko strežnika. WPA zagotavlja varen prenos podatkov in je
zamišljen kot standard, ki bi nadomestil ranljiv WEP standard. Nadgradnja poteka kar s
posodobitvijo programske opreme, ki jo uporablja strojna oprema. Protokol WPA
predstavlja zanesljivo zaščito omrežja, ki temelji na TKIP (ang. Temporal Key Integrity),
šifrirnem algoritmu, ki močno poveča težavnost dešifriranja podatkov s strani napadalca.
TKIP poveča velikost IV vektorja iz 24 na 48 bitov in uporabi drugačen ključ ob vsakem
prenosu podatkov, prav tako pa vsebuje MIC (ang. Message Integrity Code), ki skrbi za
odkrivanje neveljavnih podatkovnih paketov. [1]
Brezžični merilni sistem Diplomsko delo
- 16 -
3.3 Standard WPA 2
Standard WPA 2 izvaja vse elemente zaščite, ki so bili zahtevani s strani zveze WIFI1.
Čeprav se standard imenuje WPA 2, uporablja povsem druge tehnike zaščite kot WPA.
WPA 2 vključuje robustno omrežno varnost, imenovano RSN (ang. Robust Security
Network), ki vsebuje dodatno zaščito za priložnostna oziroma Adhoc omrežja,
predpomnenje šifrirnih ključev in preverjanje predgostovanja oziroma predprisotnosti
določene postaje. Novost, ki jo standard predstavlja, je napredna tehnika šifriranja,
imenovana AES (ang. Advanced Encryption Standard), ki uporablja ključe spremenljive
dolžine, velikosti 128, 192 in 256 bitov. Slabost pa je, da moramo za prehod na standard
WPA 2 zamenjati strojno opremo, za razliko od standarda WPA, kjer smo programsko
opremo strojne opreme le posodobili. [11]
3.4 Filtriranje MAC naslovov
Večina dostopnih točk, ki so dostopne (prisotne, razpoložljive, dosegljive? Da ne bo spet
dostopne) na trgu, podpirajo način filtriranja MAC naslovov. Filtriranje MAC naslovov
deluje v sklopu s požarnim zidom, ki na podlagi določenih pravil sprejme oziroma zavrne
podatkovne pakete. Vsaka naprava z omrežno kartico ima svoj MAC naslov, s filtriranjem
MAC naslovov pa določimo tiste naprave, ki se lahko povežejo z našo dostopno točko in
posledično z našim brezžičnim lokalnim omrežjem. Metoda filtriranja MAC naslovov je
izredno ranljiva. Ena izmed pomanjkljivosti je, da lahko MAC naslov naprave zlahka
spremenimo. Tako lahko hitro pride do zlorabe MAC naslova. Napadalec, ki želi dostopati
do brezžičnega omrežja preprosto ugotovi dovoljen MAC naslov, kar pa danes ne
predstavlja velikega problema, saj v ta namen obstaja programska oprema. Vendar pa
MAC filtriranje vseeno ni neuporabno, saj je zaščiteno omrežje vseeno boljše kot
popolnoma nezaščiteno. Metodo pa lahko izboljšamo z uporabo možnosti pojavnega okna,
ki nas opozori, če se določena postaja želi povezati z našim brezžičnim omrežjem. [1]
1 Wifi neprofitna organizacija-Wifi Alliance
Brezžični merilni sistem Diplomsko delo
- 17 -
4 Moduli za brezžično komunikacijo
Trg ponuja pestro izbiro brezžičnih modulov, ki se med seboj razlikujejo po svojih
zmogljivostih, predvsem pa po ceni. V nadaljevanju bodo opisani le nekateri moduli za
brezžično interakcijo mikrokrmilnika s svetovnim spletom. Pri izbiri modula za našo
aplikacijo smo bili pozorni na to, da modul podpira standard IEEE 802.11 b/g, njegov
doseg naj bi presegal 100 metrov, vsekakor pa smo upoštevali tudi njegovo ceno ter
možnost dobave. Omenjenim kriterijem je najbolj ustrezal brezžični modul proizvajalca
Roving Networks z oznako RN-XV 171.
4.1 Brezžični modul RN-XV 171
RN-XV 171 (Wifly modul), prikazan na sliki 4.1, je popolnoma samostojen radijski modul
za povezavo mikrokrmilniških aplikacij z WLAN omrežjem. Ker se modul nahaja v
standardnem 20-pinskem ohišju, je namenjen predvsem uporabnikom, ki želijo, da bi
njihove že obstoječe naprave migrirale iz 802.15.4 standardizirane arhitekture v bolj
priljubljeno in razširjeno TCP/IP standardizirano arhitekturo 802.11 b/g. Pri tem običajno
ni potrebno spreminjati obstoječega vezja oziroma strojne opreme. Standard 802.15.4 je
implementiran v nizko cenovnih napravah za vzpostavitev brezžične komunikacije med
napravami (npr. Xbee, Zig Bee) z nizko hitrostjo podatkovnega prenosa in kratkim
dometom (do 10 metrov). [18]
Slika 4.1 Brezžični modul RN-XV 171
Brezžični merilni sistem Diplomsko delo
- 18 -
V najpreprostejših aplikacijah zadostuje uporaba le štirih priključkov. Ti so: priključek za
3,3 voltno napajanje, masa ter RX in TX priključka za serijsko komunikacijo z
mikrokrmilnikom. Ostali priključki predstavljajo priključke, kot so: reset, dva analogna
senzorska vhoda ter GPIO vhodno-izhodne priključke. Vsi priključki pa dopuščajo
enosmerno napetost velikosti 3,3 V. Modul omogoča brezžični prenos podatkov v območju
med 2,4 GHz in 2,48 GHz in v dosegu 100 metrov. Domet je močno odvisen od
vremenskih pogojev in okolja, v katerem aplikacija deluje. Modul je primeren za vgradnjo
v aplikacije, kot so HVAC2 nadzor, nadzor nad roboti ter razne namenske merilne ali
krmilne naprave tudi v industrijskih procesih, saj ima temperaturno območje delovanja od -
45 ˚C pa do +90 ˚C. Njegova dobra lastnost je tudi majhna poraba, ki ne presega 180 mA.
Modul ima na zgornji strani že vgrajeno žično anteno in tri informacijske LED diode
različnih barv, ki služijo kot indikatorji. Rdeča LED dioda utripa hitro, če modul ni
povezan z brezžičnim omrežjem, če pa je dioda ugasnjena imamo uspešno vzpostavljeno
povezavo. Rumena LED dioda utripa, ko modul prejme oziroma odda podatke preko pinov
RX ali TX. Zelena LED dioda utripa hitro, če IP naslov ni na voljo in utripa počasi, ko se
uspešno poveže z dostopno točko ter sveti neprekinjeno, ko je povezava z njo
vzpostavljena. [19]
Nastavitev modula
Modul je potrebno pred vgradnjo v aplikacijo prednastaviti. Določiti mu moramo določene
parametre, kot so npr. IP naslov, privzeti prehod, ime ter geslo domačega omrežja itd. Ker
smo za programiranje mikrokrmilnika uporabili programsko okolje Arduino, smo v njem
lahko prednastavili tudi modul, in sicer preko serijske povezave. Modul smo povezali s 3,3
V napajanjem, maso, RX priključek modula smo povezali s TX priključkom
mikrokrmilnika, TX priključek modula pa z RX priključkom mikrokrmilnika. Ker je
izhodna napetost mikrokrmilnika na priključkih RX in TX večja od 3,3 V, smo dodali
preprost napetostni delilnik, realiziran z dvema uporoma, da RN-XV modula ne bi
poškodoval. Razvojno orodje Arduino in modul smo nato preko USB priključka povezali z
računalnikom. Napisali smo kratek program za vzpostavitev komunikacije med serijskimi
vrati osebnega računalnika in samim modulom. S pomočjo terminala (Tera term) smo nato
po navodilih, ki jih je podal proizvajalec v tehnični dokumentaciji modula, modul
2 Avtomatski nadzor ventilacije, gretja in klimatizacije.
Brezžični merilni sistem Diplomsko delo
- 19 -
prednastavili tako, da je ustrezal nastavitvam in specifikacijam našega omrežja. V
komandno okno smo najprej vnesli "$$$", da smo lahko prešli v ukazni način. Modul nato
sprejema ascii znake, po vsakem uspešno vnesenem ukazu pa modul izpiše "AOK".
Neuspešno vnesen ukaz vrne zaporedje znakov "ERR". Po končani nastavitvi smo novo
nastavljene parametre shranili in modul ponovno zagnali z ukazoma "save" in "reboot".
Modul je vzpostavil uspešno komunikacijo z mikrokrmilnikom ter omrežjem in je bil
pripravljen na nadaljnji razvoj programske kode.
Asinhrona serijska komunikacija – UART
Asinhrona serijska komunikacija je ena izmed osnovnih komunikacij mikrokrmilnika in
perifernih naprav. Podatkovne besede se prenašajo zaporedno ena do druge, časovni
razmik med zaporednim prenosom podatkovnih besed pa je različen. Ena podatkovna
beseda po navadi predstavlja en znak. Znak sestavlja do osem podatkovnih bitov, začetni
start bit in končni stop bit, ki lahko obsega (samo končni stop bit?) tudi dolžino 1,5 ali 2
bita. Začetni bit je aktiven ob logično nizkem nivoju (“0”), njegova naloga pa je, da
sprejemniku sporoči začetek prenosa podatkovnih bitov. Nasprotno od začetnega bita je
končni bit aktiven na logično visokem nivoju (“1”). Nato zopet sledi začetni bit za prenos
naslednjega znaka ali pa stanje brezdelja, kar se zgodi, ko je linija prenosa na nizkem
logičnem nivoju dlje časa. Podatkovne bite lahko oklepa tudi bit paritete, ki skrbi za
odkrivanje napak pri prenosu. Paritetni bit lahko zavzame vrednost nič ali ena, odvisno od
uporabljene paritetne sheme in skupnega števila enic v podatkovni besedi. Shema s sodo
pariteto zahteva, da je skupno število enic sodo, liha pariteta pa zahteva liho skupno število
enic. Slabost asinhronega prenosa je majhna učinkovitost. Zaradi začetnih in končnih bitov
predstavlja podatek v najboljšem primeru le osem od desetih bitov. Asinhrona
komunikacija je primerna za uporabo v aplikacijah, ki ne zahtevajo visoke hitrosti prenosa
in vključujejo relativno majhno količino prenesenih podatkov. [7]
Komunikacija poteka med dvema napravama, in sicer tako, da naprava 1 oddaja podatke
preko TX pina, naprava 2 pa ta podatek sprejme na pinu RX. Slika 4.2 prikazuje pravilno
vezavo RX in TX pinov, za brezhibno delovanje pa moramo obe napravi povezati na
skupno maso. [22]
Brezžični merilni sistem Diplomsko delo
- 20 -
Slika 4.2 Serijska komunikacija med dvema napravama
Vendar pa ima ob določenem času nadzor nad serijskim vodilom samo ena naprava. Če
imamo več naprav, povezanih na isto serijsko vodilo, pride do napake na vodilu,
imenovane »bus contention«. To pomeni, da bodo podatki sprejeti kot napačni. Na spodnji
sliki 4.3 vidimo, da naprava 1 na pinu RX ne bo pravilno prejela podatkov, poslanih iz
naprave 2 in naprave 3, ker sta ti dve napravi v sporu glede zaporedja pošiljanja podatkov.
Rezultat tega bo, da naprava 1 ne bo sprejela nobenega podatka. [22]
Slika 4.3 Nedovoljena vezava naprav preko UART vmesnika
Brezžični merilni sistem Diplomsko delo
- 21 -
4.2 Brezžični modul WIPORT
Ena izmed alternativ Wifly modulu je naprava imenovana WIPORT. Prikazana je na sliki
4.4 in je po osnovnih lastnostih podobna Wifly modulu. Namenjena je za kakovostnejše in
kompleksnejše aplikacije, kar se odraža tudi v ceni, ki je nekajkrat višja.
Slika 4.4 Brezžični modul WIPORT
WIPORT je kompakten integriran modul, ki omogoča komuniciranje naprav preko
serijskega vmesnika v standardizirano 802.11 b/g omrežje. WIPORT ima integriran TCP-
IP protokolni sklad, prav tako pa ima vgrajen spletni strežnik, ki ga lahko uporabimo za
samo konfiguracijo WIPORT naprave na daljavo ali za nadzor ali krmiljenje priključenih
naprav. Programska oprema je zasnovana tako, da omogoča preprosto namestitev in
nastavitev WIPORT naprave. Ponuja namreč več možnosti nastavitve, saj ga lahko
nastavimo na lokalni ravni preko serijskega vmesnika ali pa na daljavo preko ethernet
omrežja z uporabo telnet protokola ali spletnega brskalnika. Integriran flash pomnilnik
omogoča tudi varno shranjevanje spletnih strani.
WIPORT se nahaja v 40-pinskem ohišju, za napajanje pa potrebuje 3,3 voltno enosmerno
napetost. Pri komuniciranju z mikrokrmilnikom pa prav tako uporablja 3,3 voltne logične
vmesnike. Komunikacija z mikrokrmilnikom je serijska, kar pomeni, da ga povežemo
preko RX in TX priključkov. Anteno, ki ni integrirana na samem modulu, priključimo
preko koaksialnih kablov na klasičen SMA priključek, uporabimo pa lahko klasično Wifi
anteno za notranjo uporabo. Temperaturno območje delovanja je med -40 in 85 ˚C,
kovinsko ohišje pa omogoča brezhibno delovanje tudi v bolj zahtevnih aplikacijah ali tudi
industrijskih obratih. [14]
Brezžični merilni sistem Diplomsko delo
- 22 -
4.3 Arduino WIFI modul3
Programski del brezžičnega merilnega sistema smo izvedli s pomočjo odprtokodne
programske platforme Arduino, zato bomo na kratko opisali tudi WIFI napravo oziroma
brezžični ščit istega proizvajalca. WIFI ščit temelji na čipu HDG 104, proizvajalca Atmel
in je primeren za senzorske ali krmilne aplikacije za domačo ali industrijsko rabo. Na sliki
4.5 vidimo zgornjo in spodnjo stran omenjenega WIFI ščita.
Slika 4.5 Brezžični modul Arduino Wifi
Arduino WIFI ščit omogoča povezavo Arduino razvojne platforme v 802.11 b/g internetno
brezžično omrežje. Podpira TCP-IP protokol, prav tako pa tudi UDP protokol in omogoča
hitrosti prenosa do 54 Mbps, odvisno od tipa omrežja, v katerem deluje. WIFI ščit služi kot
dodatek osnovnim razvojnim platformam Arduino, njegova namestitev pa je izredno
preprosta. Ščit komunicira s krmilnikom preko SPI vodila, ker pa ima vgrajeno tudi režo za
SD kartico, si SPI vodilo delita dve napravi. Pravilno delovanje SPI vodila omogočimo
programsko. Kot je standardno pri podobnih brezžičnih internetnih modulih, tudi ta za
napajanje uporablja enosmerno napetost velikosti 3,3 volta. Za uspešno povezljivost v
brezžično omrežje pa mora poznati tako imenovani SSID ali ime omrežja. Na ščitu se
nahaja že integrirana PCB antena, kar nekaj pa je tudi informacijskih LED diod, ki dajejo
informacije o tem, ali je ščit povezan z brezžičnim omrežjem, ali ščit oddaja ali sprejema
podatke in o tem, ali je prišlo do napake v povezovanju z omrežjem. [3]
3 Arduino WIFI shield
Brezžični merilni sistem Diplomsko delo
- 23 -
5 Elektronske komponente
V tem poglavju so opisane osnovne lastnosti komponent, ki smo jih uporabili pri izdelavi
brezžičnega merilnega sistema. Pri izbiri komponent smo bili pozorni na to, da smo dosegli
predhodno začrtane cilje, na samo funkcionalnost vezja ter na to, da smo uporabljene
komponente maksimalno izkoristili. Brezžični merilni sistem je sestavljen iz že opisanega
brezžičnega modula RN-XV, jedro sistema pa predstavlja mikrokrmilnik proizvajalca
Atmel z oznako Atmega 328P-PU. Za merjenje podatkov o temperaturi, zračnem tlaku in
relativni vlagi v zraku smo uporabili tri različne senzorje DHT11, BMP085 ter DS18S20.
Za merjenje enosmernih napetosti smo uporabili uporovno vezje ter diferenčni ojačevalnik
INA 122 za posredno merjenje enosmernega toka.
5.1 Arduino programsko okolje
Arduino je odprtokodno razvojno programsko okolje, realizirano na tiskanem vezju z
vhodno-izhodnimi priključki. Uporablja se za razvoj samostojnih aplikacij, lahko pa ga
povežemo z računalnikom in služi kot dodatek k sistemu.
Značilnosti okolja Arduino:
je vsestransko uporabno okolje, ki deluje v operacijskem sistemu Windows,
Macintosh in Linux,
temelji na programskem jeziku C++,
z računalnikom ga povežemo preko priključka USB,
je odprtokodna programska ter strojna oprema, kar pomeni, da si jo lahko
sestavimo sami, vezje in programsko opremo brezplačno prenesemo iz spletne
strani proizvajalca,
strojna oprema je cenovno ugodna, njene komponente je ob morebitni napaki
mogoče enostavno zamenjati,
na spletu obstaja skupnost aktivnih uporabnikov, ki nam lahko svetujejo in
pomagajo pri morebitnih težavah.
Brezžični merilni sistem Diplomsko delo
- 24 -
Arduino programsko okolje je sestavljeno iz dveh delov: iz tiskane ploščice z vsemi
komponentami, ki predstavlja strojno opremo, ter programske opreme Arduino IDE, ki jo
poganjamo na osebnem računalniku in predstavlja programsko okolje za pisanje tako
imenovanih skic (angl. sketch) ali programov.
Slika 5.1 prikazuje Arduino platformo z označenimi pomembnejšimi priključki. Arduino
platforma je tiskano vezje z mikrokrmilnikom, ki predstavlja majhen, preprost računalnik s
katerim lahko gradimo zanimive naprave. Ploščo napajamo neposredno iz USB priključka
ali s primernim 9–15 V adapterjem. Obstaja več verzij Arduino plošč. V našem primeru
smo uporabili ploščo imenovano Arduino UNO, ki vsebuje Atmega 328P-PU
mikrokrmilnik in ima naslednje lastnosti:
14 digitalnih vhodno izhodnih priključkov,
6 analognih vhodnih priključkov,
6 analognih izhodnih priključkov.
Slika 5.1 Arduino UNO označbami priključkov
Brezžični merilni sistem Diplomsko delo
- 25 -
Arduino IDE (Integrated Development Environment) je poseben računalniški program, ki
služi pisanju programov ter njihovemu nalaganju na mikrokrmilnik. Programska koda se
najprej prevede v strojno kodo, nato pa se prenese na mikrokrmilnik. Na sliki 5.2 vidimo
okno Arduino IDE programskega okolja. [5]
Slika 5.2 Aduino IDE programsko okolje
5.2 Mikrokrmilnik Atmega328P-PU
Pri načrtovanju našega sistema smo uporabili razvojno okolje Arduino UNO, ki vključuje
mikrokrmilnik Atmega 328P-PU z že naloženim bootloaderjem. Bootloader je majhen
program, shranjen na mikrokrmilniku, ki je aktiven na začetku izvajanja programa.
Njegova naloga je pretvorba programske kode v strojni, mikrokrmilniku razumljiv, jezik,
kar dovoljuje nalaganje programske kode na mikrokrmilnik brez uporabe dodatnega
programatorja [2]. Mikrokrmilnik Atmega 328P-PU je zadostoval našim potrebam z vidika
programskega pomnilnika ter števila vhodno-izhodnih priključkov. Na sliki 5.3 so
prikazani vhodno-izhodni priključki omenjenega mikrokrmilnika. [4]
Brezžični merilni sistem Diplomsko delo
- 26 -
Slika 5.3 Priključki mikrokrmilnika Atmega 328-P
Nekatere lastnosti mikrokrmilnika Atmega 328P-PU:
PDIP ohišje,
28 priključkov, od tega 23 V/I priključkov,
programski pomnilnik velikosti 32 kB,
SRAM pomnilnik velikosti 2 kB,
EEPROM pomnilnik velikosti 1 kB,
UART vmesnik,
napajalna napetost v območju od 1,8 do 5,5 V,
temperaturno območje delovanje od -45 ˚C do 85 ˚C.
Brezžični merilni sistem Diplomsko delo
- 27 -
5.3 Temperaturni senzor DS18S20
Temperaturni senzor proizvajalca Dallas semiconductors DS18S20 je visoko natančni
digitalni termometer. Z mikrokrmilnikom komunicira preko »one wire« vodila, kar
pomeni, da je za prenos podatkov potrebno le eno vodilo. Komunikacija je dvosmerna,
asinhrona, kar pomeni, da podatki tečejo v obe smeri, a le naenkrat v eno smer. »One
wire« vodilo ima kar nekaj dobrih lastnosti, ena izmed njih je zanesljivo delovanje pri
nizkih hitrostih in dolgih signalnih linijah, ki lahko segajo vse tja do 125 m. Pri daljših
povezavah pa si lahko načrtovanje PCB tiskanine dodatno olajšamo s parazitnim
napajanjem, kar pomeni, da se »one wire« naprava napaja neposredno iz podatkovnega
vodila in tako ne potrebuje dodatne napajalne povezave. Način parazitne vezave
temperaturnega senzorja je prikazan na sliki 5.4, slika 5.5 pa prikazuje standardni način
vezave senzorja, ki smo ga uporabili v našem sistemu. Vsaka naprava ima 64-bitno
unikatno kodo, kar nam omogoča, da lahko na enem »one wire« vodilu komunicira več
»one wire« naprav. Njegovo temperaturno območje sega od -55 ˚C do 125 ˚C, pri
natančnosti 0,5 ˚C. Če ne izkoristimo možnosti parazitnega napajanja, mu moramo
zagotoviti 5 V enosmerne napetosti in 4,7 kΩ upor, priključen na napajalno napetost. [9]
Slika 5.4 Parazitna vezava senzorja DS18S20
Slika 5.5 Standardna vezava senzorja DS18S20
Brezžični merilni sistem Diplomsko delo
- 28 -
5.4 DHT11 senzor vlage in temperature
Slika 5.6 prikazuje senzor vlage DHT11. Gre za laboratorijsko kalibriran temperaturni
senzor, ki zraven temperature, posreduje še podatke o relativni vlažnosti zraka. Senzor
zagotavlja visoko zanesljivost ter dolgo, stabilno delovanje. Merjenje temperature poteka s
pomočjo NTK termistorja, vlaga v zraku pa se meri s pomočjo upornosti – z naraščanjem
vlažnosti upornost pada. Vsaka DHT naprava je kalibrirana v laboratoriju, kar nam
omogoča visoko točnost izmerjenih podatkov. Senzor zanesljivo zaznava relativno zračno
vlažnost v območju od 20 % do 90 % po 1 % korakih, njegova natančnost pa je ± 5 %.
Temperaturno območje je ožje v primerjavi z ostalima senzorjema, saj je to le od 0 ˚C pa
do +50 ˚C, natančnost temperature pa znaša ±2 ˚C.
Slika 5.6 Senzor DHT11
Senzor ima štiri priključke, za delovanje pa mu je potrebno zagotoviti enosmerno napetost
v območju med 3 in 5 V. Za komunikacijo uporablja podatkovno linijo, en cikel prenosa
podatkov pa traja 4 ms. V primeru, da je povezava krajša od 20 metrov, na napajalno linijo
vežemo 4,7 kΩ dvižni upor. Senzor je primeren predvsem za domače aplikacije, nikakor pa
ni primeren za uporabo v varnostnih sistemih, saj je izjemno občutljiv na zunanje vplive,
kot so dolga izpostavljenost ultravijolični svetlobi, izpostavljenost razmeram, ki presegajo
zgornje ali spodnje meje zaznavanja temperature oziroma zračne vlage. V takšnih primerih
bi z njim izmerjeni rezultati močno odstopali od dejanskih. Proizvajalec prav tako
priporoča montažo senzorja dovolj daleč od vira toplote. [10]
Brezžični merilni sistem Diplomsko delo
- 29 -
5.5 BMP085 senzor zračnega tlaka in temperature
BMP085 je visoko natančen digitalni barometer, ki poleg zračnega tlaka zaznava še
temperaturo. Delovanje senzorja je zasnovano na piezo-uporovni tehnologiji, sposoben pa
je zaznavati zračni tlak v območju med 300 hPa in 1100 hPa po korakih 0,01 hPa, ter
temperaturo v območju med -40 ˚C in 85 ˚C po korakih 0,1 ˚C. Odstopanje pri izmerjeni
temperaturi je ± 1,5 ˚C, pri zračnem tlaku pa ± 0,2 hPa. Na sliki 5.7 je prikazana tiskana
ploščica s senzorjem in vsemi dodanimi elementi, potrebnimi za normalno delovanje.
Slika 5.7 Tiskana ploščica s senzorjem BMP085 in potrebnimi elementi
Sam senzor se nahaja v LCC ohišju z osmimi priključki, za pravilno delovanje pa
potrebuje enosmerno napetost v velikosti 3,3 V. Preprosto povezavo z mikrokrmilnikom
nam omogoča I2C način komunikacije, ki za komunikacijo uporablja dva priključka, in
sicer SCL4 ter SDA
5, oba pa za normalno delovanje potrebujeta 4,7 kΩ dvižnega upora.
SCL povezava prenaša uro, ki je 3,4 MHz, SDA povezava pa je podatkovna. S pomočjo
senzorja lahko, glede na absolutno nadmorsko višino – 1013,25 hPa, izračunamo
nadmorsko višino, na kateri se nahaja senzor. Ker je senzor fizično majhen, njegove
dimenzije so 6x6 mm, je primeren za vgradnjo v naprave, kot so mobilni telefoni, GPS
navigacijski sistemi ter raznorazne vremenske postaje. [6]
5.6 Merjenje enosmerne napetosti
Merjenje enosmerne napetosti smo realizirali s pomočjo analogno-digitalnega pretvornika
v mikrokrmilniku in preprostim uporovnim vezjem s tremi upori, ki ga vidimo na sliki 5.8.
S pomočjo tega vezja smo omogočili merjenje enosmerne napetosti v območju od -5 V do
+5 V, analogno-digitalni vhod mikrokrmilnika, s katerim tipamo napetost, pa smo
4 SCL – Serial clock
5 SDA – Serial data
Brezžični merilni sistem Diplomsko delo
- 30 -
prednapetostno zaščitili z dvema zaščitnima diodama 1N4148. Diodi poskrbita za zaščito
vhoda pred negativno napetostjo in napetostjo večjo od 5 V. Tabela 7.1 nam prikazuje
odvisnost izhodne napetosti na uporovnem vezju v odvisnosti od vhodne napetosti oziroma
napetosti, ki jo izmerimo.
Slika 5.8 Vezje za merjenje enosmerne
napetosti
Tabela 5.1 Uizh v odvisnosti od Uvh
Uvh (V) Uizh (V)
-5 0
-1,5 1,7
0 2,5
1,5 3,3
5 5
Funkcionalnost in obnašanje vezja smo analizirali v SPICE simulatorju. Pozitivno sponko
izhoda vezja smo povezali na 10-bitni analogno-digitalni vhod mikrokrmilnika, s katerim
tipamo napetost, s preprostim matematičnim izrazom pa v programski kodi mikrokrmilnika
dobljeno vrednost pretvorimo v napetost.
Izraz, s katerim izračunamo napetost na vhodu analogno-digitalnega pretvornika, je sledeč:
(
) (4.1)
Pri tem je:
Uizm – dejanska izmerjena napetost,
UA/D – binarna vrednost na vhodu analogno-digitalnega pretvornika.
Brezžični merilni sistem Diplomsko delo
- 31 -
5.7 Merjenje enosmernega električnega toka
Merjenje enosmernega toka smo izvedli posredno, preko merjenja napetosti na znani
omski upornosti. Ker smo želeli, da dodatna serijska omska upornost ne bi bistveno
vplivala na razmere v vezju, in bi bila meritev čim bolj natančna, smo izbrali upor z
vrednostjo 10 Ω in toleranco 1 %. Zaradi majhnega padca napetosti na uporu, smo
uporabili precizno vezje z instrumentacijskim ojačevalnikom, katerega dobra lastnost je
diferenčni vhod, ki ojači majhne razlike dveh vhodnih napetosti, zaradi odpornosti na šum
pa so natančni tudi izmerjeni rezultati. Uporabili smo instrumentacijski ojačevalnik z
oznako INA 122, ki ima že tovarniško nastavljeno 5-kratno ojačenje razlike vhodnih
signalov, zato potrebe po dodatnem uporu za nastavljanje ojačenja nismo imeli [8].
Vrednost napetosti na analogno-digitalnem vhodu mikrokrmilnika je bila sorazmerna
ojačeni razliki napetosti na vhodu instrumentacijskega ojačevalnika, pridobljeni na uporu
RT. Na sliki 5.9 vidimo opisano vezje, s pomočjo katerega merimo enosmerni električni
tok.
Slika 5.9 Vezje za merjenje enosmernega toka
Brezžični merilni sistem Diplomsko delo
- 32 -
To vrednost smo s pomočjo izraza (4.2) pretvorili v tok, ki teče skozi breme RT. Najprej je
bilo treba izračunati napetost, ki smo jo delili z znano upornostjo, nato pa smo vse skupaj
še pomnožili s 1000, da smo dobili vrednost v miliamperih, ter delili s pet, kar predstavlja
ojačenje instrumentacijskega ojačevalnika. Izraz 5/1023 predstavlja vrednost 1 LSB v
voltih.
(
)
(4.2)
Pri tem je:
Iizm – dejanski izmerjeni tok,
IA/D – binarna vrednost na vhodu analogno-digitalnega pretvornika,
Rt – znana upornost, v našem primeru 10 Ω.
Brezžični merilni sistem Diplomsko delo
- 33 -
6 Načrtovanje merilnega sistema
Preden smo se lotili razvoja programske kode, smo vse elektronske komponente povezali
na testni ploščici in tako sestavili prototip brezžičnega merilnega sistema. Pri načrtovanju
vezja smo si pomagali z dokumentacijo proizvajalca posamezne komponente. Pri razvoju
programske kode pa smo uporabili nekatere programske knjižnice, ki smo jih ustrezno
modificirali. V pomoč nam je bila tudi skupnost Arduino, ki združuje uporabnike tega
priljubljenega okolja. Po končanem razvoju programske kode in testiranju brezžičnega
merilnega sistema, smo načrt vezja narisali v okolju Altium Designer in vezje
implementirali na tiskano vezje.
6.1 Načrtovanje tiskanega vezja
Za načrtovanje tiskanega vezja smo uporabili načrtovalsko orodje Altium Designer.
Načrtovanje je potekalo v dveh sklopih: najprej smo narisali električni načrt vezja, nato pa
še tiskano vezje. Celotno vezje smo najprej sestavili ter testirali na testni ploščici, zato
večjih težav pri načrtovanju nismo imeli. Pri izbiri ustreznih elementov, kot so
kondenzatorji in razni dvižni upori, pa smo uporabili tehniško dokumentacijo, ki jo poda
proizvajalec posameznih komponent.
Risanje načrta je potekalo po ustaljenem postopku. V orodju Altium smo najprej kreirali
nov projekt, v katerega smo nato dodali novo shematsko datoteko. V knjižnicah smo
poiskali ustrezne elemente ter jih dodali v sam načrt in jih kasneje povezali. Pri izbiri
elementov smo bili pozorni predvsem na podnožja elementov. Nadalje smo uporabili tudi
orodje za kreiranje simbolov in podnožij, lastnih elementov kot je v našem primeru
brezžični modul RN-XV. Vsak element je sestavljen iz treh delov, in sicer iz simbola,
podnožja ter tridimenzionalnega prikaza ohišja komponente. Za samo načrtovanje ter
funkcionalnost načrta sta dovolj že simbol in podnožje elementa, tridimenzionalni prikaz
ohišja pa služi za zanimivo predstavitev končnega produkta. Za številčenje elementov smo
uporabili izbiro samodejnega številčenja, elementom kot so upori in kondenzatorji pa smo
določili tudi vrednosti, da smo si olajšali samo izdelavo tiskanega vezja. Na sliki 6.1 je
prikazana električna shema celotnega brezžičnega merilnega sistema.
Brezžični merilni sistem Diplomsko delo
- 34 -
Slika 6.1 Celotni načrt brezžičnega merilnega sistema.
Brezžični merilni sistem Diplomsko delo
- 35 -
Po zaključenem risanju električnega načrta, smo v projekt dodali PCB dokument in
nastavili osnovne lastnosti tiskanega vezja kot so npr.: enoplastna tiskanina, debelina
povezav, velikost pritrdilnih padov, minimalna razdalja med povezavami ter velikost
lukenj. Sledila je posodobitev PCB dokumenta, kar pomeni, da smo uvozili povezane in
urejene elemente iz električnega načrta. Elemente, ki so bili povezani z navideznimi
povezavami, smo smiselno razvrstili po tiskanini in jih povezali z fizičnimi povezavami,
pri tem smo bili pozorni predvsem na končne dimenzije tiskanine, ki bi naj bile čim
manjše. Vezje smo izdelali na enostranski tiskanini. Končni izgled tiskanega vezja je
prikazan na sliki 6.2.
Slika 6.2 PCB načrt tiskanega vezja
Na sliki 6.3. je prikazan izgled tiskanine v tridimenzionalnem prostoru.
Brezžični merilni sistem Diplomsko delo
- 36 -
Slika 6.3 Prikaz 3D pogleda tiskanine
6.2 Opis programske kode mikrokrmilnika
Komentirana programska koda je prikazana v prilogah v poglavju 10.1. Z njo je realiziran
preprost spletni strežnik. V prvem delu programa smo inicializirali vse potrebne
spremenljivke ter vključili dodatne knjižnice, ki so potrebne za normalno delovanje našega
programa in strojne opreme. Programska koda je zasnovana tako, da se brezžični merilni
sistem samodejno poveže z ustreznim brezžičnim lokalnim omrežjem takoj, ko ga
priključimo na napajalno napetost, ob pogoju, da je omrežje na voljo. To je omogočeno z
nekaj osnovnimi nastavitvami brezžičnega modula RN-XV, ki vsebujejo nastavitve o
imenu ter geslu brezžičnega lokalnega omrežja, DHCP načinu komunikacije, vrata (80) za
komunikacijo med mikrokrmilnikom in lokalnim omrežjem. Inicializirana je tudi
komunikacija med mikrokrmilnikom in senzorjema BMP 085 in DHT11. Celoten merilni
sistem smo povezali z osebnim računalnikom in v serijskem terminalu opazovali potek
izvajanja programske kode. To možnost smo izkoristili pri samem razvoju kode za
odpravljanje napak. V serijskem terminalu so se izpisovali podatki o prostem pomnilniku,
MAC ter IP naslov RN-XV modula oziroma brezžičnega merilnega sistema, in tudi
opozorila o uspešni ali neuspešni združitvi z lokalnim brezžičnim omrežjem.
Brezžični sistem, povezan z želenim brezžičnim omrežjem, čaka na zahtevo uporabnika –
klienta. Čakanje je realizirano v programski zanki. V njej čakamo na zahtevo uporabnika
spletne strani oziroma na to, da uporabnik spletne strani vnese IP naslov RN-XV
brezžičnega modula. Z metodo GET, odposlano zahtevo brskalnika, preverjamo dva niza
znakov, če sta ta niza enaka, se prikaže prva, pozdravna spletna stran (void.SendIndex), ki
Brezžični merilni sistem Diplomsko delo
- 37 -
vsebuje pozdravni besedi "Dober dan", majhno okence za vpis uporabniškega imena ter
potrditveni gumb (submit). Ko v okence vpišemo poljubno uporabniško ime in potrdimo z
omenjenim potrditvenim gumbom, se prikaže glavna spletna stran (void.SendGreeting), ki
vsebuje pozdravni besedi "Dober dan" s prej vpisanim uporabniškim imenom, pridobljene
izmerjene veličine, iz spletne strani pridobljeno uro in datum ter obrazec za krmiljenje
naprave. Ta spletna stran se naloži podobno kot pozdravna stran, s to razliko, da je
brskalnik podatke odposlal z metodo POST. Bistvena razlika med GET in POST metodo je
v tem, da POST metoda ne doda dodatnih spremenljivk v URL vrstico. Preden se stran
prikaže, mikrokrmilnik izmeri posamezne veličine s klicanjem podprograma
(void.opravimeritve). S klicanjem podprogramov smo si olajšali pisanje programske kode
in samo preglednost celotnega programa, saj se podprogram izvede večkrat. V
podprogramu pridobimo zakodirane podatke o temperaturi, vlagi in drugih veličinah.
V spodnjem delu spletne strani je realizirana forma z dvema gumboma za krmiljenje
naprave. Napravo, ki je po privzetem načinu ugasnjena, krmilimo z metodo GET in
preverjanjem dveh nizov znakov. Naprava se prižge, če se niz v URL naslovu ujema z
vpisanim nizom GET/?L=1 ter ugasne, če je niz znakov v URL naslovu enak vpisanemu
nizu GET/?L=0.
Program ob vsaki osvežitvi spletne strani v spletnem brskalniku prikaže novo izmerjene
podatke, če pa v tem času pride do morebitne napake v povezavi brezžičnega merilnega
sistema z brezžičnim lokalnim omrežjem, prikaže spletno stran o napaki 404. Slika 6.4
prikazuje videz spletne strani: prva pozdravna stran in druge strani, na katerih so prikazani
rezultati meritev in stanje naprave.
Brezžični merilni sistem Diplomsko delo
- 38 -
Slika 6.4 Izgled spletnih strani brezžičnega merilnega sistema
6.3 Komunikacija med spletnim brskalnikom in strežnikom
HTTP protokol je protokol, ki omogoča komunikacijo med klientom in spletnim
strežnikom. Spletni brskalnik predstavlja klienta, medtem ko spletni strežnik predstavlja
aplikacijo na oddaljenem računalniku. V našem primeru je to opisan mikrokrmilniški
sistem. Proces izvajanja komunikacije poteka tako, da klient najprej poda HTTP zahtevo
strežniku, ki mu odgovori z vsebino, ki vsebuje informacije o stanju zahteve ali s celotno
zahtevano vsebino. Zahtevo po spletni strani sproži uporabnik spletne strani z vpisom IP
naslova brezžičnega merilnega sistema. Izvajanje omenjenega procesa je izvedeno s
HTML kodo HTTP/1.1 200 OK, ki ponazarja, da je spletni strežnik izveden na osnovi
HTTP protokola verzije 1.1, številka 200 pa predstavlja kodo uspešno izvedene zahteve z
odgovorom, ki vsebuje zahtevane podatke. V primeru, da strežnik ni našel odgovora, ki bi
ustrezal zahtevi ob ustreznem IP naslovu, strežnik vrne spletno stran o napaki 404, kar je
izvedeno s HTML kodo HTTP/1.1 404 not found.
Brezžični merilni sistem Diplomsko delo
- 39 -
Najbolj pogosto uporabljeni HTTP metodi za komunikacijo med klientom in strežnikom
sta POST in GET metodi. Za uporabo posamezne metode obstajajo določena priporočila,
in sicer naj bi metodo GET uporabljali, če je procesiran objekt idenpotenten, kar pomeni,
da gre za običajen poizvedbeni obrazec, ki ne vsebuje informacij o občutljivih podatkih in
geslih.
Pri uporabi metode GET lahko vidimo, da so poslani podatki vidni v URL vrstici spletnega
brskalnika. Najprej je viden osnovni URL ali naslov strani, ki mu sledi znak "=", prvi
atribut in nato še znak "?". Vse, kar je vidno za znakom "?" imenujemo poizvedbeni niz.
Metoda GET posledično ni primerna za pošiljanje objektov, ki vsebujejo občutljive
informacije, saj so podatki preveč izpostavljeni in ranljivi na spreminjanje. Težavo pa
predstavljajo tudi nekateri spletni brskalniki, ki imajo omejitev glede dolžine URL naslova.
[15]
Metoda POST velja za bolj varno metodo in se lahko uporabi tudi za večjo količino
podatkov. Parametri poslani z metodo POST niso vidni v URL vrstici spletnega brskalnika,
temveč se shranijo v superglobalno polje, imenovano $_POST, prav tako pa se poslani
podatki ne shranijo v piškotke in zgodovino spletnega brskalnika. Lahko bi rekli, da se
GET metoda uporablja le za pridobivanje podatkov oziroma spletnih strani, medtem ko
lahko z metodo POST sprožimo določene akcije na strani strežnika kot so npr. vnos in
posodabljanje podatkov v podatkovnih bazah, naročanje produktov v spletnih trgovinah in
pošiljanje elektronske pošte. V našem primeru smo spreminjali stanje na izhodnem
priključku mikrokrmilnika. [13]
Na sliki 6.5 Slika 6.5 vidimo URL naslove, pridobljene z GET in POST metodo. Opazimo,
da se URL naslovi med seboj razlikujejo, kar je posledica uporabe različnih metod, pri
prižiganju luči smo uporabili metodo GET, kar je razvidno na spodnjem delu slike, kjer
imamo zraven osnovnega URL naslova še dodatne atribute, ki se razlikujejo glede na
stanje luči. Spletna stran z URL naslovom 192.168.101/?L=1 se prenese, ko je luč
prižgana, ko pa luč ugasnemo, pa se prenese stran z URL naslovom 192.168.101/?L=0. Pri
metodi POST opazimo, da URL naslovu ni dodan noben atribut.
Brezžični merilni sistem Diplomsko delo
- 40 -
Slika 6.5 URL naslov v primeru POST in GET metode
Brezžični merilni sistem Diplomsko delo
- 41 -
7 Lastnosti brezžičnega merilnega sistema
7.1 Merjenje električnih in drugih veličin
Po končanem načrtovanju smo brezžični merilni sistem implementirali na tiskano vezje
dimenzij 10x7 cm. Brezžični merilni sistem napajamo z 9 V baterijo, za zagotovitev nižjih
napetostnih nivojev, ki so potrebni za napajanje senzorjev in mikrokrmilnika, pa smo
uporabili ustrezna stabilizatorja napetosti. Brezžični merilni sistem vzpostavi brezžično
povezavo z dostopno točko takoj, ko dobi napajanje, a le v primeru, da je omrežje, ki je
definirano v programu, na voljo. Brezžična povezava je vzpostavljena na podlagi standarda
IEEE 802.11 b /g, kar omogoča hitrost prenosa podatkov do 54 Mbps v dometu 100
metrov od dostopne točke.
Na sliki 7.1 vidimo blokovno shemo izvajanja meritev ter komunikacijo brezžičnega
merilnega sistema s klientom oz. spletnim brskalnikom.
Slika 7.1 Merjenje električnih in drugih veličin z brezžičnim merilnim sistemom
Brezžični merilni sistem Diplomsko delo
- 42 -
Sistem je omejen na merjenje električnih veličin, kot sta enosmerna napetost in tok ter
drugih veličin, kot so temperatura okolice, relativna vlažnost v zraku in zračni tlak. Tabela
7.1 vsebuje vse veličine in njihove dopustne vrednosti, ki jih je mogoče izmeriti z
načrtovanim brezžičnim merilnim sistemom.
Tabela 7.1 Veličine merjene z brezžičnim merilnim sistemom
TIPALO VELIČINA MIN MAX ENOTA
DS18S20 temperatura okolice -55,00 +125 ˚C
DHT11 temperatura okolice 0 +50 ˚C
relativna zračna vlaga 20 90 %
BMP085 temperatura okolice -40 +85 ˚C
zračni tlak 700 1100 hPa
INA122 električni tok 0 100 mA
A/D pretvornik električna napetost -5 +5 V
Na sliki 7.2 je prikazan končni izdelek diplomske naloge, poimenovan Brezžični merilni
sistem.
Slika 7.2 Fotografija končnega brezžičnega merilnega sistema
Brezžični merilni sistem Diplomsko delo
- 43 -
7.2 Krmiljenje naprave na daljavo
Prikaz izmerjenih podatkov in krmiljenje naprave poteka s preprosto HTML stranjo.
Uporabnik brezžičnega merilnega sistema potrebuje poleg brezžičnega merilnega sistema
tudi brezžični usmerjevalnik, kar mu omogoča dostop do spletne strani ne glede na to, kje
se nahaja. Pogoj je seveda, da ima dostop do interneta, do spletne strani pa pristopi z
vpisom IP naslova in porta, ki smo ju določili v nastavitvah samega brezžičnega modula
RN-XV 171.
Krmiljenje naprave poteka s formo, ki je na dnu spletne strani. Naprava je lahko prižgana
ali ugasnjena, njeno trenutno stanje pa je vidno na spletni strani. Krmiljenje naprave je
izvedeno s primerjanjem dveh nizov znakov, in sicer uporabnik spletne strani potrdi želeno
stanje (ON ali OFF) s potrditvenim gumbom (Submit) in s tem pošlje niz znakov. Naprava
spremeni stanje v primeru, da je poslan niz znakov enak nizu znakov, ki je bil določen ob
razvoju programske kode. Po privzetem načinu je naprava ob vstopu na spletno stran
ugasnjena.
Na sliki 7.3 vidimo potek krmiljenja naprav na daljavo z brezžičnim merilnim sistemom.
Slika 7.3 Krmiljenje (vklop/izklop) naprave na daljavo
Brezžični merilni sistem Diplomsko delo
- 44 -
8 Sklep
Tehnologija brezžičnih omrežij pridobiva na svoji priljubljenosti, glavni vzrok temu je
hiter razvoj majhnih prenosnih brezžičnih naprav, kot so prenosni računalniki, pametne
kartice ter tablični računalniki. Zaradi svoje preproste nastavitve, uporabe brezžičnega
prenosnega medija in relativno nizke cene, so takšna omrežja izjemno uporabna pri
vsakdanjih domačih uporabnikih kot tudi v poslovnih prostorih. Danes brezžično povezavo
z internetom ponujajo že nekateri lokali in večji trgovski centri, v nekaterih večjih mestih
pa nastajajo odprta javna omrežja, ki pokrivajo že dobršen del mest. Brezžična omrežja
imajo kar nekaj prednosti pred klasičnimi žičnimi omrežji. Omogočajo svobodo gibanja
uporabnikov v območju, ki ga signal pokriva ter nezahtevno dodajanje novega uporabnika
v omrežje, saj ne potrebujemo nobene dodatne strojne opreme.
Razvili smo brezžični merilni sistem, ki uporabnika informira o trenutno izmerjenih
fizikalnih in električnih veličinah na oddaljenem mestu preko interneta. Sistem vzpostavi
brezžično povezavo in s tem omogoči uporabniku dostop do spletne strani, ki ponuja
izmerjene podatke. Sistem ponuja tudi možnost vklopa in izklopa naprave, prikazuje pa
tudi trenutno stanje naprave (vklopljena/izklopljena).
Ker pa je bil to naš prvi kompleksnejši mikrokrmilniški projekt, ki smo ga izdelali od same
zamisli do strojne izdelave, smo občasno naleteli na težave, predvsem v procesu razvoja
programske kode. Uporaba odprtokodnega programskega okolja Arduino nam je
omogočila, da smo lahko brez večjih težav sprotno rešili težave, ki so se pojavile ob
samem razvoju. Na spletu namreč obstaja Arduino skupnost, v kateri so zbrani ljubitelji
elektronike z vseh koncev sveta, ki opisujejo svoje projekte in težave, s katerimi so se
srečevali pri izdelavi le-teh.
Brezžični merilni sistem bi lahko uporabili kot vremensko postajo, z nekaj nadgradnje pa
bi ga lahko uporabili za oddaljen nadzor naprav v odročnih zgradbah, kot so vikendi ipd.
Njegova dobra lastnost je dostop do spletne strani z izmerjenimi podatki. Z dodanimi
senzorji bi lahko prikazovali tudi druge podatke, kot so vsebnost vnetljivih plinov (butan,
propan, metan, vodik in alkohol) v prostoru.
Brezžični merilni sistem Diplomsko delo
- 45 -
9 Viri in literatura
[1] Abrahamsson, C., Wessman, M. WLAN Seciurity, IEEE 802.11b or Bluetooth –
which standard provides best seciurity methods for companies?, Bachelor Thesis in
Computer Science. School of Enginerring Blekinge Institute of Technology.
Sweden: Maj 2004
[2] Arduino bootloader. [online]. Dostopno na:
http://arduino.cc/en/Guide/Environment?from=Tutorial.Bootloader [5.5.2013]
[3] Arduino Wifi shield. [online]. Dostopno na:
http://arduino.cc/en/Main/ArduinoWiFiShield [23.1.2013]
[4] Atmel AVR. 8-bit Microcontroller with 4/8/16/32 K Bytes In-System Programable
Flash, Atmega 328P Data Sheet
[5] Banzi, M. Getting Started with Arduino. O' Reilly Media. U.S.A.: September 2011
Second edition
[6] Bosch Sensortec. BMP085 Digital Presure Sensor Datasheet. Revision 1.2
15.10.2009
[7] Brezočnik., Z. Mikroračunalniški sistemi. Fakulteta za elektrotehniko,
računalništvo in informatiko. Maribor: 2008
[8] Burr-Brown, Single Supply Micropower Instrumention Amplifier. Texas
Instruments. INA 122 Datasheet. 14.7.2012
[9] Dallas Semiconductors. DS18S20 High Precision 1-wire Digital Thermometer
Datasheet
[10] D-Robotics UK. DHT11 Humidity & Temperature Sensor Data Sheet. 30.7.2010
[11] Dubrawsky, I. Eleventh Hour Seciurity +. Syngres: 26.9.2009
[12] Gradišnik., M. Solata, imenovana IEEE. Moj mikro: 21.12.2011, [online].
Dostopno na: http://www.mojmikro.si/preziveti/varnost/solata_imenovana_ieee
[18.2.2013]
[13] Korpela., J. Methods GET and POST in HTML forms – what's the diference?
14.7.2012 [online]. Dostopno na:
http://www.cs.tut.fi/~jkorpela/forms/methods.html [25.3.2013]
[14] Lantronix. Wiport User Guide. Revision K. Januar 2010 [online]. Dostopno na:
http://www.lantronix.com/pdf/WiPort_UG.pdf [25.1.2013]
Brezžični merilni sistem Diplomsko delo
- 46 -
[15] Medved., M. Delo z obrazci. 2007 [online]. Dostopno na:
http://www.medved.si/php/php/2.13._delo_z_obrazci.html [27.3.2013]
[16] Nutt, A. The History of Wireless Network. 14.8.2009 [online].Dostopno na:
http://ezinearticles.com/?The-History-of-Wireless-Networking&id=2761612
[11.2.2013]
[17] OSI reference model (pdf). [online]. Dostopno na:
https://www.google.si/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CD
AQFjAA&url=https%3A%2F%2Flearningnetwork.cisco.com%2Fservlet%2FJiveS
ervlet%2Fdownload%2F34197-
6073%2F&ei=FYuHUcypCcfjswbeloDAAQ&usg=AFQjCNHtTPYNCOuNj8L6k
Su97LnhXOht_g&sig2=wMzu9ziHPiHXJeGV6CUJRA&bvm=bv.45960087,d.Ym
s&cad=rja [27.2.2013]
[18] RN171XV 802.11 b/g replacement for 802.15.4 systems. [online] Dostopno na:
http://rovingnetworks.com/products/RN171XV [4.3.2013]
[19] Roving Networks. RN-171-XV 802.11 b/g Wireless LAN Module Data Sheet.
version 1,04. 29.10.2012
[20] Ruckus in 802.11n standard. [online]. Dostopno na:
http://www.telos.si/ruckus/80211n.htm [18.2.2013]
[21] Satarsa, U. Basic Arhitecture of a Wirelles LAN. 10.12.2008 [online] Dostopno
na:
http://setup-wireless.blogspot.com/2008/12/basic-architecture-of-wireless-lan.html
[27.2.2013]
[22] Taylor., C. TX and RX signals. 1.12.2010 [online]. Dostopno na:
https://www.sparkfun.com/tutorials/224 [5.3.2013]
[23] Wireless LAN Standards and Topologies (pdf). [online]. Dostopno na:
http://www.mhprofessional.com/downloads/products/0071701524/0071701524_ch
ap02.pdf [15.2.2013]
Brezžični merilni sistem Diplomsko delo
- 47 -
10 Priloge
10.1 Programska koda
#undef PROGMEM
#define PROGMEM __attribute__(( section(".progmem.data") ))
#undef PSTR
#define PSTR(s) (__extension__({static prog_char __c[] PROGMEM = (s); &__c[0];}))
#include <WiFlyHQ.h> //Vključene potrebne knjižnice za normalno izvajanje
#include <OneWire.h> //programa in priključene strojne opreme.
#include <Wire.h>
#include <Adafruit_BMP085.h>
OneWire ds(8); //Temperaturni senzor DS18S20 na pinu 8.
#include <SoftwareSerial.h>
SoftwareSerial wifiSerial(10,11); //Programska določitev Rx(10) in Tx(11) pina.
int ledPin=7; //LED dioda na pinu 7.
WiFly wifly; //Inicializacija serijske komunikacije Wifly modula.
Adafruit_BMP085 bmp;
#include "DHT.h"
#define DHTPIN A0 //DHT11 senzor na pinu A0.
#define DHTTYPE DHT11 //Tip senzorja DHT 11.
DHT dht(DHTPIN, DHTTYPE);
const char mySSID[] = "Polo"; //SSID našega WLAN omrežja.
const char myPassword[] = "odranci19"; //Geslo našega WLAN omrežja.
//Podrutine, ki se izvajajo tekom programa.
void sendIndex(); //1. spletna stran.
void sendGreeting(char *name); //2. spletna stran.
void send404(); //3. spletna stran – stran ni na voljo.
void opraviMeritev(); //Zajamemo podatke senzorjev – posodobimo podatke.
char username[16]; //Niz znakov vpisano ime.
char buf[80]; //Niz znakov URL naslov.
boolean LEDON=false; //Status LED diode – ugasnjena ali prižgana.
byte i; //DS18S20 parametri.
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius; //DS18S20 temperatura.
float tlak; //BMP085 tlak.
float h; //DHT11 relativna zračna vlažnost.
float t; //DHT11 temperatura.
float vout = 0.0; //Merjenje enosmerne napetosti.
float tok=0.0; //Merjenje enosmernega toka.
int RT=10; //Vrednost upora RT-merjenje toka.
Brezžični merilni sistem Diplomsko delo
- 48 -
void setup()
{
pinMode(ledPin,OUTPUT); //LED dioda na pinu 7 kot zunanja naprava.
Serial.begin(115200); //Nastavitev baudne hitrosti za serijsko komunikacijo z
Serial.println(F("Starting")); //računalnikom, izpis statusnih napisov in prostega
Serial.print(F("Free memory: ")); //pomnilnika Wifly naprave v serijsko okno.
Serial.println(wifly.getFreeMemory(),DEC);
int (!bmp.begin()); //Inicializacija BMP085 in DHT11 senzorja.
dht.begin();
wifiSerial.begin(19200); //Nastavitev baudne hitrosti za serijsko komunikacijo z
if (!wifly.begin(&wifiSerial, &Serial)) { //Wifly modulom.
Serial.println(F("Failed to start wifly"));
wifly.terminal();
}
if (!wifly.isAssociated()) { //Če Wifly še ni povezan z omrežjem, naj se poveže.
Serial.println(F("Joining network")); //Nastavitev wifly modula s parametri, da se
wifly.setSSID(mySSID); //bo povezal z WLAN omrežjem. Nastavimo mu
wifly.setPassphrase(myPassword); //SSID in geslo WLAN omrežja ter omogočimo
wifly.enableDHCP(); //DHCP način delovanja.
wifly.save();
if (wifly.join()) { //Izpis statusa o stanju Wifly modula v serijsko okno
Serial.println(F("Joined wifi network")); // računalnika.
} else {
Serial.println(F("Failed to join wifi network"));
wifly.terminal();
}
} else {
Serial.println(F("Already joined network"));
}
wifly.setBroadcastInterval(0); //Onemogočimo UDP oddajanje.
Serial.print(F("MAC: ")); //Pridobimo in izpišemo MAC ter IP naslov Wifly
Serial.println(wifly.getMAC(buf, sizeof(buf))); // modula.
Serial.print(F("IP: "));
Serial.println(wifly.getIP(buf, sizeof(buf)));
wifly.setDeviceID("Wifly-WebServer"); //Naj se Wifly obnaša kot spletni strežnik.
if (wifly.isConnected()) {
Serial.println(F("Old connection active. Closing"));
wifly.close();
}
wifly.setProtocol(WIFLY_PROTOCOL_TCP);
if (wifly.getPort() != 80) { //Če lokalni port ni enak portu 80, ga nastavimo
wifly.setPort(80); //na 80,nastavitev začne veljati, ko nastavitve shranimo
//in rebootamo.
wifly.save();
Serial.println(F("Set port to 80, rebooting to make it work"));
Brezžični merilni sistem Diplomsko delo
- 49 -
wifly.reboot(); //Shranimo in rebootamo wifly modul
delay(3000); // ter zakasnimo za 3 s.
}
Serial.println(F("Ready"));
}
void loop()
{
if (wifly.available() > 0) { //Pošlji podatke, če je vrednost prejetih podatkov večja
if (wifly.gets(buf, sizeof(buf))) { //od 0.
if (strncmp_P(buf, PSTR("GET / "), 6) == 0) { //Če se niza znakov ujemata, je prišlo do
Serial.println(F("Got GET request")); //zahteve GET in naloži se 1. spletna stran
while (wifly.gets(buf, sizeof(buf)) > 0) { //s klicanjem podrutine sendIndex.
}
sendIndex();
Serial.println(F("Sent index page"));
} else if (strncmp_P(buf, PSTR("POST"), 4) == 0) { //Če se niza znakov ujemata, je prišlo
Serial.println(F("Got POST")); //do zahteve POST. Pred naložitvijo
if (wifly.match(F("user="))) { //2. spletne strani zajamemo podatke
opraviMeritev(); //senzorjev in nato naložimo spletno
wifly.gets(username, sizeof(username)); //stran, ki vsebuje tudi vpisano besedilo,
wifly.flushRx(); //ki smo ga vpisali na 1. spletni strani.
sendGreeting(username);
Serial.println(F("Sent greeting page"));
}
}
else if (strncmp_P(buf, PSTR("GET /?L=1"), 9) == 0) { //Če se niza znakov ujemata,
digitalWrite(ledPin, HIGH); //prižgemo LED diodo priključeno
Serial.println("ledpin paa"); //na pinu 7, spremenljivka LEDON
LEDON = true; //spletni strani sporoči, da je
opraviMeritev(); //LED dioda prižgana.
wifly.flushRx();
sendGreeting(username);
Serial.println(F("Sent greeting page"));
}
else if (strncmp_P(buf, PSTR("GET /?L=0"), 9) == 0) { //ČE se niza znakov ujemata,
digitalWrite(ledPin, LOW); //ugasnemo LED diodo priključeno
Serial.println("ledpin av"); //na pinu 7, spremenljivka LEDON
LEDON = false; //spletni strani sporoči, da je
opraviMeritev(); //LED dioda ugasnjena.
wifly.flushRx();
sendGreeting(username);
Serial.println(F("Sent greeting page"));
}
else {
Serial.print(F("Unexpected: ")); //Če je prišlo do nepričakovane zahteve
Serial.println(buf); //oziroma do napake v omrežju, se naloži
wifly.flushRx(); //3. spletna stran, ki sporoča napako 404.
Serial.println(F("Sending 404"));
send404();
}
}
}
}
void opraviMeritev()
Brezžični merilni sistem Diplomsko delo
- 50 -
{
//ZAJEMANJE SENZORSKIH PODATKOV
---------------------------------------------------------------------------------------- -------------------------------------------
-------------------------------------------*/
{
if ( !ds.search(addr)) { //Poiščemo naslove DS18S20 naprav
Serial.println("No more addresses."); //na one wire vodilu in pridobimo kaj? o
Serial.println(); //številu senzorjev.
ds.reset_search();
delay(250);
return;
}
Serial.print("ROM ="); //Poiščemo ROM kodo DS18S20 senzorja
for( i = 0; i < 8; i++) { // ter jo izpišemo v serijsko okno
Serial.write(' '); //računalnika v šestnajstiški obliki.
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) { //Poiščemo CRC kodo DS18S20 senzorja
Serial.println("CRC is not valid!"); //ter izpišemo njen status, če ni pravilna.
return;
}
Serial.println();
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); //Izpišemo tip oziroma družino senzorja DS18X20
type_s = 1; //s pomočjo case stavka. Senzor je lahko tipa
break; //DS18S20, DS18B20 ali DS1822. V primeru, da senzor
case 0x28: //ne pripada nobeni od omenjenih družin, to izpišemo v
Serial.println(" Chip = DS18B20"); //serijsko okno računalnika.
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return;
}
ds.reset(); //Resetiramo one wire vodilo in pripravimo senzor
ds.select(addr); //na konverzijo pridobljenih podatkov.
ds.write(0x44,1);
delay(750); //Zakasnimo za 750ms zaradi pretvorbe.
present = ds.reset();
ds.select(addr); //V primeru več senzorjev na one wire vodilu
ds.write(0xBE); //glede na naslov preberemo scratchpad pomnilnik.
Serial.print(" Data = "); //V serijskem oknu izpišemo podatek o
Serial.print(present,HEX); //temperaturi v šestnajstiški obliki
Serial.print(" ");
Brezžični merilni sistem Diplomsko delo
- 51 -
for ( i = 0; i < 9; i++) {
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC="); //V serijskem oknu izpišemo CRC kodo senzorja v
Serial.print(OneWire::crc8(data, 8), HEX); //šestnajstiški obliki.
Serial.println(); //Pretvorimo pridobljene podatke v dejansko
// temperaturo.
unsigned int raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw << 3; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw << 2; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw << 1; // 11 bit res, 375 ms
// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
Serial.print(" Temperature = "); //Izpis temperature senzorja DS 18S20
Serial.print(celsius); //v stopinjah Celzija v serijsko okno računalnika.
Serial.print(" Celsius, ");
}
int value = analogRead(A3); //Inicializacija pina za merjenje vrednosti napetosti
Serial.println("odcitek"); //ter kontrolni izpis v serijsko okno računalnika.
Serial.println(value);
vout = 2*(value*(5.0/1023.0)-(5.0/2.0)); //Izračun v dejansko vrednost merjene napetosti.
int current = analogRead(A1); //Inicializacija pina za merjenje vrednosti toka
Serial.println(current); //ter kontrolni izpis v serijsko okno računalnika.
tok = (current*(5.0 / 1023.0)/RT)*1000.0/5.0; //Izračun v dejansko vrednost toka.
tlak=0.1*bmp.readPressure(); //Branje zračnega tlaka in pretvorba v milibare.
h = dht.readHumidity(); //Branje relativne zračne vlažnosti in temperature
t = dht.readTemperature(); //pridobljene s senzorjem DHT11.
if (isnan(t) || isnan(h)) { //Preverimo ali senzor DHT11 deluje pravilno,
Serial.println("Failed to read from DHT"); //vrnjene neštevilčne vrednosti nakazujejo na
} else { //nepravilno delovanje senzorja. V serijsko
Serial.print("Humidity: "); //okno računalnika izpišemo tudi podatke o
Serial.print(h); //izmerjenih podatkih.
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
}
/** Send an index HTML page with an input box for a username */
void sendIndex()
Brezžični merilni sistem Diplomsko delo
- 52 -
{
/* Send the header direclty with print */
wifly.println(F("HTTP/1.1 200 OK"));
wifly.println(F("Content-Type: text/html"));
wifly.println(F("Transfer-Encoding: chunked"));
wifly.println();
/* Pošljemo vsebino strani s pomočjo "chunked" protokola, tako da klient ve,
* kdaj je sporočilo zaključeno.
*/
wifly.sendChunkln(F("<html>"));
wifly.sendChunkln(F("<title> Brezžični merilni sistem </title>"));
wifly.sendChunkln(F("<h1>"));
wifly.sendChunkln(F("<p> Dober dan </p>"));
wifly.sendChunkln(F("</h1>"));
wifly.sendChunkln(F("<form name=\"input\" action=\"/\" method=\"post\">"));
wifly.sendChunkln(F("Username:"));
wifly.sendChunkln(F("<input type=\"text\" name=\"user\" />"));
wifly.sendChunkln(F("<input type=\"submit\" value=\"Submit\" />"));
wifly.sendChunkln(F("</form>"));
wifly.sendChunkln(F("</html>"));
wifly.sendChunkln();
opraviMeritev();
}
/** Send a greeting HTML page with the user's name and an analog reading */
void sendGreeting(char *name)
{
/* Send the header directly with print */
wifly.println(F("HTTP/1.1 200 OK"));
wifly.println(F("Content-Type: text/html"));
wifly.println(F("Transfer-Encoding: chunked"));
wifly.println();
/* Pošljemo vsebino strani s pomočjo "chunked" protokola, tako da klient ve,
* kdaj je sporočilo zaključeno.
*/
wifly.sendChunkln(F("<html>"));
wifly.sendChunkln(F("<title> Brezžični merilni sistem </title>"));
wifly.sendChunk(F("<h1><p> Dober dan "));
wifly.sendChunk(name);
wifly.sendChunkln(F("</p></h1>"));
wifly.sendChunkln("<hr />");
wifly.sendChunkln("<hr />");
//Obrazec, s katerim pridobimo uro iz spletne strani: http://free.timeanddate.com
wifly.sendChunkln("<h3>Datum in cas</h3>");
wifly.sendChunk("<iframe src=http://free.timeanddate.com/clock/i3burjrr/n736/tlsi26/tt0/tw0/tm1/ts1/tb4
frameborder=0 width=86 height=34></iframe>");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("<br/>");
//Izpis izmerjenih podatkov poteka z ukazom wifly.sendChunkln
//številsko vrednost veličin pa izpišemo z ukazom dtostrf, ki nam
//omogoča decimalni izpis vrednosti.
wifly.sendChunkln("Temperatura 1=");
dtostrf(celsius, 2, 2, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln( "° C");
Brezžični merilni sistem Diplomsko delo
- 53 -
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Temperatura 2=");
dtostrf(t, 2, 2, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("° C");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Temperatura 3=");
dtostrf(bmp.readTemperature(), 2, 2, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("° C");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Relativna vlaga");
dtostrf(h, 2, 0, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("%");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Zracni tlak=");
dtostrf(tlak, 2, 0, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("mbar");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Napetost=");
dtostrf(vout, 2, 4, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("V");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("Tok=");
dtostrf(tok, 4, 4, buf);
wifly.sendChunkln(buf);
wifly.sendChunkln("mA");
wifly.sendChunkln("<br/>");
wifly.sendChunkln("<h3>Vklop/izklop naprave</h3>");
//Obrazec za kontrolo LED diode, status spreminjamo glede na URL naslov, ki izgleda tako: http:
//192.168.1.101/?L=1, ko LED diodo prižgemo.
wifly.sendChunkln("<form method=\"get\" name=LED> <input type='radio' name='L' value='1'>LED
ON<br><input type='radio' name='L' value='0'>LED OFF<br><br><input type=submit
value=submit></form>");
wifly.sendChunkln("<br />");
//Izpis statusa LED diode.
wifly.sendChunk("<font size='5'>LED status: ");
if (LEDON == true) {
wifly.sendChunkln("<font color='green' size='5'>ON");
}
else {
wifly.sendChunkln("<font color='grey' size='5'>OFF");
}
wifly.sendChunkln("<hr />");
wifly.sendChunkln("<hr />");
Brezžični merilni sistem Diplomsko delo
- 54 -
wifly.sendChunkln(F("</html>"));
wifly.sendChunkln();
opraviMeritev();
}
//Izpis strani on napaki 404.
void send404()
{
wifly.println(F("HTTP/1.1 404 Not Found"));
wifly.println(F("Content-Type: text/html"));
wifly.println(F("Transfer-Encoding: chunked"));
wifly.println();
wifly.sendChunkln(F("<html><head>"));
wifly.sendChunkln(F("<title>404 Not Found</title>"));
wifly.sendChunkln(F("</head><body>"));
wifly.sendChunkln(F("<h1>Not Found</h1>"));
wifly.sendChunkln(F("<hr>"));
wifly.sendChunkln(F("</body></html>"));
wifly.sendChunkln();
}
Diplomska naloga Brezžični merilni sistem
- 55 -
10.2 Izjave
Diplomsko delo Brezžični merilni sistem
- 56 -
Diplomsko delo Brezžični merilni sistem
- 57 -
Diplomsko delo Brezžični merilni sistem
- 58 -