# Bluetooth Low Energy
Bluetooth Low Energy (BLE) sağlık alanında, fitness'ta, güvenlikte ve ev eğlencelerinde yeni uygulamalar hedefleyen Bluetooth Special Interest Group (SIG) tarafından tasarlanan ve pazarlanan kablosuz kişisel alan ağı teknolojisidir. "Bluetooth Smart" olarak da anılan BLE, Klasik Bluetooth'un bir alt grubudur ve Bluetooth 4.0 temel özelliklerinin bir parçası olarak tanıtılmaktadır. Klasik Bluetooth ile örtüşüyor olsa da BLE, aslında tamamen farklı bir kökene sahiptir ve Bluetooth SIG tarafından benimsenmeden önce Nokia’da "Wibree" adı verilen bir şirket projesi olarak başlatılmıştır.
Mühendisler ve ürün tasarımcıları için çok sayıda kablosuz protokol olmasına rağmen BLE'yi bu kadar ilginç yapan şey kesinlikle herhangi bir modern mobil platformla konuşabilen bir ürünü tasarlamanın en kolay yolu olmasıdır. iOS, Android, Windows Phone ve BlackBerry dahil olmak üzere mobil işletim sistemleri, ayrıca MacOS, Linux, Windows 8 ve Windows 10 yerel olarak Bluetooth Smart'ı desteklenmektedir. Bununla birlikte Bluetooth SIG, 2018 yılına kadar Bluetooth özellikli akıllı telefonların yüzde 90'dan fazlasının Bluetooth Smart'ı destekleyeceğini öngörmektedir.


## Uygunluk.
Bluetooth Smart Klasik Bluetooth protokolüyle uyumlu değildir. Bluetooth 4.0 spesifikasyonu, cihazların LE ve Klasik sistemlerden herhangi birini veya her ikisini uygulamasına izin vermektedir.
Bluetooth Smart, Dual Mod aygıtlarının tek bir radyo antenini paylaşmasına olanak tanıyan Klasik Bluetooth ile aynı (2.4 GHz ) radyo frekansını kullanır. Bununla birlikte, LE daha basit bir modülasyon sistemi kullanmaktadır.


## Bluetooth Smart’ın Markalaşması.
2011'de Bluetooth SIG, yeni düşük enerjili cihazlar ve diğer Bluetooth cihazları arasındaki uyumluluğu netleştirmek için Bluetooth Smart markasını duyurdu.
  - Bluetooth Smart Ready hem klasik hem de düşük enerjili çevresel cihazlar ile uyumlu Dual Mod bir aygıtı gösterir.
  - Bluetooth Smart, çalışabilmesi için yalnızca Smart Ready veya başka bir Smart cihazı gerektiren düşük enerjili bir cihazı belirtir.
Yeni markalaşma bilgisiyle Bluetooth SIG temel bir değişiklik yaptı. Bluetooth Smart ve Bluetooth Smart Ready logolarını kaldırdı ve Bluetooth logosunu ve kelime markasını kullanmaya geri döndü.


## Hedef Piyasa.
Bluetooth SIG, özellikle akıllı ev, sağlık, spor ve fitness sektörlerinde düşük enerjili teknoloji pazarlarını belirlemektedir. Bahsedilen avantajlar arasında:
  - Düşük güç gereksinimi sayesinde, bir saat pili ile aylar hatta yıllar boyunca çalışır.
  - Küçük boyutlu ve düşük maliyetlidir.
  - Mobil telefonların, tabletlerin ve bilgisayarların kurulu olduğu altyapı ile uyumludur.


