su iletim hatlari basinc bilgilerinin deneysel bir ortamda kablosuz

Transkript

su iletim hatlari basinc bilgilerinin deneysel bir ortamda kablosuz
EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ
(YÜKSEK LİSANS TEZİ)
SU İLETİM HATLARI BASINÇ BİLGİLERİNİN
DENEYSEL BİR ORTAMDA KABLOSUZ SENSÖR
AĞI İLE TOPLANMASI
Fahrettin DEMİREL
Tez Danışmanı : Yrd.Doç.Dr.Radosveta SOKULLU
Elektrik-Elektronik Mühendisliği Anabilim Dalı
Bilim Dalı Kodu : 609.01.00
Sunuş Tarihi : 14.09.2010
Bornova-İZMİR
2010
ii
iii
Fahrettin Demirel tarafından Yüksek Lisans tezi olarak sunulan “ Su İletim
Hatları Basınç Bilgilerinin Deneysel Bir Ortamda Kablosuz Sensör Ağı ile
Toplanması” başlıklı bu çalışma E.Ü. Lisansüstü Eğitim ve Öğretim Yönetmeliği
ile
E.Ü. Fen Bilimleri Enstitüsü Eğitim ve Öğretim Yönergesi’nin ilgili
hükümleri uyarınca tarafımızdan değerlendirilerek savunmaya değer bulunmuş ve
14.09.2010 tarihinde yapılan tez savunma sınavında aday oybirliği ile başarılı
bulunmuştur.
Jüri Üyeleri:
Jüri Başkanı
İmza
: Yrd.Doç.Dr. Radosveta SOKULLU
...........................
Raportör Üye : Yrd.Doç.Dr. Mehmet ENGİN
...........................
Üye
...........................
: Prof.Dr. Levent TOKER
v
ÖZET
SU İLETİM HATLARI BASINÇ BİLGİLERİNİN DENEYSEL BİR
ORTAMDA KABLOSUZ SENSÖR AĞI İLE TOPLANMASI
DEMİREL, Fahrettin
Yüksek Lisans Tezi, Elektrik-Elektronik Mühendisliği Bölümü
Tez Yöneticisi: Yrd. Doç. Dr. Radosveta Sokullu
Eylül 2010, 61 sayfa
Günümüzde su kaynaklarının doğru ve verimli bir şekilde kullanılması
önemli hale gelmiştir. Mevcut sulama şebekelerinde manometre kullanılmadığı
için sistemin çalışması hakkında herhangi bir bilgiye sahip olunmaz.
Çalışmamızın amacı düşük güç tüketimine sahip kablosuz sensör düğümleri
kullanarak su iletim hatlarından basınç bilgisini toplamak ve bu bilginin kontrol
sistemleri tarafından kullanılabilir hale getirilmesini sağlamaktır.
Gerçek bir sulama şebekesinde çalışma imkanı olmadığıdan deneyler için
küçük çaplı bir şebeke oluşturulmuştur. Sulama şebekesi projesine göre gerekli
yerlere basınç algılayıcıları yerleştirilerek bunların birbirleriyle belirlenen bir
kablosuz ağ protokolü yardımıyla haberleşmesi sağlanmıştır. TelosB kullanarak
yerleştirilen
basınç
algılayıcıları
sayesinde
sistemin
anlık
çalışması
gözlemlenmiştir. Kablosuz ağ yapısının seçilmesinin nedeni herhangi bir
kablolamaya ihtiyaç duymadığı için mevcut sistemlere uygulanması kolay
olmaktadır. Bölgemizde sulama mevsiminin ortalama 6 ay sürdüğü düşünülürse
mevsim başında yapılacak bir bakımla mevsim boyu sorunsuz kullanım
sağlanabilecektir.
Anahtar Sözcükler: Kablosuz sensör ağları, su iletim hattı, TelosB,
TinyOS, basınç algılayıcı.
vii
ABSTRACT
GATHERING PRESSURE DATA OF WATERING PIPELINES IN
EXPERIMENTAL ENVOIRMENT USING WIRELESS SENSOR
NETWORKS
DEMİREL, Fahrettin
MSc in Electric-Electronic Eng.
Supervisor: Yrd. Doç. Dr. Radosveta Sokullu
October 2010, 61 pages
Efficient and accurate use of water resources has become very significant
especially in recent time due to the global warming issues. Least but not last, the
watering pipelines used in argriculture fields are to be controlled according to
their water use. If pressure sensors are used in the existing pipelines of watering
systems data can be gathered about the operation of the system.
The aim of our study is to gather pressure data of watering pipelines in an
experimental environment using a low power Wireless Sensor Network (WSN)
and show how this information can be used by a control system.
In our work, a small sized experimental pipeline system is implemented, in
which the pressure sensors are be placed at carefully selected points. In the real
time prototype of our system, the TelosB motes, integrated with the pressure
sensors, communicate with each other and also with the base station according to
the basic wireless network protocol designed. In our study, the reason to choose a
WSN as an infrastructure is to let the system work without the need of extra
cabling. Such a system incorporates both efficiency and flexibility, and provides
the farmers with an automatic controlled watering system based on the sensor
data.
Keywords: Wireless sensor network, water pipeline, TelosB, TinyOS,
pressure sensor.
viii
ix
TEŞEKKÜR
Bu çalışmanın gerçekleşmesinde yakın ilgisini esirgemeyen, değerli
yorumlarıyla ve önerileriyle her zaman katkıda bulunana tez danışmanım
Yrd.Doç.Dr. Radosveta SOKULLU’ya, kodlama konusunda yardımcı olan
arkadaşım İlker KORKMAZ’a, yoğun iş temposunda üzerimdeki iş yükünü alan
DSİ çalışma arkadaşlarıma, basınç sensörü temininde yardımcı olan Barış
ORHAN’a ve tez çalışmalarında bana her zaman destek olan, hayatımı
renklendiren, sevgili eşim Melike’ye ve oğlum Ahmet Deniz’e teşekkürlerimi
sunarım.
xi
İÇİNDEKİLER
Sayfa
ÖZET ...................................................................................................................... v
ABSTRACT .........................................................................................................vii
TEŞEKKÜR ........................................................................................................... ix
ÇİZELGELER DİZİNİ ......................................................................................... xv
ŞEKİLLER DİZİNİ ............................................................................................xvii
SİMGELER VE KISALTMALAR DİZİNİ ........................................................ xix
1. GİRİŞ...................................................................................................................1
1.1
Kablosuz Sensör Ağları .................................................................................2
1.2
Kablosuz Sensör Ağı Uygulamaları ..............................................................4
1.3
Kablosuz Sensör Ağı Protokol Katmanları....................................................6
2. KABLOSUZ AĞLARDA YÖNLENDİRME PROTOKOLLERİ....................11
2.1
802.15.4 ve ZigBee Ağ Yapıları ve Elemanları ..........................................11
2.1.1 Ağ bileşenleri ...............................................................................................12
2.2
Ağ Topolojileri ............................................................................................12
2.2.1 Yıldız mimarisi.............................................................................................12
2.2.2 Uçtan-uca mimari.........................................................................................12
2.2.3 Küme-ağaç mimarisi ....................................................................................13
2.3
Yönlendirme Protokolleri ............................................................................14
2.3.1 Veriye Dayalı Yönlendirme Protokolleri .....................................................14
2.3.2 Hiyerarşiye Dayalı Yönlendirme Protokolleri .............................................15
2.3.3 Konuma Dayalı Yönlendirme Protokolleri ..................................................15
xii
İÇİNDEKİLER (devam)
Sayfa
2.4
Yönlendirme Protokol Çalışmaları ............................................................. 16
3. SU İLETİM HATLARININ BASINÇ BİLGİSİNİN ÖLÇÜLMESİ ............... 19
3.1
Gerekli Sistem Parametreleri ...................................................................... 19
3.2
Mevcut Sistemler ........................................................................................ 19
3.2.1 Basınçlı borulu sulama sistemleri................................................................ 22
3.2.2 Yüksek basınçlı sistemlerin projelendirilmesi............................................. 24
4. ÖNERİLEN KABLOSUZ SENSÖR AĞI SİSTEMİNİN ELEMANLARI VE
ÇALIŞMA DETAYLARI..................................................................................... 27
4.1
Kullanılan Donanımlar................................................................................ 27
4.1.1 TelosB.......................................................................................................... 27
4.1.2 Freescale Mp3v5050gp basınç sensörü ....................................................... 31
4.2
Kullanılan Yazılımlar.................................................................................. 33
4.2.1 TinyOS işletim sistemi ................................................................................ 33
4.2.2 Moteiv Trawler izleme yazılımı .................................................................. 36
4.3
Sistemin Çalışma Prensibi .......................................................................... 37
4.3.1 Sistemin tanımı ............................................................................................ 37
4.3.2 Su hattı kontrol protokolü............................................................................ 38
4.4
Test Düzeneği ............................................................................................. 42
5. TESTLER VE ÖLÇÜMLER............................................................................ 46
5.1
Kalibrasyon Ölçümleri ................................................................................ 46
5.2
Basınç Bilgisinin Okunmasına Yönelik Ölçümler...................................... 47
5.3
Ağ Performansını İzlemeye Yönelik Ölçümler .......................................... 47
6. SONUÇ VE DEĞERLENDİRME ................................................................... 49
6.1
Basınç Bilgisinin Okunması........................................................................ 49
xiii
İÇİNDEKİLER (devam)
Sayfa
6.2
Ağ Performansının Değerlendirilmesi.........................................................51
6.3
Sonuçlar .......................................................................................................56
KAYNAKLAR ......................................................................................................59
ÖZGEÇMİŞ...........................................................................................................61
EKLER
Ek 1 TmoteSky Bilgi Kitapçığı
Ek 2 FreeScale MP3V5050 Basınç Sensörü Bilgi Kitapçığı
Ek 3 Okenseiko Rolling Hava Pompası Bilgi Kitapçığı
Ek 4 Ağ Mimarisi
Ek 5 Kodlar
xiv
xv
ÇİZELGELER DİZİNİ
Çizelge
Sayfa
Çizelge 1.1 Dünyada kişi başına düşen kullanılabilir su miktarı. ...........................1
Çizelge 1.2 Su kullanım oranları. ............................................................................2
Çizelge 4.1 Telos, Mica2, MicaZ akım tüketim miktarları. ..................................29
xvii
ŞEKİLLER DİZİNİ
Şekil
Sayfa
Şekil 1.1 Kablosuz sensör ağlarında katmanlar arası geçişler.................................9
Şekil 2.1 Ağ mimarileri .........................................................................................13
Şekil 3.1 Sulama sistemine göre oranlar. ..............................................................21
Şekil 4.1 Telos düğüm. ..........................................................................................27
Şekil 4.2 Telos test ölçümleri (Polastre et al., 2005).............................................30
Şekil 4.3 Algılayıcının tümleşik blok şeması. .......................................................32
Şekil 4.4 Mp3v5050 basınç sensörü. .....................................................................33
Şekil 4.5 Kablosuz sensör ağının programlanması................................................34
Şekil 4.6 Trawler algılanan değer grafik ekranı ....................................................36
Şekil 4.7 Trawler ağ mimarisi ekranı ....................................................................36
Şekil 4.8 Gerçek bir sulama sistemi projesi ..........................................................37
Şekil 4.9 Veri akış diyagramı. ..............................................................................38
Şekil 4.10 Düğüm veri kontrolü çalışma diyagramı.............................................39
Şekil 4.11 Son düğümler için veri gönderme diyagramı. ......................................40
Şekil 4.12 Ara düğümler için veri gönderme diyagramı. ......................................40
Şekil 4.13 Ara düğümler için veri gönderme diyagramı. ......................................41
Şekil 4.14 Toplayıcı düğüm için veri gönderme diyagramı. .................................41
Şekil 4.15 Test düzeneği şematik gösterimi. .........................................................42
Şekil 4.16 Test düzeneği bağlantı diyagramı.........................................................43
Şekil 4.17 Test düzeneğine bağlanmış bir düğüm. ................................................44
Şekil 4.18 Test düzeneğinin görünüşü...................................................................44
Şekil 4.19 Hava pompası ve 1 numaralı düğüm. ...................................................45
Şekil 5.1 Test düzeneği ağ yapısı. .........................................................................46
Şekil 5.2 Kalibrasyon ölçüm değerleri. .................................................................47
Şekil 6.1 Basınç değişim grafiği............................................................................49
Şekil 6.2 Noktasal basınç değişim grafiği. ............................................................50
Şekil 6.3 Kaçak benzetim grafiği. .........................................................................51
Şekil 6.4 Paket kayıp oranının çalışma döngüsüne göre değişim grafiği. .............52
xviii
ŞEKİLLER DİZİNİ (devam)
Şekil
Sayfa
Şekil 6.5 Pillerdeki gerilim kaybının düğümlere ve çalışma döngüsüne göre
değişimi.. ............................................................................................ 53
Şekil 6.6 Paket kayıp oranının örnekleme periyoduna göre değişimi................... 53
Şekil 6.7 Toplam pil geriliminin örnekleme periyoduna göre değişimi. .............. 54
Şekil 6.8 Pil gerilim düşümünün 60 sn’lik örnekleme periyodunda düğümlere
göre dağılımı.. .................................................................................... 54
Şekil 6.9 Paket kayıp oranının kuyruk büyüklüğüne göre değişimi. .................... 55
Şekil 6.10 Paket kayıp oranının düğümler arası mesafeye göre değişimi. ........... 56
xix
SİMGELER VE KISALTMALAR DİZİNİ
Simgeler
Açıklama
Vout
Basınç sensörünün çıkış gerilimi,
Vs
Basınç sensörünün besleme gerilimi, 3±0.3 V
P
Hat basıncı, kPa
PE
Basınç hatası, ±1.25 kPa
TF
Sıcaklık faktörü, 1 for 0° to 85 °C
mss
Metre su sütunu,
Φ
Çap,
rç
Çiftlik rverimi,
rd
Sapma verimi,
Vmin
Boruda minimum hız,
Vmax
Boruda maksimum hız.
Kısaltmalar
APTEEN
Adaptive TEEN,
CID
Cluster Identifier,
CLH
Cluster Head,
COTS
Commercial Off-The-Shelf,
xx
SİMGELER VE KISALTMALAR DİZİNİ (devam)
Kısaltmalar
Açıklama_______________________________
DMA
Direct Memory Access,
DSSS
Direct Sequence Spread Spectrum,
ESR
Equivalent Series Resistance,
FFD
Full Function Device,
GPS
Global Positioning System,
GPRS
General Packet Radio Service,
KSA
Kablosuz Sensör Ağı.
LEACH
Low-Energy Adaptive Clustering Hierarchy,
LQI
Link Quality Indication,
MAC
Medium Access Control,
MCU
Main Control Unit,
MEMS
MicroElectroMechanic Systems,
OUI
Organizationally Unique Identifier,
PAN
Personal Area Network,
PEGASIS
Power-Efficient Gathering in Sensor Information Systems,
RAM
Random Access Memory,
xxi
SİMGELER VE KISALTMALAR DİZİNİ (devam)
Kısaltmalar
Açıklama ______________________________
RF
Radio Frequency,
RFD
Reduced Function Device,
RSSI
Received Signal Strength,
SPIN
Sensor Protocols for Information via Negotiation,
TEEN
Treshold-sensitive Energy Efficient Protocols,
USB
Universal Serial Bus,
VGA
Virtual Grid Architecture,
WSN
Wireless Sensor Network,
1
1.GİRİŞ
Dünya nüfusu sürekli artmaktadır. Yüzyıl başındaki dünya nüfusu 1.6
milyar iken 20. yüzyıl sonunda bu rakam 6 milyara ulaşmıştır. Buna karşılık sahip
olduğumuz su kaynakları sabit kalmakta hatta azalmaktadır. 20. yüzyılda dünya
nüfusu 19. yüzyıla oranla üç kat artmasına rağmen, su kaynaklarının kullanımının
altı kat arttığı belirlenmiştir. 1950 yılında kişi başına düşen su miktarı 16800 m³
iken bu miktar 2000 yılında 7300 m³’ e düşmüştür (İstanbul Su ve Kanalizasyon
İdaresi, 2010). Türkiye için kişi başına düşen yıllık kullanılabilir su miktarı 1600
m³’tür (Çizelge 1.1). Diğer ülkeler ve dünya ortalamasıyla kıyaslanırsa, Türkiye
kişi başına kullanılabilir su miktarı bakımından su azlığı çeken ülkeler arasında
görülebilir. Kişi başına 5000 m³ ve fazla su potansiyeli olan bir ülke “su zengini”
olarak kabul edilir. 2023 yılı için nüfusumuzun 100 milyon olacağı
öngörülmüştür. Bu durumda 2023 yılı için kişi başına düşen kullanılabilir su
miktarının 1125 m³/yıl civarında olacağı söylenebilir. Mevcut büyüme hızı, su
tüketim alışkanlıklarının değişmesi gibi faktörlerin etkisi ile su kaynakları üzerine
olabilecek baskıları tahmin etmek mümkündür. Ayrıca tüm bu tahminler mevcut
kaynakların hiç tahrip edilmeden aktarılması durumunda söz konusu olabilecektir.
Dolayısıyla Türkiye’nin gelecek nesillerine sağlıklı ve yeterli su bırakabilmesi
için kaynakların çok iyi korunması ve verimli kullanılması gerekmektedir (Devlet
Su İşleri Genel Müdürlüğü, 2010).
Çizelge 1.1 Dünyada kişi başına düşen kullanılabilir su miktarı.
Ülke
Kişi Başına Düşen Su Miktarı (m³/yıl)
Türkiye
1600
Asya Ortalaması
3000
Batı Avrupa Ortalaması
5000
Afrika Ortalaması
7000
Güney Amerika Ortalaması
23000
Dünya Ortalaması
7300
Artan enerji maliyetleri de suya sahip olma bedelini artırmaktadır. 1995
yılında tarımsal sulama tarifesinin kWh’i 0,8 kuruş iken 2010 yılında bu rakam 20
kuruşlara çıkmıştır (TEDAŞ, 2010). Bu nedenle suyu verimli kullanmak
kaçınılmazdır. Bizim çalışmamız da suyun verimli kullanılmasına yöneliktir.
2
Bilindiği gibi hatlardaki su kayıplarını azaltmak için kapalı sistem damlama
ve yağmurlama gibi basınçlı sulama sistemlerine geçilmektedir. Bu sistemler, hem
bitkinin ihtiyacı kadar sulanmasına olanak vererek elde edilen ürünün daha
verimli olmasını sağlamakta hem de sudan büyük ölçüde tasarruf sağlamaktadır.
Biz de kablosuz düğümler kullanarak böyle kapalı sistem bir iletim hattının
kontrolünü yapmayı öngördük.
Çizelge 1.2 Su kullanım oranları.
Tarım
Sanayi
İçme Suyu
Dünya
%70
%22
%8
Türkiye
%74
%11
%15
Basınçlı sulama sistemlerinin düzgün çalışabilmesi için kullanılan sulama
yöntemine bağlı olarak bir basınca ihtiyacı vardır. Ülkemizde hali hazırda
yapılmış veya yapılmakta olan sulama şebekelerinde son kullanıcı noktalarında
gerekli basıncı sağlamak amacıyla yüksek kotlarda bir su deposu inşa edilir.
Depodaki su miktarı seviye algılayıcı ile okunarak, azaldıkça sabit devirli
pompalar yardımıyla depoya su basılır. Bu sistemlerde basınç bilgisi okunmadığı
için sistemin çalışması hakkında herhangi bir bilgiye sahip olunmaz. Pompalar da
depoyu doldurmak için her zaman tam kapasite ile çalışmak zorunda kalırlar. Bu
da enerji maliyetlerini artırır. Ayrıca depo inşası ve ana nakil hattı inşası ilk
kurulum maliyetlerini artırmaktadır. Basınç algılayıcıları kablolama yapılarak da
sisteme eklenebilir. Fakat kablo yapmak ek kablo, montaj ve bakım maliyeti
çıkaracaktır. Sulama sisteminin geniş bir sahaya yayıldığı düşünülürse bu ek
maliyet azımsanmayacak kadar çok çıkacaktır. Sahaya montajının kolay olması,
herhangi bir kablolamaya ihtiyaç duymadığı için mevcut sistemlere
uygulanmasının kolay olmasından KSA (Kablosuz Sensör Ağı) ile basınç
bilgisinin okunulması düşünülmüştür.
1.1 Kablosuz Sensör Ağları
Mikro elektromekanik sistemler (Microelectromechanic systems, MEMS)
ve radyo frekansındaki (Radio Frequency, RF) hızlı gelişim, az güç tüketen, ucuz,
ağ üzerinde kullanılabilir mikro algılayıcıların geliştirilmesini mümkün kılmıştır.
Bu algılayıcı düğümleri çeşitli fiziksel bilgilerin sıcaklık, basınç, bir cismin
3
hareketi vs. yakalanmasını sağlamaktadır. Bununla beraber çevrenin fiziki
özelliğinin de nicel ölçümlerle eşlenmesini sağlayabilmektedir.
Tipik bir KSA, kablosuz bir ortam aracılığı ile birbirine bağlanmış yüzlerce
hatta binlerce algılayıcı düğümünden oluşur. Bu düğümler kendi ağlarını kendileri
organize ederler, önceden programlanmış bir ağ topolojisi söz konusu değildir. Pil
ömrüne bağlı olan kısıtlamalar yüzünden, algılayıcı düğümleri çok büyük bir
zamanı düşük güç tüketimi ile “uyku” durumunda geçirirler ya da düğüm verisini
işlerler. KSA’ların sağladığı yararlardan ya da artı özelliklerden bazıları aşağıda
kısaca açıklanmıştır.
— Her zaman her yerde: Mevcut makro algılayıcı düğümlerinin kapsamı,
maliyet kıstasları ve kurulum sebepleriyle belirli fiziksel alanlarda dar olarak
sınırlıdır. Buna zıt bir şekilde KSA’lar insan bakımına gereksinim duymayan
fiziksel olarak ayrılmış pek çok düğüm içerebilir. Düğüm bazında bakıldığında tek
bir düğümün kapsamı küçük de olsa, yoğun olarak dağıtılmış düğümler eş zamanlı
ve iş birliği prensipleriyle çalışabilir; böylece tüm ağın kapsamı genişletilmiş olur.
Ayrıca algılayıcı düğümleri yaşam tehlikesinin olduğu alanlara bırakılabilir ve
dört mevsim işlem yapabilir; bu yüzden bu düğümler algılama görevlerini her an
yürütebilirler.
— Olası hatalara karşı daha fazla tolerans: Bu kazanım KSA düğümlerinin
yoğun biçimde yerleştirilmesi sonucu sağlanmıştır. Aynı alan içerisinde komşu
düğümlerden birbiriyle ilişkili veri alınması sonucunda sistemin hatayı tolore
etme şansı, tek başına bulunan bir makrosensöre kıyasla çok daha büyüktür. Eğer
bir makrosensör düğümü hata verir ya da işlemi durur ise sistem, fonksiyonunu
sensörün bulunduğu alanda tamamen yitirir. Bu durumun tam tersi olarak
KSA’larda eğer mikrosensör düğümlerinin küçük bir kısmı hata verirse, KSA
kabul edilebilir derecede bilgi üretmeye devam edebilir, çünkü çıkarılan veri
gereğinden fazladır. Bundan başka alternatif haberleşme yolları, herhangi bir
yönlendirme hatası olduğu takdirde kullanılabilir.
— Geliştirilmiş doğruluk oranı: Tek başına bir makrosensör düğümü tek bir
mikrosensör düğümünden daha doğru bir ölçüm yapsa bile, çok sayıda mikro
düğümün topladığı verinin tek parça haline getirilmesi ile oluşan veri gerçekten
dünyanın gerçekliğinden daha fazlasını yansıtabilir. Buna ek olarak, bu veri,
uygun algoritmalar eşliğinde işlenir ve ilişkilendirilir ve/veya kümelenirse genel
sinyal geliştirilebilir ve ilişkisiz parazitin bir kısmı temizlenebilir.
4
—Düşük Maliyet: KSA’ların makrosensörlü sistemdeki eşlerinden daha
düşük maliyetli olması beklenmektedir; bu beklentinin sebepleri; küçültülmüş
boyutları, düşük fiyatları ve bunlarla birlikte yerleşim / kurulum aşamasının
kolaylığı olarak gösterilebilir.
1.2 Kablosuz Sensör Ağı Uygulamaları
KSA düğümleri kullanıldıkları uygulamaya yönelik olarak, aşağıda verilen
parametreleri ölçebilirler.
-
Sıcaklık
-
Nem
-
Basınç
-
Işık
-
Nesne Hareketleri
-
Gürültü
KSA’ların güvenilirlik, kendini organize etme, esneklik ve kurulum
kolaylıkları sebebiyle mevcut ve olası uygulamaları geniş bir çeşitlilik
kazanmaktadır. Aynı zamanda neredeyse tüm çevre ortamlarında uygulanabilirler,
özellikle mevcut kablolu ağların çalışmasının imkansız olduğu ya da
kullanılamayacağı durumlarda kullanılabilirler örnek olarak, savaş alanları,
atmosferin dışı, derin okyanuslar vb.
Askeri Uygulamalar: KSA’lar askeri komuta, kontrol, iletişim, hesaplama,
istihbarat, nezaret, keşif ve hedef tespit sistemlerinin ayrılmaz bir parçası olmaya
başlamıştır.
Çevre Algılaması ve İzleme: Belirli bir coğrafi alana yayılan yüzlerce ya da
binlerce, ufak, ucuz, kendini-ayarlayabilir kablosuz algılayıcılar çevre izleme ya
da çevre kontrolü işlemlerinde geniş yelpazeli uygulamalarda kullanılabilir.
5
Felaketten Korunma ve Kurtarma: KSA’lar belki de acil durumlarda ya da
felaket durumlarında yerleştirildikleri afet alanlarında etkili olabileceklerdir.
Dağıtılmış KSA’lar aracılığı ile yapılan doğru ve zamanında yer tespiti, kurtarma
operasyonlarında hayati önem taşır, yer tespitinin yanında ölü sayısı, potansiyel
tehlikeler ya da acil durumun kaynağı, kimlik tespit işlemleri ve kurtarılmayı
bekleyen insanların tespiti de hayati verilerdir.
Tıbbi Hizmetler: KSA’lar zamanında ve etkin sağlık hizmetlerinin
sağlanması ile insanlık için daha sağlıklı bir çevrenin oluşturulmasında oldukça
yardımcıdır.
Uzaktan Ölçüm: KSA’lar gaz, elektrik, oda sıcaklığı gibi verileri kablosuz
ağ aracılığı ile istenen noktaya iletebilir. Ya da parkmetrenin süresinin dolmak
üzere olduğunu araç sahibine iletebilir.
Akıllı Alanlar: Son zamanlarda teknolojideki gelişmeler sonrasında, çeşitli
kablosuz algılayıcıların kişisel mobilya ya da araçlara iliştirilmesi mümkün
kılınmıştır, bu sayede otonom bir ağ oluşturulabilir. Örnek olarak, akıllı bir
buzdolabı ailenin doktordan alınan diyet programına göre buzdolabının
envanterini tutup, alışveriş listesini tutan kişisel dijital asistana alınacaklar listesini
gönderebilir.
Bilimsel Araştırmalar: Etkin bir şekilde yerleştirilmiş ve otomatik işlem
yapabilen KSA’lar bilimsel araştırmaların daha yüksek, ileri ve derin ortamlara
açılan yeni kapısıdır.
Etkileşimli Çevreleme: KSA’lar mayın bilgisini toplama konusunda ümit
veren mekanizmalar üretmişlerdir. Ucuz ve ufak kablosuz algılayıcıların
yayılması ile küçük yaştaki çocukların eğitimini güçlendirmek için akıllı
anaokulları tasarlanabilir, çocukları izleme ve aktivitelerini yönlendirme işlemleri
için KSA’lar kullanılabilir.
Nezaret ve Gözetim Uygulaması: Anlık ve uzaktan gözetim KSA’lardan
esinlenerek geliştirilen önemli uygulamalardan biridir. Örnek olarak, çok sayıda
akustik ağ algılayıcı ile belirlenen hedeflerin tespiti ve takibi belirli güvenlik
kriterlerinin uygulandığı alanlarda kullanılabilir. KSA’lar bu gibi amaçlarla
binalara, yerleşim alanlarına, hava alanlarına, tren istasyonlarına vs. yerleştirilerek
ziyaretçilerin tanınması ve bilginin anlık olarak ana komuta merkezine iletilmesi
6
gibi görevleri yerine getirebilir. Benzer şekilde duman algılayıcıları evlere, otel
odalarına, okullara yerleştirilerek olası kaza, yangın ve felaketlerin fark edilerek
en hızlı biçimde gerekli müdahale yapılmasını mümkün kılarlar.
Su dağıtım sistemleri üzerine yapılan çalışmalar da mevcuttur. Lin ve
arkadaşları (2008) su dağıtım sistemleri üzerine yaptıkları çalışmada, yangın
musluklarına yerleştirdikleri titreşim ve akustik algılayıcıya sahip düğümler ile
kaçak ve tıkanıklık bilgisi toplamayı öngörmüşlerdir. Yapılan testler daha çok
fiziksel katmanın performansı üzerine olmuştur. Ölçümler sonucunda 2.4 GHz
frekansının 836 MHz’den daha iyi bir yol kaybı performansına sahip olduğu
sonucuna ulaşmışlardır. Bunun nedenleri sensör düğümlerinin bir kısmının toprak
altında ve metal kasa içinde olmasıdır.
Başka bir çalışma da Pipenet adı altında Stoianov ve arkadaşları (2007)
tarafından gerçekleştirilmiştir. Atık su sistemlerinin izlenmesi ön görülmüştür. Bu
amaçla sistemdeki kaçak, çatlak ve tıkanıklıkları tespit etmek için basınç, akustik
ve titreşim algılayıcılar kullanılmıştır. Intel Mote 2 düğümü aracılığıyla sahaya
yerleştirilen algılayıcılardan gelen veri genel paket radyo servisine (General
Packet Radio Service, GPRS) veya 802.11’e sahip baz istasyonları tarafından
toplanarak kontrol merkezine iletilmektedir.
1.3 Kablosuz Sensör Ağı Protokol Katmanları
Önceki bölümde üzerinde durulan KSA uygulamaları beraberinde birçok
sorunu da getirir. Bu uygulamaların başlıca tasarım kısıtlamaları şunlardır.
Enerji Verimliliği: Düğümlerin pille birkaç yıl çalışması beklenir. Bu
nedenle, enerjinin etkin kullanılması tasarım aşamasında anahtar rol oynar.
Gecikme Garantisi: Algılayıcı düğüm fiziksel bir olayı izlerken, etkin bir
kontrol işlemi için, gecikme belirli sınırlar içinde olmalıdır. Yangın alarmı, tıbbi
izleme gibi uygulamalar için böyle bir sınır olmazsa protokol güvenilir
olmayabilir.
Hata Toleransı: KSA, 3 çeşit hataya dayanabilmelidir. Bunlar; algılayıcı
hatası, düğüm hatası, hat hatasıdır. Algılayıcı hatası üretimdeki kusurlardan veya
yaşlanmadan kaynaklanabilir. En kolay yakalanabilen algılayıcı arızası çevresel
değişikliklerle değişmeyenlerdir. Örneğin, algılayıcı çıkışında sabit bir değer olur
7
ve biz bu değere eklenmiş alıcı gürültüsünü gözlemleriz. Bu hata yakalanmalı ve
algılayıcı bilgisi yok sayılmalıdır. Diğer yandan algılayıcı yaşlandıkça
okumalarındaki değişme miktarı azalır. Böylece, yaşlanma faktörü ve uygulamaya
göre algılayıcının okuduğu değer işe yaramaz hale gelebilir.
Hat hatası düğümün veya gözlemlenen nesnenin yer değiştirmesinden
kaynaklanırken, düğüm hatası güç kaybı veya hareketlilik nedeniyle meydana
gelebilir. Haberleşme protokolü dinamik olmalı ve bu tür değişimlere cevap
verebilmelidir.
Tasarım yapılırken, sensör ağlarının uygulama özel karakteristikleri hesaba
katılmazsa, bütün bu kısıtlamaların üstesinden gelmek zor olabilir. KSA için
geliştirilecek protokol, uygulamanın özelliklerini bozmadan, birçok uygulamayı
kapsayacak şekilde genel olmalıdır. Çok noktadan tek noktaya iletim, ortak işleme
ve kısıtlamaların ağın değişik noktalarında farklı olması çoğu ağda ortaktır.
Çok Noktadan Tek Noktaya İletim: Algılayıcı ağlardaki haberleşme, birçok
bağımsız noktadan noktaya akış yerine, düğümlerden ağda bulunan merkezi veri
toplayıcılara doğrudur. Çok noktadan tek noktaya haberleşme; düğümlere, baz
istasyonuna giden yolda verileri toplulaştırma ve sıkıştırma olanağı sağlar. Bu
özel haberleşme modeli, diğer düğümlerin paketlerinin baz istasyonuna iletirken
aşırı yüklenen baz istasyonu yakınındaki düğümler için yük dengelemeli
yönlendirme algoritmasına ihtiyaç duyar.
Toplu İşleme: Sensör düğümleri, kendi verilerini gönderirken birbirleriyle
yarışmak yerine müşterek görevlerini yaparken beraber çalışırlar. Normal bir
ağda, düğümler ortak iletim kanalına erişim kazanmak için birbirleriyle çarpışırlar
ve verilerinin hedefe en kısa sürede ulaşması için en az sayıda düğüm atlaması
yapmayı öngörürler. Hem de aldıkları paketi hiçbir işlem yapmadan
yönlendirirler. Fakat kablosuz sensör ağlarında düğümler, iletim hakkını elde
etmek için harcanan enerjiyi ve geçen zamanı azaltmak nedeniyle kendileri için
toplayıcı düğüm tarfından belirlenen zaman aralıklarında iletim yapabilirler.
Ayrıca, bazı düğümlerin uzun iletim yollarını seçmesi toplam ağ ömrünü uzatma
açısından daha iyi olabilir. Buna ek olarak düğümler gönderecekleri veri miktarını
azaltmak için birbirleriyle işbirliği yapabilirler.
Kısıtlamaların Düzensiz Dağılımı: Sensör düğümleri ile ortak toplama
noktasının kısıtlamaları simetrik değildir. Sensör düğümlerinin kısıtlı enerjileri ve
8
iletim güçleri varken, verileri toplayan merkezi kontrolörün enerji veya güç kısıtı
yoktur. Baz istasyonun kapasitesi ağın yükünü azaltmak için kullanılabilir.
Senkronizasyon yapmak örnek olarak verilebilir.
Enerji verimliliği, gecikme garantisi, hata toleransı kısıtlamaları ve kablosuz
sensör ağlarının uygulamaya özel karakteristikleri birden çok protokol katmanını
etkiler. Bu nedenle kablosuz sensör ağları için protokol tasarlarken, tüm protokol
katmanlarını içine alan bir tasarım ele almak gereklidir.
Çapraz katman tasarımı iki yolla yapılabilir (Akyıldız et al., 2005). İlk
yaklaşım diğer katmanlardaki parametreleri hesaba katarak protokol katmanının
performansını artırmaktır. İkinci yaklaşım ise birkaç protokol katmanını tek bir
katmanda birleştirmektir. İkinci yaklaşım katmanlar arasındaki yakın iletişim
nedeniyle daha iyi performans sağlarken, ilk yaklaşım protokol katmanları
arasındaki şeffaflığı korumaktadır. Şekil 1.1 basitleştirilmiş bir ağ protokol
yığınını göstermektedir. Her katmanın fonksiyonu ise şöyledir (Cui, 2005).
-
Fiziksel Katman (Physical Layer): Bitlerin kablosuz hat üzerinden
noktadan noktaya güvenilir bir şekilde iletilmesine odaklanır. Bu
katmanın gerçekleştirdiği ana fonksiyonlar modülasyon, kodlama,
çeşitlilik ve güç kontrolüdür.
-
İletim Ortamı Erişim Kontrol (Medium Access Control, MAC) Katmanı:
MAC katmanı, verilen iletim bandını farklı kullanıcıların nasıl
paylaşacağını kontrol eder. İletim bandı tahsisi rastgele erişim veya
önceden karar verme şeklinde olabilir.
-
Ağ Katmanı (Network Layer): Veri dizilerinin kaynaktan hedefe
iletilmesini sağlar. Bu katman ağ yönlendirmesinden ve dinamik kaynak
yönetiminden sorumludur.
-
Uygulama Katmanı (Application Layer): Ağa gönderilecek veriyi üretir
ve ağdan gelen veriyi işler. Temel fonksiyonu kaynak kodlamasıdır.
9
Tipik çapraz katman tasarımında, alt katmanlar üst katmanlara raporlama
yaparlar. Geçişler genellikle aşağıdan yukarıya doğrudur. Şekil 1.1’de de
görüldüğü gibi; tasarım, kablosuz sensör ağlarının uygulama özel
karakteristiklerini işletmek için üst katmanlardan alttakilere etkileşimleri de
içerir
Uygulama
çoktan teke iletim
toplu işlem
kısıtlamalardaki düzensizlik
Ağ
katman faaliyetleri
MAC
hat kalite göstergesi
iletim enerjisi
devre enerjisi
Fiziksel
hat kalite göstergesi
Şekil 1.1 Kablosuz sensör ağlarında katmanlar arası geçişler
Uygulama katmanı, diğer katmanlar tarafından kullanılacak kablosuz sensör ağına
özel nitelikleri belirler. Çok noktadan tek noktaya iletim özelliği ve enerji
sınırlaması yönlendirme katmanında yük dengeleme kısıtı olarak kendine yer
bulurken toplu işleme özelliği düğümlere veriyi sıkıştırma imkanı verir.
Kısıtlamalardaki düzensizlik MAC katmanında enerji verimli senkronizasyon
yapar.
Fiziksel katman özellikleri, paket iletimi için harcanan enerjiyi, devrenin
enerjisi ve iletim gücü fonksiyonu olarak hesaplar. Bu fonksiyonlar en iyi
yönlendirme planının seçiminde kullanılır. Fiziksel katman aynı zamanda MAC,
yönlendirme ve uygulama katmanlarına hat kalite göstergesi (Link Quality
10
Indication, LQI) bilgisini sağlar. LQI, alıcı enerji belirleme ölçümü kullanarak
uygulanabilir. Örneğin IEEE 802.15.4 kanalı bant genişliğindeki gelen sinyal
gücü tahmini, sinyal gürültü tahmini veya bunların birleşimi şeklinde olabilir.
LQI, MAC katmanı planlaması yapılırken, yönlendirme katmanında sağlam ve
güvenli yönlendirme yolu seçilirken ve uygulama katmanında uygun kaynak
kodlaması belirlenirken kullanılabilir.
Sonuç olarak, düğümün paket göndermediği veya almadığı durumlarda
MAC katmanındaki faaliyetler ağın performansını en iyi hale getirmek için
yönlendirme katmanında kullanılabilir.
Bu tez çalışmasında bir sulama sisteminin basınç bilgisinin KSA yardımıyla
toplanması hedeflenmiştir. Bu nedenle sulama şebekesinin benzetimini yapmak
için bir test düzeneği kurulmuştur. Basınç bilgisini toplayacak düğümlerin veri
iletimini sağlamak amacıyla şebeke yapısına uygun bir yönlendirme protokolü
yazılmıştır. Otomasyon sistemine veya kullanıcılara doğru ve düzenli veri akışı
sağlanması hedeflenmektedir. Böylece sulama sisteminin kontrolü yapılacak, su
israfı ve enerji tüketimi azalacaktır. Hatta meydana gelebilecek problemlere daha
kısa zamanda müdahale edilebilecektir.
Aynı zamanda bu çalışma ile kablosuz sensör ağının performansı da
değerlendirilmiştir. Ağ ömrü ve paket kayıpları gibi kritik parametreler ölçülerek
sistemin uygunluğu test edilmiştir.
11
2. KABLOSUZ AĞLARDA YÖNLENDİRME PROTOKOLLERİ
2.1 802.15.4 ve ZigBee Ağ Yapıları ve Elemanları
Ucuz sabit, taşınabilir veya hareketli cihazlar ile kendi kendine kurulabilen
ağlardaki esneklik, düşük maliyet, çok düşük enerji tüketimi ve düşük veri iletim
oranları bu standardın ana özellikleridir. Yüklü protokol yığınlarının enerji
tüketimiyle başa çıkamayacak, gevşek veri iletimli uygulamalar için
geliştirilmiştir.
ZigBee standardı ismini bir bal arısından almaktadır. Bal arılarının karmaşık
işleri birbirleri ile uyum içinde başarmaları ve havada yaptıkları zig zag
hareketleri ismi için ilham kaynağı olmuştur. Çünkü arıların bu hareketleri ZigBee
teknolojisindeki uçtan uca mimarisini andırmaktadır.
ZigBee Alliance yarı iletken üreticileri, teknoloji sağlayıcıları, orijinal
donanım üreticilerinin oluşturduğu 200’den fazla üyesi olan büyük bir birliktir.
2004 yılında kurulmuştur. ZigBee düşük maliyette, yüksek veri doğruluğu
sağlayan, düşük güç tüketen, uzaktan kumanda ve otomasyon uygulamalarını
hedefleyen, duyarga ağları oluşturmak amacıyla geliştirilen bir kablosuz ağ
teknolojisidir. Bu teknoloji IEEE 802.15.4 LR-WPAN standardının üzerine inşa
edilmiştir. ZigBee IEEE 802.15.4 standardının belirlediği fiziksel katman ve
MAC katmanı üzerine ağ ve uygulama katmanını inşa eder.
ZigBee Alliance ve IEEE güçlerini birleştirerek bu teknolojiye ZigBee ticari
ismini verdiler. ZigBee teknolojisinden beklenen, çok uzun süre pil değişimine
gereksinim duymadan çalışabilecek cihazların bir ağ mantığı ile birbirlerine
bağlanabilmesini sağlamasının yanında, düşük güç tüketimine sahip bir ağ
oluşturabilmesidir. Çünkü kontrol kumanda amaçlı birçok uygulama için yüksek
veri transfer oranı gerekmemekte, bu cihazların uzun pil ömrüne sahip olması,
hafif ve taşınabilir olması önem arz etmektedir.
Diğer kablosuz protokollerle karşılaştırdığımızda, ZigBee kablosuz
protokolü, karmaşıklığı azaltan yapısı, daha az kaynak gereksinimi ve en önemlisi
standart bir komut ve özellik seti sunmasıyla ön plana çıkmaktadır (Pehlivan ve
Töre,2010).
12
2.1.1 Ağ bileşenleri
Bir ZigBee sistemi değişik elemanlardan oluşur. En temel olanı cihazlardır.
Cihaz tam fonksiyonlu (Full-Function Device, FFD) veya azaltılmış fonksiyonlu
(Reduced-Function Device, RFD) olabilir. Ağ, kişisel alan ağı (Personal Area
Network, PAN) koordinatörü olarak çalışacak en az bir adet FFD içermelidir.
FFD üç durumda çalışabilir. PAN koordinatörü, sadece koordinatör veya
düz bir cihaz olabilir. RFD’ler uygulamaya özel olarak tasarlanmış ve çok
miktarda veri göndermeye ihtiyacı olmayan elemanlardır. FFD cihazı RFD ile
konuşabilir. RFD görevindeki FDD’ler de sadece FFD ile görüşebilirler.
2.2 Ağ Topolojileri
Şekil 2.1’de ZigBee’nin desteklediği üç çeşit ağ topolojisi görülmektedir.
Yıldız mimarisi, uçtan uca mimari ve kümeli ağaç mimarisi ZigBee ağ yapısı
tipleridir.
2.2.1 Yıldız mimarisi
Yıldız ağ yapısında iletişim düz cihazlar ile tek merkezi kontrolör olan PAN
koordinatörü arasında kurulur. Cihazlar çoğunlukla pille beslenirken, PAN
koordinatör şebeke voltajıyla beslenebilir. Bu topolojiden yararlanan
uygulamaların bazıları; ev otomasyonu, kişisel bilgisayarlar, oyuncaklar ve
oyunlardır.
FDD aktive edildikten sonra kendi ağını oluşturur ve PAN koordinatör
haline gelir. Her başlangıçta ağ PAN tanımlayıcı seçer. PAN tanımlayıcının radyo
iletişim alanında kalan diğer ağlar tarafından kullanılmadığına dikkat edilir. Bu
her yıldız ağının bağımsız olarak çalışmasını sağlar.
2.2.2 Uçtan-uca mimari
Uçtan-uca topolojide de bir adet PAN koordinatör mevcuttur. Yıldız
mimarisinden farklı olarak cihazlar erişim alanlarındaki diğer cihazlar ile
haberleşebilirler. Uçtan uca ağ, kendi kendine organize olup, kendini
iyileştirebilir. Endüstriyel kontrol ve izleme, kablosuz sensör ağları, varlık ve
döküm yakalaması gibi uygulamalar bu yapıdan faydalanır. İletinin bir cihazdan
13
diğerine çok atlamalı olarak yönlendirilmesine imkan verir. Çok yollu
yönlendirme ile güvenilirlik sağlar.
Şekil 2.1 Ağ mimarileri
2.2.3 Küme-ağaç mimarisi
Kümeli ağaç ağları, uçtan uca yapının özel bir türüdür. Cihazların çoğu
FFD’dir. RFD’lar ağaç yapısının kol sonlarına yaprak düğüm olarak bağlanırlar.
FFD’lerden herhangi birisi koordinatör olarak davranabilir ve diğer cihazlara ve
koordinatörlere eşleme servisi sağlayabilir. Fakat bu koordinatörlerden sadece
birisi PAN koordinatör olabilir.
PAN koordinatör, kendisini sıfır numaralı küme tanımlayıcısı (Cluster
Identifier, CID) ile küme başı (Cluster Head, CLH) olarak tesis ederek,
kullanılmayan bir PAN kimliği seçerek ve komşu düğümlere işaret çerçevesi
göndererek küme yapısını teşkil eder. İşaret çerçevesini alan aday cihaz, CLH’ye
ağa katılmak için bir istek gönderir. Eğer PAN koordinatör cihazın katılmasına
izin verirse, yeni cihazı alt cihaz olarak komşu listesine ekler. Yeni eklene cihaz
ise CLH’yi üst cihaz olarak komşu listesine ekler ve diğer ağa katılmak isteyecek
aday cihazlar için işaret çerçevesi yaymaya başlar.
14
Uygulamanın veya ağın ihtiyaçları doğrultusunda PAN koordinatör, mevcut
kümenin yanında başka bir cihazı küme başı yaparak yeni bir küme oluşturabilir.
Artırılmış kapsama alanında arttan gecikme maliyetlerini düşürmek böyle bir
yapının temel avantajıdır.
2.3 Yönlendirme Protokolleri
Kablosuz sensör ağı uygulama alanlarının çeşitliliği ve kısıtları nedeniyle
birçok yönlendirme algoritması ortaya çıkmıştır. Bir yönlendirme mekanizması
uygulama ihtiyaçlarını ve ağ yapısını dikkate alarak çalışmalıdır. Çok çeşitli
yönlendirme protokolü olmasına rağmen TDA yönlendirmesi üç ana grupta
incelenebilir. Bunlar;
- Veriye Dayalı Yönlendirme
- Hiyerarşiye Dayalı Yönlendirme
- Konuma Dayalı Yönlendirme
2.3.1 Veriye dayalı yönlendirme protokolleri
Veriye dayalı yönlendirme protokolleri sorgu temellidir. Ağdaki her düğüm
aynı role sahiptir ve algılama işini birlikte çalışarak yerine getirirler. Düğüm
sayısının fazlalığı ve düğümlerin rastgele dağılması nedeniyle her düğüme genel
bir adres verilmesi mümkün olmamaktadır. Genel bir adresleme yapılamadığı için
adrese dayalı sorgulama yapılamamaktadır. Bu nedenle veri, uygulama alanındaki
her düğümden önemli ölçüde gecikme ile iletilir. Bu hem enerji tüketimini artırır
hem de yönlendirme protokolünün ihtiyaç duyduğu veri toplulaştırma gibi
fonksiyonların yerine getirilmesini engeller. Enerji kaynaklarının azlığı ve veri
toplulaştırma gibi özelliklerden dolayı veriye dayalı yönlendirme protokolleri
ortaya çıkmıştır. Baz istasyonu belirli bölgelere sorgular gönderip, o bölgedeki
düğümlerden veri bekler. Veri, sorgular aracılığı ile talep edilir. Bu tip
yönlendirme protokollerinde istenilen verinin özelliklerini tanımlamak için nitelik
temelli adlandırma gereklidir. Algılayıcı protokoller için görüşmeye dayalı
bilgilendirme (Sensor Protocols for Information via Negotiation, SPIN) ve
güdümlü yayılma; veriye dayalı yönlendirme üzerine yapılmış, veri anlaşması
yaparak, enerji tasarrufu sağlayan ve veri tekrarını ortadan kaldıran ilk
15
çalışmalardır (Ye et al., 2001). Bu iki çalışma diğer protokoller için çıkış noktası
oluşturmuştur.
2.3.2 Hiyerarşiye dayalı yönlendirme protokolleri
Hiyerarşik veya küme temelli yönlendirme, kablolu ağ yapılarından iyi
bilinen bir tekniktir. Kablosuz ağlarda ek olarak ölçeklendirme ve etkin iletişime
bağlı özel avantajlar sunmaktadır. Hiyerarşik yapı aynı zamanda enerji etkin
yönlendirme için kullanılmaktadır. Düğümler ağ içinde değişik rollere sahiptir.
Silsileli mimaride yüksek enerjili düğümler bilginin işlenmesi ve iletimi ile düşük
enerjili düğümler algılama işi ile görevlendirilebilirler. Kümeler oluşturmak ve
küme başlarına özel görevler vermek, bütün sistemin ölçeklenirliğine, ömrüne ve
enerji verimliliğine önemli katkıda bulunacağı anlamına gelmektedir. Hiyerarşik
yönlendirme, küme içinde enerji tüketimini azaltmak ve veri birleştirmesi
yaparak baz istasyonuna iletilen mesaj sayısını azaltmanın etkin bir yoludur.
Hiyerarşik yönlendirme ana olarak iki katmandan oluşur. İlki küme başının
seçilmesinde, diğeri ise yönlendirmede kullanılır. Küme kurma işlemi tipik olarak
sensör düğümlerinin enerjisine ve küme başına yakınlığına dayanmaktadır (Lin et
al., 1997). Düşük enerji uyumlu kümeleme hiyerarşisi (Low-Energy Adaptive
Clustering Hierarchy, LEACH) ilk silsileli yönlendirme protokolüdür
(Heinzalman et al., 2000).
2.3.3 Konuma dayalı yönlendirme protokolleri
Konuma dayalı yönlendirme protokollerinde algılayıcı düğümler
konumlarına göre adreslendirilirler. Komşu düğümler arası mesafe sinyal
güçlerine göre tayin edilebilir. Böylece komşu düğüm koordinatları karşılıklı bilgi
alışverişi ile sağlanabilir. Eğer düğümler küresel konumlama sistemi (Global
Positioning System, GPS) alıcısına sahip ise konum bilgisi doğrudan uydu vasıtası
ile de alınabilir (Xu et al., 2001). Düğümlerin konumlarının bilinmesi hem enerji
tüketiminin önceden tahmin edilmesini, hem de algılama işinin istenilen
bölgelerde yapılmasını sağlamaktadır. Bütün ağa sorgu göndermek yerine
istenilen alana sorgu gönderilerek ağın geri kalanının uyku durumunda olması
sağlanabilir. Bizim çalışmamızda olduğu gibi sabit yapılı ağlar için daha iyi sonuç
vermektedir.
16
2.4 Yönlendirme Protokol Çalışmaları
LEACH, Heinzalman et al. (2000) tarafından ortaya atılan dağınık küme
oluşturmaya sahip hiyerarşik yönlendirme protokolüdür. Küme başları rastgele
olarak seçilir ve bu rol küme içinde zamana bağlı olarak değiştirilir. Böylece
kümenin enerji yükü düğümler arasında dağıtılmış olur. Kümeleme yaparak her
düğümün değil sadece küme başının baz istasyonuna erişim hakkı olur. Bu da
ağın enerji tüketimini azaltırken, ömrünü artırır. Küme başı sayısı toplam düğüm
sayısının %5’idir. Bütün veri toplulaştırma ve birleştirme gibi işlemler küme
içinde meydana gelir. LEACH doğrudan iletişime göre enerji tüketiminde 7 kat
azalma sağlar. Dinamik kümeleme ağın ömrünü artırır ve düğümlerin rastgele
olarak ölmesini sağlar. Tamamen dağınık yapısı sayesinde ağın tamamı hakkında
bilgiye gerek duymaz. Fakat tek atlamalı yönlendirmeye sahiptir. Her düğüm
yalnızca küme başına veya baz istasyonuna iletim yapabilir. Bu nedenle büyük
ölçekli ağlara uygun değildir. Ayrıca dinamik kümeleme enerji tüketimini artıran
başın değişimi, yayınlanması gibi ek yükler getirmektedir.
Algılayıcı sitemlerde güç etkin toplama (Power-Efficient Gathering in
Sensor Information Systems, PEGASIS) LEACH protokolünün geliştirilmiş
şeklidir (Lindsay et al., 2002). Çok sayıda küme oluşturmak yerine zincir temelli
bir yapı oluşturulmaktadır. Her düğüm kendine en yakın komşusuna veriyi iletir.
Tek bir düğüm topladığı bütün veriyi birleştirerek baz istasyonuna gönderir. Son
düğüm rolü sırayla değiştirilerek enerji tüketimi ağ içinde düzgün olarak
dağıtılmaktadır. Veri birleştirmesi sayesinde iletim sayısı ve dinamik kümeleme
kullanılmadığı için ağdaki ek yükler azalmaktadır. Fakat uzak düğümler için
büyük gecikmeler meydana gelmektedir. Ayrıca baz istasyonu ile lider düğüm
arasında darboğaz meydana gelebilir. Bu gecikmeleri azaltmak amacıyla çoklu
iletimi öngören Hiyerarşik-PEGASIS geliştirilmiştir (Lindsay et al., 2001). Aynı
anda birden çok iletişime imkan veren ağaç yapısı öngörülmektedir. Her
seviyedeki düğümler verisini paralel olarak bir üst seviyedeki düğümlere
iletmektedir. Birbirinden uzak düğümler paralel iletişim yapabilmektedir.
Birbirine yakın düğümler ise CDMA kullanarak eşzamanlı iletişim
yapmaktadırlar. Hiyerarşik yapı normal PEGASIS’e oranla 60 kat daha
performanslı çalışmaktadır. Her düğüm komşuları hakkında bilgiye ihtiyaç
duyduğu için topoloji değişikliklerinde ağa gözle görülür bir ek yük binmektedir.
Eşik değer duyarlı enerji verimli protokol (Treshold-sensitive Energy
Efficient Protocols, TEEN) ölçülen değerdeki değişikliklere göre hareket eden
17
hiyerarşik bir çalışma öngörmektedir (Manjeshwar et al., 2001). Çok katmanlı
kümeleme oluşturulur. Baz istasyonu tarafından iki eşik değeri belirlenir ve
düğümlere yayınlanır. İlki ölçülen olgunun belirli bir seviye üzerine çıkınca veri
gönderilmesini sağlar. İkincisi ise ilk eşik değer üzerindeki küçük değişiklikleri
göz ardı etmek için kullanılır. Böylece ağ trafiği önemli ölçüde azaltılmış olur.
TEEN periyodik ölçüme ihtiyaç duyan ölçümler için kullanışlı değildir. Kullanıcı
uzun süre değer okuyamayabilir. Bu nedenle uyarlanabilir TEEN (Adaptive
TEEN, APTEEN) geliştirilmiştir. Bu protokolde hem periyodik hem de eşik
duyarlı ölçüm yapmak mümkündür (Manjeshwar et al., 2002). Eğer ölçülen değer
eşiğin altındaysa ve belirlenen zamanda ölçüm gönderilmediyse düğüm veri
göndermeye zorlanmaktadır. Bütün eşik değerler ve gönderme periyotları baz
istasyonu tarafından yayınlanmaktadır. Bütün bu yayınlar ve kümeleme
algoritması ağa ekstra yük getirmektedir.
Sanal ızgara mimarili yönlendirme (Virtual Grid Architecture Routing,
VGA) düşük hareketliliğe sahip ağlar için geliştirilmiş, konuma dayalı sabit
kümeleme yapısına sahip, veri toplulaştırmayı ön plana çıkaran bir protokoldür.
Konumlarıma bağlı olarak sanal sabit kare kümeler oluşturulur. Her küme içinde
en uygun eleman küme başı olarak seçilir ve veri toplulaştırma ile küme verisinin
bir üst seviyeye gönderilmesinden sorumlu olur. Üst seviye düğümler de
toplulaştırma yaparak veriyi baz istasyonuna iletirler (Al-Karaki et al., 2004).
Kümeler sanal olarak oluşturulduğundan GPS verisine ihtiyaç duyulmaz.
Sulama sistemi inşa edildikten sonra zamanla değişmediği için VGA’nın
öngördüğü ızgara sisteminde bir ağ yapısı inşa edilebilir. Ağ topolojisini sulama
sistemi ile bire bir örtüştürmek kontrol açısından fayda sağlayacaktır. Yine statik
bir su hattına sahip olduğumuz için kümeleri sabit olarak oluşturmak,
LEACH’teki dinamik yapıdan kaynaklanan ek yükü ortadan kaldıracaktır. Ölçüm
yapılacak sulama hattı dallanmadan uzun kollar halinde ilerlediğinden PEGASIS
gibi bir zincir yapısı oluşturmak mantıklı hale gelmektedir. Aynı zamanda
APTEEN gibi hem periyodik hem de eşik değere göre ölçüm yaptırmak ağdaki
trafik yükünü azaltacaktır.
Cihazlarımızda GPS modülü olmadığı için ağ mimarimizi statik adresleme
ve kümeleme yaparak sulama sistemi projesine uygun olarak tasarlamak bize
avantaj sağlayacaktır. Böylece hangi düğümün hattın hangi noktasında olduğu
veya hangi noktanın basıncının ölçüldüğü bilgisine VGA’da belirtildiği gibi sahip
olacağız. APTEEN’de öngörülen eşik bilgisinin baz istasyonu tarafından
18
yayılmasından dolayı oluşacak yükü devre dışı bırakmak amacıyla, düğümlerin
konumları bilindiği için tasarım aşamasında düğümler programlanırken girilmesi
uygun olacaktır. Düğümler, basınç belirli bir aralığın dışına çıkarsa anlık veya
belirtilen zaman aralığı sonunda periyodik olarak iletim yapacaklardır.
Oluşturacağımız yönlendirme protokolünde daha çok hiyerarşiye dayalı
yönlendirme protokollerinde kullanılan veri toplulaştırılması yapılmayacaktır.
Bunun nedeni gecikmeleri azaltmak ve paket boyutunun büyümesini önlemektir.
PEGASIS ve TEEN uygulamalarında yapılan veri toplulaştırması gecikmeyi
artırmakta ve düğüm içi ekstra işlem gerektirmektedir. Statik bir yapıya sahip,
geniş alanlara yayılan sulama sistemine yerleştirilecek düğümler için enerji kısıtı
ve gecikme yaratabilir.
Her uygulamanın, uygulama alanına göre değişen istekleri, kısıtları ve
hedefleri vardır. Bu üç eleman arasındaki dengeyi en uygun şekilde kurmak
gerekmektedir. Uygulamanın belirlediği bu dengeye yönelik olarak protokol
geliştirilir. Oluşturduğumuz yönlendirme protokolünün hedefi ise paket
kayıplarının, gecikmenin ve ağ ömrünün uygun bir şekilde dağılımını sağlarken
basınç bilgisinin sağlıklı bir şekilde okunmasıdır.
19
3. SU İLETİM HATLARININ BASINÇ BİLGİSİNİN
ÖLÇÜLMESİ
3.1 Gerekli Sistem Parametreleri
Suyun verimli kullanılması gerekmektedir. Günümüzde bütün sulama
sistemleri kapalı sistem dediğimiz borulu sulama hatlarından oluşmaktadır. Kapalı
sistemler, hatta bir basınç oluşturabildiğimiz için damlama ve yağmurlama gibi
sistemlere uygundur. Bunun için boru hattının son kullanıcı noktalarında belirli
bir basınca ihtiyaç duyulmaktadır. Bu basınç damlama sistemleri için 1 bar,
yağmurlama sistemleri için 3 bar civarında olmaktadır. Mevcut sistemlerde ve
DSİ tarafından hali hazırda yapılmakta olan sulama projelerinde bu basıncı
sağlamak amacıyla yüksek kotlarda bir depo yapılır. Deponun büyüklüğü ve
yapılacağı yer sulama şebekesine göre değişiklik göstermektedir. Daha sonra
yeraltı suyu sabit devirli pompalar vasıtasıyla depoya basılmaktadır. Bu
sistemlerde son kullanıcı noktalarında herhangi bir basınç ölçümü
yapılmamaktadır. Hat üzerinde de herhangi bir kontrol mevcut değildir.
Hattın basıncını ölçerek hem hattın çalışması hakkında doğru bilgilere
ulaşılmış olur, hem de sabit devirli pompalar yerine değişken devirli pompalar
kullanılabilir. Basınç bilgisinin düzenli ölçülmesi sayesinde hatta meydana
gelebilecek arızalar (boru patlamaları, kaçaklar gibi) önceden tespit edilebilir.
Ayrıca kullanılacak değişken devirli pompalar sayesinde büyük ölçüde enerji
tasarrufu sağlanabilecektir. Pompalar ve hat her zaman tam kapasite ile
çalışmayacağı için hat kayıpları ve aşınmalar azalacaktır. Bu da enerji ve bakım
giderlerinde azalma olarak tüketiciye dönecektir.
3.2 Mevcut Sistemler
Dünya nüfusunun 2025 yılında 8 milyara ulaşılacağının tahmin edilmesi,
gıda güvenliğini dünyanın yakın gelecekteki en önemli sorunu olarak karşımıza
çıkarmaktadır. Artan nüfusun beslenme gereksinimini karşılamak için,
önümüzdeki 50 yıl içinde üretimde en az iki kat artış gerekmektedir (Howell et al.,
2001).
20
İnsanların temel gıda gereksinimlerinin güvenli biçimde karşılanması için,
sulanan alanlarda gerçekleşen %1’lik artışın, yaklaşık %2.25 düzeyinde olması
gerektiği belirtilmektedir (Doorenbos and Kassam, 1988). Son yıllarda yapılan
projeksiyonlara göre, 2050 yılında gıda, giyecek, barınak ve tatlı su
gereksiniminin bugüne göre, iki kat daha fazla olacağı rapor edilmiştir (Postel et
al., 1996).
Sulama genel anlamda, bitki gelişmesi için gerekli olan, ancak doğal
yollarla karşılanamayan suyun toprağa verilmesi biçiminde tanımlanır. Bunun
yanında sulama, toprak ve hava sıcaklığının kontrolü, bitki zararlıları ile
mücadele, gübreleme, toprakta bulunan fazla tuzların yıkanması ve taban taşının
yumuşatılması gibi amaçlara da hizmet eder.
Doğal koşullarda yağışlar bitkinin su ihtiyacının ancak küçük bir kısmını
karşıladığı için sulama bitki gelişiminde büyük öneme sahiptir. Sulamayla topraksu ve bitki arasında olumlu bir dengenin yaratılması sağlanmaktadır. Bu nedenle
sulama, bitki gelişmesi için yeterli nem koşulunu sağlayan bir faktördür. Ayrıca
sulama, tarım sektörünü iklim şartlarından bağımsız kılmakta, ilave istihdam
yaratmakta, kırsal alanda gelir dağılımını düzeltmekte, gübre kullanımına imkan
sağlamakta, üretimin çeşitlenmesine ve birim alandan birden fazla ürün
alınmasına imkan vermektedir.
Sulama sistemleri ile suyun kaynaktan alınıp sulanacak alana getirilmesi ve
oradan da bitki kök bölgesine verilmesi amaçlandığından, sistemin projelenme ve
işletilmesinde üç temel görevin sağlanması istenir. Bunlardan ilki çiftçiye en
yüksek gelirin sağlanması, sonra iletim ve uygulamanın en az su kaybı ile
yapılması daha sonra ise tarım alanının uzun dönemdeki verimliliğinin, toprağın
aşınması ile yapısının bozulmasını ve tuzluluk ile taban suyu düzeyinin
yükselmesinin önlenerek sürdürülmesidir.
Şekil 3.1’de görüldüğü üzere borulu sulama şebekeleri son yıllarda artış
göstermektedir. Borulu sulama şebekeleri suyun ekonomik kullanılması,
işletmesinin kolay olması ve ideal sulama yapılması nedenleriyle önem arz
etmektedir (Devlet Su İşleri Genel Müdürlüğü, 2010).
Açık kanallı ve kanaletli sulama şebekelerinde hatta basınç oluşmaz.
Yapılan projelerde debi miktarı göz önüne alınır. Bu nedenle bu çalışmada borulu
sulamalara, özellikle orta ve yüksek basınçlı sulamalara ağırlık verilmiştir.
21
Şekil 3.1 Sulama sistemine göre oranlar.
Mevcut borulu sistemlerde önceden projelendirme yapılır. Seçilecek sulama
sistemine göre basınç ve debi hesaplaması yapılarak proje oluşturulur. Genellikle
bu hesaplamalarda varsayımlarda ve yaklaşımlarda bulunulur. Sulama projesi şu
şekilde hazırlanır.
Sulama sahasına ait 1/5000 ölçekli vaziyet planları tedarik edilir. Nehirler,
yan dereler, yollar, çukur kesimler ve açılması önerilen tahliyeler 1/5000 ölçekli
paftalar üzerinde işaretlenir. Varsa derin drenaj ve çiftlik drenaj alanları 1/5000
ölçekli paftalara işaretlenir.
Bu hususlar doğrultusunda yedek, tersiyer kanalların sulayacakları alanlar
belirlenmiş, sınırlar ortaya çıkmış olur. İleride detayları anlatılacak olan şebeke
elemanları sulama şebekesinin tipine bağlı olarak yerleştirilir.
Sulama sahasında hangi sulama sistemi uygulanacak ise, o sisteme ait
sulama modülü (bitki ihtiyacı olan suyun, birim alan için bir saniyede verilmesi
gereken miktarı-lt/sn-ha) alınır.
Orta basınçlı borulu sulama sisteminde teorik parsel alanı 8 ha, hidrant
debisi 20 lt/s; alçak basınçlı borulu, açık kanal beton kaplamalı ve kanalet tipi
22
sulama şebekelerinde ise teorik parsel alanı 8-10 ha, hidrant debisi 30 l/s
alınmaktadır.
Sulama sistemi yağmurlama olacak ise, bir teorik parsel alanı seçilerek, o
parsele ait hidrant debisi hesaplanır, bu sistemde ortalama olarak 8 ha teorik
parsele 11-12 lt/s hidrant debisi olmaktadır.
Sulama süresi ve net alan katsayısı belirlenir. Sulama süresi, çiftçilerin bir
günlük çalışma süresidir ve pompaj sulamalarında 18 saat, diğer sulamalarda 20
saat alınır.
Net alan katsayısı ise, sulama sahası içerisinde sulama dışı kalan sahaların
toplamının tüm sahadan çıkarıldıktan sonra kalan net sulama sahasını temsil eden
bir katsayıdır. Bu katsayı, basınçlı borulu şebekelerde 0.873-0.900, diğer sulama
sistemlerinde ise 0.846 olarak kabul edilir, bu katsayıyla brüt alanın çarpımıyla
net sulama alanı bulunur.
Projeye uygun olarak arazi toplulaştırması yapılır. Yurdumuzda halka ait
tarım arazileri, aşırı bölünme nedeniyle, genelde düzensiz şekilli ve küçük
parsellerden oluşmaktadır. Sulama şebekelerinin, parselasyon düzenlenmeden inşa
edilmesi, mülkiyetleri artırmakta ve uygulamayı zorlaştırmaktadır. Aynı zamanda
şebeke maliyetleri de artmaktadır. Ortalama işletme büyüklüğü A.B.’de 13 ha
iken, Türkiye’de 6.1 ha’dır.
Arazi toplulaştırması yapılan projelerde, sulama ve drenaj şebekesi için
kamulaştırma yapmaya gerek kalmamaktadır.
Parsel sınırlarındaki arazi kayıpları azalmakta ve tasarruf edilen arazi, kanal
ve yol yerlerini karşılayabilmektedir. Dolayısıyla sulama inşaatına başlamadan
önce toplulaştırma yapmak zorunlu olmaktadır.
3.2.1 Basınçlı borulu sulama sistemleri
Sulama metotlarının, su uygulama yöntemlerinin ve şebeke türlerinin
geliştirilmesinde, bitkilerin gelişmesi için gerekli olan toprak neminin
oluşmasında doğal olarak sağlanamayan suyu, gereken zamanda ölçülü, uygun ve
doğal koşullara benzer bir şekilde uygulamaya çalışma düşüncesi ile son yıllarda
su tasarrufunun gerekliliğinin gündeme gelmesi, etken olmuştur. Bu açıdan
23
bakıldığında, yüksek basınçlı sulamalar bugün dünyada ve Türkiye'de en gelişmiş
sulama metotlarından biri olarak ortaya çıkmaktadır. Yüksek basınçlı sulama
sistemleri, aşağıdaki sebeplerden dolayı tercih edilmektedir.
Salma sulama yöntemleriyle sulanamayan yüksek eğimli ve ondüleli
araziler, yüksek basınçlı sulama sistemi ile hiç tesviyeye gerek duyulmadan veya
çok az bir tesviye ile rahatlıkla sulanabilmektedir.
Yüksek basınçlı sulamalarda arazi tesviyesine gerek olmaması sebebiyle ilk
yıldan başlamak üzere tam üretim sağlanabilmektedir.
Yüksek basınçlı sulama ile sulama suyunun tarlaya uygulanmasında derine
sızma, iletim ve yüzeye akış yolu ile su kayıpları olmaması nedenleri ile çiftlik içi
randımanı yüksek olmakta ve buna bağlı olarak, özellikle sulama suyunun yetersiz
olduğu yörelerde daha geniş alanların sulanmasına olanak sağlanmaktadır.
Yağmurlama ve damla sulamalarında ortalama çiftlik verimi(rç)=0.85, sapma
verimi(rd)=0.95 olmasına karşılık, klasik sulamalarda rç=0.40-0.60, rd=0.85
olmaktadır.
Yüksek basınçlı sulamalarda suyun bitkiye ulaşımı arklar vasıtasıyla
olmadığından ve kontrollü olduğundan dolayı drenaj sorunu olan arazilerde taban
suyunun yükselmesi veya kumlu çakıllı topraklarda aşırı su kaybı önlenmektedir.
Eğimi yüksek tarım alanlarında yüzey sulama yöntemleri ile yapılan sulama
sonucunda oluşan yüzeysel akış, ciddi erozyon sorunları meydana getirmekte ve
erozyon kontrolünde sayısız güçlükler ile karşılaşılmaktadır. Yüksek basınçlı
sulamalar, bu nitelikteki alanlarda erozyon sorunu oluşmadan başarıyla
uygulanabilmektedir.
Yüksek basınçlı sulamalarda, parsel içi lateral sisteminin takılması,
çalıştırılması ve sökülmesi konularında özel yetişmiş ve beceri sahibi kişilere
gereksinim duyulmamaktadır. Ayrıca kurulum ve söküm işlemleri çok çabuk
yapılabildiğinden, karık, tava, dip açma gibi işlemleri gerektirmediğinden işçilik
ve zamandan tasarruf sağlamaktadır.
Yüksek basınçlı sulamalarda, suni gübreler sulama suyu ile birlikte, uygun
teknik ile ikinci bir işçilik masrafı olmadan bitkilere verilebilmektedir.
24
Yüksek basınçlı sulama sistemleri, mansap kontrollü olarak işletilmekte
olup, su zayiatı olmamaktadır.
3.2.2 Yüksek basınçlı sistemlerin projelendirilmesi
Yüksek basınçlı borulu sulama projelerinde; kaynaktan alınan su şebekeye
genellikle beton kaplamalı açık kanal ile veya basınçlı boru hatlarıyla ulaştırılır.
Yüksek basınçlı teşkil edilecek borulu kanalın açık kanallar gibi münhani
eğrilerini takip etmesi gibi bir zaruret olmadığı için, hatların yamaçlarda teşkil
edilmesine gerek yoktur.
Yağmurlama sulamalarında, hidrantın işletme basıncı minimum 30-35 mss,
damla sulamalarında ise minimum 18-20 mss alınabilmekte, bu değerlerden daha
düşük basınçlarda ise orta basınçlı sulamalar teşkil edilmektedir. Pompajlı
sulamalarda basma kotu, en elverişsiz noktadaki hidrantların işletme basınçları
dikkate alınarak belirlenmelidir. Hatlarda maksimum statik basıncın 100 mss nu
geçmemesi gerekmektedir. Daha yüksek basınçlarda boru maliyetleri aşırı
miktarda artmakta, boru hatları üzerindeki armatürler aşırı basınçtan olumsuz
etkilenmektedir. Bu tür şebekelerin emniyetli ve uygun işletilmesi, bir hava tankı
veya sahanın üst kotlarına bir regülasyon havuzu inşa ederek sağlanabilir.
Maksimum basıncın 100 mss’nu geçtiği kesimlerde maslaklarla sulama sistemi
bölgelere ayrılır. Küçük yedek kanallar üzerine ise maslak yerine basınç düşürücü
vanalar konulabilir.
Suyun teorik parsellerdeki priz noktalarına (hidrantlara) ulaştırılmasını
yüksek veya orta basınçlı olarak çalışan, yedek ve tersiyer kanal niteliğindeki
borular sağlar.
Kullanılan boru çapları genellikle Φ100-Φ2000 mm arasında değişmektedir.
Ancak gerektiği hallerde daha büyük çaplı borular da kullanılabilmektedir.
Yağmurlama sistemlerinde, sulama başlıkları ortalama olarak 20-25 mss
basınçla çalışmaktadır. Başlıkların bulunduğu laterallerdeki ve çiftlik içi ana
borusundaki sürtünme kayıpları ile hidrantın kendisinde oluşacak yük kayıpları
dikkate alındığında, hidrant giriş basıncının 30-35 m alınması gerekmektedir.
Hidrantın gövdesinde 0.95 m, nozulda 2.00 m, basınç sınırlayıcıda 2.20m, debi
sınırlayıcıda 4.90 m, toplam 10.05 m yük kaybı oluşabilmektedir. Dolayısıyla
25
şebekedeki hidrant giriş basıncı 30-35 m kabul edilerek çıkışta 20-25 m işletme
basıncı elde edilebilmektedir.
Küçük çaplı borularda minimum hız (Vmin) 0.60m/s alınarak, boru
hatlarına rusubatın1 çökelmesi önlenmelidir, büyük çaplı borularda ise minimum
hız (Vmin) 1.20-1.50 m/s alınarak boru çapları gereksiz yere büyütülmemelidir.
Tüm borularda maksimum hızın (Vmax) ise 2.50 m/s'yi geçmemesi uygun
olmaktadır.
Anaboru hatlarından ayrılan yedek ve tersiyerlerin2 başlangıcına ayrım
vanası ve vantuz (hava kapakları), sonlarına ise tahliye vanaları yerleştirilmelidir.
Ancak yedek veya tersiyer hat yokuş yukarı ise, başlangıca ayrım vanası, hat
sonuna vantuz konulmalıdır. Hat sonlarına konulan tahliye vanasının çapı Φ100
mm olmalıdır.
Anahat üzerine, yüksek debisi olan yedek hat ayrımından hemen sonra çift
yönlü akış kontrolünü sağlamak amacıyla yönlendirme vanası konulmalıdır.
Anahat üzerinde hiçbir yedek hat ayrım yok ise, akış kontrolünü sağlamak üzere
1000-1500 m ara ile yönlendirme vanaları yerleştirilmelidir.
Boru hattı profilleri çizilirken boru eksen hattı esas alınmalı ve çok fazla
eğim değişimi (kırıklık) yapılmamalıdır. Boy profillerinde yüksek noktalara
vantuz yerleştirilerek sistemde biriken havanın dışarı atılması sağlanmalıdır, aksi
takdirde biriken hava boru kesitinin daralmasına neden olacak ve istenen debi
geçmeyecektir.
Boy profillerinde düşük noktalara tahliye vanası konulmalıdır. Tahliye
vanaları sulama mevsimi bitiminde sistemdeki suyu boşaltmak amacıyla
kullanılan yapılardır. Tüm tahliye çapları Φ100 mm alınabilir.
Hidrantlar, şebekeden gelen suyu, parsel içi elemanlarına iletirler.
Hidrantlar, çıkış sayısına, debisine, çalışma basıncına vb. göre değişik özelliklerde
imal edilirler. Hidrantların tarla sınırlarına yerleştirilmelerine özen gösterilmelidir.
1
Suyla gelen yabancı maddeler.
2
Üçüncü derece hatlar.
26
Birden fazla parsele hizmet eden çok çıkışlı hidrantların tesisi, su dağıtım
ağında boru uzunluğunu, dolayısıyla maliyeti azaltır.
Hidrant yerleri seçilirken her tarla için bir hidrant yerleştirmek işletme
açısından en doğru yoldur. Ancak, hidrant maliyetlerinin yüksek oluşundan
dolayı, hesap edilen teorik parsel (6-10 ha) için bir hidrant konulmaktadır.
Parsel içi elemanları, hidrantlardan alınan suyu toprağa püskürtmek
amacıyla yağmurlama başlıklarına ileten elemanlar veya bitki köküne suyu
damlatan elemanlardır. Bu elemanlar; parsel içi ana borusu, bundan ayrılan
lateraller, lateraller de belirli aralıklarla yerleştirilmiş ve yükselticiler üzerine
monte edilmiş yağmurlama başlıkları veya damlama elemanlarından oluşur.
Lateraller(yan hatlar), bazen çelik olmakla beraber, çoğunlukla PVC veya
alimünyum gibi hafif, çabuk sökülüp takılabilen bağlayıcılarla donanmış,
genellikle konum değiştirmek ve böylece parsel içinde değişik pozisyonlarda
kullanılmak üzere taşınabilir elemanlardır.
Parsel içi ana borusu, hakim meyil yönünde, toprak üzerinden veya hendeğe
gömülerek yerleştirilebilir. Üzerinde yağmurlama başlığı bulunan lateraller ise
olanaklar elverdiğince tesviye eğrilerine parelel yerleştirilmelidir. Lateral boru
hatlarının, bayır yukarı eğimde döşenmesine ancak düşük eğimde ve boru hattının
kısa olması koşulunda izin verilebilir. Lateral boru hatları zorunlu kalınmadıkça
250 m’yi geçmemelidir. Lateral boyunca basınç değişimi, işletme basıncının
%20'sini geçmemelidir, aksi halde üniform bir su dağılımı yapılmamış olur.
Lateral boylarının kısa tutulması, yer değişimi anında zamandan tasarruf edilmesi
açısından önemlidir.
Lateraller, hakim rüzgar yönüne dik bir düzen içerisinde yerleştirilmelidir.
Basınç düzenlemelerinde kolaylık sağlaması amacıyla boru çaplarında değişim,
parsel içi ana borusunda yapılmalıdır.
27
4. ÖNERİLEN KABLOSUZ SENSÖR AĞI SİSTEMİNİN
ELEMANLARI VE ÇALIŞMA DETAYLARI
4.1 Kullanılan Donanımlar
Projede TelosB düğümler kullanılarak KSA oluşturulmuştur. Basıncı
ölçmek için Freescale firması tarafından üretilen Mp3v5050gp basınç sensörü
kullanılmıştır. Bu bölümde kullandığımız donanımlar ile ilgili bilgi verilecektir.
4.1.1 TelosB
Telos deneysel çalışmalar ve araştırmalar için geliştirilmiş, düşük güçlü bir
KSA düğümüdür (Şekil 4.1). Telos 3 ana özelliğe sahiptir: Düşük enerji tüketimi,
kolay kullanım ve artırılmış donanım ve yazılım dayanıklılığı. Güç tüketimi
önceki düğümlerim nerdeyse onda biri kadardır ve evrensel seri veri yolu
(Universal Serial Bus, USB) arayüzüne sahiptir. Telos’un tasarımı düşük çalışmalı
döngüye dayanmaktadır (Polastre et al., 2004). Zamanın çoğunu uykuda geçir,
hızlı bir şekilde uyan, işlemi yap ve tekrar uyu. Düşük güç tüketimi için uyku
akımı ve uyanma zamanı düşürülmelidir. Telos’un bütünleşik tasarımı
araştırmacılara daha fonksiyonel ve dayanıklı sistemler geliştirme fırsatı verir.
Şekil 4.1 Telos düğüm.
28
Mevcut KSA platformları piyasada bulunan (Commercial Off-The-Shelf,
COTS) elemanlardan inşa edilirler. Telos da donanım hızlandırıcılarına sahip
COTS elemanlardan oluşur. Telos 1.8 V ile çalışan ve mevcut ürünler arasında
en düşük uyku ve aktif durum enerji tüketimine sahip MSP430 mikro kontrolör
kullanır. İki seri AA tip pillinde kesme gerilimi, çalışma gerilimi gibi 1.8 V’tur.
MSP430, 6 µs’den fazla olmayan hızlı uyanma zamanına ve ana kontrol ünitesi
(Main Control Unit, MCU) çekirdeğinin yükünü azaltan, dolayısıyla enerji
tüketimini azaltıp performansı artıran doğrudan bellek erişim (Direct Memory
Access, DMA) kontrolörüne sahiptir. Daha büyük flaş belleğe ve dahili rastgele
erişimle hafızaya (Random Access Memory, RAM) sahiptir. IEEE 802.15.4
standardında, 2.4 GHz bandında çalışan, 250 kbps hızında düz sıralı dağınık
spektrumlu (Direct Sequence Spread Spectrum, DSSS) ofset karesel faz kaydırma
anahtarlamalı (Offset quadrature phase-shift keying, O-QPSK) modülasyona sahip
Chipcon CC2420 radyo seçilmiştir. Başlama zamanını düşürmek için 16 MHz
düşük eşdeğer dirençli (Equivalent Series Resistance, ESR) kristal kullanılmıştır.
Donanım hızlandırıcılar MCU yerine radyoya eklenmiştir. Bu nedenle
hızlandırıcılar genel amaçla kullanılamazlar.
Bütünleşik tasarım, dayanıklılığı artırarak, kullanımı kolaylaştırmaktadır.
Telos, baskı devreye monte edilmiş, 2.4 GHz düzlemsel ters F anten (Planar
Inverted F-Antenna, PIFA) kullanmaktadır.
Telos dahili USB portu üzerinden programlanır ve harici belleği için
donanımsal yazma korumasına sahiptir. USB portuna takılınca yazma koruması
kaldırılır. Pille çalışırken koruma aktif hale gelir.
Bütün donanımlar izole edilmiştir. Devrelere giden güç bağımsız olarak
açılıp kapatılabilir. Herhangi bir arıza durumunda hatalı ünite devre dışı
bırakılabilir.
IEEE 802.15.4 protokolü 64 bitlik adreslemeye sahiptir. Kullanılan 48 bitlik
seri silikon kimlik yongası ile yazmaya karşı korumalı bellekte tutulan üreticinin
IEEE organizasyon adresi (Organizationally Unique Identifier, OUI)
birleştirilerek, kullanıcıya 64 bitlik tekil MAC adresi sağlanmış olur. MAC adresi
sistem ve ağ kontrolü için kullanışlıdır. Ayrıca kesin düğüm tanımlamasını sağlar.
Daha öncede belirttiğimiz gibi Telos düşük akım tüketimine, balama
zamanına ve çalışma gerilimine sahiptir (Çizelge 4.1). Telos düşük güçlü flaş ve
29
mikro denetleyici kullanmaktadır. Bu nedenle mevcut düğümlerden daha uzun
ömre sahip olabilir. %1’lik çalışma döngüsünde Telos 3 yıl çalışabilirken, Mica2
düğümü 1.5 yıl, MicaZ düğümü ise 1 yıl çalışabilmektedir (Polastre et al., 2004).
Çizelge 4.1 Telos, Mica2, MicaZ akım tüketim miktarları.
Telos düşük güç tüketimi yerine getirebileceği fonksiyonların azalmasına
sebep olmaz. Günümüzde mikro denetleyiciler güçlü mikro işlemcilerle birlikte
gelmektedir. Ayrıca DMA; MCU uyku durumundayken radyoya veri alıp verme,
sayısaldan analoga çevirme, analogdan sayısala çevirme gibi görevleri yerine
getirerek MCU’nun rahatsız edilmesini engeller. Böylece MCU daha fazla uykuda
kalmış olur.
Dahili anten çoğunlukla çok yönlü bir yayılıma sahiptir (Bkz. Ek 1).
Deneysel çalışmalarda mesafenin LQI, alınan sinyal gücüne (Received Signal
Strength, RSSI) ve paket başarı oranına etkileri test edilmiştir. Şekil 4.2
ortalama paket başarısını, LQI ve RSSI değerlerini göstermektedir. Paket başarı
oranı ile LQI nerdeyse çakışmaktadır. RSSI değeri ise paket başarı oranı
yüksekken üstel olarak, mesafe 19 m olduğunda ise sinyal gücü zayıfladığından
hızlı bir şekilde azalmaktadır.
TinyOS, kablosuz sistemler üzerine yapılan araştırmalara uygun elemanlara
ayrılmış bir işletim sistemidir (Levis et al.,2005). Bu ayrışma araştırmacılar
istenilen seviyede çalışma olanağı sağlamaktadır. MSP430, TinyOS ile kullanılan
mikro denetleyicilerden farklı bir mimariye sahiptir. Bu nedenle TinyOS 2.0
versiyonu üç katmanlı olarak yeniden tasarlanmıştır. Bu tasarım donanımdan
bağımsız çıkarım sağlamaktadır (Handziski et al.,2005). Donanım uygulama
katmanı, donanım çıkarım katmanı ve donanım bağımsız katmanı TinyOS içine
30
eklenmiştir. Ayrıca CC2420 için platform bağımsız radyo yığını TinyOS içine
gömülmüştür.
a) Paket başarı oranı ve hat kalitesi
b) Alınan sinyal gücü
Şekil 4.2 Telos test ölçümleri (Polastre et al., 2005).
Sonuç olarak Telos dayanıklı bir yapıya, düşük güç tüketimine ve mevcut
sistemlerden daha yüksek performansa sahiptir. USB portu ile araştırma ve
geliştirme çalışmalarını kolaylaştırmaktadır
31
4.1.2 Freescale Mp3v5050gp basınç sensörü
Basınç algılayıcılar, her türlü kuvvet ve basınç değişimini algılayan ve bu
değişimi elektriksel sinyale çeviren elemanlardır.
Basınç sensörleri, çalışma prensibine göre dört grupta incelenebilir. Bunlar:
-
Kapasitif basınç ölçme sensörleri
-
Uzama ölçmeli basınç sensörleri
-
Yük hücresi basınç sensörleri
-
Piezoelektrik özellikli basınç ölçme sensörleri
Bir proseste kullanılacak basınç algılayıcı seçimini yaparken aşağıdaki
sorulara verilecek yanıt, kullanılacak ürünün tespit edilmesinde etken
faktörlerdendir.
-
Sensör diyaframı ile temas eden akışkan nedir?
-
Bu akışkanlar hangi sıcaklıkta donar?
-
Çalışılmayan durumlarda bir asitli ortam söz konusu mudur?
Bu tip problemlerden kurtulmak için ortam yalıtım diyaframlı basınç
sensörleri özellikle gıda endüstrisinde ve sensörün yapısına zarar verebilecek
sıvıların basıncının ölçümünde kullanılmaktadır.
Algılayıcı membran dış ortamdan uzak, basıncı ölçülecek olan sıvı veya
eriyik malzeme ile temas eden yüzey ise paslanmaz yapıda olmalıdır.
Örneğin mazot, fuel oil veya su gibi içinde parçacık barındırabilecek ve hızlı
donabilen maddelerin basıncının ölçümünde ortam yalıtım diyaframlı basınç
sensörleri standart tiplerin yerine tercih edilmektedir.
32
Bu projede, yapmış olduğumuz tez düzeneğinde Freescale firmasının
üretmiş olduğu silikon gerilme ölçer tipi MP3V5050GP basınç sensörünü
kullandık. Test düzeneğimizi hava ile çalıştıracağımızdan dolayı suya dayanıklı
bir basınç algılayıcı üzerinde durmadık. Suya dayanıklı sensörler maliyeti de
artırdığı için havayla çalışan test düzeneği fikri cazip gelmiştir.
Temel olarak gerilim ölçme sensörleri esneyebilen bir tabaka üzerine ince
bir telin veya şeridin çok kuvvetli bir yapıştırıcı ile yapıştırılmasından oluşmuştur.
Üzerindeki basıncın etkisinden dolayı tabakanın esnemesi ile birlikte iletken
şeridin de gerilerek uzamasına sebep olacaktır. Bu uzama esnasında telin boyu
uzayarak kesiti azalacaktır. Bilindiği gibi iletkenlerin kesiti azaldıkça dirençleri
artacağından uygulanan kuvvete bağlı olarak iletkenin direncinde değişme
olacaktır. Bu direnç değişimine bağlı olarak uygulanan kuvvetin miktarı tespit
edilebilir.
Mp3v5050 algılayıcılar, yüksek çıkış sinyali ve sıcaklık dengeleme
sağlamak için iki kutuplu işlemsel kuvvetlendirici devreyi ve ince film direnç
ağını tek yonga üzerinde birleştirmektedir (Şekil 4.4). Bu sensör, gelişmiş mikro
makine tekniklerini, ince film metal kaplamayı ve çift kutuplu yarı iletken
işlemeyi bir araya getirmektedir. (Şekil 4.3) Bu sayede uygulanan basınca bağlı
olarak hassas ve yüksek seviyede çıkış sinyali sağlar (Bkz. Ek 2).
Şekil 4.3 Algılayıcının tümleşik blok şeması.
33
Tipik çalışma gerilimi 3 V, besleme akımı 7 mA civarındadır. 0.12 V ile 2.8
V arasında 54 mV/kPa hassasiyette analog çıkış vermektedir. Bu çalışma aralığı
Telos düğümü ile çalışmaya uygundur.
Şekil 4.4 Mp3v5050 basınç sensörü.
Basınç aralığı 0 ile 50 kPa arasındadır. Basınç transfer fonksiyonu aşağıda
verilmiştir.
Vout = Vs (P × 0.018 + 0.04) ± (PE × TF × 0.018 × Vs )
Eşitlik 4.1
4.2 Kullanılan Yazılımlar
Düğümler TinyOS işletim sistemi ile programlanmıştır. TinyOs işletim
sistemini seçme nedenimiz açık kaynak kodlu olması ve üzerinde yapılmış birçok
uygulama olasıdır. İzleme için Moteiv firması tarafından sağlanan Trawler
programından faydalanılmıştır.
4.2.1 TinyOS işletim sistemi
Kablosuz sensör ağları için uygulama geliştirme, düğümlerin kaynak
kısıtları nedeniyle geleneksel yöntemlerden farklı bir şekilde yapılmalıdır.
TinyOS, algılayıcı düğümlerinin kaynak kısıtları gözetilerek verimli bir şekilde
programlanmasını amaçlar. TinyOS C diline benzer bir dil olan nesC ile
yazılmıştır ve uygulamaların da bu dille geliştirilmesine olanak kılar. Bir sensör
34
ağındaki düğümler ve merkezi düğüm, Şekil 4.5'da görüldüğü gibi TinyOS işletim
sistemi ve nesC dili kullanılarak programlanırlar.
Şekil 4.5 Kablosuz sensör ağının programlanması.
TinyOS kablosuz iletişim yapan gömülü sistemler için düşük güç kullanarak
dışsal olayları yöneten uygulamaları daha kolay geliştirmeyi amaçlayan bir işletim
sistemidir. TinyOS birçok bileşen içermektedir ve bu bileşenler uygulamaların
ihtiyacına göre eklenip çıkarılabilmektedirler. TinyOS bu özelliği sayesinde
gömülü sistemler için geliştirilmiş diğer işletim sistemlerinden ayrılmaktadır.
Uygulamalar işletim sisteminin sunduğu sabit servislere göre şekilleneceğine,
işletim sistemi uygulamanın ihtiyaçlarına göre eklenen ya da çıkarılan bileşenler
ile yapılandırılır.
TinyOS işletim sistemi yeniden kullanılabilir birçok bileşen ve kablosuz
sensör ağları uygulamaları için iyi tasarlanmış birçok programlama arayüzü
içermektedir. Kablosuz sensör ağları düşük kaynaklara (örneğin sadece 4KB ana
bellek) ve çok kısıtlı enerji bütçelerine sahip sistemler oldukları için, uygulama
geliştiriciler uygulamanın ihtiyaçlarına göre aynı servisin birçok sürümünü
yazmak zorundadırlar. Bu yöntem geliştirilen uygulamanın sistem kaynakları en
verimli şekilde kullanması sonucunu doğururken uygulamanın ihtiyaçlarını
karşılayan servislerin yeniden kullanılabilir olmasını engellemektedir. TinyOS'un
bileşen tabanlı mimarisi kablosuz duyarga ağlarının kaynak kısıtları göz önüne
alınarak geliştirilmiştir. TinyOS üzerinde uygulama geliştirirken kullanılan dil,
TinyOS'un da geliştirildiği nesC dilidir. Bileşen tabanlı bir dil olan nesC olay
tabanlı bir işletim mekanizmasına sahip olan kablosuz sensör ağları için uygun bir
programlama dilidir. nesC dilindeki bileşenler nesneye dayalı programlama
paradigmasındaki nesnelere benzemektedirler: Bileşenler bir durum bilgisi ve o
35
durum bilgisini işleyen işlevselliği barındırmaktadırlar. Bileşenler birbirleri ile
arayüzler aracılığıyla etkileşim kurmaktadırlar. Kablosuz sensör ağlarının kısıtlı
bellek kaynağına sahip olmalarından ötürü, nesneye yönelik programlama
dillerinin sunduğu dinamikliğin aksine, bileşenlerin sayısı ve bileşenler arası
etkileşim uygulamanın derleme anında belirlidir. TinyOS'un sunduğu
özelliklerden belki de en önemlisi süreçler arası geçiş mekanizmasının bu işletim
sisteminde ortadan kaldırılmış olmasıdır. Geleneksel işletim sistemlerinde
süreçlerin her biri ayrı adres sahalarına ve ayrı bir çalışma içeriğine sahiptirler.
İşletim sistemi, işlemci yönetimi kapsamında bir süreçten diğerine geçiş yaparak
birçok sürecin aynı anda çalışmasını sağlamaktadır. Bu geçiş mekanizmasında
işletim sistemi o an çalışmakta olan sürecin durumunu saklar. Ek olarak, hafif
süreçler olarak nitelendirilebilen iş parçacıkları da aynı adres sahasında
çalışmalarına rağmen kendi durumlarının işletim sistemi tarafından saklanabilmesi
için ayrı yığıt çerçevelerine gereksinim duyarlar. Bir iş parçacığından diğerine
geçiş, o an çalışmakta olan iş parçacığının durumunun kendi yığıt çerçevesinde
saklanmasını gerektirir. İşletimi soyutlayan süreç ve iş parçacığı kavramları,
işletim sistemine ek yük getirmekte ve geçiş mekanizması kısıtlı kaynaklara sahip
kablosuz sensör düğümleri için uygun görünmemektedir. TinyOS, tek bir yığıt
çerçevesi barındırmakta sistem içerisindeki tüm işletim bu yığıt çerçevesi
üzerinden gerçekleştirilmektedir. Sistemdeki süreç kavramı aslında basit bir
fonksiyon çağırımından farklı bir şey değildir. Fonksiyonlar sonlanıncaya kadar
bölünmeden çalıştırılırlar. Bu işletim, süreçler arası geçiş mekanizmasını ortadan
kaldırmıştır.
TinyOS işletim sistemi, tasarım amaçları açısından geleneksel işletim
sistemlerinden ayrılmaktadır. Kullandığı nesC dili, TinyOS ile uygulama
geliştirmeyi nesneye yönelik ortamlara benzer bir rahatlıkta yapmayı olanaklı
kılar. Ancak TinyOS gereksiz bellek kullanımından ve nesneye yönelik ortamların
getirdiği ek katmanların yarattığı verimsizlikten uygulamaları kurtarmayı
hedeflemektedir. Bu nedenle TinyOS durağan bir bellek tahsisi mekanizmasını
kullanır. Bileşen tabanlı mimarisi sayesinde daha derleme anında uygulamanın
bellek gereksinimi belirlidir ve çalışma zamanında dinamik olarak değişmez.
Nesneye yönelik bir programlama dili olan C++'taki gibi sanal fonksiyonların
getirdiği ek yükler de nesC sayesinde TinyOS'ta yer almaz. TinyOS'ta her şey
derleme anında belirlenir ve çalışma süresince sabittir.
36
4.2.2 Moteiv Trawler izleme yazılımı
Arayüz olarak moteiv firmasının Trawler yazılımı kullanılmıştır. Şekil
4.6’de düğümler tarafından okunan değerler, Şekil 4.7’de ise ağ yapısı
görülmektedir.
Şekil 4.6 Trawler algılanan değer grafik ekranı
Şekil 4.7 Trawler ağ mimarisi ekranı
37
4.3 Sistemin Çalışma Prensibi
DSİ tarafından uygulanmakta olan Uşak ili Sivaslı ilçesi Eldeniz köyü
sulama projesi temel alınarak sistem gereksinimleri tanımlanmıştır. Sistemin
doğru ve düzgün çalışabilmesi için gerekli donanım, şartlar ve ağ mimarisi ortaya
konmuştur. Eldeki donanım imkanları doğrultusunda gerçek sisteme en yakın
fiziksel koşulları sağlayan test düzeneği kurulmuştur. Aynı şekilde sistemin
ihtiyacını karşılayacak bir ağ protokolü oluşturulmuştur. Ağ protokolu
tasarlanırken hem iletim hemde kontrol performansının en iyi seviyede olması
düşünülmüştür. Bu nedenle statik ağaç yapısına su hattı kontrol protokolü
yazılmıştır.
Şekil 4.8 Gerçek bir sulama sistemi projesi
4.3.1 Sistemin tanımı
Şekil 4.8’de DSİ tarafından uygulanmakta olan bir sulama sistemi projesi
görülmektedir. Örnek olarak bu proje ele alınmıştır. Sistemde 14 adet su alma
yapısı ve 3 adet dallanma bulunmaktadır. Hattın basıncının ölçülebilmesi için
bütün su alma yapılarına ve dallanma noktalarına algılayıcı düğümler
yerleştirilmesi düşünülmüştür. Basınç ölçülmek istenilen nokta 17 adettir.
38
Noktalar arası mesafe 303 m ile 95 m arasında değişmektedir. Fakat TelosB
düğümlerin açık alanda 100 m menzile sahip olduğunu düşünürsek yaklaşık 33
adet düğüme ihtiyaç vardır. Bir düğümde kontrol merkezinde toplayıcı düğüm
olarak kullanılacaktır. Elimizde bulunan 20 adet basınç sensörü ile sulama
sisteminin gerçekci bir şekilde benzetimini yapabileceğiz.
4.3.2 Su hattı kontrol protokolü
Ağ yapısı olarak boru sistemin sabit bir yapıya sahip olması nedeniyle statik
ağaç yapısı kullanılması öngörülmüştür. Düğümleri boru sisteminde daha önceden
belirleyeceğimiz yerlere yerleştireceğimizden tamamen boru sisteminin aynısı bir
ağ yapısı oluşturacağız. Su sistemde toplayıcı düğümden, yani hattın
başlangıcından sonuna doğru akarken, basınç bilgisi de ters yönde hattın
sonundan toplayıcı düğüme doğru akacaktır. Şekil 4.9’da veri akış algotirması
görülmektedir.
Şekil 4.9 Veri akış diyagramı.
39
Elde edilen basınç bilgisi hem sistemin gözlemlenmesinde hem de
pompaların kontrol edilmesinde kullanılacaktır.
Statik ağaç topolojisi sulama hatlarının kontrolü için uygundur. Hangi
düğümü nereye koyduğumuzu bildiğimiz için hiyerarşik bir yapı, kontrolü daha
iyi yapmamızı sağlayacaktır.
Şekil 4.10’da görüldüğü gibi bir düğüm içi veri kontrolü yapılarak enerji
tasarrufu sağlanacaktır. Düğümler okunan her basınç değerini göndermeyecektir.
10 okuma yapıldıktan sonra son okunan basınç değerinin gönderilmesi enerji
tüketimi ve ağ yükü açısından bir avantaj sağlayacaktır. Okunan değer 18 kPa ile
22 kPa arasında kaldığı sürece 10 okuma zamanı sonunda alınan son veri
gönderilecektir. Okuma sayısı bir sayaç yardımıyla kontrol edilecektir. Basınç
değeri sınır değerlerin dışına çıktığında düğüm veriyi hemen gönderecektir.
Şekil 4.10 Düğüm veri kontrolü çalışma diyagramı.
Basınç bilgisi kuyruğa yazıldıktan sonra sayaç sıfırlanacaktır. Bu algoritma
bütün düğümler için aynı şekilde çalışacaktır. Kuyruk büyüklüğü 2 paket olarak
ayarlanmıştır.
Son noktadaki düğümler (End Motes) ile üst düğümler (Parent Motes) ve
toplatıcı düğüm rolündeki düğüm arasındaki fark veri gönderme algoritmasında
ortaya çıkmaktadır. Hattın son noktasındaki düğümler basınç bilgisini okuyup bir
üst düğüme (Parent Mote) göndermekle sorumludurlar. Gerekli iletim şartları
40
sağlandığında algılayıcıdan aldıkları basınç bilgisini kuyruğun sonuna yazarak,
veri paketinin radyo aracılığı ile bir üst düğüme geçişini sağlarlar (Şekil 4.11).
Şekil 4.11 Son düğümler için veri gönderme diyagramı.
Son düğümler ile toplayıcı düğüm arasında bulunan üst düğümler ise
çocuklarından aldıkları bilgiyi hemen kuyruklarına ekleyip, kendilerinin bir
üstündeki noktaya iletimini sağlayacaklardır(Şekil 4.13).
Şekil 4.12 Ara düğümler için veri gönderme diyagramı.
41
Şekil 4.13 Ara düğümler için veri gönderme diyagramı.
Şekil 4.14 Toplayıcı düğüm için veri gönderme diyagramı.
Aynı kuyruğu hem kendi verileri, hem de çocuklarından gelen veriler için
kullanacaklardır. Veri kontrol algoritması hem çocuk hem de üst düğümlerde
(Parent Motes) için geçerli olduğundan üst düğümler tarafından verinin niceliğinin
denetlenmesi yapılmayacaktır. Çünkü eğer veri alt düğümden (Child Motes)
42
geldiyse zaten bir üst düğüme (Parent Motes) gönderilmesi gerekmektedir. Bu da
ağın hızını artırarak gecikmeleri engelleyecektir.
Toplayıcı düğüm ise doğrudan bilgisayara bağlı olduğu için bütün
çocuklarından topladığı veriyi USB arayüz üzerinden bilgisayara aktaracaktır
(Şekil 4.14).
4.4 Test Düzeneği
TelosB düğümler pille çalıştırılacak, herhangi ekstra güç kaynağı
kullanılmayacaktır. Çok sayıda sayısal ve analog çıkışa sahip algılayıcı
incelenmiştir. Sayısal algılayıcıların daha çok barometrik ölçüm yapması
sebebiyle ve boru hatlarına bağlamaya uygun portları olmadığından
kullanılamamıştır. Yine düşük çalışma gerilimine sahip, basınç aralığı 0-2 bar
olan ve suya dayanıklı algılayıcı temin edilememiştir. Sensörlerin maliyeti yüksek
olduğundan, besleme gerilimi 3 V olan Freescale
mp3v5050gp
basınç
sensörleriyle çalışılmıştır. Algılayıcılar yurtdışından 20 adet örnek olarak temin
edilmiştir.
Şekil 4.15 Test düzeneği şematik gösterimi.
43
Freescale mp3v5050gp basınç sensörlerinin suya dayanıklı olmaması
nedeniyle test düzeneğinde hava ile çalışılmıştır. Hava kaynağı olarak düşük çıkış
basıncına sahip bir hava motoru kullanılacaktır. Düşük çıkış basıncı seçilmesinin
nedeni sensörün 0-50 kPa (0-0.5 Bar) ölçüm aralığına sahip olmasıdır.
Elimizde 20 adet sensör bulunduğu için 20 adet ölçüm düğümü,1 adet
toplayıcı düğüm, 1 adet hava motoru ve poliüretan borulardan oluşan küçük bir
test düzeneği kurulacaktır. Borular birbirlerine t bağlantı elemanları ve vanalar
yardımıyla bağlanacaktır. Şekil 4.15’te kurulan test düzeneğinin şeması
görülmektedir. Şekil 4.15’te de görüldüğü gibi 16 adet vana, 34 adet t bağlantı
elamanı kullanılmıştır. Mavi renk ile gösterilen a ve b vanaları ana hat üzerine
kaçak benzetimi yapmak amacıyla konulmuştur. Diğer vanalar normal kullanıcı su
alma noktalarını göstermektedir.
Basınç sensörlerinin düğümlere bağlantısının yapılabilmesi için baskı devre
kart tasarlanmıştır. Baskı devre kartın üzerinde alçak geçiren filtre bulunmaktadır.
Filtrenin amacı ek noktalarındaki taşıyıcıların düzensiz akışından meydana gelen
gürültü sinyalinin etkisini azaltmaktır.
TelosB bağlantısı 10 bacaklı genişleme yuvası kullanılarak yapılmıştır.
Basınç sensörünün üzerinde bulunduğu baskı devre uygun konnektör ve kablo ile
TelosB düğümüne bağlanmıştır. Şekil 4.16’de test düzeneğinin bağlantı diyagramı
gözükmektedir.
Basınç
Sensörü
Basınç
Sensörü
Basınç
Sensörü
Telosb –Toplayıcı Düğüm
TelosB
Basınç
Basınç
Sensörü
TelosB
Basınç
Basınç
Sensörü
TelosB
Basınç
Sensörü
TelosB
Basınç
TelosB
Alıcı
Basınç
USB
Basınç
SerialForwarder
PC Trawler Uygulaması
TelosB
Basınç
Şekil 4.16 Test düzeneği bağlantı diyagramı.
44
Gerçek sistemlerde ara mesafeler 100 m’ye kadar çıkmaktadır. Test
düzeneğinde düğümler arasında mesafe 1.5 m olarak ayarlanmıştır.
Test düzeneğimiz 15 m x 10 m genişliğinde bir alanı kaplamaktadır. Gerçek
bir sulama sisteminde bu ölçü 1000 m x 700 m genişliğinde bir alana denk
gelmektedir. Bu ölçülere sahip bir sistemle yaklaşık 70 hektarlık bir arazi
sulanabilir.
Şekil 4.17 Test düzeneğine bağlanmış bir düğüm.
Şekil 4.18 Test düzeneğinin görünüşü.
45
Şekil 4.17’da düzeneğe bağlanmış 9 numaralı düğüm ve vana
gözükmektedir. Şekil 4.18’de sistemin iki değişik dalı fotoğraflanmıştır. Şekil
4.19’de Seiko firması tarafından üretilmiş hava pompası ve ona en yakın düğüm
olan 1 numaralı düğüm görülmektedir.
Şekil 4.19 Hava pompası ve 1 numaralı düğüm.
46
5. TESTLER VE ÖLÇÜMLER
Test düzeneği üzerinde yaptığımız ölçümleri 3 grupta inceleyebiliriz. İlk
olarak kalibrasyon ölçümleri yapılmıştır. Bu ölçümün amacı sistem tarafından
okunan değerlerin doğruluğunu kontrol etmektir. Onun hemen ardından son
kullanıcıya yönelik ölçümler gerçekleştirilmiştir. En son olarak da ağın
performansını izlemeye yönelik ölçümler yapılmıştır.
Kurulan ağın yönlendirme yapısı Şekil 5.1’de verilmiştir. Kırmızı daireler
düğümleri, bilgisayar resmi toplayıcı düğümü, düğümler arasındaki oklar ise veri
akış yollarını temsil etmektedir. Statik, hiyerarşik ağaç yapısında bir yönlendirme
sağlanmıştır. Şekil 5.1 Trawler izleme yazılımının ağ mimarisi ekranından
alınmıştır. Şekil 5.1’in geniş hali Ek 4’de verilmiştir. İstenildiği gibi düğümler
verilerini kendilerinin bir üst düğümüne iletmektedirler. Dallardan gelen bilgi ana
ebeveyn düğüm (Main Parent) tarafından toplayıcı düğüm görevindeki bilgisayara
bağlı düğüme iletilmektedir. Toplayıcı düğümün adresi “0” olarak, ana ebeveyn
düğümün adresi ”1” olarak tanımlanmıştır. Diğer düğümlerin adresleri ise bunlara
bağlı olarak verilmiştir.
Şekil 5.1 Test düzeneği ağ yapısı.
5.1 Kalibrasyon Ölçümleri
Deneye başlamadan önce basınç sensörünü ve ölçümleme doğruluğunu test
etmek amacıyla analog manometre ile karşılaştırmalı ölçüm yapılmıştır. Şekil
47
5.2’de görülen değerler elde edilmiştir. Basınç sensörünün ölçüm grafiği ile
manometrenin ölçüm grafiği çakışmaktadır. Bütün eğri boyunca ortalama 3
kPa’lık sapma meydana gelmektedir. Bu değişim manometrenin kalibrasyonundan
veya analog oluşundan kaynaklanabilir. Meydana gelen sapma, doğrusal olduğu
ve küçük olduğu için göz ardı edilebilir.
Kalibrasyon Ölçümleri
50
45
40
Basınç(kPa)
35
30
25
20
15
10
5
0
1
2
3
4
5
Manometre
50
41
29
20
10
Freescale mp3v5050
47
39
25
17
7
Ölçüm no
Şekil 5.2 Kalibrasyon ölçüm değerleri.
5.2 Basınç Bilgisinin Okunmasına Yönelik Ölçümler
Bu ölçümler dizisi ile sistemin genel performansının gözlemlenmesi
amaçlanmıştır. Sistemdeki basınç vanalar yardımıyla değiştirilerek sensörlerin bu
değişime verdikleri tepki kullanıcı ara yüzünden izlenmiştir. Sistemin belirlenen
eşik değer içinde ve dışında çalışması sağlanmıştır. Sistemde bir kaçak etkisi
yaratılarak kaçağın yerinin tespit edilip edilemeyeceğine yönelik testler
yapılmıştır. Bu bölümdeki ölçümler daha çok son kullanıcıya ve sistemin kontrol
edilmesine yöneliktir.
5.3 Ağ Performansını İzlemeye Yönelik Ölçümler
Kablosuz sensör ağının performansını izlemeye yönelik testler yapılmıştır.
Ağın paket kayıp oranları çalışma döngüsü, kuyruk uzunluğu, mesafe ve yük
yoğunluğu değiştirilerek ölçülmüştür. Böylece ağın performansı hakkında bilgi
elde edilmiştir.
48
Ayrıca ağ ömrünü tespit etmek amacıyla güç tüketiminin çalışma döngüsü,
mesafe ve yük yoğunluğuna bağlı değişimi izlenmiştir. Düğümlerin pil tüketimleri
değişen koşullarda ölçülerek ağ ömrü hesaplanmış ve enerji kritik düğümler
belirlenmiştir. Paket başına düşen güç tüketimi ölçülmüştür.
Yukarıda yapılan testler sayesinde yönlendirme protokolünün performansı
hakkında gerekli bilgilere ulaşılmıştır.
49
6. SONUÇ VE DEĞERLENDİRME
Yapılan testlerin sonuçları da iki kısımda incelenmiştir. Bunlar basınç
ölçümleri ve ağ performans ölçümleridir.
Sistem basıncının ölçülmesine, basınç değişimlerinin fark edilmesine
yönelik testler bunlardan ilkidir. Basınç değişim ölçümleri hem eşik değer
aralığında hem de eşik değer dışında yapılarak düğüm içi veri kontrol algoritması
test edilmiştir. Yine kaçak benzetimi yapılarak sistemin verdiği tepki izlenmiştir.
Diğer grup testler ise ağ iletim performansının ölçülmesine ilişkin
sonuçlardır. Sırasıyla paket kayıp oranının ve pilerin gerilim azalma miktarlarının
çalışma döngüsüne bağlı değişimleri incelenmiştir. Daha sonra paket kayıp
oranının ve pil gerilim azalma miktarının örnekleme periyoduna göre değişimi
gözlemlenmiştir. Yapılan diğer bir ölçüm %100’lük çalışma döngüsünde, 5 sn’lik
örnekleme periyodunda yapılan paket kayıp oranın kuyruk büyüklüğüne göre
değişimidir. Son olarak düğümler arası mesafenin paket kaybına etkisi izlenmiştir.
6.1 Basınç Bilgisinin Okunması
Test düzeneğinin çalıştırılmasıyla sistemin basınç değeri bilgisayar
üzerinden okunmuştur. Şekil 6.1’de Trawler yazılımından alınan basınç değişim
grafiği görülmektedir. Sistem üzerindeki vanalar açılıp kapatılarak basınç
değiştirilmiş ve bu değişim aynen izlenmiştir.
Şekil 6.1 Basınç değişim grafiği.
50
Her bir ayrı renk farklı bir düğüm verisini temsil etmektedir. Basınç hava ile
sağlandığından basınç değişimleri ani olmakta ve bütün sistemi kısa bir sürede
etkilemektedir.
Okunan değerler birleştirilmeden de noktasal olarak izlenmiştir. Bu sayede
eşik değer içindeki veri okuma sıklığı ile dışındaki veri okuma sıklığı
karşılaştırılmıştır. Şekil 6.2’de eşik değer içi ve dışı noktasal okumalar
görülmektedir. Basınç değeri eşik aralığında ise okumalar seyrekleşmekte, değilse
sıklaşmaktadır. Eşik değer içinde veri gönderme aralığı 50 sn iken, dışında 5
saniyedir. Bu da istenilen bir sonuçtur. Çünkü düğüm içi veri kontrolüne göre eşik
değer içinde her 10 okuma sonucundaki son değer gönderilecektir.
Eşik değer dışında gönderilen veri
Eşik değer içinde gönderilen veri
Şekil 6.2 Noktasal basınç değişim grafiği.
Kaçak benzetimi için sitemin birbirine en uzak iki düğümü olan 10 ve 20
numaralı düğümler seçilmiştir. Bunun nedeni hava basıncındaki değişimin bütün
sistemi çok kısa bir sürede etkilemesidir. 10 numaralı düğüm yakınındaki vana
açılarak bir kaçak benzetimi yapılmıştır. Şekil 6.3’de görüldüğü gibi basınç
değişimine, mavi renkli eğriye sahip 10 numaralı düğüm sarı renkli grafiğe sahip
20 numaralı düğümden Δt zamanı kadar daha erken tepki vermiştir. İki düğüm
verisi arasında Δp kadar basınç farkı oluşmuştur. Bu sonuç kaçağın yani açık
vananın 10. düğüme daha yakın olduğu bilgisini vermektedir. Büyük ölçekli ve su
gibi basınç değişimi daha durağan olan bir materyal ile çalışan gerçek sulama
şebekelerinde daha net bir sonuca ulaşılacağı kesindir. Yine küçük boyutlardaki
test düzeneği için yeterli bir sonuca ulaşılmış, kaçağın yeri tespit edilmiştir.
51
Δt
Δp
Şekil 6.3 Kaçak benzetim grafiği.
Yukarıda yapılan deneylerden sistemin sulama şebekesinin kontrolü için
başarıyla kullanılabileceği sonucuna ulaşılmıştır. Şebekenin basınç bilgisi anlık
olarak gözlemlenebileceği gibi veriler kayıt altına da alına bilmektedir. Bu veriler
şebekenin genel durumu hakkında zamana bağlı bilgi vermektedir. Aynı zamanda
otomasyon sistemine aktarılan basınç bilgisi sayesinde pompaların devri
değiştirilerek şebekenin istenilen basınca ulaşması sağlanabilir veya sisteme
bağlanacak bir modem vasıtasıyla sorumlular kontrol merkezinde olmasa bile
uyarılabilir.
6.2 Ağ Performansının Değerlendirilmesi
İlk olarak paket kayıp oranlarının çalışma döngüsüne (Duty Cycle) göre
değişimi ölçülmüştür. Paket kaybı iletim sırasında hedefe ulaşamayan veya yanlış
ulaşan paket sayısının toplam gönderilen paket sayısına oranı olarak
hesaplanmıştır. Çalışma döngü oranı ise belirlenen bir zaman aralığı içersinde
düğümün aktif olduğu zaman aralığının belirlenen zamana oranı olarak
verilmiştir. Kuyruk büyüklüğü 7, örnekleme periyodu 90 sn’dir. Kuyruk
büyüklüğü, düğümün aynı anda tutabileceği paket sayısı olarak verilmektedir.
Kuyrukta depolanan veriler iletim için sıra beklemektedir. Örnekleme periyodu
ise düğümün okuduğu iki basınç verisi arasında geçen zamandır. Deney sırasında
20 adet düğüm aynı anda çalıştırılmıştır. Düğümler %100 çalışma döngüsü ile
çalıştırılarak paket kayıpları ölçülmüştür. Daha sonra %20 Çalışma döngüsü ile
çalıştırılarak paket kayıpları ölçülmüştür.
Şekil 6.4’te görüldüğü gibi paket kayıp oranı %100’lük döngüde %0,013
gibi küçük bir oran çıkmıştır. Fakat çalışma döngüsü %20’ye düşürüldüğünde
oran %6’lara kadar çıkmıştır. Düğümlerimiz tam anlamıyla senkron çalışmadığı
için çalışma aralıkları ebeveyn düğümler(parent motes) ile çakışmayan alt
52
düğümlerin(child motes) verileri kaybolmuş ve paket kayıp oranının artmasına
neden olmuştur.
İkinci olarak pillerin gerilim düşümlerinin çalışma döngüsüne bağlı
değişimleri ölçülmüştür. Test 5 sn örnekleme periyodu ile yapılmıştır ve eşik
değer kontrolü yapılmadan alınan her veri gönderilmiştir. Pil gerilimleri testten
önce ve sonra ölçülerek, harcanan enerji hakkında bilgi sahibi olunmaya
çalışılmıştır. Test süresi 3 gündür. Şekil 6.5’de düğüm bazında çalışma döngüsüne
göre gerilim düşümü sonuçları görülmektedir. En kritik düğüm olan 1 numaralı
düğümde en fazla gerilim düşümü meydana gelirken son düğümlerde (leaf motes)
daha küçük gerilim düşümü meydana gelmiştir. Bu fark %100’lük döngüde bazı
düğümlerde 0,05 V olarak ölçülmüştür. Şekil 6.5’te görüldüğü gibi %100’lük
çalışma ile %20’lik çalışma arasında yaklaşık 5 kat fark vardır. %20’lik döngüde
düğümler ömürlerinin çoğunu uykuda geçirdiklerinden gerilim azalması da 5 kat
daha az olmuştur. İleride yapılacak çalışmalarda deney sayısının artırılması
istatiksel açıdan uygun olacaktır.
6%
5,698%
5%
Paket kayıp Oranı (%)
4%
3%
2%
1%
0,013%
0%
100%
20%
Çalışma Döngü Oranı (Duty Cycle)
Şekil 6.4 Paket kayıp oranının çalışma döngüsüne göre değişim grafiği.
53
0,12
Gerilim Azalma Miktarı (V)
0,1
0,08
0,06
0,04
0,02
0
1
2
3
4
5
6
8000 3200 2800 2400 1200 800
7
8
9
400 1200 800
10
11
12
13
14
15
400 4000 1200 2400 2000 800
19
20
400 1600 1200 800
16
17
18
400
Düğüm Numaraları ve İletilen Paket Sayısı
%100 Çalışma Döngüsü(Duty Cycle)
%20 Çalışma Döngüsü(Duty Cycle)
Şekil 6.5 Pillerdeki gerilim kaybının düğümlere ve çalışma döngüsüne göre değişimi.
Üçüncü olarak paket kayıp oranının ve pil gerilim düşümünün örnekleme
periyoduna göre değişimi gözlemlenmiştir. Örnekleme periyodu değişimi aynı
zamanda ağ yükü değişimini ifade etmektedir. Periyot artıkça ağ yükü
azalmaktadır. Bir paket büyüklüğünün 28 byte olduğunu ve sistemde 20 adet
düğüm olduğunu ele alırsak bütün sistemin yükü 28*20=560 byte olmaktadır.
Bunu örnekleme periyoduna bölerek saniyedeki yük yoğunluğu bulabiliriz. 1
sn’lik örnekleme için ağın toplam yük yoğunluğu 560 byte/sn olurken, 60 sn’lik
örnekleme periyodu için ağın yükü 560/60= 9,3 byte/sn olmaktadır.
0,40%
0,38%
0,35%
Paket Kayıp Oranı (%)
0,30%
0,25%
0,20%
0,15%
0,15%
0,10%
0,08%
0,05%
0,05%
0,03%
0,00%
0
10
20
30
40
50
Örnekleme Periyodu (sn)
Şekil 6.6 Paket kayıp oranının örnekleme periyoduna göre değişimi.
60
54
Şekil 6.6’da paket kayıp oranının örnekleme periyoduna göre değişimi
görülmektedir. Çalışma döngüsü %100, kuyruk büyüklüğü 2’dir. Beklenildiği gibi
örnekleme periyodu artıkça ağın yükü azalmakta ve paket kayıp oranı
azalmaktadır.
Şekil 6.7’de sistemin toplam pil gerilimindeki düşüşün örnekleme
periyoduna göre değişimi görülmektedir. Örnekleme periyodu artıkça radyo ve
MCU daha az çalıştığından tüketilen enerji ters orantılı olarak azalmaktadır.
0,4
0,36
Toplam Gerilim Azalma Miktarı (V)
0,35
0,3
0,25
0,2
0,157
0,136
0,15
0,1
0,05
0,0445
0,0182
0,00073
0
0
5
10
15
20
25
30
35
40
45
50
55
60
Örnekleme Periyodu (sn)
Şekil 6.7 Toplam pil geriliminin örnekleme periyoduna göre değişimi.
0,00010
0,00009
Gerilim Azalma Miktarı (V)
0,00008
0,00007
0,00006
0,00005
0,00004
0,00003
0,00002
0,00001
0,00000
1
2
3
4
5
3000 1350 1200 1050 450
6
7
8
9
300
150
450
300
10
11
12
150 1500 450
13
14
15
16
17
18
19
20
900
850
300
150
600
450
300
150
Düğümler Numaraları ve İletilen Paket Sayısı
Şekil 6.8 Pil gerilim düşümünün 60 sn’lik örnekleme periyodunda düğümlere göre dağılımı.
55
Şekil 6.8’de pil gerilim düşümünün 60 sn’lik örnekleme periyodunda
düğümlere değişimi görülmektedir. 30 dakikalık ölçüm süresinde en kritik düğüm
olan 1 numaralı düğümde meydana gelen gerilim düşümü 0,0001 V olarak
ölçülmüştür. TelosB’nin en düşük çalışma gerilimi 2,1 V’tur. Pilin ilk gücünün 3
V olduğunu düşünürsek 3-2,1=0,9 V’luk gerilim düşümü olabilir.
0,9/0,0001=9000/ 48=187,5 gün etmektedir. Yani TelosB dakikada bir örnek
alarak 190 gün çalışabilecektir.
Yapılan diğer bir ölçüm %100’lük çalışma döngüsünde, 5 sn’lik örnekleme
periyodunda yapılan paket kayıp oranın kuyruk büyüklüğüne göre değişimidir.
Şekil 6.9’da testin sonuçları görülmektedir. Kuyruk büyüklüğü 1’den 9’a
artırılarak ağın toplam kayıp oranı ölçülmüştür. Kuyruk sayısı artıkça kayıp oranı
azalmaktadır. Fakat kuyruk sayısı 7’yi geçince paket kayıp oranının tekrar artığı
görülmüştür. 7 büyüklüğündeki kuyrukta kayıp oranı % 0,017 iken, 8 kuyruk
büyüklüğünde bu oran 0,029’a, 9 kuyruk büyüklüğünde ise 0,043’e çıkmıştır.
0,250%
0,217%
0,195%
Paket Kayıp Oranı
0,200%
0,150%
0,100%
0,100%
0,083%
0,040%
0,050%
0,043%
0,033%
0,029%
0,017%
0,000%
1
2
3
4
5
6
7
8
9
Kuyruk Büyüklüğü
Şekil 6.9 Paket kayıp oranının kuyruk büyüklüğüne göre değişimi.
Son olarak düğümler arası mesafenin paket kaybına etkisi izlenmiştir.
TelosB’nin dış ortamda 125 m iletim menzilene sahip olduğu bilinmektedir.
Testler açık alanda yapılmıştır. Paket kayıp oranının mesafeye göre değişimi Şekil
6.10’da verilmiştir. Ön görüldüğü gibi paket kayıp oranı mesafe artıkça
artmaktadır. Düğümler arası mesafe 126 metreye açıldığında paket kayıp oranı
%60’ı bulmaktadır. Mesafe daha da artırıldığında düğümler arası iletişim
56
kopmuştur. Yine bu teste düğümlerin yerindeki ufak bir oynamanın bile veri
iletişimini etkilediği görülmüştür. Bu da çevresel faktörlerden kaynaklanan bir
etkidir. Aynı zaman da yayılım deseni de böyle bir etkiye neden olmuş olabilir.
Yukarıda yapılan bütün testler sırasında düğüm içi veri kontrolü iptal
edilmiştir. Düğümler basınç sensöründen okudukları veriyi kontrol etmeden
doğrudan kuyruklarına yazıp, bir üst düğüme iletmektedirler.
58,25
60
49,35
Paket Kayıp Oranı (%)
50
40
30
22,66
20
11,32
10
0,25 0,33 0,45
0,52
0,76
0,97
20
30
40
1,23
1,75
2,45
50
60
70
3,67
5,81
7,78
0
0
10
80
90
100
110
120
130
Düğümler Arası Mesafe (m)
Şekil 6.10 Paket kayıp oranının düğümler arası mesafeye göre değişimi.
6.3 Sonuçlar
Bu çalışmayla su iletim hatlarının basınç bilgisi yapılan benzetim ile gerçek
sistemlere uygun olarak ölçülmüştür. Hem teorik hem de deneysel katkılar
sağlanmıştır. Teorik olarak yapılan çalışmada, su iletim hatların calisma prensibi
uygun olarak ve efektif calisabilecek bir KSA yönlendirme protokolü
oluşturulmuştur. Ayrıca veri kontrolü yapılarak ağ yükü azaltılmıştır. Oluşturulan
yönlendirme protokolünün ve kontrol mekanizmasının denenebilmesi için gerçeğe
yakın bir test düzeneği kurulmuştur. Bu test düzeneği üzerinde yapılan testler ile
de protokolün ve sistemin performansı gözlemlenmiştir. Yapılan katkılar su hattı
kontrol protokolü yazılması, test düzeneği kurulması ve performans deneyleri
olarak üç ana başlıkta sıralanabilir.
Mevcut sistemler incelenerek, gerçek çalışma şartlarını sağlayan bir test
düzeneği kurulmuştur. Devlet Su İşleri tarafından yapımı gerçekleştirilen Uşak ili
Sivaslı ilçesi Eldeniz köyü sulama şebekesinin küçük boyutlarda bir örneği
57
hazırlanmıştır. Hava pompası ile sisteme basınç uygulanmış ve gerekli ölçümler
yapılmıştır.
Yine sistemin kontrolünü kolaylaştıracak ve iyi bir iletişim performansı
sağlayacak statik ağaç yapısında su hattı kontrol protokölü tasarlanmıştır.
Genellikle kablosuz sensör ağlarında düğümler rasgele olarak dağıtılır ve yıldız ağ
mimarisi kullanılır. Ağın kurulması için belirli bir zamana ihtiyaç vardır. Kurulan
statik ağaç yapısında ise böyle bir süreye ihtiyaç duyulmamaktadır. Ayrıca
dinamik adreslemenin ağa getirdiği ek yükler de devre dışı bırakılmıştır. Sulama
sistemi değişmeyen bir yapıya sahip olduğu için düğümlerin sabit yönlendirme
protokolü ile belirli yerlere konumlandırılması iletim hattının kontrolünü daha
kolay hale getirmiştir. Ayrıca düğüm içi veri kontrolü yapılması sağlanmıştır.
Böylece ağdaki trafik yükü azaltılmıştır.
Kurulan düzenek üzerinde basınç kontrol ve haberleşme testleri yapılmıştır.
NesC ile TinyOS ortamında hazırlanan işletim sistemi düğümlere yüklenerek
kablosuz sensör ağı oluşturulmuştur. Oluşturulan ağın performansı hem kontrol
yönünden hem de haberleşme yönünden incelenmiştir.
Gerek kontrol gerekse ağ performansı üzerine yapılan testler olumlu
sonuçlar vermiştir. Kablosuz sensör ağının basınç değişimlerine verdiği hızlı tepki
böyle bir sistemin su iletim hatlarının kontrolünde kullanılabileceğini göstermiştir.
Ayrıca paket kayıp oranları, güç tüketim miktarı ve düğümler arası haberleşme
mesafesi üzerine yapılan ölçümler ağın gerekli parametreleri sağladığını
göstermektedir.
GPS cihazına ihtiyaç duyulmadan kontrol noktaları mevcut sulama projesi
üzerine işlenebilir. Sisteme bağlanacak bir modem vasıtası ile kullanıcılar kontrol
merkezinde olmasa bile uyarılabilir.
İleri çalışma olarak su ve düğümler ile çalışmaya uygun bir basınç algılayıcı
ile gerçek bir sistem üzerinde testler yapılabilir. Ayrıca çalışma döngüsü
düşürüldüğünde meydana gelen yüksek kayıp oranı düğümler tam olarak
senkronize edilerek azaltılabilir.
Deney sayısını artırılması ve istatistiksel değerlendirmelere yer verilmesi
ilerde yapılacak çalışmalar için gereklidir.
58
Sonuç olarak bu çalışma, su iletim hatlarında kablosuz sensör ağlarının
rahatlıkla ve güvenle kullanılabileceğini göstermiş ve ileride yapılacak
çalışmalara zemin hazırlamıştır.
59
KAYNAKLAR DİZİNİ
Al-Karaki, J.N. Ul-Mustafa, R. and Kamal, A.E., 2004, Data Aggregation in
Wireless Sensor Networks - Exact and Approximate Algorithms,
Proceedings of IEEE Workshop on High Performance Switching and
Routing (HPSR), Phoenix.
Akyıldız, I.F. and Wang, X., 2005, A survey on wireless mesh Networks, IEEE
Communications Magazine, 43(9):23-30 pp.
Cui, S., 2005, Cross-layer optimization in energy-constrained Networks, MSc
Thesis, Department of Electrical Engineering, Stanford University
(unpublished).
Doorenbos, J. And Kassam, A.H., 1988, Yield Response to Water, FAO Irr.
Drain. Paper 33,Rome.
Handziski, V. Polastre, J. Hauer, H. Sharp, C. Wolisz, A. and Culler, D.,
2005, Flexible hardware abstraction for wireless sensor Networks, ,” in
Proceedings of the Second European Workshop on Wireless Sensor Networks(EWSN).
Heinzelman, W. Chandrakasan, A. and Balakrishnan, H., 2000, EnergyEfficient Communication Protocol for Wireless Microsensor Networks,
Proceedings of the 33rd Hawaii International Conference on System
Sciences.
Howell, T.A. Evet, S.R. and Tolk, J.A., 2001, Irrigation Systems and
Management to Meet Future Food Fiber Needs and to Enhance Water Use
Efficiency, USDA-ARS Water Management User Unit, Bushland.
Levis, P. Madden, S. Polastre, J. Szewczyk, R. Whitehouse, K. Woo, A. Gay,
D. Hill, J. Welsh, M. Brewer, E. and Culler, D., 2005, TinyOS: An
operating system for wireless sensor networks, in Ambient Intelligence,
Springer-Verlag.
Lin, C.R. and Gerla, M., 1997, Adaptive clustering for mobile wireless
networks, IEEE Journal on Selected Areas in Communications, 15 (7),
1265–1275 pp.
Lin, M. Wu, Y. And Wassell, I., 2008, Wireless sensor network: Water
distribution monitoring system, IEEE Radio and Wireless Symposium.
Lindsey, S. Raghavendra, C.S. and Sivalingam, K., 2001, Data gathering in
sensor networks using the energy*delay metric, Proceedings of the IPDPS
Workshop on Issues in Wireless Networks and Mobile Computing, San
Francisco.
Lindsey, S. and Raghavendra, C., 2002, PEGASIS: Power-Efficient Gathering
in Sensor Information Systems, IEEE Aerospace Conference Proceedings,
9-16 pp.
60
KAYNAKLAR DİZİNİ(devam)
Manieshwar, A. and Agrawal, D.P., 2001, TEEN: a protocol for enhanced
efficiency in wireless sensor networks, Proceedings of the 1st International
Workshop on Parallel and Distributed Computing Issues in Wireless
Networks and Mobile Computing, San Francisco.
Manieshwar, A. and Agrawal, D.P., 2002, APTEEN: a hybrid protocol for
efficient routing and comprehensive information retrieval in wireless sensor
networks, Proceedings of the 2nd International Workshop on Parallel and
Distributed Computing Issues in Wireless Networks and Mobile computing,
Ft. Lauderdale.
Pehlivan, E. ve Töre, G., 2010 Güvenli Bölge Erişim Takip ve Kontrol Sistemi,
Bitirme Projesi, Elektrik-Elektronik Mühendisliği Bölümü, Ege
Ünivrsitesi(Yayınlanmamış).
Polastre, J. Szewczyk, R. Sharp, C. and Culler, D., 2004, The mote revolution:
Low power wireless sensor networks, in Proceedings of the 16th
Symposium on High Performance Chips (HotChips).
Polastre, J. Szewczyk, R. and Culler, D., 2005, Telos:Enabling Ultra-Low
Power Wireless Research, in Proceedings of the 4th International
Symposium on Information Processing in Sensor Networks.
Postel, S.L. Daily, C.D. and Erlich, P.R., 1996, Human Appropriation of
Renewable Fresh Water Science, American Association for the
Advencement of Science, No. 5250. Issue 9, 795-799 pp.
Stoianov, I. Nachman, L. And Madden, S., 2007, PIPENET: A Wireless Sensor
Network for Pipeline Monitoring, In Information Processing in Sensor
Networks (IPSN).
Xu, Y. Heidemann, J. and Estrin, D., 2001, Geography-informed Energy
Conservation for Ad-hoc Routing, In Proceedings of the Seventh Annual
ACM/IEEE International Conference on Mobile Computing and
Networking, 70-84 pp.
Ye, F. Chen, A. Liu, S. and Zhang, L., 2001, A scalable solution to minimum
cost forwarding in large sensor Networks, Proceedings of the tenth
International Conference on Computer Communications and Networks
(ICCCN), 304-309 pp.
61
ÖZGEÇMİŞ
Fahrettin Demirel, 1980 yılında Ankara’da doğdu. İlköğretimini Bodrum
Turgutreis İlköğretim okulunda tamamladı. Ortaöğretimine başladığı Bodrum
Lisesi’nden 1998 yılında mezun oldu.
1998 yılında girdiği Ege Üniversitesi, Mühendislik Fakültesi, ElektrikElektronik Mühendisliği Bölümü’nü 2003 yılında tamamladı. 2003-2004 yılları
arasında Vestel Elektronik AŞ.’de çalıştı. 2004-2007 yılları arasında DSİ Genel
Müdürlüğünde çalıştı. Bu dönemde askerlik hizmetini yedek subay olarak
tamamladı. 2007 yılı başından beri DSİ 2. Bölge Müdürlüğünde çalışmaktadır.
EGE ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ
(YÜKSEK LİSANS TEZİ)
SU İLETİM HATLARI BASINÇ BİLGİLERİNİN
DENEYSEL BİR ORTAMDA KABLOSUZ SENSÖR
AĞI İLE TOPLANMASI
EKLER
Ek 1
Ek 2
Ek 3
Ek 4
Ek 5
TmoteSky Bilgi Kitapçığı
Freescale MP3V5050 Basınç Sensörü Bilgi Kitapçığı
Okenseiko Rolling Hava Pompası Bilgi Kitapçığı
Ağ Mimarisi
Kodlar
Bornova-İZMİR
2010
Ek 1 TmoteSky Bilgi Kitapçığı
70
Ek 2 Freescale MP3V5050 Basınç Sensörü Bilgi Kitapçığı
Ek 3 Okenseiko Rolling Pump Bilgi Kitapcığı
Ek 4 Ağ Mimarisi
Ek 5 Kodlar
Delta.nc bileşen dosyası
#include "Delta.h"
configuration Delta {
}
implementation {
components Main;
components MultiHop
, DeltaM as Impl
, TimerC
, LedsC
, PressureSensorC
, CalibrationPSensorC
;
Main.StdControl
Main.StdControl
Main.StdControl
Main.StdControl
Main.StdControl
->
->
->
->
->
MultiHop;
TimerC;
PressureSensorC;
CalibrationPSensorC;
Impl;
// periodically sample a sensor
Impl.Timer -> TimerC.Timer[unique("Timer")];
Impl.TimerBlink -> TimerC.Timer[unique("Timer")];
Impl.TimerCalibration -> TimerC.Timer[unique("Timer")]; //
Impl.ADCbasinc -> PressureSensorC;
Impl.ADCcalib -> CalibrationPSensorC;
// send data messages
Impl.SendDeltaMsg -> MultiHop.Send[AM_DELTAMSG];
// monitor traffic being forwarded
Impl.SnoopDeltaMsg -> MultiHop.Intercept[AM_DELTAMSG];
// get statistics about current operation
Impl.RouteControl -> MultiHop;
Impl.RouteStatistics -> MultiHop;
// pretty LEDs
Impl.Leds -> LedsC;
}
DeltaM.nc uygulama dosyası
#include "Delta.h"
#include "circularQueue.h"
module DeltaM {
provides {
interface StdControl;
}
uses {
interface Send as SendDeltaMsg;
interface Intercept as SnoopDeltaMsg;
interface RouteControl;
interface RouteStatistics;
interface ADC as ADCbasinc;
interface ADC as ADCcalib;
interface Timer;
interface Timer as TimerBlink;
interface Timer as TimerCalibration;
interface Leds;
}
}
implementation {
/************************* VARIABLES
*******************************/
uint16_t
uint16_t
uint32_t
uint32_t
m_adc;
calib_adc;
m_seqno;
b_segno;
TOS_Msg msg[DELTA_QUEUE_SIZE];
CircularQueue_t queue;
/************************* HELPER FUNCTIONS
************************/
task void sendData() {
uint16_t _length;
int i;
uint16_t neighbors[MHOP_PARENT_SIZE];
uint16_t quality[MHOP_PARENT_SIZE];
if (cqueue_pushBack( &queue ) == SUCCESS) {
DeltaMsg* dmsg = (DeltaMsg*)call
SendDeltaMsg.getBuffer(&msg[queue.back], &_length);
atomic dmsg->reading = m_adc;
dmsg->parent = call RouteControl.getParent();
call RouteStatistics.getNeighbors(neighbors,
MHOP_PARENT_SIZE);
call RouteStatistics.getNeighborQuality(quality,
MHOP_PARENT_SIZE);
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
dmsg->neighbors[i] = neighbors[i];
dmsg->quality[i] = quality[i];
}
dmsg->neighborsize = MHOP_PARENT_SIZE;
dmsg->retransmissions = call
RouteStatistics.getRetransmissions();
dmsg->seqno = m_seqno;
if (call SendDeltaMsg.send( &msg[queue.back],
sizeof(DeltaMsg) ) == SUCCESS) {
call Leds.redOn();
}
else {
// remove from queue
cqueue_popBack( &queue );
}
}
// always increase seqno. gives a better idea of how many
packets
// really have been dropped
m_seqno++;
}
void blinkBlue() {
call Leds.yellowOn();
call TimerBlink.start(TIMER_ONE_SHOT, 20);
}
/************************* STD CONTROL
*****************************/
command result_t StdControl.init() {
cqueue_init( &queue, DELTA_QUEUE_SIZE );
return SUCCESS;
}
command result_t StdControl.start() {
call TimerCalibration.start(TIMER_ONE_SHOT, 2000);
call Timer.start( TIMER_REPEAT, DELTA_TIME );
return SUCCESS;
}
command result_t StdControl.stop() {
return SUCCESS;
}
/************************* TIMER
***********************************/
event result_t TimerCalibration.fired() {
call ADCcalib.getData();
return SUCCESS;
}
event result_t Timer.fired() {
call ADCbasinc.getData();
return SUCCESS;
}
event result_t TimerBlink.fired() {
call Leds.yellowOff();
return SUCCESS;
}
/************************* ADC
*************************************/
async event result_t ADCcalib.dataReady(uint16_t data1) {
calib_adc = data1 ;
return SUCCESS;
}
async event result_t ADCbasinc.dataReady(uint16_t data) {
// m_adc = 50 baz istasyonu için senkronizasyon için;
m_adc = (data)/73;
//m_adc = data;
if (b_segno<10){
if ((m_adc > 14) || ( m_adc < 10)){
b_segno=0;
post sendData();
return SUCCESS;
}
else {
b_segno++;
return SUCCESS;
}
}
}
else {
b_segno=0;
post sendData();
return SUCCESS;
}
/************************* SEND
************************************/
event result_t SendDeltaMsg.sendDone(TOS_MsgPtr _msg, result_t
_success) {
cqueue_popFront( &queue );
if (cqueue_isEmpty( &queue )) {
call Leds.redOff();
}
return SUCCESS;
}
/************************* SEND
************************************/
event result_t SnoopDeltaMsg.intercept(TOS_MsgPtr _msg, void*
payload, uint16_t payloadLen) {
blinkBlue();
return SUCCESS;
}
}
MultiHopLQIM.nc uygulama dosyası
module MultiHopLQIM {
provides {
interface
interface
interface
interface
}
StdControl;
RouteSelect;
RouteControl;
RouteStatistics;
uses {
interface
interface
interface
interface
interface
}
SPSend;
ReceiveMsg;
Detect as BaseStation;
Random;
Timer as RouteTimer;
}
implementation {
enum {
MHOP_INVALID_PARENT = TOS_BCAST_ADDR,
MHOP_INVALID_COST = 0x7FFF,
MHOP_INVALID_HOPCOUNT = 0xFF,
};
/***************************** VARIABLES
*****************************/
uint16_t m_updateInterval;
(in sec)
TOS_Msg m_routemsg;
sp_message_t m_spmsg;
bool m_ispending;
// time between route updates
// route beacon message
// is a message send pending?
// keep a list of parents, switch between them when acks fail
ParentEntry parents[MHOP_PARENT_SIZE];
uint8_t m_parent;
uint16_t m_seqNo;
void sendRouteUpdate();
void insert(TOS_Msg* _msg, TOS_MHopMsg* _mhopmsg, BeaconMsg*
_bmsg);
void evict(int number);
void nullify(int number);
int find(uint16_t addr);
void selectParent();
uint16_t electNextHop(uint8_t _retries, TOS_MsgPtr _msg);
/***************************** HELPER FUNCTIONS
**********************/
uint16_t correlation(uint8_t v) {
uint16_t c = (80 - (v - 40));
c = (((c * c) >> 3) * c) >> 3;
return c;
}
void sendRouteUpdate() {
int i;
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)&m_routemsg.data[0];
BeaconMsg* _bmsg = (BeaconMsg*)&_mhopmsg->data[0];
if (m_ispending == TRUE)
return;
// update all parents, evict parents that have timed out
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
if (parents[i].addr != MHOP_INVALID_PARENT) {
// time out parents if we haven't heard from them in a while
parents[i].lastheard++;
// evict parents if they exceed a timeout
if (parents[i].lastheard > MHOP_BEACON_TIMEOUT) {
evict(i);
}
}
}
// update our parent selection
selectParent();
atomic {
_mhopmsg->sourceaddr = _mhopmsg->originaddr =
TOS_LOCAL_ADDRESS;
_mhopmsg->ttl = 1;
_bmsg->hopcount = parents[m_parent].hopcount;
_bmsg->parent = parents[m_parent].addr;
_bmsg->cost = parents[m_parent].cost +
parents[m_parent].estimate;
_mhopmsg->originseqno = m_seqNo;
_mhopmsg->seqno = m_seqNo++;
}
if (!m_ispending) {
if (call SPSend.send( &m_spmsg, m_spmsg.msg, TOS_BCAST_ADDR,
offsetof(TOS_MHopMsg,data) + sizeof(BeaconMsg) ) == SUCCESS) {
m_ispending = TRUE;
}
}
}
void nullify(int _parent) {
parents[_parent].addr = MHOP_INVALID_PARENT;
parents[_parent].cost = MHOP_INVALID_COST;
parents[_parent].estimate = MHOP_INVALID_COST;
parents[_parent].hopcount = MHOP_INVALID_HOPCOUNT;
}
void evict(int _parent) {
// if we're currently connected to the base station
// keep the parent active
if (((TOS_LOCAL_ADDRESS == MHOP_BASE_STATION_ADDR) ||
(call BaseStation.isConnected())) &&
(parents[_parent].addr == TOS_UART_ADDR)) {
// don't nullify a parent if they're the current base
station
}
parents[_parent].lastheard = 0;
}
else {
// this parent may be nullified
nullify(_parent);
}
int find(uint16_t addr) {
int i;
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
if (parents[i].addr == addr)
return i;
}
return -1;
}
void insert(TOS_Msg* _msg, TOS_MHopMsg* _mhopmsg, BeaconMsg*
_bmsg) {
int i;
bool found = FALSE;
bool changes = FALSE;
// update if in our parent list
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
if (_mhopmsg->sourceaddr == parents[i].addr) {
// don't allow a cycle to form or use a bad parent
found = TRUE;
if (_bmsg->hopcount == MHOP_INVALID_HOPCOUNT) {
evict(i);
changes = TRUE;
}
else if (_bmsg->parent == TOS_LOCAL_ADDRESS) {
// weaken the neighbor because it has set us as its parent
parents[i].cost = parents[i].cost + (parents[i].cost >> 2);
}
else {
parents[i].lastheard = 0;
parents[i].cost = _bmsg->cost;
parents[i].estimate = correlation(_msg->lqi);
parents[i].hopcount = _bmsg->hopcount + 1;
}
}
}
// if this parent is currently not in our table,
// find out if they are better than our current options
if (!found) {
// if the neighbor has no parent, don't consider them
if ((_bmsg->hopcount == MHOP_INVALID_HOPCOUNT) ||
(_bmsg->parent == TOS_LOCAL_ADDRESS) ||
(TOS_LOCAL_ADDRESS == MHOP_BASE_STATION_ADDR) ||
(call BaseStation.isConnected())) {
}
else {
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
// make sure you don't pick a parent that creates a cycle
if (((uint32_t) _bmsg->cost + (uint32_t) correlation(_msg->lqi)
<
((uint32_t) parents[i].cost + (uint32_t)
parents[i].estimate) -
(((uint32_t) parents[i].cost + (uint32_t)
parents[i].estimate) >> 2))) {
evict(i);
changes = TRUE;
parents[i].lastheard = 0;
parents[i].addr = _mhopmsg->sourceaddr;
parents[i].cost = _bmsg->cost;
parents[i].estimate = correlation(_msg->lqi);
parents[i].hopcount = _bmsg->hopcount + 1;
break;
}
}
}
}
}
if (changes)
selectParent();
void selectParent() {
int i;
int newparent = m_parent;
uint16_t parentestimate = parents[m_parent].cost +
parents[m_parent].estimate;
// if our parent is invalid, pick the best parent
if (parents[m_parent].addr == MHOP_INVALID_PARENT) {
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
if (parents[i].cost + parents[i].estimate < parentestimate) {
newparent = i;
parentestimate = parents[i].cost + parents[i].estimate;
}
}
}
// if we have a parent, don't switch unless they're worthwhile
else {
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
if (((uint32_t) parents[i].cost + (uint32_t) parents[i].estimate)
<
((uint32_t) parentestimate) (((uint32_t) parentestimate) >> 2)) {
newparent = i;
parentestimate = parents[i].cost + parents[i].estimate;
}
}
}
m_parent = newparent;
}
// select the next hop parent based on the number of retries
/************************* DETECT (BASE STATION)
*********************/
void setBaseStation() {
int i;
parents[0].addr = TOS_UART_ADDR;
parents[0].cost = 0;
parents[0].estimate = 0;
parents[0].hopcount = 0;
}
for (i = 1; i < MHOP_PARENT_SIZE; i++)
nullify(i);
event void BaseStation.connected() {
setBaseStation();
}
event void BaseStation.disconnected() {
if (TOS_LOCAL_ADDRESS != 0)
nullify(0);
}
/***************************** STDCONTROL
****************************/
command result_t StdControl.init() {
int i;
m_updateInterval = MHOP_BEACON_PERIOD;
for (i = 0; i < MHOP_PARENT_SIZE; i++) {
nullify(i);
}
if ((TOS_LOCAL_ADDRESS == MHOP_BASE_STATION_ADDR) ||
(call BaseStation.isConnected())) {
setBaseStation();
}
call Random.init();
return SUCCESS;
}
command result_t StdControl.start() {
call RouteTimer.start(TIMER_ONE_SHOT, ((call Random.rand() &
0x3f) << 2) + ((uint32_t)m_updateInterval << 10));
return SUCCESS;
}
command result_t StdControl.stop() {
return SUCCESS;
}
/***************************** ROUTE TIMER
***************************/
task void fireNextTimer() {
call RouteTimer.start(TIMER_ONE_SHOT,
((uint32_t)m_updateInterval << 10) + 1 );
}
event result_t RouteTimer.fired() {
post fireNextTimer();
sendRouteUpdate();
return SUCCESS;
}
/***************************** SENDMSG (Route Updates)
***************/
event void SPSend.sendDone(sp_message_t* msg, sp_message_flags_t
flags, sp_error_t success) {
if (msg->msg == &m_routemsg) {
m_ispending = FALSE;
}
}
/***************************** ROUTE SELECT
**************************/
command bool RouteSelect.isActive() {
return (parents[m_parent].addr != MHOP_INVALID_PARENT);
}
command bool RouteSelect.isDuplicate(TOS_MsgPtr _msg, uint8_t
id) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)_msg->data;
if ((TOS_LOCAL_ADDRESS != MHOP_BASE_STATION_ADDR) &&
(!(call BaseStation.isConnected()))) {
if (_mhopmsg->ttl == 0)
return TRUE;
}
return FALSE;
}
command result_t RouteSelect.selectRoute(TOS_MsgPtr _msg,
uint8_t _type,
uint8_t _retries) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)_msg->data;
// if the message was a broadcast and we have no parent,
return fail
// or if the message has timed out in the system (ttl == 0)
if ((TOS_LOCAL_ADDRESS != MHOP_BASE_STATION_ADDR) &&
(!(call BaseStation.isConnected()))) {
if (((_msg->addr == TOS_BCAST_ADDR) &&
(parents[m_parent].addr == TOS_BCAST_ADDR)) || (_mhopmsg->ttl ==
0)) {
return FAIL;
}
}
// was the message a local message or a forwarded message
if ((_retries == 0) && (_mhopmsg->originaddr !=
TOS_LOCAL_ADDRESS)) {
_mhopmsg->seqno = m_seqNo++;
if (_mhopmsg->ttl > 0)
_mhopmsg->ttl--;
}
//parent ne olması isteniyorsa buraya yazılacak
if (TOS_LOCAL_ADDRESS==0){
_msg->addr = TOS_UART_ADDR;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==1){
_msg->addr = 0;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==2){
_msg->addr = 1;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==3){
_msg->addr = 2;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==4){
_msg->addr = 3;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==5){
_msg->addr = 4;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==6){
_msg->addr = 5;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==7){
_msg->addr = 6;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==8){
_msg->addr = 4;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==9){
_msg->addr = 8;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==10){
_msg->addr = 9;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==11){
_msg->addr = 1;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==12){
_msg->addr = 11;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==13){
_msg->addr = 11;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==14){
_msg->addr = 13;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==15){
_msg->addr = 12;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==16){
_msg->addr = 15;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==17){
_msg->addr = 14;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==18){
_msg->addr = 17;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==19){
_msg->addr = 18;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
if (TOS_LOCAL_ADDRESS==20){
_msg->addr = 19;
_mhopmsg->sourceaddr = TOS_LOCAL_ADDRESS;
}
return SUCCESS;
}
command result_t RouteSelect.initializeFields(TOS_MsgPtr _msg,
uint8_t _type) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)_msg->data;
_msg->addr = 0; // initialize local message to no particular
parent
_mhopmsg->sourceaddr = _mhopmsg ->originaddr =
TOS_LOCAL_ADDRESS;
_mhopmsg->originseqno = _mhopmsg->seqno = m_seqNo++;
_mhopmsg->ttl = 10;
return SUCCESS;
}
command uint8_t* RouteSelect.getBuffer(TOS_MsgPtr _msg,
uint16_t* _length) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)(_msg->data);
*_length = TOSH_DATA_LENGTH - offsetof(TOS_MHopMsg,data);
return _mhopmsg->data;
}
/***************************** ROUTE CONTROL
*************************/
command uint16_t RouteControl.getParent() {
// parent ne olması isteniyorsa buraya yazılacak
if (TOS_LOCAL_ADDRESS==0){
return TOS_UART_ADDR;
}
if (TOS_LOCAL_ADDRESS==1){
return 0;
}
if (TOS_LOCAL_ADDRESS==2){
return 1;
}
if (TOS_LOCAL_ADDRESS==3){
return 2;
}
if (TOS_LOCAL_ADDRESS==4){
return 3;
}
if (TOS_LOCAL_ADDRESS==5){
return 4;
}
if (TOS_LOCAL_ADDRESS==6){
return 5;
}
if (TOS_LOCAL_ADDRESS==7){
return 6;
}
if (TOS_LOCAL_ADDRESS==8){
return 4;
}
if (TOS_LOCAL_ADDRESS==9){
return 8;
}
if (TOS_LOCAL_ADDRESS==10){
return 9;
}
if (TOS_LOCAL_ADDRESS==11){
return 1;
}
if (TOS_LOCAL_ADDRESS==12){
return 11;
}
if (TOS_LOCAL_ADDRESS==13){
return 11;
}
if (TOS_LOCAL_ADDRESS==14){
return 13;
}
if (TOS_LOCAL_ADDRESS==15){
return 12;
}
if (TOS_LOCAL_ADDRESS==16){
return 15;
}
if (TOS_LOCAL_ADDRESS==17){
return 14;
}
if (TOS_LOCAL_ADDRESS==18){
return 17;
}
if (TOS_LOCAL_ADDRESS==19){
return 18;
}
if (TOS_LOCAL_ADDRESS==20){
return 19;
}
return -1;
}
command uint8_t RouteControl.getQuality() {
return 255 - (parents[m_parent].estimate >> 5);
}
command uint8_t RouteControl.getDepth() {
return parents[m_parent].hopcount;
}
command uint8_t RouteControl.getOccupancy() {
return 0;
}
command uint16_t RouteControl.getSender(TOS_MsgPtr _msg) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)_msg->data;
return _mhopmsg->sourceaddr;
}
command result_t RouteControl.setUpdateInterval(uint16_t
_interval) {
m_updateInterval = _interval;
return SUCCESS;
}
command result_t RouteControl.manualUpdate() {
sendRouteUpdate();
return SUCCESS;
}
/***************************** RECEIVEMSG (Route Update)
*************/
event TOS_MsgPtr ReceiveMsg.receive(TOS_MsgPtr _msg) {
TOS_MHopMsg* _mhopmsg = (TOS_MHopMsg*)_msg->data;
BeaconMsg* _bmsg = (BeaconMsg*)_mhopmsg->data;
insert(_msg, _mhopmsg, _bmsg);
return _msg;
}
/***************************** RECEIVEMSG (Route Update)
*************/
command uint8_t RouteStatistics.getNeighborSize() {
return MHOP_PARENT_SIZE;
}
command void RouteStatistics.getNeighbors(uint16_t* neighbors,
uint8_t length) {
int i;
for (i = 0; (i < MHOP_PARENT_SIZE) || (i < length); i++) {
neighbors[i] = parents[i].addr;
}
}
command void RouteStatistics.getNeighborQuality(uint16_t*
quality, uint8_t length) {
int i;
if (TOS_LOCAL_ADDRESS==1){
parents[1].addr = 0;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==2){
parents[1].addr = 1;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==3){
parents[1].addr = 2;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==4){
parents[1].addr = 3;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==5){
parents[1].addr = 4;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==6){
parents[1].addr = 5;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==7){
parents[1].addr = 6;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==8){
parents[1].addr = 4;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==9){
parents[1].addr = 8;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==10){
parents[1].addr = 9;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==11){
parents[1].addr = 1;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==12){
parents[1].addr = 11;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==13){
parents[1].addr = 11;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==14){
parents[1].addr = 13;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==15){
parents[1].addr = 12;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==16){
parents[1].addr = 15;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==17){
parents[1].addr = 14;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==18){
parents[1].addr = 17;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==19){
parents[1].addr = 18;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
if (TOS_LOCAL_ADDRESS==20){
parents[1].addr = 19;
parents[1].cost = 1;
parents[1].estimate = 1;
parents[1].hopcount = 1;
parents[1].lastheard = 0;
}
for (i = 0; (i < MHOP_PARENT_SIZE) || (i < length); i++) {
quality[i] = parents[i].estimate;
}
}
command uint8_t RouteStatistics.getRetransmissions() {
return 0;
}
}
command void RouteStatistics.resetRetransmissions() {
}

Benzer belgeler