1. Założenia projektowe:

Wykonywany przez nas projekt sieci ma być wykorzystywany do monitoringu zagrożeń na terenach leśnych.  Zgodnie z zaleceniami przyjęliśmy podstawowe założenia dotyczące cech jakimi sieć powinna się charakteryzować, wszystkie wymagania zostały przez nas ocenione w 4 stopniowej skali (0 to cecha obojętna, 1 ważna, 2 bardzo ważna, 3 oznacza najważniejszą własność sieci):

  • czas działania – jest to niewątpliwie bardzo ważna cecha podczas wyboru topologii oraz protokołu routingu, jednak  wybranie czasu pracy jako priorytet mocno ograniczyłoby możliwości spełnienia także pozostałych wymagań w stopniu satysfakcjonującym, czas otrzymuje priorytet o wartości 3,
  • niezawodność– z uwagi na fakt, że sieć musi informować osoby odpowiedzialne o pożarze jej stabilność i niezawodność są najważniejszymi wymaganiami stawianymi projektowi, ta własność otrzymała priorytet o wartości 4,
  • skalowalność– obszar lasu nie ulega zmianie w krótkim okresie czasu, w związku z tym, możemy uznać, że możliwość łatwej rozbudowy sieci jest ważna, jednak nie powinna przesądzać o całkowitym kształcie projektu, biorąc pod uwagę ten argument przyznaliśmy temu wymaganiu priorytet o wartości 1,
  •  umiejętność samoorganizacji sieci – zakładamy że sieć będzie działać na obszarze ok. 100ha, przez co precyzyjne rozmieszczenie jej elementów staje się w praktyce nierealne, ważne zatem jest, aby sieć potrafiła po rozmieszczeniu czujników zorganizować się w ustaloną wcześniej strukturę i w krótkim czasie rozpocząć działanie, uznaliśmy tą własność za jedną z najważniejszych, dlatego otrzymała priorytet o wartości 4,
  • opóźnienia– w związku z tym, że sieć informuje o istotnym zagrożeniu zarówno mienia jak i życia, ważnym jest aby powiadomienie było jak najszybsze co umożliwi błyskawiczną reakcję i zmniejszy zagrożenie. Biorąc pod uwagę ten argument uznaliśmy, że tej własności przyznamy również najwyższy priorytet ważności czyli 4.

 

2. Klasyfikacja tworzonej sieci:

  • Dynamika sieci– tworzona przez nas sieć jest statyczna, dane wysyłane są gdy nastąpi konkretne zdarzenie, w naszym przypadku istotnym zdarzeniem jest nagła zmiana odczytywanych przez czujnik parametrów.
  • Rozmieszczenie węzłów– nasza sieć ma rozmieszczenie niedeterministyczne, zakładamy, że będzie rozrzucana w sposób losowy po rozległym terenie, zatem musi być samoorganizująca się, ważne dla zaoszczędzenia energii jest umiejscowienie bramy (im bliżej środka tym lepiej) jednak w celach współpracy z centrum analizy danych zakładamy że brama będzie elementem brzegowym sieci.
  • Zużycie energii– zużycie w radiowych sieciach wzrasta kwadratowo do wzrostu odległości między węzłami które się łączą, dlatego nie zastosujemy komunikacji bezpośredniej z bramą tylko pośrednią przy pomocy innych węzłów (multi-hop routing).
  • Dostarczanie danych– nasza sieć będzie siecią o charakterze hybrydowym, tzn. dane będą dostarczane przez czujniki tylko w wypadku zajścia określonego zdarzenia, jednak ze względu na priorytet jakim jest niezawodność co określony odcinek czasu wysyłane będą również komunikaty służące analizie sprawności sieci.
  • Rodzaje węzłów– są homogeniczne i heterogoniczne, nasze są heterogeniczne, wynika to z faktu, że każdy czujnik może posiadać w praktyce tylko jedną płytkę z zestawem czujników (jest ich co najmniej kilka rodzajów), przez co czujniki znacząco różnią się względem siebie funkcjonalnością.
  • Agregacja danych – przy sieciach w których dane dostarczane są w sposób ciągły może wystąpić nadmiar komunikatów w sieci, w takim przypadku warto byłoby aby węzeł przekazując dane dalej agregował i np. uśredniał temperatury z 5 sąsiednich węzłów, pozwoliłoby to zredukować liczbę danych w sieci. Najczęściej agregacją danych zajmują się wyspecjalizowane węzły o większej mocy obliczeniowej i większej baterii.  W naszym przypadku agregację danych musimy odrzucić z 2 istotnych powodów. Po pierwsze takie rozwiązanie wprowadza opóźnienia w dostarczaniu komunikatów, jest to niedopuszczalne w przypadku pożaru, każda sekunda pozwoli zredukować straty i zagrożenie życia mieszkańców terenów okolicznych. Drugim istotnym argumentem jest fakt że analiza wskazuje niewielki ruch w sieci, pożar na szczęście jest zdarzeniem występującym nieczęsto, przez co redukcja danych mogłaby spowodować większe straty energetyczne niż przesyłanie wszystkich komunikatów (nawet kontrolnych) w pełnej formie.

 

