Nesnelerin İnterneti
Haluk Tanrıkulu MCNA | Pitonca
www.haluktanrikulu.com
Nesnelerin İnterneti
Internet of Things (IoT)
1 - Nesnelerin İnternetine Giriş 2 - Sensörler ve Cihazlar
3 - Nesnelerin İnterneti Ağları ve Protokolleri 4 – Uygulama Geliştirme
www.haluktanrikulu.com
Sorularımız? :
Nesnelerin İnterneti Nedir?
Neden Önemli?
Nesnelerin İnterneti Nerelerde Kullanılıyor?
Biz nasıl dahil oluruz?
İnternet Nedir? Ne zaman başlamıştır?
1 – Nesnelerin İnternetine Giriş?
www.haluktanrikulu.com
İnternet Nedir?
• Bağımsız uç birimlerin birbirleri arasında iletişim kurmasına olanak tanıyan en geniş ağ.
• WAN (Geniş Alan Ağları) toplamı
• Dünya geneline yayılmış bağlantılı ağ
• Ağlar arası iletişimin olduğu en büyük ağ
www.haluktanrikulu.com
BİRAZ TARİH…
1960 – ABD Savunma Bakanlığı
1961 - MIT'den Leonard Kleinrock , paket anahtarlama teorisi ile ilgili ilk makaleyi yazdı.
1962 - MIT – Licklider –” Galaktik Ağ”
1965 – MIT – Lawrance Roberts, Thomas Merrill - Bilgisayalar İlk kez konuştu 1966 – Roberts, DARPA ‘ta… ARPANET fikri
1967: ARPANET DoD’s ARPA(Advanced Research Project Agency) tarafından önerildi
1969 – ARPANET çalıştı…UCLA, Stanford, Un.of Utah, Un. Of California at Santa Barbara
www.haluktanrikulu.com
BİRAZ TARİH…
1972 – Xerox’dan Metcalf devrede…
www.haluktanrikulu.com
BİRAZ TARİH…
1973: Vint Cerf ve Bob Kahn TCP’yi önerdi…
1974: “A Protocol for Packet Network Intercommunication”
www.haluktanrikulu.com
BİRAZ TARİH…
1983 – TCP/IP ARPANET içinde kullanıldı.
1984 – OSI Referans Modeli Oluşturuldu.
1987 – NSF (Amerika Bilimsel Kurumu) devrede, ARPANET NSFNET oldu.
1990 – NSF’in yanında IBM, MCI ile yeni oluşum
1990 – ARPANET Yerini ABD, Avrupa, Japonya ve Pasifik ülkelerinde ticari ve hükümet işletimindeki omurgalar (backbone) aldı.
1995 – Omurga Özelleşti.
www.haluktanrikulu.com
Nesnelerin İnterneti Nedir?
www.haluktanrikulu.com
Internet of Things Deyimi
Kevin Ashton "Internet of Things" deyimi ile ‘her zaman her yerdeki (ubiquitous) ’ sensörler vasıtası ile fiziksel dünyaya
internet üzerinden bağlanan sistemleri
tarif etmek için kullandı. İsim babası oldu.
www.haluktanrikulu.com
Nesnelerin İnterneti
Nesne Nedir? İnternet Nedir?
Ne Yapar?
Otomasyon ve Analitik İşlerinin Yapılması Nasıl Yapar?
• Ağ ve Bulut Bilişim
• Algılayıcılar
• Big Data
• Yapay Zeka
www.haluktanrikulu.com
• IoT = Internet of Thing
• IoE = Internet of Everything
• M2M = Machine to Machine
• Ubiquitous Sensor Network
• Endüstriyel Internet
• Wireless Sensor Networks
• Object to Object
Geleceğin İnterneti
Nesnelerin İnternetin Başka İsimleri
www.haluktanrikulu.com
www.haluktanrikulu.com
www.haluktanrikulu.com
Akıllı Şehirler
www.haluktanrikulu.com
Akıllı Yapılar
www.haluktanrikulu.com
Akıllı Tarım Teknolojileri
www.haluktanrikulu.com
Akıllı Sağlık Uygulamaları
www.haluktanrikulu.com
IoT Evde
www.haluktanrikulu.com
4 Kabiliyet
• Gözetle
• Kontrol
• Eniyileme (Optimize)
• Otomatikleştirme
www.haluktanrikulu.com
IoT 3 Bileşeni
• Fiziksel Cihaz, Araç
• Akıllı Sistemler
• Bağlantı
www.haluktanrikulu.com
2 – Sensör ve Aktuatörler
Nesnelerin internetinde
fizikler araçları nesne yapan önemli iki anahtar ürün:
Sensör: Çevresel değişiklikleri algılayan ve bu değişiklikleri gönderen cihazlar. Bunlara Sensör Düğümü’de
denilmektedir.
Aktuatör: Bir başka cihazı hareket ettiren veya kontrol eden cihazlar.
.
www.haluktanrikulu.com
Nesne, sensor, aktuator, cihaz?
• Nesne, giriş ve çıkışlarını bir ‘akıllı’ işlemci ile yapan bir şey!
• Sensör : Girişleri alır ve elektrik sinyaline çevirir.
• Aktuatör : Çıktı verir. Hareket ve eylem oluşturur.
• Girişlere göre nasıl bir çıktı vereceğini belirten mini bir bilgisayara ihtiyacımız var.
• Peki cihaz nedir? Örneğin bir akıllı telefon bir cihazdır. Bir çok görevi, çok fazla sensör ile yapan, sonuçları ekranda veya ses veya görüntü ile verir.
www.haluktanrikulu.com
• Sensörler
• Sıcaklık, hareket, ışık,
titreşim, ses gibi fiziksel olayları elektrik sinyallerine çeviren
cihaz
Sensör, Düğüm ve Ağlar
www.haluktanrikulu.com
• Sensör Düğümü
• Sensör ağların en basit birimi
• Üzerinde sensör, işlemci, hafıza, verici ve güç kaynağı bulunan bir ana kartır
Sensör, Düğüm ve Ağlar
www.haluktanrikulu.com
Sensör Düğümü
Sensör, Düğüm ve Ağlar
www.haluktanrikulu.com
RIOT İşletim Sistemi
• Nasıl Linux internette güç veriyor ise, Riot’ta nesnelerin internetine güç verir. RIOT açık kaynak kodlu, ücretsiz bir işletim sistemidir.
• RIOT düşük güçe sahip IoT araçlarını ve 32-bit, 16-bit, 8-bit mikrokontrol kartlarını destekler. RIOT’un amacı tüm ilgili IoT
destekleyen açık standartları bağlatıdan güvenliğe kadar uygulamak ve geliştirmektir.
• https://www.riot-os.org/
www.haluktanrikulu.com
Sensör, Düğüm ve Ağlar
• Sensör
• Sıcaklık, hareket, ışık, titreşim, ses gibi fiziksel olayları elektrik sinyallerine çeviren cihaz
• Sensör Düğümü
• Sensör ağların en basit birimi
• Üzerinde sensör, işlemci, hafıza, verici ve güç kaynağı bulunan bir ana kartır
• Sensör Ağı
• Çok sayıda sensör düğümünün bir araya gelmesi ile oluşur
www.haluktanrikulu.com
Sensör, Düğüm ve Ağlar
www.haluktanrikulu.com
Kablosuz Sensör Ağ Haberleşme Mimarisi
www.haluktanrikulu.com
IPv6 ve EPC Adresleri
• IPv6 adresi 128 bitlik olup, geleceğin internettinde her nesneye yetecek kadar dağıltılmasının önünü açmıştır.
• Elektronik Ürün Kodu (EPC - Electronic Product Code) yeni bir ürün tanımlama standardıdır. Firmaların barkodlar için var olan yerleşik standartlardan EPC'ye geçişi için bir yol belirlemek amacıyla, temel GTIN (Küresel Ticari Ürün Numarası) yapısı benimsenmiştir. 98 bitlik bir yapısı vardır.
• EPC bir ön ek (8 bit) ve EPC Yönetici Numarası (28 bit), Nesne Sınıfı (24 bit) ve Seri Numarası (36 bit) olmak üzere 3 dizi veriden oluşan bir
numaradır.
www.haluktanrikulu.com
Packet Tracer IoT
https://www.netacad.com/courses/packet-tracer/introduction-packet-tracerwww.haluktanrikulu.com
Açık Kaynak Kodlu Kablosuz Sensör Ağları Simülatörleri
• NS2 / NS3
• OMNet
• Ptolemy 2
• Jsim
Simülatör Adı
Programlama Dili
İşletim Sistemi
Kullanıcı Arabirimi
NS-2 C++ Win, Linux Komut
Satırı
NS-3 C++, Python Win,Linux,
Mac
GUI, Komut
Satırı
OMNet++ C++ Win,
Unix,Mac GUI
Ptolemy II Java, C++ Win, Mac,
Unix GUI
Jsim Java, .Tcl Platfomdan
Bağımsız
GUI, Linux'da
Komut Satırı
www.haluktanrikulu.com
Physics Toolbox Sensor Suite
• Physics Toolbox Sensor Suite hem Android hemde iPhone var!
www.haluktanrikulu.com
Aktuatörler
Bir mekanizmayı veya sistemi kontrol eden veya hareket ettiren bir tür motordur. Bir enerji kaynağı tarafından çalıştırılır. Bu kaynak genellikle elektrik akımı, hidrolik akışkan basıncı veya pnömatik basınçtır ve bazı tür hareketlerle enerjiye dönüşür.
www.haluktanrikulu.com
İletişim Şekilleri
• M2M: Machine to machine
• M2P: Machine to people
• P2P: People to people
3 - Nesnelerin İnterneti Ağları ve Protokolleri
www.haluktanrikulu.com
• Bir ağın üç önemli unsuru vardır:
• Cihazlar - Bilgisayar, printer, routers, switch ve sunucular
• Ortam - Kablolu ve Kablosuz Bağlantı
• Servisler - email, hosting, web, ftp, dhcp gibi işlemleri
3 - Nesnelerin İnterneti Ağları ve Protokolleri
www.haluktanrikulu.com
www.haluktanrikulu.com
Internet protocol (IP) addresses
www.haluktanrikulu.com
Internet protocol (IP) addresses
www.haluktanrikulu.com
Ağ Cihazları
www.haluktanrikulu.com
DNS Yapılanması
www.haluktanrikulu.com
Kablosuz Ağlar
www.haluktanrikulu.com
4 – Uygulama Geliştirme (Arduino)
www.haluktanrikulu.com
İşe Koyulalım!
www.haluktanrikulu.com
Açık Kaynak Kodlu Elektronic Mikrokontrolör:
Arduino
Niçin Kullanıyoruz :
•Açık Kaynak kodlu.
•İyi dökümantasyonu yapılmış, basit ve kullanışlı kitapçıkları, rehberlerinin bulunması
•Oldukça ucuz
•Büyük bir topluluk kullanıyor.
Alternatifleri Hangileridir:
Raspberry Pi, BeagleBoard, and NodeMCU.
www.haluktanrikulu.com
Arduino Ekosistemi!
Devre Kartları + kod + topluluk + ♥ = Arduino
• Arduino IDE (Integrated Development
Environment ( C diline benzer).
•Topluktan her daim bilgi alabiliriz.
www.haluktanrikulu.com
Arduino Bileşenleri
www.haluktanrikulu.com
Breadboard
www.haluktanrikulu.com
Arduino IDE’yi Bilgisayarınıza Yüklemek
arduino.ccsitesine gidip IDE yazılımının indiriniz. Her işletim sistemine göre programları bulabilirsiniz.
www.haluktanrikulu.com
Arduino IDE’de Örnek
Programlara ulaşmak
File > Examples > 01. Basics > Blink .
www.haluktanrikulu.com
Arduino IDE’den Arduino’ya Yükleme İşlemi
Arduino Borda Kodları Gönder Hata olup olmadığını test et
www.haluktanrikulu.com
https://courses.edx.org/courses/course-v1:IMTx+DMx102+3T2018/1ab15a97bb214a8a9d2ecbbadfdce403/
Arduino Simülatörleri : Codecast
www.haluktanrikulu.com
Arduino Simülatörleri : Tinkercad
www.haluktanrikulu.com
Arduino Simülatörleri : Tinkercad
www.haluktanrikulu.com
Örnek : Led Yakıp Söndürme (Blink Led)
/*
Blink
Light the LED for 1 second, then turn it off for 1 second.
*/
// Number of the pin connected to the LED:
int led = 13;
// the function runs once when you press reset or power the board void setup() {
// initialize digital pin 'led' as an output.
pinMode(led, OUTPUT);
}
// this code runs over and over again as long as there is power void loop() {
digitalWrite(led, HIGH); // light LED (send 5V to the pin) delay(1000); // wait 1000ms = 1s
digitalWrite(led, LOW); // turn off LED (0V to the pin) delay(1000); // wait another second
}
www.haluktanrikulu.com
Kodu Açıklayalım
Yorum Satırı :
www.haluktanrikulu.com
Değişken Atayalım : Bir ad ve onun değeri bir sayı
Kod Blokları : setup fonksiyonu tüm talimatları içinde buunduran
bölümdür. Program başladığında çalışır. Setup fonksiyonu Arduino ana kartı açıldığında veya bir reset butonuna basıldığında çalışır. Döngü loop fonksiyonu ise Arduino açık olduğu sürece tekrar edecek işleri içinde
bulundurur ve kapanana kadar aynı işleri yapar.
Kodu Açıklayalım
www.haluktanrikulu.com
Fonksiyonlar
Fonksiyonlar, bir veya bir den fazla aktiviteyi oluşturmak için tanımlamak için kullanılır.
Ad : Her fonksiyon bir ad alır. Burada digitalWrite adı verilmiş
Girdiler : Bunlara parametre denir. Bir veya daha fazla olabilir. Burada (led, HIGH) adında iki parametre verilmiş, pin adı birinci, değeri ise ikinci parametre olarak verilmiş. HIGH parametresi LED açık, LOW parametresi ise kapalı olduğunu gösterir.
Çıktılar : Fonksiyonların içinde yaptığı işlemlerine göre sonuçlarına çıktı denir.
www.haluktanrikulu.com
Kodun Diğer Kısımları
pinMode özel bir pini bizim çıktımızın girdisi olarak almasını istiyorsak
aşağıdaki gibi bir kod gireriz. Kontrol edeceğimiz pini seçmek için kullanılır.
delay milisaniye süresince programı bekletmek için kullnılır.
www.haluktanrikulu.com
Trafik Lambası Uygulaması Yapalım
www.haluktanrikulu.com
Tinkercad ile Yazalım
int hiz_miktari = 0;
void setup() {
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
}
void loop() {
hiz_miktari = 400;
digitalWrite(13, HIGH);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) digitalWrite(13, LOW);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) digitalWrite(12, HIGH);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) digitalWrite(12, LOW);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) digitalWrite(11, HIGH);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) digitalWrite(11, LOW);
delay(hiz_miktari); // Wait for hiz_miktari millisecond(s) }
https://www.tinkercad.com/things/cnZ4Lopww3U-super-lappi/editel www.haluktanrikulu.com
Codecast ile yapalım
Tinkercad’e yaptığımız çalışmadaki kodları
Codecast
kopyalayarak tekrar
deneyelim.
www.haluktanrikulu.com
Teşekkür Ederiz
www.haluktanrikulu.com