Bölüm 2 IOT DONANIM ALT YAPISI IOT ekosistemi içerisinde pek çok donanım bileşeni kullanılmaktadır. Temel yapıyı devre geliştirme kartları teşkil etmektedir. IOT ekosistemi içerisinde Arduino, Raspberry Pi, BeagleBone, CubieBoard, Texas Instuments MSP serisi, ARM Cortex serisi Intel Edison, ESP 8266 serisi kartlar kullanılmaktadır. Bunlardan en çok kullanılan devre geliştirme kartlarını bu bölümde tanıtacağız. Bölüm 2.1 ARDUINO NEDİR? Arduino, üzerinde programlanabilir bir mikro denetleyici bulunduran devre geliştirme kartıdır. Arduino üzerine bağlayacağınız bileşenler ile çok farklı türden projeleri gerçekleştirebilirsiniz. Biraz programlama biraz da elektronik bilgisi ile uygulamalarınızı kolayca geliştirebilirsiniz. Arduino ise kendi üzerinde bir mikro denetleyiciye, giriş-çıkış pinleri, iletişim larına sahiptir. Bu lar ile sensörlerden değer okuma, elektronik cihazları ve sistemleri kontrol etme gibi işlemler gerçekleştirilebilir. Atmel mikro işlemcisi tabanlı olan bu kartlar, Processing/Wiring dilinin bir türevini içeren açık kaynak kodlu geliştirme ortamından oluşan bir fiziksel programlama platformudur. Arduino uygulamalarını geliştirmek için http://www.arduino.cc/en/main/software adresinden indirebileceğiniz Arduino IDE sini kullanmaktayız.
Arduino İle Neler Yapılabilir? Arduino, arkasında bulunan büyük bir topluluk desteği sayesinde oldukça geniş açık kaynak kod kütüphanelerine ve uygulama örneklerine sahiptir. Bu sayede bir çok elektronik cihaza ve modüllere (shield) ait kütüphaneleri kullanarak uzun kod satırları yazmadan kolayca uygulama geliştirebilirsiniz. Arduino üzerine elektronik bileşenlerin kolayca takılıp bağlantı kurulabilmesi için bir çok hazır modül (shield) mevcuttur. Bu modüller üzerinde bulunan dijital ve analog pinler ile modüller üzerindeki elektronik bileşenlere ait sinyalleri alıp işleyebilir, sensörlerden aldığımız sinyalleri kullanarak, yazacağınız programlar içerisinde verdiğimiz komutlara göre işlemler yaptırabilir ve wi-fi, bluetooth, zigbee gibi iletişim protokollerini kullanarak başka cihazlarla iletişim kurabilirsiniz. Gsm Shield TFT LCD Shield Arduino Kart Çeşitleri
Arduino Açık Kaynak Donanım (Open Source Hardware) ürünü olduğundan dolayı, farklı ihtiyaçlara cevap verebilen birden çok kart türüne sahiptir. Bununla birlikte her geçen gün bu kart türlerine yenileri eklenmeye devam etmektedir. Arduino üreticileri ve geliştiricileri sürekli yeni devre geliştirme kartları modelleri ile karşımıza çıkmaktadırlar. Bu nedenle en çok kullanılan Arduino kartlarını bazı özellikleri ile inceleyip genel tanıtımlarını yapacağız. Amerika dahilinde satılan devre geliştirme kartları Arduino olarak isimlendirilirken, Amerika dışındaki ülkelerde satılan devre geliştirme kartları Genuino olarak isimlendirilmektedir. Her iki isime ait modeller de aynı şekildedir. Arada yalnızca isim farkı bulunmaktadır. Arduino Uno En çok kullanılan ve bu kitaptaki projelerin tamamında kullanılan Arduino kart modelidir. Atmega328 mikro denetleyici, güç regülatörü, USB bağlantı u vb. bileşenleri üzerinde barındırıyor. Arduino Uno üzerinde 14 tane Dijital Giriş/Çıkış (6 tanesi PWM Çıkış olarak kullanılan bilen) pini ve 6 tane analog giriş pini bulunmaktadır. Ortalama 32 Kb lık hafızaya sahiptir. Bu değer bize küçük gelebilir ancak projelerimiz için yeterli gelecek bir kapasitedir. Arduino Leonardo Yaygın olarak kullanılan Arduino kartlarından bir tanesi de Arduino Leonardo kartıdır. Atmega32u4 mikro denetleyici, güç regülatörü, mini USB bağlantı u vb. bileşenleri üzerinde barındırmaktadır. Arduino Leonardo üzerinde 20 tane Digital Giriş/Çıkış (7 tanesi PWM Çıkış, 12 tanesi Analog giriş) pini bulunmaktadır. Bu kartta kullanılan Atmega32u4 mikro denetleyici, kendi içerisinde USB bağlantı yeteneklerine sahiptir. Bu sayede usb fare, klavye,joystik vb. cihazları, ek bir parça olmadan usb bağlantısı üzerinden direk kullanabiliriz. Arduino Due
Atmel SAM3X8E ARM Cortex- M3 işlemciye sahip olan Arduino Due, 54 tane digital giriş/çıkış (12 tanesi PWM çıkış olarak kullanılabilen ) ve 12 tane analog giriş pinine sahiptir. Bu kart türünde dikkat etmemiz gerekn nokta, kartın 3.3 volt ile çalışıyor olmasıdır. 5 voltluk bir güç verirsek kartımız yanar. Arduino Nano (ATmega328) hafızaya sahiptir. Küçük boyutuna rağmen üzerindeki dijital ve analog pinleri ile pek çok uygulama geliştirebileceğiniz bir kart tipidir. Atmega328 ya da ATmega168 mikro denetleyici, güç regülatörü, USB bağlantı u vb. bileşenleri üzerinde barındırıyor. Arduino Nano üzerinde 14 tane Dijital Giriş/Çıkış (6 tanesi PWM Çıkış olarak kullanılabilen) pini ve 8 tane analog giriş pini bulunmaktadır. 16 KB (ATmega168) ya da 32 KB Arduino Micro En küçük boyutlu Arduino kart modelidir. Üzerinde ATmega32U4 mikro denetleyici, USB bağlantı u vb. bileşenleri üzerinde barındırıyor. Arduino Micro üzerinde 20 tane Dijital Giriş/Çıkış (7 tanesi PWM Çıkış olarak kullanılan bilen) pini ve 12 tane analog giriş pini bulunmaktadır. Ortalama 32 Kb lık hafızaya sahiptir. Arduino Yun Arduino Yun, Atmega32u4 mikro denetleyici ve Atheros AR9331 işlemciye sahiptir. Kendi içerisinde dahili Ethernet bağlantısı ve wi-fi modülü mevcuttur. Ayrıca Kart üzerinde USB bağlantı u, microsd kart yuvası, 20 dijital giriş/çıkış(7 tanesi PWM çıkış,12 tanesi analog giriş olarak kullanılabilen) pini vardır. Arduino ile Linux un birleştirildiği bir kart tipidir.
Arduino 101 Özellikle endüstriyel uygulamalar için geliştirilmiş düşük güç tüketimi ve 32 bit Intel Curie işlemcisi ile ön plana çıkmaktadır. Kart üzerinde Bluetooth LE ve 6 eksenli ivme/ jiroskop bulunmaktadır. 14 tane dijital giriş/çıkış (4 tanesi PWM çıkış olarak kullanılabilen) pinleri ve 6 tane analog giriş pinleri mevcuttur. Arduino Zero Fiziksel yapı itibari ile Arduino UNO ya benzeyen bu kartın başlıca farkları kart üzerinde 2 adet USB bulunması, 32-Bit ARM Cortex M0+ ATSAMD21G18 işlemci ve JTAG desteğidir. Bu kart ile birlikte 32 bitlik programlama gücünü Arduino kartlar ile birlikte kullanabileceksiniz. Yazılımsal olarak ise belki de en önemli özelliği debugging desteği. Bu sayede uygulamalarınızda hata ayıklama işlemi gerçekleştirebileceksiniz. Bölüm 2. 2 RASPBERRY PI NEDİR? Raspberry pi ARM işlemci tabanlı olarak çalışan bir mini bilgisayardır. Mini bilgisayardır, çünkü rasberry pi, üzerine bağlanan klavye, fare ve bir görüntü birimi ile eksiksiz bir bilgisayar olmaktadır. Raspberry Pi Foundation tarafından 2009 yılında üretimine başlanan Raspberry pi nin asıl üretim amacı özellikle masaüstü pc alamayacak durumda olan öğrencileri bilgisayarla tanıştırmaktı. Ancak sahip olduğu gpio pinleri ile elektronik sistemlerle haberleşme amacıyla kullanılması sayesinde, elektronik ve mekatronik alanında kendine yeni bir kullanım sahası daha buldu.
Raspberry Pi 2 Model B Raspberry pi nin, Raspberry pi 1, Raspberry pi 2 ve Raspberry pi 3 olmak üzere üç farklı çeşit ve Model A, Model A+, Model B ve Model B+ olmak üzere dört farklı modeli vardır. Ayrıca Raspberry Pi Zero adlı mini bir Raspberry Pi modeli de mevcuttur. Bu model ekonomik fiyatı ile (5$) pek çok uygulama için ideal bir model olarak tavsiye edilebilir. Üzerinde bulunan 40 adet GPIO pini geliştirilecek olan pek çok proje tipi için yeterli seviyededir. Raspberry Pi Zero Bu modellerin başlıca özellikleri aşağıdaki tabloda yer almaktadır.
RPi Model RPi 1 Model A RPi 1 Model B RPi 1 Model A+ RPi 1 Model B+ RPi 2 Model B RPi 3 Model B Rpi Zero GPU ve RAM 700 Mhz 256 MB 700 Mhz 256 veya 512 MB 700 Mhz 256 MB 700 Mhz 512 MB 900 Mhz 1024 MB 1,2 Ghz (64 Bit) 1024 MB 1 Ghz 512 MB Yok Network 10M/100M Ethernet RJ45 Yok 10M/100M Ethernet RJ45 10M/100M Ethernet RJ45 10M/100M Ethernet RJ45 Yok USB 1 USB 2 USB 1 USB 4 USB 4 USB 4 USB 1 Micro USB Memory Card SD Card SD Card Video Ses Voltaj Stereo Composite RCA 300mA 8 Stereo Composite RCA 700mA 8 shared TRSS shared TRSS shared TRSS Shared TRSS Shared TRSS Shared TRSS Shared TRSS Composite RCA Mini Mini HDMI Composite RCA üzerinden 600mA 17 600mA 17 700mA 40 700mA 40 140 ma GPIO Pinleri 40 Raspberry pi 2 Model B diğer raspberry pi sürümlerinden farklı olarak Windows 10 işletim sistemi ile uygulama geliştirme desteğine sahiptir. Raspberry pi 3 Model B ise, diğer raspberry pi sürümlerinden farklı olarak üzerinde dâhili wi-fi ve bluetooth bulundurmaktadır. Ayrıca üzerindeki A8 serisi işlemci 64 bitliktir. Raspberry Pi İşletim Sistemi Kurulumu Raspberry pi üzerine kurulan birkaç çeşit Linux dağıtımı mevcuttur. Bunlar Raspbian wheezy ve jessie, Ubuntu Mate, Snappy Ubuntu Core, Windows 10 IOT Core,Osmc, Openelec, pinet, ve Risc Os isimli işletim sistemleridir. Adı geçen işletim sistemlerini http://www.raspberrypi.org/downloads adresinden indirebilirsiniz. Bunlar dışında Noobs adında bir dağıtım paketi daha mevcuttur. Bu paket yukarıda ismi geçen diğer tüm dağıtım paketlerini içermekte olup boot ekranından istediğiniz işletim sistemini seçip kurabilirsiniz. Raspbian Jessie; Debian 8 Linux işletim sisteminin optimize edilmiş sürümüdür. LXDE masaüstü ortamı, çeşitli geliştirme araçları, ofis uygulamaları ve multimedya fonksiyonlarını içerir. Raspbian Wheezy; Jessie sürümü gibi bu sürüm de Debian Linux işletim sisteminin optimize edilmiş sürümüdür. Ancak Debian ın yeni sürümleri Jessie olarak adlandırılırken, eski sürümleri ise Wheezy olarak adlandırılmaktadır. Varsayılan kullanıcı adı: pi, şifre: raspberry şeklindedir. OpenElec (Open Embedded Linux Entertainment Center), XBMC media center ı içeren ve raspberry pi kartınızı film, müzik gibi multimedya öğelerini yönetmek amaçlı kullanabileceğiniz sürümüdür. Osmc (Open Source Media Center), yerel ya da internet ortamında depolanmış multimedya dosyalarını oynatmak için kullanılan uygulamaları içeren Linux sürümüdür. Pinet, sınıf ortamında eğitim faaliyetlerinde kullanmak üzere gerekli uygulamaları içeren Linux sürümüdür. Ubuntu Mate; Raspberry pi kartınızı bir masaüstü bilgisayarı gibi kullanabilmeniz için gerekli bir çok uygulamayı içeren bir Linux sürümüdür.
Snappy Ubuntu Core; Ubuntu nun devre geliştirme kartları, sanal makinalar, internet bağlantılı cihazlar ve bulut platformlarında çalışması için özelleştirilmiş sürümüdür. Arch Linux ARM; Arch Linux tabanlı bir işletim sistemidir. Başlangıç seviyesindeki kullanıcılar için tavsiye edilmemektedir. Hard-float ABI kullanmaktadır. Yaklaşık 10 saniyede komut ekranından açılmaktadır. Varsayılan kullanıcı adı: root, şifre: root şeklindedir. Risc Os; 1987 den beri ARM mikro işlemciler için geliştirilmeye devam eden bir işletim sistemidir. Özellikle ARM işlemcileri için optimize edilmiş bir Linux sürümüdür. Windows 10 IOT Core; Raspberry pi üzerinde yapılacak programlama uygulamalarını Visual Studio içerisinde kodlayarak geliştirebileceğiniz Windows sürümüdür. Biz Raspberry pi cihazımıza kurmak için Raspbian jessie işletim sistemini tercih ediyoruz. İşletim sistemini SD kart içerisine Windows ortamında kurabilmek için http://sourceforge.net/projects/win32diskimager/ adresinden indireceğimiz win32diskimager isimli uygulamayı kullanıyoruz. İndirdiğimiz Raspbian jessie işletim sistemi dosyasını bir klasöre açıyoruz. Dosyamız img uzantılı olacak. İlgili imaj dosyasını seçip, Device bölümünden ise SD kart sürücü ismini seçiyoruz. Write butonuna tıklayarak yazma işlemini başlatıyoruz. Karşımıza gelen uyarı penceresinde Yes butonunu tıklayarak yazma işlemini başlatıyoruz.
İmaj dosyamızın yüklenmesi bittiğinde bir uyarı penceresi ile kullanıcı bilgilendirilecektir.