3. Techniczne aspekty projektu:

3.1 Topologia sieci:

Wybór odpowiedniej topologii połączeń dla bezprzewodowej sieci czujników jest zagadnieniem niełatwym, na szczęście można się w tym przypadku opierać o badania prowadzone nad sieciami bezprzewodowymi np. pomiędzy komputerami, ten temat został dość precyzyjnie przebadany, w naszym wyborze kierowaliśmy się zestawieniem wad i zalet poszczególnych technologii których zestawienie zostało zawarte w tabeli nr 1. Analiza opierała się na pracy [1].


Tabela nr 1.

Nazwa topologii:

Zalety:

Wady:

gwiazda (star topology)

 

- awaria dowolnego czujnika nie ma wpływu na działanie pozostałej części sieci

 

- łatwa lokalizacja uszkodzenia ( brama wie od którego czujnika danych nie otrzymuje)

 

- łatwa rozbudowa sieci

- awaria bramy (punktu centralnego sieci) powoduje całkowite zaprzestanie jej działania

 

- ograniczony zasięg (wszystkie czujniki muszą być w zasięgu bramy)

 

 

 

 

 

 

 

 

pełne połączenie (fully connected topology)

 

- bardzo wysoka niezawodność

 

- w praktyce zalecana tylko przy niewielkiej liczbie węzłów

 

- trudna implementacja algorytmu odnajdywania ścieżki do bramy (problem jest NP-zupełny)

 

- każdy nowy węzeł powoduje wykładniczy wzrost wymaganej liczby połączeń

 

- wszystkie węzły muszą się znajdować na dostatecznie małej powierzchni aby każdy jeden miał kontakt z pozostałymi

siatka (mesh topology)

 

- bardzo duża niezawodność

 

- łatwa skalowalność

 

- opracowana obszerna lista usprawnień (np. wprowadzenie lokalnych liderów)

 

- nowy czujnik nie powoduje znaczącego wzrostu liczby połączeń

- umożliwia transmisję wyłącznie do najbliższego węzła

 

- niełatwe algorytmy wyboru drogi przesyłania komunikatu do bramy

 

Ostateczny wybór przez nas podjęty padł na topologię siatki, wynika to z następujących przesłanek:

- docelowo sieć czujników ma działać na dużym terenie, zatem nierealnym wydaje się uzyskanie takiej mocy bramy aby była zdolna odczytywać dane z każdego z czujników z osobna (argument ten został uznany za wystarczający aby zrezygnować z topologii gwiazdy),

- ograniczone zasoby ludzkie zmuszają nas do zastosowania topologii dobrze znanej i rozpowszechnionej, której implementacja nie będzie wymagała dopracowywania i dodatkowego etapu projektowania (ważny argument na korzyść topologii siatki),

- sieć czujników może być zmienna w czasie, ważne aby system był wysoce skalowalny i nowe czujniki nie pogarszały parametrów „starej” części sieci, tutaj sieć z pełnym połączeniem jest eliminowana, każdy nowy czujnik w tym wypadku mógłby znacząco pogorszyć parametry sieci

- topologia siatki jest przez wielu doświadczonych badaczy uznawana za najlepszą w przypadku WSN, przykładem może być [1].

Powyższe argumenty naszym zdaniem są wystarczającymi przesłankami aby zastosować topologię siatki w naszym projekcie.

3.2 Protokół routowania:

Protokół według którego wysyłane są w sieci komunikaty wydaje się być równie ważnym zagadnieniem w sieci czujników co topologia ich rozmieszczenia. W tym wypadku proces wyboru najbardziej odpowiedniego postanowiliśmy przeprowadzić analogicznie jak podczas wyboru topologii (metoda analizy wad i zalet pozwala uniknąć napięć wynikających z subiektywnych przekonań członków zespołu co do poszczególnych metod). Porównanie znalazło się w tabeli nr 2.

