Projekt munkaterve
0. hét - Szeptember 4. - 10.
Projekt kiválasztása
1. hét - Szeptember 11. - 17.
2. hét - Szeptember 18. - 24.
- Ismerkedés a szenzorok, szenzorhálózatok világával, konkrét példákkal illusztrált, napjainkban alkalmazott technológiák tanulmányozása
- TinyOS szoftver megismerése
- Kiadott feladatok, többek közt a TinyOS rendszer Tutorial-jának átnézése, tanulási folyamat, mely során mindenki megismerkedik a programozói felülettel.
- Otthon készítendő feladat kiadása
3. hét - Szeptember 25. - Október 1.
Az első munkahéten az algoritmus elvi körülírására került sor, ami nagyjából a következőről szólt:
- egy root (azaz 0. szintű) mote üzenetet küld broadcast üzemmódban (azaz minden irányban, ami esetünkben - egy 10*10-es mátrix esetén - a körülötte levő 8 mote-nak sugároz)
- a nem root szintű mote-ok ha megkapják az üzenetet (az őstől), akkor beírják magukat a fa megfelelő helyére, azaz a szintjük egyel nagyobb lesz a közvetlen ősénél, illetve tárolja az ősének a pozicióját (sorszám)
- miután tárolják az adatot, elküldik a saját szintjüket, és a saját sorszámukat broadcast módban
- a moteoknak természetesen csak szülőtől szabad fogadniuk, valamint nyilván csak egy szülője van minden egyednek, a többi "ősjelölt" üzenetét eldobjuk.
4. hét - Október 2. - 8.
Már az előző héten megkezdődött a program formálódása nem csak papíron, de kód formájában is. A kezdeti nehézségek abból adódtak, hogy gyér ismereteink voltak a TinyOS-ről, és a nesC-ről, mivel egyszerre csináltuk a feladatot és a tutorialt. Mégis sikerült - az utolsó pillanatban - formát adni a kis programunknak.
- elsőként az üzenetküldést változtattuk meg integer típusúról struct típusúra (itt megjegyezném hogy nagyon sokáig próbálkoztunk vele, de végül elvetettük, mert így univerzálisabb lett a program)
- ez után következett az algoritmus tesztelése, először kevesebb majd több mote-on, debug üzenetek segítségével javítottuk a kódot
- sokáig javítgattuk az ütemezés problémáját (mivel a mote-oknak van egy inicializálási idejük, azaz bekapcsolásuk) , itt egy óra bevonásával kezdtük amit one-shot üzemmódban indítottunk, de mivel egyes mote-ok lassan ébrednek fel, nagy időintervallumot kellett hagyni az első - és egyetlen - óraütésig. Ez a tesztek során bajt okozott, mivel így irdatlan mennyiségű idő ment el csak arra hogy egyáltalán valami történjék. (ez valódi mote-okon azt jelenti, hogy irdatlan erőforrásokat használ a'la livelock, másrészt a kis projektcsoportunknak a cygwin előtt való könyöklés során bepókhálósodott a hónalja) Így inkább a repeat-shot funkciót választottuk, ami azt jelenti, hogy az első mote folyamatosan sugároz (óraütésenként), így viszont lehetőség van arra hogy egy mote egy "gyengébb" őstől kap először, hál' istennek ezt a problémát viszont már az elvi szinten megoldottuk.
- végezetül debugüzenetekkel tarkítottuk a programot, hogy sokkal felhasználóbarátabb szimulációkat láthassunk, valamint a program által elvégzett műveleteket követni tudjuk
5. hét - Október 9. - 15.
Felkészülés az első beszámolóra
6. hét - Október 16. - 22.
1. Prezentáció az eddig elvégzett munkáról
7. hét - Október 23. - 29.
Egy megoldandó feladat : Olyan algoritmus készítése, amely egy adott hálózatban képes eljuttatni egy üzenetet egy mote-nak, valamint hogy hogy ezen mote ugyanezen útvonalon válaszolni is tudjon, hogy vette az üzenetet.
8. hét - Október 30. - November 5.
Tanítási Szünet
9. hét - November 6. - 12.
A TinyOs-ben található MultiHOP útvonalvezérlő algoritmus tanulmányozása után egy SAJÁT ALGORITMUS elkészítése
( 2006. november 11. - Az algoritmus MŰKÖDŐKÉPES )
További algoritmusok : CentRoute, MintRoute
10. hét - November 13. - 19.
Az elkészült algoritmus átfogó tesztelése, hibák kiküszöbölése
11. hét - November 20. - 26.
Üzenetformátumok felépítésnek tanulmányozása, alapszintű JAVA alapú felület kialakítása
12. hét - November 27. - December 3.
GUI felület megtervezése, felépítése, implementálása a vezérlőszoftverbe
13. hét - December 4. - 10.
A kezdetek óta nem működő Ethernet kártya beállítása.
Az Ethernet kártyát az első próbálkozás alkalmával sikerült bekonfigurálni, azt követően azonban már nem működött. A probléma oka: a kártya beállításai - ismeretlen okokból - resetelve lettek, és reset után megváltoztak a MICAz mote-hoz tartozó Baud Rate beállítások (valószínűleg a mica2dot mote gyári értékeire). Ez lehetetlenné tette a kommunikációt. A micaZ mote default értékei az 1-es csatornán (szervergép felé néző csatorna) 115200, míg a 2-es csatornán (szenzorhálózat felé néző csatorna) 57600.
Az Ethernet programozó kártya beállítása
----------------------------------------------
IP-cím hozzárendelése: 192.168.0.15
1-es csatorna portszáma: 10001
2-es csatorna portszáma: 10002
Szervergép IP információi:
----------------------------------------------
IP-cím: 192.168.0.2
Alhálózati maszik: 255.255.255.0
Átjáró: 192.168.0.1
A Crossbow MOTE-KIT2400-as csomag elemeinek ellenőrzése.
A Crossbow Xlisten csatornahallgatózó programjának beállítása és az általa szolgáltatott szenzoradatok beolvasása. Ez a program nem a szenzorhálózat üzemeltetését szolgálja, hanem csak egy egyszerű tesztprogram, aminek segítségével a szenzorokhoz csatolható érzékelőlapkák működését tudjuk ellenőrizni.
Ehhez kapcsolódóan:
(a csomag tartalmát megnézhetjük a Crossbow oldalán: http://www.xbow.com/Products/Product_pdf_files/Wireless_pdf/MICAz_Kit_Datasheet.pdf)
- 5 db MICAz szenzor tesztelése (kliensek és BaseStation beállítása)
- 4 db MICAz-hez csatolható szenzorlapka tesztelése
(3 db MTS300 normál szenzorlapka és 1 db MDA300 adatgyűjtő lapka (több mérési lehetőséggel))
Megj.: A mote-okra a programozó kártyán keresztül a megfelelő Crossbow tesztalkalmazásokat kellett feltölteni a szenzorlapkákhoz.
A SerialForwarder program fordítása (java).
Az Xlisten csomagok kiértékelése és az kapott információ emberi nyelvre való fordítása (!logfile ide).
A SerialForwarder program indítása a megfelelő paraméterekkel:
java net.tinyos.sf.SerialForwarder -comm network@192.168.0.15:10002
A Surge Application beállítása a faépítés tesztelésére (java). FAÉPÍTÉS SIKERES. Az alkalmazás Base Stationre és többi mote-ra való feltöltése, mote azonosítók beállítása:
make micaz reinstall,"id" eprb,192.168.0.15
A Surge által készített logfájl adatainak ellenőrzése és a szenzorok hurcolása az I épület területén
Az elkészült vezérlőalkalmazás átfogó tesztelése, mért értékek, log-fájlok tanulmányozása.
14. hét - December 11. - 17.
A 2. prezentáció előtti utolsó csoportmegbeszélés, eddigi munka bemutatása a konzulensnek, teljes, átfogó dokumentáció készítése
December 18.
Az elkészült alkalmazás leadása
2. prezentáció - az elvégzett munka bemutatása