## Uygulamalar.
Orijinal Bluetooth özelliklerinden ödünç alan Bluetooth SIG, düşük enerjili cihazlar için bir cihazın belirli bir uygulamada nasıl çalıştığıyla ilgili birkaç profil tanımlamıştır.. Üreticilerin uyumluluğunu sağlamak amacıyla cihazları için uygun özellikleri uygulamaları beklenmektedir. Bir cihaz birden fazla profilin uygulanmasını içerebilir.
Bütün düşük enerji uygulama profilleri, düşük enerji bağlantısı üzerinden nitelik olarak bilinen kısa veri parçalarını göndermek ve almak için genel bir özellik olan genel öznitelik profiline (GATT) dayanır. Bluetooth 4.0, daha yüksek bit hızları yla düşük güç tüketimi sağlar.
2014'te Cambridge Silicon Radio (şimdi Qualcomm ’un bir parçası) CSR Mesh’i başlattı. CSR Mesh protokolü, ağdaki diğer Bluetooth Smart cihazlarla iletişim kurmak için Bluetooth Smart’ı kullanmaktadır. Her cihaz, bilgileri bir "örgü" efekti oluşturan diğer Bluetooth Smart cihazlarına iletir. Örneğin, bu sayede tüm bir tüm bir binanın ışıklarını tek bir akıllı telefondan kapatabilmektedir. Bluetooth SIG geçtiğimiz günlerde Smart Mesh çalışma grubunu, kullanım durumlarını araştırmak ve tanımlamak için bir standart belirtim tanımlamak amacıyla oluşturdu.


## Uygulama.
### Çip (Mikrodevre).
2009'un sonlarında, birçok üretici tarafından ilan edilen, Bluetooth Smart entegre uygulamaları çoğunlukla radyo yazılımı kullanır, bu yüzden özellik güncellemeleri bir yazılım (Firmware) yükseltmesi aracılığıyla yerleştirilebilir.


### Donanım.
Mevcut mobil cihazlar hem Klasik Bluetooth hem de Bluetooth Akıllı standardı için donanım ve yazılım desteği ile yaygın olarak piyasaya sürülmektedir.


### İşletim sistemleri.
  - IOS 5 ve sonrası 
  - Windows Phone 8.1 
  - Windows 8 ve sonrası 
  - Android 4.3 ve sonrası 
  - BlackBerry 10 
  - BlueZ 5.0 ile Linux 3.4 ve sonrası 
  - Unison OS 5.2 


## Tarih.
2011'de Nokia araştırmacıları, çağdaş kablosuz teknolojilerin ele almadığı çeşitli senaryoları belirledi.
Şirket, Bluetooth teknolojisi ile arasındaki farkları en aza indirirken daha düşük güç kullanımı ve maliyet sağlayan Bluetooth standardından uyarlanmış kablosuz bir teknoloji geliştirmeye başladı. Sonuçlar 2004'te “Bluetooth Low End Extension” adı altında yayınlandı.
Özellikle Logitech ve EU FP6 projesi olan MIMOSA ile daha da geliştirildikten sonra, STMicroelectronics tarafından aktif olarak teşvik edildi ve desteklendi. İlk etaplarından bu yana, teknoloji Ekim 2006'da “Wibree” markasıyla kamuya açıklandı. Bluetooth SIG üyeleri ile yapılan müzakereler sonrasında Haziran 2007'de Wibree'yi Bluetooth Spesifikasyonu'nda Bluetooth Smart teknoloji olarak bilinen ultra düşük güç teknolojisi olarak eklemek için bir anlaşmaya varıldı.
Temel özellikler 4.0 sürümüyle Bluetooth Smart'ın entegrasyonu 2010 yılının başında tamamlandı. 4.0 özelliklerini uygulayan ilk akıllı telefon Ekim 2011'de piyasaya sürülen iPhone 4S idi. Bir dizi üretici, 2012'de Bluetooth Smart Ready cihazlarını piyasaya sundu. Ardından 4 Aralık 2013'te BLE 4.1, 2 Aralık 2014'te BLE 4.2 ve 16 Haziran 2016'da BLE 5.0 sunuldu.
Yapılan geliştirmeler tabloda belirtilmiştir.
Bluetooth 5 teknik açıdan; IoT uygulamaları için Bluetooth 4 sürümlerine kıyasla önemli olabilecek;
  - Artan iletim gücünü ya da kodlanmış fiziksel katmanı kullanarak menzili 4 katına, 
  - Bluetooth 4.x'e kıyasla sembol süresinin isteğe bağlı yarısını kullanarak hızı iki katına çıkarır, 
  - Tanıtım verisi uzunluğunu artırarak veri yayın kapasitesinde, 
  - BLE yayınlarının tanıtım verisi uzunluğunu arttırarak veri yayın kapasitesinde sekiz kat artış sağlar.