Tabela nr 2.

Nazwa protokołu:

Zalety:

Wady:

Sensor Protocol for Information via Negotiation (SPIN)  -

to protokół, pozwalający zaoszczędzić energię w sieci dzięki negocjacjom pomiędzy węzłami. Stosowane są tzw. meta-dane, które są pakietami znacząco mniejszymi niż dane właściwe, ich wymiana zapobiega wysyłaniu nadmiarowych danych w sieci i wymaga znacznie mniej energii. Proces przesyłu wygląda następująco: węzeł chcący wysłać dane rozsyła ogłoszenie mówiące że jest gotów (advert), następnie węzły które jeszcze tych danych nie odebrały odpowiadają również pakietem meta-danych (request), następuje przesłanie danych, proces powtarza się dopóty, dopóki dane nie dotrą do bramy. Niestety w sieci nie stosuje się potwierdzeń odbioru, przez co nie ma pewności czy istotne informacje dotrą do bramy. Zaletą jest fakt, że protokół jest odporny nawet na znaczące zmiany w topologii.

 

- energooszczędny

 

- skalowalność, protokół jest w stanie samodzielnie wykryć zmianę topologii

- nie jest w stanie zapewnić stałego czasu propagacji danych w sieci

 

- brak potwierdzenia dostarczenia danych

Directed Diffusion -

w tym protokole wszystkie dane generowane przez sensory składają się z pary atrybut-wartość, dzięki czemu nie ma konieczności wykonywania dodatkowych operacji (modyfikacji danych) w warstwie sieci ograniczając zużycie energii. Użytkownik (stacja bazowa) wysyła zapytania (interests), które docierają do wszystkich węzłów w sieci. Podczas rozsyłania takiego zapytania każdy z węzłów, który otrzyma żądanie odwołujące się do zgromadzonych przez niego danych, tworzy tzw. gradient wskazujący kierunek ścieżki prowadzącej do źródła zapytania. Gradienty wysyłane są do źródła informując je tym samym o możliwych ścieżkach transmisji pasujących do danych zapytań. Źródło wybiera jedną lub co najwyżej kilka ścieżek. Wybrane ścieżki są bardzo bliskie trasie optymalnej (czasem faktycznie są trasą optymalną od bramy do źródła danych).

 

- energooszczędny

 

- możliwe łączenie danych z wielu źródeł

 

- małe opóźnienia w przesyłaniu danych

 

- brak konieczności indywidualnego adresowania wszystkich węzłów

- nie dostrzegliśmy wad tej metody

Rumor routing -

protokół oparty na pogłoskach znajduje zastosowanie w sytuacjach, w których liczba zdarzeń jest mała, a liczba zapytań stosunkowo duża. Jest on jedną z odmian algorytmu directed diffusion. Podstawową funkcjonowania tego protokołu są tzw. agenci (ang. agents). Tworzą oni ścieżki do każdego zdarzenia rejestrowanego przez węzły, a trasowanie informacji następuje przez utworzone wcześniej ścieżki. Dołączenie do konkretnej ścieżki następuje w sposób losowy (i poprzez wysłanie stosownego zapytania). Każdy z węzłów przechowuje w sposób stabelaryzowany informacje o sąsiednich węzłach i zdarzeniach, a także dane o kierunku do innych zdarzeń w sieci. W kolejnym kroku agent wędruje poprzez losowo wybrane węzły, wykonując określoną wcześniej maksymalną liczbę kroków. W trakcie tej wędrówki agent buduje własną tablice zdarzeń przemierzanych sensorów. Gdy agent natrafi na ścieżkę, która prowadzi do innego zdarzenia, następuje agregacja tras. Ponadto w przypadku, gdy odwiedzany węzeł jest częścią dłuższej ścieżki, aktualizowana jest wtedy tablica trasowania tego węzła (poprzez nadpisanie krótszej ścieżki).

- stosunkowo łatwa implementacja

 

- konieczność przechowywania i przeglądania danych dotyczących ścieżek w sieci

 

- ścieżka wybierana w sposób niedeterministyczny, nie jesteśmy w stanie przewidzieć czy awaria jednego węzła nie spowoduje utraty danych, w najgorszym wypadku może dojść do zapętlenia

Minimum Cost Forwarding Algorithm (MCFA)–

