grgo Čupić seminarski rad...
TRANSCRIPT
Grgo Čupić
0036428248
Tekst je namijenjen studentima
elektrotehnike
Potrebno predznanje C# jezika
ZigBee komunikacija, serijska
komunikacija, AT naredbe
I slične „crtice“…
SEMINARSKI RAD - SPVP
14. lipanj 2010
Telemetrija i korisničko sučelje
2
Sažetak
„Telemetrija i korisničko sučelje“ je rad napravljen u sklopu kolegija „Sustavi za praćenje i voĎenje procesa“. Sam rad pripada sustavu brige za
zdravlju ukućana te se čitatelju preporuča da za potpuno razumijevanje ovog rada pročita radove kolege Roka Krpetića: „Sustav za mjerenje
pokretljivosti“ te kolege Milana Listeša „Sustav za detekciju pada“ jer su integralni dijelovi ovog rada.
Objašnjen je način rada napisane C# aplikacije, realizacija poin-to-
point ZigBee veze te serijska komunikacija izmeĎu računala i vanjskih ureĎaja.
Sadržaj
1. UVOD ............................................................................................................ 3
2. REALIZIRANI SUSTAV ..................................................................................... 4
3. ZIGBEE VEZA IZMEĐU RAČUNALA I ARDUINA .................................................... 5
3.1. Arduino DueMillanove ............................................................................... 5
3.2. Digi Xbee Series 2 .................................................................................... 6
3.3. Arduino Xbee Shield ................................................................................. 6
3.4. Način spajanja ZigBee modula ................................................................... 7
3.5. Programiranje XBee modula ...................................................................... 7
3.5.1. Upute za konfiguraciju XBee modula korištenjem X-CTU programa .......... 8
4. KOMUNIKACIJA RAČUNALO – MOBITEL ............................................................12
4.1. Primjer slanja SMS poruke korištenjem AT naredbi ......................................12
5. PROGRAMSKA PODRŠKA .................................................................................14
5.1. Serijska veza ............................................... Error! Bookmark not defined.
5.2. Slanje SMS poruke ..................................................................................20
5.3. Pisanje log datoteka ................................................................................21
6. ZAKLJUČAK ...................................................................................................22
7. LITERATURA..................................................................................................23
8. POJMOVNIK ..................................................................................................24
Ovaj seminarski rad je izraĎen u okviru predmeta „Sustavi za praćenje i voĎenje procesa“ na Zavodu za elektroničke sustave i obradbu informacija, Fakulteta elektrotehnike i računarstva, Sveučilišta u Zagrebu. Sadržaj ovog rada može se slobodno koristiti, umnožavati i distribuirati djelomično ili u cijelosti, uz uvjet da je uvijek naveden izvor dokumenta i autor, te da se time ne ostvaruje materijalna korist, a rezultirajuće djelo daje na korištenje pod istim ili sličnim ovakvim uvjetima.
Telemetrija i korisničko sučelje
3
1 Uvod
Nadziranje zdravlja pacijenta je osnovna usluga kojom se bave zdravstvene službe. Automatizirano nadziranje zdravlja pacijenta može
smanjiti broj nepotrebnih hospitalizacija pacijenata. Korist je višestruka: oslobaĎaju se resursi zdravstvene službe za one pacijente kojima je
potrebnije, olakšava se briga i nadzor nad pacijentima, podatci o trenutnom stanju pacijenta dostupni su u realnom vremenu ili za obradu
starijih podataka. Bežične i mobilne tehnologije probijaju se na područje nadziranja pacijenata u različitim sredinama: kućama, bolnicama i
domovima za slabije i nemoćne. Ovaj rad baviti će se nadziranjem
ukućana pametne kuće kojom se bavi predmet „Sustavi za voĎenje i praćenje procesa“.
Telemetrija i korisničko sučelje
4
2 Realizirani sustav
Na slici 1 dana je opća shema realiziranog sustava. Korištene su dvije Arduino Duemilanove razvojne platforme, akcelerometar ADXL335, dva
XBee series 2 shielda, osobno računalo s najmanje dva slobodna USB porta te mobilni telefon koji ima mogućnost spajanja na računalo pomoću
USB porta. Akcelerometar mjeri akceleraciju koja se koristi za mjerenje aktivnosti
osobe i detekciju pada. Akcelerometar je kabelom spojen na mikroprocesor (Arduino platformu) koji vrši A/D pretvorbu i Zigbee
bežičnom vezom prosljeĎuje podatak o izmjerenoj akceleraciji računalu.
Na PC računalu je pokrenuta aplikacija koja prima podatke, izvodi algoritme za mjerenje fizičke aktivnosti i detekciju pada iz podatka o
akceleraciji, pohranjuje podatke o fizičkoj aktivnosti, alarmira drugu osobu korištenjem SMS-a u slučaju pada i ima korisničko sučelje za kontrolu
rada i grafički prikaz fizičke aktivnosti i pada.
Ovaj rad bavi se idućim funkcionalnostima: ZigBee veza izmeĎu Arduino platforme i računala
USB/Serijska veza XBee modula i računala USB/Serijska veza izmeĎu mobitela i računala
Glavna aplikacija sustava napisana u C# programskom jeziku
Slika 1: Shematski prikaz realiziranog sustava
Telemetrija i korisničko sučelje
5
3 ZigBee veza između računala i Arduina
U ovom poglavlju opisana je ZigBee bežična veza izmeĎu Arduino platforme na kojoj se nalazi senzor te računala. Opisana je korištena
sklopovska podrška, način spajanja, te način konfiguracije samih ZigBee modula. Na slici 2 dana je fotografija realiziranog sustava na kojima se
vide dva XBee modula.
Slika 2: Fotografija dvije Arduino platforme s spojenim XBee shieldovima
3.1 Arduino DueMillanove
Izabrani mikrokontroler je Atmel ATmega328 koji dolazi u sklopu
Arduino platforme (slika 3). Arduino je platforma slobodnog koda bazirana na fleksibilnom hardveru i softveru koji je vrlo jednostavan za korištenje.
Aktualna Arduino pločica za izradu prototipa je DueMillanove. Pločica se može kupiti (27€) ili izraditi sama prema slobodnom CAD nacrtu.
Ploča ima 8 bitni Atmel ATmega328 koji radi na 16MHz, 14 U/I priključaka, napaja se sa USB priključka ili baterijom 7-12V. Za spajanje
XBee shielda iskoriste se dva pina Arduina za serijski komunikaciju (RX/TX).
Slika 3: Arduino DueMillanove razvojna pločica
Telemetrija i korisničko sučelje
6
3.2 Digi Xbee Series 2
ZigBee mreža fizički je realizirana korištenjem ZigBee modula Xbee.
Korištena su 2 modula novije generacije - Series 2 (ZB Pro/ZNet) (slika 4). Jedan modul šalje podatke, drugi ih prima. Dvosmjerna komunikacija
za realizirani sustav nije potrebna.
Slika 4: Digi XBee series 2
Moduli rade na 2,4 GHz, omogućavaju najviše brzine prijenosa od 250 kbit/s (sirovi podaci). Najveća potrošnja definirana je kod primanja i
iznosi 38 mA. U stanju mirovanja (engl. sleep), potrošnja pada do ispod 1 uA. Izlazna snaga odašiljača je mala i iznosi najviše 2 mW (u tzv. boost
modu). Antena je keramička. Izvedena je na čipu. Domet bi trebao biti do 120 m na otvorenom, odnosno 40 m u zatvorenom prostoru. XBee modul
komunicira s vanjskim ureĎajima putem serijske veze.
3.3 Arduino Xbee Shield
Xbee modul se na Arduino montira koristeći pločicu za proširenja
Xbee Shield (slika 4).
Slika 5: XBee shield sa umetnutim Digi XBee series 2 modulom
Mikrokontroler s Arduino pločice i Xbee Shield komuniciraju serijskim sučeljem preko linija RX i TX. Stoga je, prilikom korištenja Xbee Shielda,
gledano sa strane PC računala, moguće jedino čitanje (tj., kad se šalju podaci od Arduinovog mikrokontrolera prema XBee Shieldu s namjerom da
budu bežično poslani, šalju se i na PC računalo). S druge strane, nije moguće čitanje prilikom primanja podataka (smjer podataka XBee
Arduino).
Telemetrija i korisničko sučelje
7
Bitno je napomenuti da XBee Shield ne koristi nikakve dodatne pinove osim RX i TX, što omogućuje spajanje brojnih ulazno-izlaznih
jedinica.
Nedostatak XBee Shield pločice je što nema izvedenu tipku za reset
Xbee modula. Stoga pri reprogramiranju modula, kad to program X-CTU opisan u nastavku zahtjeva, žicom treba na nekoliko sekundi kratkospojiti
pin 5 Xbee modula i masu (GND), ili fizički izvaditi sam XBee .
3.4 Način spajanja ZigBee modula
U sustavu se koriste dva XBee modula od kojih jedan šalje podatke (o
akceleraciji) dok drugi ih prima. Prvotna ideja je bila spojiti XBee modul svaki na svoj mikrokontroler preko XBee shielda te da mikrokontroler s
primateljske strane samo preusmjerava dobivene podatke na računalo preko USB/serijske veze. Takvim načinom spajanja mikrokontroler s
primateljske strane bi samo zakomplicirao samu shemu sustava a i nebi radio neki konkretan posao osim preusmjeravanja podataka na računalo.
Drugi problem kod ovakve sheme sustava bio je nemogućnost komuniciranja mikrokontrolera s računalom preko USB/serijske veze jer
XBee modul zauzme tu vezu za komunikaciju s mikrokontrolerom. Kao logično rješenje ovog problema nameće se mogućnost direktnog
spajanja XBee modula na računalo. Za tu svrhu koriste se USB to serial pretvarači napravljeni oko FTDI FT232 čipa za Digiev ZigBee modul. Da se
ne bi kupovalo takav pretvarač izveo se idući trik. S jedne Arduino platforme izvaĎen je Atmelov mikrokontroler. Digiev XBee modul spojen je
na Arduino platformu preko XBee shielda te su kratkospojnici na shieldu
postavljeni u položaj USB. Ovakvim spajanjem XBee modula računalo pristupa XBee modulu preko USB porta na koji je spojena Arduino
platforma bez mikrokontrolera. Računalo taj USB port vidi kao serijski te se stoga s XBee modulom komunicira po protokolima definiranim
serijskom tj. RS232 komunikacijom. XBee modul koji šalje podatke (sa strane senzora) spaja se na
Arduino razvojnu pločicu s Atmelovim mikrokontrolerom preko XBee shielda. Kratkospojnici moraju biti namješteni u položaju XBEE.
3.5 Programiranje XBee modula
Da bi XBee moduli mogli komunicirati, potrebno ih je na ispravan način konfigurirati. Moduli se konfiguriraju preko USB/serijskoj sučelja
izdavanjem AT naredbi. Najjednostavniji način konfiguriranje je preko Digijevog programa X-CTU.
Navedeni program služi mijenjanju bitnih postavki konfiguracije, poput odreĎivanja uloga (koordinator, router, krajnji čvor), PANID-a, filtra
Telemetrija i korisničko sučelje
8
kanala, najveće izlazne snage, podešavanje perioda mirovanja modula, sigurnosnih postavki mreže, brzine serijskog sučelja itd.
Konfiguracijom se odreĎuje i mod rada čvorova – automatizirani AT mod gdje se čvorove programira slanjem AT naredbi ili mnogo prilagodljiviji API
mod koji omogućuje programiranje čvorova preko API-ja u programskom jeziku C ili nekom sličnom.
Za potrebe ovog sustava izabran je AT mod. Taj mod radi savršeno za point-to-point veze kao što je bežično čitanje podataka sa senzora. U
ovakvom načinu rada postiže se efekt direktne serijske veze izmeĎu računala i Arduino platforme na kojoj se nalazi senzor. Ovakav način rada
je krajnje jednostavan jer se bežičnoj vezi sa strane Arduina odnosno računala pristupa kao klasičnoj serijskoj vezi.
3.5.1 Upute za konfiguraciju XBee modula korištenjem X-
CTU programa
Za konfiguranje XBee modula koristi se Arduino razvojna pločica bez
Atmel mikrokontrolera i kratkospojnicima postavljenim u USB položaj. Za pravilnu konfiguraciju XBee modula koji prima podatke potrebno je pratiti
ove upute: 1. Na Arduino razvojnu pločicu bez Atmel mikrokontrolera umetnuti
XBee shield s modulom koji će primati podatke 2. Kratkospojnike postaviti na USB
3. Povezati pločicu na USB priključak računala 4. Pokrenuti X-CTU program
5. Odabrati port na koji je spojena pločica, te odabrati opcije kao na slici 6 te kliknuti Test. Kao rezultat ove akcije treba se pojaviti
prozor koji potvrĎuje uspješnu vezu s XBee modulom. 6. Klik na modem configuration
7. Unijeti opcije kao na slikama 7 i 8 te kliknuti write 8. Pratiti upute X-CTUa te po potrebi resetirati XBee odspajanjem
XBee modul koji šalje podatke konfigurira se analogno ovim uputama
jedina je razlika što u koraku 7. treba koristiti slike 9 i 10. U Nakon uspješnog konfiguriranja XBee modula associate LED dioda
na modulu koji prima podatke mora svjetlucati s periodom od 1s. To znači da je taj modul spreman za uparivanje s drugim XBee modulom. Nakon
što drugi modul koji će slati podatke spojimo na Arduino pločicu s Atmel mikrokontrolerom te ga spojimo na napajanje associate LED dioda će
ubrzati period svjetlucanja dajući do znanja da su ta dva XBee modula sada povezana.
Bilo koji podatak koji preko serijske veze napišemo na jedan XBee proslijedit će bežično na drugi te analogno za suprotni slučaj. Bežična
ZigBee veza je uspostavljena!
Telemetrija i korisničko sučelje
9
Slika 6: X-CTU program, 5. Korak konfiguracije
Slika 7: X-CTU program, 7. Korak konfiguracije za modul koji prima
Telemetrija i korisničko sučelje
10
Slika 8: X-CTU program, 7. korak konfiguracije za modul koji prima
Slika 9: X-CTU porgram, 7. korak koniguracije za modul koji šalje
Telemetrija i korisničko sučelje
11
Slika 10: X-CTU program, 7. korak konfiguracije za modul koji šalje
Telemetrija i korisničko sučelje
12
4 Komunikacija računalo – mobitel
Za slanje SMS poruka obavijesti u sustavu se koristi mobilni aparat Nokia 6700 (slika 11). Sustav podržava bilo koji mobilni ureĎaj koji
spajanjem na računalo se može koristiti kao USB modem. Mobilni telefon prepoznat kao USB modem možemo upravljati kao bilo koji drugi modem
AT naredbama. Jednako tako moguće je slati SMS poruke preko AT naredba.
Slika 11: Nokia 6700
4.1 Primjer slanja SMS poruke korištenjem AT naredbi
Mobitel spojen preko USB-a Windows operativni sustav mora prepoznati kao USB modem. Ova stavka može se vrlo lako provjeriti u Device
Manageru (slika 12). Na modem se spaja korištenjem programa dostupnog u Windows operativnom sistemu HyperTerminal. Postavimo
konekciju kao na slici 13. te koristimo iduće naredbe za slanje SMS-a. AT+CMGF=1
OK
AT+CMGS="0959082661"
> Hello �<Ctrl>+<Z>
+CMGS: 44
OK
Naredba AT+CMGF=1 namješta format poruke u tekst mod,
AT+CMGS=“tel broj“ označava naredbu mobitelu da počinje pisanje SMS poruke koju će poslati na tel broj. Upisuje se poruka koja se šalje te kao
kraj poruke SUB kontrolni znak. Mobitel odgovara sa +CMGS: 44 što znači da je poruka poslana.
Telemetrija i korisničko sučelje
13
Slika 12: USB modem prikazan u Device Manageru
Slika 13: Hyperterminal, slanje SMS poruke korištenjem AT naredbi
Telemetrija i korisničko sučelje
14
5 Programska podrška
U sklopu rada razvijena je C# aplikacija koja implementira sve funkcionalnosti sustava. Izgled same aplikacije dan je slikom 14.
Slika 14: Razvijena C# aplikacija
Aplikacija je podijeljena na 3 logička dijela, lijevi dio koji služi za
upravljanje algoritmima za detekciju kretanja i pada, srednji dio koji pokazuje stanje promatrane osobe te desni dio koji služi za postavke
serijskih veza te za postavke varijabli algoritma.
Telemetrija i korisničko sučelje
15
U nastavku slijedi opis svih komponenti aplikacija: Start gumb služi za inicijalizaciju serijske veze te pokretanje
algoritma za detekciju kretanja i pada opisanih u radovima kolega Listeša i Krpetića.
Stop gumb zaustavlja izvoĎenje algoritma te zatvara seriju Real-time graf gumb poziva funkciju za crtanje vrijednosti
akceleracije mjerene sa senzora u realnom vremenu razvijene od strane kolege Krpetića.
Povijesni graf gumb poziva funkciju za crtanje povijesnog grafa kretanja s rezolucijom odabranom u padajućem izborniku razvijenog
od strane kolege Krpetića. Real-time podatci group box pokazuje trenutne vrijednosti
akceleracije za sve tri osi, vrijednost dobivenu algoritmom za
detekciju kretanja te trenutno i povijesno stanje promatrane osobe. Postavke group box omogućuju unos imena promatrane osobe,
izbor dali će se slati SMS poruke obavijesti, te opcije za unos, brisanje i pregled telefonskih brojeva na koje će se slati SMS poruka
obavijesti. Postavke ZigBee i PC-Mobitel veze gruop box omogućavaju
korisniku izbor odgovarajućih COM portova na koje su spojeni XBee modul odnosno mobitel. U padajućim izbornicima Bits per second
bira se brzina prijenosa podataka preko serije. Spoji se/Odspoji se gumb služi za inicijalizaciju veze PC-Mobitel,
ukoliko korisnik se nije spojio na mobitel SMS poruka obavijesti o padu neće biti poslana bez obzira da li je slanje SMS poruka
omogućeno. Postavke varijabli algoritma group box služe za namještanje
varijabli algoritma za detekciju pada odnosno pokreta razvijenih od
strane kolege Listeša i Krpetića Promijeni gumb varijablama algoritma pridružuje vrijednosti
upisane u text boxovima. Reset TooCalm_bio služi za resetiranje bita koji služi za provjeru
da li je osoba premirna. Resetiranje je potrebno u slučaju lažnog alarma ili u svrhe testiranja.
Telemetrija i korisničko sučelje
16
5.1 Serijska veza
Telemetrija i korisničko sučelje
17
Da bi se moglo primati ili slati podatke preko serijske veze potrebno je programski inicijalizirati serijsku vezu. U programskom jeziku C# to se
radi idućim naredbama:
using System.IO; using System.IO.Ports;
public SerialPort sp;
Prve dvije naredbe služe govore aplikaciji da će u radu koristiti System.IO i System.IO.Ports libraryje. SerialPort sp kreira klasu serijski
port imena sp koja će se koristiti kod primanja podataka sa senzora.
Klikom na Start gumb pokreće se idući dio koda:
sp.PortName = COMPortsList.SelectedItem.ToString();
sp.BaudRate = int.Parse(BitsPerSecondList.SelectedItem.ToString());
sp.Parity = Parity.None; sp.StopBits = StopBits.One;
sp.Handshake = Handshake.None; sp.Open();
sp.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
Definira se: port s kojeg će se uzimati podatci (izabran od strane korisnika u padajućem izborniku), brzina (baud rate) koju je takoĎer
definirano korisnik u padajućem izborniku, bez pariteta, bez stop bitova,
bez handshakea. Naredba sp.open(); otvara serijski port te ga se može dalje koristiti u aplikaciji. Iduća naredba definira event handler tj. funkciju
koja će se izvoditi svaki put kada na serijskom portu doĎe podatak koji će aplikacija obraĎivati.
private void port_DataReceived(object sender,
SerialDataReceivedEventArgs e) string ulaz = sp.ReadLine();
Regex r = new Regex(@"(\b[0-9]{1,3})\t(\b[0-9]{1,3})\t(\b[0-9]{1,3})\r");
Match match = r.Match(ulaz); if (match.Success)
{ string prvi = match.Groups[1].Value;
string drugi = match.Groups[2].Value;
string treci = match.Groups[3].Value;
Telemetrija i korisničko sučelje
18
x = Convert.ToDouble(prvi);
y = Convert.ToDouble(drugi); z = Convert.ToDouble(treci);
Prikazana je funkcija port_DataReceived koja se pokreće svaki put
kad računalo primi podatak preko serije. U varijablu tipa string sprema se niz podataka primljen sa serije. Varijabla Regex služi za provjeru jeli
primljen podatak u dogovorenom formatu. Ako je podatak primljen u točnom formatu pretvara se u tip double te dodjeljuje varijablama x,y,z
koje koje se dalje koriste u algoritmu za detekciju pada i kretanja. Na mikrokontroleru se nalazi idući kod, iz njega se lijepo može
vidjeti dogovoreni format poruke.
/* ADXL3xx
analog 0: -
analog 1: - analog 2: ground
analog 3: z-axis analog 4: y-axis
analog 5: x-axis
*/
const int groundpin = 16; // analog input pin 4 -- ground const int xpin = 5; // x-axis of the accelerometer
const int ypin = 4; // y-axis
const int zpin = 3; // z-axis (only on 3-axis models)
void setup() {
Serial.begin(9600);
//uzemljenje senzora pinMode(groundpin, OUTPUT);
digitalWrite(groundpin, LOW); }
void loop()
{ Serial.print(analogRead(xpin));
Serial.print("\t");
Serial.print(analogRead(ypin));
Telemetrija i korisničko sučelje
19
Serial.print("\t"); Serial.print(analogRead(zpin));
Serial.println(); delay(100);
}
Naredba serial.begin(19200) inicijalizira seriju brzine 19200 bit po sekundi dok naredba serial.print() šalje niz podataka na serijske pinove
mikrokontrolera, odnosno preko bežične ZigBee veze na računalo.
Telemetrija i korisničko sučelje
20
5.2 Slanje SMS poruke
Jedna od osnovnih funkcionalnosti ovog sustava je obavještavanje
zainteresiranih strana ukoliko se dogodio pad ili predugo mirovanje promatrane osobe. Slanje SMS poruke šalje se preko mobitela spojenog
na USB/serijski port računala. Inicijalizacija serijskog porta u C# aplikaciji vrši se analogno postupku objašnjenom u poglavlju 5.1.
Kada algoritam kolege Krpetića da znak da se dogodio pad ili predugo mirovanje poziva se funkcija:
void saljiSMS(string poruka)
{ if (SerialPort.IsOpen == true && checkBox_sms.Checked)
{ for (i = 0; i < comboBox2.Items.Count; i++)
{ WriteSerialPort(AppendATSpecial("AT+CMGF=1"));
Thread.Sleep(20); WriteSerialPort(AppendATSpecial("AT+CMGS=" +
(char)34 + comboBox2.Items[i].ToString() + (char)34)); Thread.Sleep(100);
WriteSerialPort(AppendATSpecial(textBox5.Text +
poruka + (char)26)); Thread.Sleep(100);
Thread.Sleep(2000);
} }
} Funkcija kao argument prima niz znakova koji će se poslati kao
obavijest na odabrane telefonske brojeve. Niz znakova može biti " je dozivio/jela pad. Molimo da pomognete!!!" i " je premiran/na. Molimo da
provjerite!!!". Prvi niz se šalje u slučaju pada a drugi u slučaju duge neaktivnosti. U funkciji saljiSMS poziva se funkcija:
private string AppendATSpecial(string message) {
return string.Format("{0}{1}", message, "\r\n"); }
AT naredbe moraju završavati posebnim znakovima '\r' i '\n',
odnosno carriage return i line feed, a funkcija AppendATSpecial dodaje te
znakove na kraj ulaznog podatka tipa string.
Telemetrija i korisničko sučelje
21
5.3 Pisanje log datoteka
Aplikacija stvara tri nove datoteke (ukoliko već ne postoje):
log_a.txt, log_akt.txt i log_aktivnost.txt. Log_a.txt sadržava informacije o akceleraciji za sve tri osi u svakom trenutku uzorkovanja. Log_akt.txt
sadržava informaciju o stanju promatrane osobe (neaktivna, aktivna, pad te predugo mirovanje). Informacije se u log_akt.txt upisuju samo ukoliko
je došlo do promjene tj. upisuje se vrijeme kad je nastupilo neko stanje te oznaka stanja.
Log_aktivnost.txt je log file koji upisuje samo trenutno stanje osobe,
kad doĎe do promjene aplikacija pobriše sve vrijednosti unutar datoteke te napiše novo stanje. Datoteku s trenutnim stanjem aktivnosti
pregledava aplikacija kolege Kabića te iz nje izvlači informaciju o stanju osobe te je postavlja na Internet stranicu pametne kuće.
Za otvaranje i pisanje u log datoteke koriste se iduće naredbe:
public StreamWriter log, greska, log_akt, log_aktivnost;
Pošto su sada otvorene klase za pisanje logova pojedinačno se u sve datoteke podatci upisuju idućim naredbama:
if (File.Exists("Log_a.txt")) log = File.AppendText("Log_a.txt");
else log = File.CreateText("Log_a.txt");
log.WriteLine("[" + "{0:MM/dd/yyy HH:mm:ss.fff}" + "]" + prvi + " " +
drugi + " " + treci + " " + avg_delta_rms.ToString(), DateTime.Now);
if (File.Exists("Log_akt.txt"))
log_akt = File.AppendText("Log_akt.txt"); else
log_akt = File.CreateText("Log_akt.txt"); log_akt.WriteLine("[" + "{0:MM/dd/yyy HH:mm:ss}" + "] Pad",
DateTime.Now); log_akt.Close();
log_aktivnost = File.CreateText("log_aktivnost.txt"); log_aktivnost.WriteLine("[" + "{0:MM/dd/yyy HH:mm:ss}" + "] P",
DateTime.Now);
Telemetrija i korisničko sučelje
22
6 Zaključak
Realizirani sustav ispunjava sve zamišljene funkcionalnosti. Uspješno se detektiraju aktivnosti promatrane osobe te se provode
odreĎene akcije s obzirom na njih. Realizirani sustav može biti od velike pomoći starijim osobama te medicinskom i drugom osoblju koje promatra
zdravlje te osobe. Implementacijom algoritma za prepoznavanja pada osobe te promatranjem te osobe vrijeme reakcije za pomoć unesrećenoj
osobi znatno se smanjuje te samim time se smanjuje mogućnost najgorih scenarija.
Moguća buduća unaprjeĎenja sustava išla bi u smjeru što bolje
izvedbe realiziranog sustava. Valjalo bi razmisliti o boljoj mehaničkoj konstrukciji samog senzora zbog zaštite samog elektroničkog sklopovlja ali
pogotovo radi lakoće korištenja. Kućište senzora trebalo bi imati mogućnost nošenja oko remena ili ruke promatrane osobe. Kao drugo
unaprjeĎenje moguća je dodatna ugradnja senzora koji bi davali informacije o otkucajima srca, disanju, količini glukoze u krvi itd. Naravno
korištenje takvih senzora znatno bi poskupilo cijeli projekt te stoga nije razmatrano u sklopu ovog predmeta.
Telemetrija i korisničko sučelje
23
7 Literatura
[1] Oletić Dinko, 2009. URL:
http://spvp.zesoi.fer.hr/pametna_kuca/dokumentacija/DinkoOletic_ZigBee.pdf
[2] Trogrlić Darko,2009. URL:
http://spvp.zesoi.fer.hr/pametna_kuca/dokumentacija/DarkoTrogrlic_Komunikacija
SMS.pdf
[3] Arduino – home page; 2010. URL: http://www.arduino.cc/
[4] XBee setup; 2010. URL: http://www.humboldt.edu/~cm19/XBee%20setup.pdf
[5] XBee product page; 2010. URL:
http://www.digi.com/support/productdetl.jsp?pid=3261&osvid=0&s=269&tp=5&tp2
=0
Telemetrija i korisničko sučelje
24
8 Pojmovnik
Pojam Kratko objašnjenje Više informacija potražite na
White paper Kratak dokument koji daje uvid u neko područje, tehniku, politiku, proizvod, metodu, standard i sl.
en.wikipedia.org/wiki/White_paper
SMS Short Message Service, telekomunikacijski servis koji omogućuje tekstualnu komunikaciju
http://en.wikipedia.org/wiki/SMS
AT naredbe Naredbe koje su se prvenstveno koristile za upravljanje modemom, danas sadrže prošireni skup za specifičnu primjenu
http://en.wikipedia.org/wiki/ Hayes_command_set
ZigBee Komunikacijski protokol korišten u bežičnim senzorskim mrežama. Temelji se na nadograĎenoj specifikaciji IEEE 802.15.4., a protokol održava skupina tvrtki – ZigBee Alliance
http://www.zigbee.org/
UART Engl. universal asynchronous receiver/transmitter. Sklop za serijsku
komunikaciju i kontrolu priključka.
http://en.wikipedia.org/wiki/UART
pin Nožica, muški konektor