Bluetooth SIG, Mesh Profile (Ağ Profili) ve Mesh Model (Ağ Modeli) özelliklerini resmi olarak 18 Temmuz 2017'de yayınladı. Mesh özellikleri, ev otomasyonu, algılayıcı ağları ve diğer uygulamalar için çoktan çoklu cihaz iletişiminde BLE kullanımına olanak tanır.
= Teknik Detaylar =


## Radyo Arayüzü.
Bluetooth Smart teknolojisi, Klasik Bluetooth teknolojisi olarak aynı spektrum aralığında çalışmaktadır (2.400-2.4835 GHz ISM bandı), ancak farklı kanal grupları kullanmaktadır. Klasik Bluetooth 79 1-MHz kanalları yerine, Bluetooth Smart'ın 40 2-MHz kanalı vardır. Bir kanalda, veriler Klasik Bluetooth'un Temel Hız düzenine benzer şekilde Gauss frekans kayması modülasyonu kullanılarak iletilir. Bit hızı 1 Mbit/s'dir ve maksimum gönderim gücü 10 mW'dır. Daha fazla ayrıntı, Bluetooth Çekirdek spesifikasyonu V4.0'ın Cilt 6 Bölüm A'da (Fiziksel Katman Spesifikasyonu) verilmiştir.
Bluetooth Smart, dar bant girişim problemlerine karşı koymak için frekans atlaması yapmaktadır. Klasik Bluetooth da frekans atlamasını kullanır, ancak ayrıntılar farklıdır. Sonuç olarak hem FCC hem de ETSI Bluetooth teknolojisini bir FHSS şeması olarak sınıflandırırken, Bluetooth Smart, dijital modülasyon teknikleri veya doğrudan dizi yayma spektrumu kullanan bir sistem olarak sınıflandırılmıştır.


## GAP.
GAP Generic Access Profile'in (Genel Erişim Profili) kısaltılmasıdır ve Bluetooth'un bağlantılarını ve yayınlarını (advertisement) kontrol eder. GAP cihazı dış dünyaya görünür yapar ve iki cihazın birbirleriyle nasıl etkileşimde bulunabileceğini veya bulunamayacağını belirler.


### Cihaz Rolleri.
GAP cihazlar için çeşitli roller tanımlar ve genel mimari özelinde iki rol bunlardan en önemlisidir. Bunlar Merkezi Cihazlar ve Çevresel Cihazlardır.
  - Çevresel cihazlar (peripheral devices), çok daha güçlü bir merkezi cihaza bağlanabilen, küçük, düşük güçte, kaynağı kısıtlı aygıtlardır. Çevresel cihazlar kalp atış monitörü (heart rate monitor), BLE etkin yakınlık etiketi (BLE enabled proximity tag) vb. örnek verilebilir.
  - Merkezi cihazlar (central devices), genellikle çok daha fazla işlem gücü ve hafızasıyla örnek olarak mobil telefon ya da tabletlerdir.


### Yayın (Advertisement) ve Tarama Cevap (Scan Response) Verileri.
BLE cihazları, yayın tanıtım paketlerine dayalı bir süreçle tespit edilir.
GAP ile çevreye yayın yapabilmenin iki yolu vardır. Bunlar, Yayın Verisi yükü (Advertisement Data Payload) ve Tarama Cevabı yükü (Scan Response Payload)dür.
Bu her iki yük de benzerdir ve maksimum 31 bayt veri içerebilir. Yüklerden tanıtım verisinin kullanılması menzil içindeki merkezi cihazların onun varlığının bilmesine izin vermek için zorunlu kılınmıştır. Tarama cevabının yükü isteğe bağlı, merkezi cihazların talep edebildiği ve cihaz tasarımcılarına bir aygıt adı vb. için bir dize daha fazla bilgi sığdırmak amacıyla izin verebildiği ikinci bir yüktür.


