![Page 1: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/1.jpg)
Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme
Kasım Sinan YILDIRIM
AKADEMİK BİLİŞİM 2010
10 - 12 Şubat 2010
Muğla Üniversitesi, Muğla Ege Üniversitesi
Bilgisayar Mühendisliği Bölümüİzmir, TÜRKİYE
![Page 2: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/2.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 2
İçerik
Algılayıcı Ağları TinyOS İşletim Sistemi Örnek Uygulama
![Page 3: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/3.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 3
Algılayıcı Ağları - I
Güç
lemciİş
Radyo
Alg lay c ları ı ıBellek
![Page 4: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/4.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 4
Algılayıcı Ağları - II
Pil Güç tüketimi
İletişim donanımı
Kısıtlı kaynaklar Bellek CPU
Genişleyebilirlik Çok sayıda düğüm
İşbirliği
CPU 8 MHz TI Msp430
Memory 10 KB Ram48 KB Flash
Radio 2.4 GHz 256 Kbps data rate
CPU Power Sleep 0.1 microAProcessing 2 microA
Radio Power TX 18 microARX 10 microA
![Page 5: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/5.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 5
TinyOS - I
Gömülü, az güç kullanması gereken ve kablosuz iletişim yapan cihazlar için tasarlanmış bir işletim sistemi
Açık kaynak kod http://www.tinyos.net
![Page 6: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/6.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 6
TinyOS - II
Modern programlama kavramlarının gömülü sistemlerde kullanılmasını sağlar NesC dili
Faydalı birçok kütüphane içermektedir Açık kaynak kodlu ve test edilmiş birçok uygulama
ve kütüphane TinyOS geliştiricileri tarafından paylaşılmaktadır.
Uygulama tabanlı bir işletim sistemidir.
![Page 7: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/7.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 7
TinyOS - III
TinyOs Uygulamaları nesC ile geliştirilir. C diline yakın bir dil Dinamik bellek kullanımı yok Modüler yapı
TinyOS'ta süreçler arası geçiş mekanizması (context switch) yoktur Sonlana kadar çalış Tek yığıt
![Page 8: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/8.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 8
Uygulama Temel Taşları - I
Bileşenler (Components) Temel nesC kod birimi
Yapılandırıcılar (Configuration) Modüller (Module)
Arayüzler (Interface) Bileşenler arayüzlerle
Birbirlerine bağlanırlar İletişim kurarlar
Bile en BşBile en Aş
![Page 9: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/9.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 9
Uygulama Temel Taşları - II
Modül (module) olarak isimlendirilen bileşenler bir gerçekleştirim barındırırlar. Bir arayüz sunabilirler Diğer modüllerin servislerini, onların sundukları
arayüzler üzerinden kullanırlar. Yapılandırıcı (configuration)bileşenleri birbirlerine
bağlarlar. Arayüzler (interface) bileşenlerin işlevselliğini
belirlerler. Tüm bileşenler ve arayüzlerin isimleri ile bunların
gerçekleştirim dosyalarının isimleri aynı olmalıdır.
![Page 10: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/10.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 10
Örnek Uygulama
Bir algılayıcı düğümü açıldığı anda o düğüme ait ledleri yakan bir uygulama
İhtiyaçlar Led'ler kullanılmalı (yak / söndür) Sistemin açıldığından (boot) haberdar
olunmalı
![Page 11: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/11.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 11
Powerup Modülü
module PowerupC { uses interface Boot ; uses interface Leds ;}implementation { event void Boot.booted () { call Leds.led0On(); }}
![Page 12: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/12.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 12
Boot ve Leds Arayüzleri
interface Boot { event void booted ();}
interface Leds { command void led0On(); command void led0Off(); command void led0Toggle(); ...}
![Page 13: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/13.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 13
LedsC ve MainC Modülleri
configuration LedsC { provides interface Leds;}implementation { …}
configuration MainC { provides interface Boot; ...}implementation { ...}
![Page 14: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/14.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 14
PowerupApp Yapılandırıcısı
configuration PowerupAppC { implementation { components MainC , LedsC , PowerupC ; MainC.Boot -> PowerupC.Boot ; PowerupC.Leds -> LedsC.Leds ; }}
![Page 15: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/15.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 15
Derleme / Yükleme - I
15
Native binary:
03 2F 779A F2 FF...
TinyOS
App
PC Uygulamaları
![Page 16: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/16.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 16
Derleme / Yükleme - II
pybsl, uisp,...
![Page 17: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/17.jpg)
10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme 17
Derleme / Yükleme - III
Java, C, Python
Seri ileti imş
Paketler
![Page 18: Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme · TinyOS İşletim Sistemi Örnek Uygulama. 10 Şubat 2010 Kablosuz Algılayıcı Ağları İçin TinyOS İle](https://reader030.vdocuments.pub/reader030/viewer/2022040716/5e1f61753a6fd30d1875bebc/html5/thumbnails/18.jpg)
Sorular?