w tym algorytmie każdy węzeł przechowuje minimalną wartość ścieżki jaka prowadzi z niego do bramy. Pierwotnie w każdym węźle jest wartość zbliżona maksymalnie do nieskończoności (np. maksymalna wartość z zakresu dostępnych). Podczas inicjalizacji sieci brama wysyła próbny pakiet danych o koszcie równym zero. Każdy z węzłów który otrzyma wiadomość sprawdza czy jej koszt jest mniejszy od tej, którą ma zapisaną w swojej pamięci, jeśli tak to zapisuje aktualną nową wartość i po dodaniu wartości swojej przesyła wiadomość dalej. Proces kończy się gdy w każdym węźle zapisana będzie optymalna wartość ścieżki od bramy do tego węzła.

- zawsze uzyskujemy najkrótszą z możliwych ścieżek

- implementacja nie należy do najłatwiejszych

 

- sprawność działania sieci zależy od dodatkowych czynników takich jak np. stan naładowania baterii

Leach –

Opiera się na tworzeniu klastrów w sieci czujników. Występuje podział na węzły podstawowe i nadrzędne, które pełnią rolę  routera danego klastra. Podczas organizowania się sieci w każdej grupie sensorów wybierany jest węzeł nadrzędny, dzieje się to w sposób losowy. Pojedyncze węzły mają prawo decydować do którego klastra chcą należeć, wybór opiera się zazwyczaj na mocy otrzymywanego sygnału. Komunikacja między węzłami podstawowymi a węzłem nadrzędnym odbywa się przy wykorzystaniu techniki TDMA, węzeł główny agreguje dane i przesyła je do swojego węzła nadrzędnego. Po ustalonym czasie cały proces ustanawiania klastrów i przesyłania informacji powtarza się.

- dobra skalowalność

 

- agregacja danych, dzięki czemu redukuje się obciążenie sieci

- skomplikowana implementacja

 

-niedeterministyczny czas dostarczania informacji

 

- z powodu stosowania pojedynczych skoków nie zalecana dla sieci rozległych[1]

Teen –

ten protokół to właściwie modyfikacja Leach, został stworzony z myślą o sieciach w których priorytetem jest szybka informacja o zajściu zdarzania (np. nagły skok temperatury).  Tak jak w protokole Leach tworzone są klastry i ustanawiane węzły nadrzędne, jednak w tym przypadku węzeł główny wysyła czujnikom 2 wartości progowe, które określają przy jakich wartościach parametrów węzeł główny jest zainteresowany danymi, pozwala to na zaoszczędzenie sporej ilości energii oraz zmniejszenie ruchu w sieci.  Pierwsza wartość to HT (twardy próg), czujnik wysyła dane tylko wtedy gdy mierzona wartość przekracza HT. Druga wartość to ST (miękki próg), czujnik wysyła dane wtedy gdy kolejny pomiar różni się od poprzedniego o wartość większą lub równą wartości ST, bez względu na próg wyznaczony przez HT.

- duża redukcja obciążenia sieci

 

- energooszczędny

- gdy czujnik nie osiągnie wartości progowych dane nie są wysyłane, w efekcie nie ma możliwości sprawdzenia czy czujnik w ogóle jest sprawny

 

Wybrany przez nas algorytm to pewna modyfikacja przedstawionego powyżej Directed Diffusion, wybór nie jest przypadkowy o czym świadczyć mogą poniższe wnioski, które udało nam się ustalić podczas wspólnego wyboru i analizy algorytmów:

 - najważniejsza jest energooszczędność algorytmu, czujniki rozrzucane losowo na danym terenie z założenia są jednorazowego użytku, zatem aby obniżyć koszt usługi monitoringu, ważne aby dane czujniki pracowały jak najdłużej na baterii w które są wyposażone,

- łatwa skalowalność, zapewnia to topologia mesh, jednak istotnym jest aby algorytm nie wymagał znaczącej rekonfiguracji systemu podczas zwiększania liczby czujników,

- deterministyczny wybór ścieżek, oraz tworzenie optymalnych, lub zbliżonych do optymalnych ścieżek, im krótsza droga przez którą dane muszą przejść, tym mniejsze prawdopodobieństwo ich uszkodzenia lub  całkowitego zgubienia. W tej kwestii istotne jest aby pamiętać o niezawodności, jako ze jest to najważniejsza cecha prawdopodobieństwo niedostarczenia komunikatu musi zostać zredukowane do minimum,  