### Tanıtım Süreci.
Aşağıdaki diyagram tanıtım sürecini, tanıtım ve tarama cevap yüklerinin nasıl çalıştığını açıklamaktadır.
Bir çevresel cihaz, özel bir tanıtım aralığı (advertisement interval) belirler ve bu aralık sıklığında ana tanıtım paketini yayınlar. Bu aralık, güç tüketimi ve duyarlılık gereksinimleri düşünülerek uygulamaya özel seçilebilir, örneğin 2s'de bir tanıtım paketi yayınlayan bir cihaz, 20ms'de bir tanıtım paketi yayınlayan cihaza göre daha az güç tüketir fakat duyarlılığı da 20ms yayına göre daha azdır.
Eğer bir başka cihaz çevreyi tarıyor ise isteğe bağlı olarak ortamdaki cihazların tarama cevap yükünü talep edebilir böyle bir durumda çevresel cihaz tanıtım paketi ile birlikte tarama cevap yükünü de iletecektir.


### Yayın Ağı Topolojisi.
Çevresel cihazların çoğu kendilerini tanıtmaktadır ve bu sayede onlar ile bir bağlantı kurulabilir ve GATT servisleri ve karakteristikleri kullanılabilir (Çok daha fazla verinin değiş tokuş edilmesine ve her iki yönde de kullanılmasına olanak tanır) ayrıca sadece verilerin yayınlarının yapılmasının istendiği durumlar da vardır.
Buradaki ana kullanım bir çevresel aygıtın aynı anda birden fazla aygıta veri gönderilmesinin istenmesidir. Bu sadece tanıtım paketini yayınlayarak mümkün olabilir çünkü bağlı mod'da (peer2peer connected) gönderilen ve alınan veriler yalnızca bu bağlı iki cihaz tarafından görülebilmektedir.
31 byte tanıtımda küçük miktarda özel veri ekleyerek ya da alttaki örnekte gösterdiği gibi menzildeki herhangi bir cihaza tek yönlü veri gönderen tarama cevap yükleriyle BLE çevresel aygıtı kullanılabilir. Bu BLE yayınlama (advertisement) olarak bilinir.
Bu yaklaşım Apple'ın iBeacon'u tarafından kullanılmaktadır. Bu örnekte iBeacon ana tanıtım paketine özel yükler ekleyerek "Manufacturer Specific Data Field”i (Özel Üretici Veri Alanı) kullanır.
Çevresel ve merkezi cihazların arasında bir bağlantı kurulduğu zaman genellikle yayın süreci durur (yayın paketleri çevreye yayınlanmaz) ve her iki yönde de iletişim kurmak için GATT servisleri ve karakteristikleri kullanılır.


## GATT.
Generic Attribute Profile (GATT) iki BLE cihazının Servisler (Services) ve karakteristikler (Characteristics) adı verilen kavramları kullanarak verileri aktarma biçimini tanımlar. Tablosundaki her bir girdi için 16 bitlik kimlik bilgileri kullanarak basit bir arama tablosunda Servisler, Karakteristikler ve ilgili verileri depolamak için kullanılan Attribute Protocol (ATT) adlı genel bir veri protokolünü kullanır.
GAP tarafından yönetilen yayın süreci tamamlandıktan sonra GATT, iki cihaz arasında özel bir bağlantı kurulduğunda devreye girer.
GATT ve bağlantılar ile akılda tutulması gereken en önemli nokta bu bağlantıların özel olmasıdır. Bir BLE çevresel cihazı tek seferde sadece bir merkezi cihaza (mobil telefon, vb.) bağlanabilir, ayrıca bağlanır bağlanmaz tanıtımın kendiliğinden sona ereceği ve diğer aygıtların mevcut bağlantı kesilene kadar onu göremeyeceği veya ona bağlanamayacağı anlamına gelir.


### Bağlı Ağ Topolojisi.
Aşağıdaki diyagram, BLE aygıtlarının bağlı bir ortamda çalışma biçimini açıklamaktadır. Bir çevresel cihaz tek seferde sadece tek merkezi cihaza (mobil telefon) bağlanabilir ancak merkezi cihaz birden çok çevresel cihaza bağlanabilmektedir.
İki çevresel arasında veri alışverişi gereksiniminde mesajların bir merkezi cihaz üzerinden geçmesi gerekmektedir.
Ancak, çevresel ve merkezi bir cihaz arasında bağlantı kurulduktan sonra, iletişim yalnızca tanıtım verilerini ve GAP'ı kullanan tek yönlü yayın yaklaşımından farklı olarak her iki yönde de gerçekleşebilir.


## GATT İşlemleri.
GATT işlemlerinde önemli bir konsept sunucu-istemci ilişkisidir.
Çevresel cihaz ATT arama verilerini servisler ve karakteristikler tanımlarını tutan GATT sunucusu ve bu sunucuya istek gönderen GATT istemcisi (telefon / tablet) olarak tanımlanır.
Tüm işlemler Master (Ana Cihaz), Slave (Bağımlı Cihaz) GATT sunucusundan yanıt alan GATT istemcisi, tarafından başlatılır.
Bir bağlantı kurarken çevresel cihaz merkezi cihaza bir bağlantı aralığı önerir ve merkezi cihaz yeni bir veri mevcut olup olmadığını görmek için her bağlantı aralığında yeniden bağlanmaya çalışır. Ancak bu bağlantı aralığı yalnızca bir öneridir. Merkezi cihazın bu talebi kabul etmesi mümkün olmayabilir çünkü diğer çevresel cihazlarla konuşmakta olabilir.
Aşağıdaki diyagram Ana cihaz her seferinde işlem başlatırken çevresel cihaz (GATT Sunucusu) ile Merkezi cihaz (GATT İstemcisi) arasındaki veri alışveriş sürecini göstermektedir:


### Servisler ve Karakteristikler.
BLE'deki GATT işlemleri, aşağıdaki çizimde de görüldüğü gibi Profiller, Servisler ve Karakteristikler isimli yüksek düzeyde iç içe geçmiş nesnelere dayanır:


### Profiller (Profiles).
Profiller olası BLE uygulamalarının tanımlamalarıdır ve BLE özellikli cihazların diğer BLE cihazlarıyla iletişim kurmak için kullandıkları genel davranışları belirtir. Bir profil aslında BLE çevresel cihazının kendisinde mevcut değildir. Bluetooth SIG veya çevresel tasarımcılar tarafından derlenen önceden tanımlanmış Servisler koleksiyonudur. Profiller bir BLE modülünün hangi veri türlerini ilettiğini daha açık bir şekilde tanımlamak için Bluetooth standardı üzerine kurulmuştur. Cihazın uygulaması, ahizesiz yetenekler (hands-free capabilities)den kalp atış hızı sensörlerine, uyarılara ve daha fazlasına kadar hangi profilleri desteklemesi gerektiğini belirler.


#### Sağlık profili.
Sağlık uygulamalarında Bluetooth Smart cihazlar için birçok profil bulunmaktadır. “Continua Health Alliance” konsorsiyumu, bunları Bluetooth SIG ile iş birliği içinde desteklemektedir.
  - BLP (Blood Pressure Profil): kan basıncı ölçümü için.
  - HTP (Health Thermometer Profile): tıbbi sıcaklık ölçüm cihazları için.
  - GLP (Glucose Profile): kan şekeri monitörleri için.
  - CGMP (Continuous Glucose Monitor Profile) 


#### Spor ve fitness profilleri.
Spor ve fitness aksesuarları için profiller şunlardır:
  - BCS (Body Composition Service)
  - CSCP (Cycling Speed and Cadence Profile): Ritimleri ve tekerlek hızını ölçmek için bir bisikletin veya egzersiz bisikletine bağlı sensörler için.
  - CPP (Cycling Power Profile)
  - HRP (Heart Rate Profile): kalp atış hızını ölçen cihazlar için
  - LNP (Location and Navigation Profile)
  - RSCP (Running Speed and Cadence Profile)
  - WSP (Weight Scale Profile)


#### İnternet Bağlantısı.
  - IPSP (Internet Protocol Support Profile)