- możliwość wykorzystania tej samej implementacji protokołu komunikacji na wszystkich węzłach, obniża to znacząco koszt wytworzenia sieci

 

Na podstawie powyższych argumentów i wymagań stawianych algorytmowi postanowiliśmy wybrać jako bazę do dalszych modyfikacji algorytm Directed Diffusion, ponieważ spełnia on wszystkie wymagania i w dodatku jest stosunkowo prosty w implementacji, co jest również ważne gdy do dyspozycji lidera grupy jest stosunkowo niewielki zespół. Poza tym algorytm ten jest (podobnie jak topologia mesh) przez wielu specjalistów polecany, stawiając się obiektywnie jako osoby dopiero poznające zagadnienie, wydaje nam się słuszne korzystanie z doświadczenia osób zajmujących się tematyką WSN od dłuższego czasu, z pewnością ich doświadczenie praktyczne jest cenne i pozwoli nam uniknąć wielu błędów.

 

Ponieważ jak już wspomnieliśmy algorytm Directed Diffusion jest jedynie bazą do dalszego rozwoju naszej sieci, istotnym elementem jest z pewnością wskazanie różnic, jakie zamierzamy wprowadzić w stosunku do oryginalnej wersji:

- samoorganizacja sieci – ten element właściwie nie ulega zmianie w stosunku do oryginalnego algorytmu, każdy węzeł na początku będzie miał przypisaną wartość gradientu na możliwie najbliższą nieskończoności, czyli de facto maksymalną z dostępnego zakresu.  Po rozłożeniu czujników stacja bazowa nada komunikat o ustalonej treści z wartością gradientu (liczba formatu całkowitoliczbowego) ustaloną jako zero, każdy z węzłów po otrzymaniu tego komunikatu sprawdzi czy gradient w wiadomości jest niższy niż ten zapisany w jego pamięci, jeśli tak, zapisze ją jako swoją nową wartość i po inkrementacji o jeden prześle komunikat dalej, w ten sposób każdy z węzłów będzie miał wyznaczoną trasę z jak najmniejszą liczbą przeskoków do stacji bazowej. Nie jest to rozwiązanie optymalne energetycznie, jednak pozwala na redukcję czasu propagacji wiadomości. Jak łatwo zauważyć takie rozwiązanie jest bardzo wrażliwe na spadek energii zawartej w baterii a przez to redukcję zasięgu nadawania węzła, postanowiliśmy ten problem rozwiązać stosując nadmiarowość przesyłanego komunikatu w sieci w ten sposób, że węzeł prześle komunikat nie tylko z gradientem wyższym niż własny ale również z takim samym, zwiększy to ruch w sieci i skróci jej czas działania ale znacząco poprawi niezawodność.

- lokalizacja – przy powierzchni sięgającej 100ha problemem może okazać się reagowanie na zdarzenia i lokalizacja ich zajścia, czujniki pomiaru temperatury i naświetlenia nie mogą obsługiwać jednocześnie modułu GPS, poza tym spowodowałoby to skrócenie czasu życia sieci, rozwiązaniem tego problemu jest opracowany przez nas mechanizm: po rozmieszczeniu czujników na terenie rozrzucone zostaną także czujniki z modułem GPS, które będą nadawać informacje ze swoim położeniem co miesiąc przez okres 1min. W ciągu 1min wszystkie czujniki temperatury w zasięgu odczytają wiadomość i zaktualizują w pamięci swoje położenie, które od tego momentu będzie składową ramki danych wysyłanych po zajściu określonego zdarzenia. Rozwiązanie to na pozór wydaje się być nietypowe i mało optymalne, jednak pozwoli utrzymać sprawność modułów GPS przez kilka lat, dzięki czemu nawet po odnowieniu sieci czujników zdarzeń nie będzie konieczności rozrzucania nowych czujników położenia, poza tym nowe czujniki będą działać co najwyżej miesiąc w sposób niepełny, po tym okresie z pewnością będą wysyłały pełnowartościowe dane.

- potwierdzenie – w naszym protokole postanowiliśmy zrezygnować z potwierdzeń dostarczenia informacji, jest to posunięcie ryzykowne ze względu na spadek prawdopodobieństwa prawidłowego dostarczenia komunikatu, jednak pozwala zaoszczędzić czas, utracona niezawodność odzyskana zostanie dzięki zastosowaniu nadmiarowości w ilości komunikatów propagowanych w sieci, o której pisaliśmy wcześniej.