#### Genel Sensörler.
  - ESP (Environmental Sensing Profile)
  - UDS (User Data Service)


#### HID Bağlantısı.
  - HOGP (HID over GATT Profile): Bluetooth LE özellikli kablosuz fareler, klavyeler ve uzun ömürlü pil ömrü sunan diğer cihazlara izin verir.


#### Yakınlık algılama.
"Elektronik tasma" uygulamaları, “her zaman açık” cihazlarda mümkün olan uzun pil ömrü için oldukça uygundur. iBeacon cihazlarının imalatçıları, Apple Inc. uyumlu iDevices tarafından desteklenen yakınlık algılama özelliklerini kullanmak amacıyla cihazları için uygun özellikleri uygulamaktadırlar. İlgili uygulama profilleri şunları içerir:
  - FMP "Find Me" profili bir cihazın ikinci yeri bilinmeyen bir cihazda uyarı yayınlamasına izin verir.
  - PXP “Proximity” profili bir kullanıcının yakın bir aralıkta olup olmadığını algılanmasını sağlar. Fiziksel yakınlık radyo alıcısının RSSI değerini kullanarak tahmin edilmektedir, fakat mesafelerin mutlak bir kalibrasyonu olmamaktadır. Tipik olarak, aygıtlar arasındaki mesafe belirli bir eşiği aştığında bir alarm verilebilir.


#### Uyarılar ve zaman profilleri.
  - Telefon uyarı durumu profili ve uyarı bildirim profili, bir istemci aygıtının gelen çağrı uyarıları gibi başka bir aygıttaki bildirimleri almasına izin verir.
  - Zaman profili, bir istemci cihazdaki geçerli saat ve saat dilimi bilgilerini, bir el cihazını ve bir cep telefonunun şebeke zamanı gibi bir sunucu cihazından ayarlanmasını sağlar.


### Servisler (Services).
Hizmetler verileri mantıksal yapılara ayırmak için kullanılır ve karakteristikler adı verilen veri yığınlarını içerir. Bir servis bir veya daha fazla karakteristiğe sahip olabilir ve her servis kendisini, 16-bit (resmi olarak kabul edilen BLE Servisleri için) veya 128-bit (Özel Servisler için) olabilen, benzersiz bir sayısal kimliğe (UUID) bürünerek diğer servislerden ayırır.
Örneğin nabız servisinde, SIG tarafından kabul edilen bu servisin 0x180D'lik 16 bitlik bir UUID'ye sahip olduğu ve en fazla üç karakteristik içerdiği görülebilir, ancak yalnızca ilki zorunludur: Heart Rate Measurement (Nabız Ölçümü), Body Sensor Location (Vücur Sensör Lokasyonu) and Heart Rate Control Point (Nabız Kontrol Noktası).


### Karakteristikler (Characteristics).
GATT işlemlerindeki en düşük düzey kavramı, tek bir veri noktasını kapsayan karakteristiklerdir.
Servislere benzer şekilde, her karakteristik kendisini önceden tanımlanmış bir 16-bit veya 128-bit UUID ile ayrılır. Birlikte çalışabilirliği ve BLE özellikli Donanım-Yazılım geliştiricilerine ya da sadece çevresel cihazın yazılımına uygun özel karakteristikler tanımlanabilir.
Örnek olarak, Kalp Hızı ölçümü karakteristiği kalp hızı servisi için zorunludur ve 0x2A37'lik bir UUID kullanır. Kalp hızı ölçümü veri formatını (veri UINT8 veya UINT16, vb.) tanımlayan tek bir 8 bitlik değerle başlar ve bu yapılandırma byte'ıyla eşleşen kalp atış hızı ölçüm verilerini içerir.
Karakteristik, BLE çevresel cihazları ile etkileşimde bulunacak ana noktadır. Ayrıca uygulamaya özgün karakteristikler oluşturmak mümkün olduğundan BLE çevresel cihazı için veri iletişiminde kullanılır. Özel bir ‘UART Servisi've iki karakterisik (biri TX ve diğeri RX kanalı in) ile basit bir UART arayüzü gerçeklenebilir.