ESP32 – BLE Beacon Teknolojisi

Bluetooth cep telefonu endüstirisinde yoğun olarak kullanılan oldukça popüler bir kablosuz haberleşme protokolüdür. 2001 yılında Sony Ericsson T36 modeli ilk Bluetooth bağlantıya sahip telefondu. Bluetooth bağlantıya sahip ilk laptop ise IBM tarafından piyasaya sürülen ThinkPad A30 idi. Zamanla teknoloji pazarının yeni ihtiyaçları sonucu gelişmiştir. Bluetooth, 2010 yıllarında Bluetooth 4.0 birlikte;  temel olarak düşük bataryalar tarafından enerji verilen IOT cihazlarını hedef alan yeni bir protokol olan Bluetooth Low Energy(BLE ) duyurmuştur. Bluetooth,veri transferi için kullanılan kablosuz haberleşme standartıdır. Düşük maliyetli ve düşük güç tüketimi ile avantajlıdır. Bluetooth sistemler iki bölüme ayrılmaktadır; Klasik Bluetooth ve Bluetooth Low Energy (BLE) .

Bluetooth Klasik
  • Yüksek hızlı (2Mbs)
  • Yüksek mesafe (1000m)
  • Normal güç tüketimi
  • Audio gibi yüksek hızlı uygulamalarda faydalı
BLE (Bluetooth Low Energy )
  • Düşük hızlı uygulamalarda (100 Kbps)
  • Düşük mesafelerde (250m)
  • Mükemmel güç tüketimi
  • Güç tüketimin önem kazandığı uygulamalarda
Bluedroid ve Nimble

ESP-IDF mevcut iki adet host stack desteklemektedir. Bunlardan birisi Bluedroid’dir. Bluedroid temelli stack, Klasik Bluetooth ayrıca BLE desteklemektedir. Apache NimBLE temelli stack sadece BLE desteklemektedir. BLE ile yapılacak uygulamalarda NimBLE kullanılması önerilmektedir. NimBLE, daha az kod (code footprint )kaplamaktadır.

 

Bluetooth Bağlantı Sırası

 

Bluetooth Stackları

Bluetooth sahip olduğu temel stacklar aşağıdaki gibidir.

  • Controller; Link Layer ve Phy Layer radyo bağlantı, iletimle ilgili görevlerden sorumludur.
  • Host; L2CAP,CMP,GAP, ATT ve GATT gibi layerler ile geçrek dataya erişme, yeni BLE cihaz keşfetmek için kullanılan stackdir.
  • Host-Controller Interface; Host ile Controller arasındaki iletişim kurmayı sağlayan arabirimdir.
  • Application; Gerçek kodun bulunduğu kısımdır.

 

Bluetooth Stack

 

  • Texas Instrument’dan CC256x sadece controller ve HCI arayüzü içeren çipdir.
  • Espressif  firmasından ESP32 ve Nordic Semiconductor firmasından NRF5xxxx ürünleri System on Chip ürünlerine örnektir. Harici IC gerek kalma

Bluetooth 5 , 16 Haziran 2016 yılında duyurulmuştur. Ama şuan kullandığımız ESP32 modulü Bluetooth 4.2’yi desteklemektir. Bluetooth 5 ile Bluetooh 4.2 arasındaki farklar aşağıdaki gibidir.

  • Bluetooth 5, 2 Mbps hızıyla Bluetooth 4.2‘nin sahip olduğu 1 Mbps ‘den iki kat daha fazladır.
  • Bluetooth 4.2 , iç ortamda 10 metreye kadar mesafeye kadar destek verirken, dış mekanda 50 metreye kadar destek vermektedir. Bluetooth 5, iç ortamda 40 metreye kadar mesafeye kadar destek verirken, dış mekanda 200 metreye kadar destek vermektedir.
  • Bluetooth 5, Bluetooth 4′den daha az enerji tüketmektedir.
  • Bluetoot5, v1, v2, v3, v4, v4.1 ve versiyon 4.2‘de desteklemektedir. Ama tüm özellikleri bu versiyonlarda kullanılamaz.
  • Bleutooth 5’de message frame 255 byte iken, Bluetooth 4.2’de 31 byte‘dır.

Beacon

Farklı Beacon türleri bulunmaktadır bunlar ; iBeacon (Apple), Eddystone ( Google) , Altbeacon ( Radius Networks), GeoBeacon(Techno World).iBeacon, Bluetooth Low Energy (BLE) cihazları keşfetmek amaçlı  Apple tarafından 2013 yılında Apple Worlwide Developers Conference’da duyurulan koblosuz haberleşme protokolüdür. 2015 yılında Eddystone ile birlikte 2015 yılındaGoogle, beacon teknolojisine giriş yapmıştır.iBeacon ve Eddystone, android veya iOS kullanılarınada hitap etmektedir. Beacon cihazlar yayın yaptığı cihazlarla arasında geri dönüş haberleşme kanalı mevcut değildir. Beacon teknolojisinde batarya ömrü BLE’den dolayı 1-4 yıl arasında gitmektedir.

iBeacon

Basit Örnek: iBeacon, kapalı çarşıda dükkanı esnaf  gibi  dükkanın önünde bekleyip kendisine iyi müşteri olabileceğini düşündüğü (ID uyumlu) yabancılara hemen seslenip ona ürünü tanıtma gibi düşünülebilir.

iBeacon Kullanımı
  • Bir sevdiğiniz markanın mağazasına girdiğinizi düşünün Telefonunuza bir mesaj geliyor. Bu mesaj içeriği ise ” Laptoplar’da ve ekipmanlarında  %25 varan indirim başladı”. Bu sistem iBeacon ile gerçekleşmektedir.
  • Havaalanlarında bavul takibi.
  • Müzeler de ziyaretçiler için eğitimi ve bilgi için interaktif ortam yaratmada kullanılabilir.
  • Ev otomasyonu teknolojisinde Beacon’lar mekan yönetimini yapmak amaçlı Wi-Fi ve kontrol paneli ihtiyacı duyulmadan kullanılabilir. Örnek: Uzaktan lambayı açıp kapatma.
  • Kapalı alanda navigasyon olarak kullanılma imkanı sağlamaktadır.

Her iBeacon transmitter bir iBeacon ID’sine sahiptir. Telefonda bu mağazaya ait uygulama da ID olunca, telefon ile iBeacon eşleşmektedir ve bildiri gelmektedir. BLE, ile lokasyon temelli uygulamalarda kullanılabilir; doğruluğu 0.53m’dir. 9x10m2 alanda çalışabilir.

  • Android mobil telefonlarda, Anroid 4.3 ile birlikte iBeacon desteklemeye başlamıştır.
  • Apple’nın mobil telefonlarda, iOS7 ile birlikte iBeacon destekleme başlamıştır.

BLE’de fonksiyonların  çalışmasından önce , Host ile Controller arasında sekronizasyonun sağlanması gerekmektedir. Bundan dolayı ble_hs_cfg.sync_cb isimli callback Nimble’da tanımlanmaktadır.

iBeacon Transmitteri kurmak için aşağıdaki ble_app_on_sync( ) iki adet fonksiyon çağırır.

Bir BLE cihazı birşeyler yapabilmek için adrese ihtiyaç duyar. Bazı cihazlarda henel bir bluetooth adresi vardır, ancak bu her zaman olmayabilir. Güvenilir çözüm olarak her çalıştığında non-resolvable private address (nRPA) oluşturmaktır.

ble_app_set_addr() fonksiyonu içerisinde çağrılan iki stack;

ble_hs_id_gen_rnd:  6 Byte’lık non-resolvable private address (nRPA) oluşturmak için kullanılan stack.

ble_hs_id_set_rnd: yeni oluşturulan adresi kullanmak için NimBLE konfigüre et.

 

iBeacon Data

UUID (Universally unique identifier) : 16 byte’lık veri olan UUID yukarıda örneği verilen mağaza örneğinde mağazalara sahip markanın tüm iBeacon’larına aynı UUID kullanılmaktadır. UUID üretmek için aşağıdaki linkden faydalanabilirsiniz.

Major: 2 byte’lık veridir. Markanın her bir mağazası için ayrı verilmektedir.

Minor: 2 byte’lık veridir. Markanın mağazasında vitrin için kullanılan bilgidir.

TX: Cihazın iBeacon ne kadar uzakta olduğunun bilgisini içermektedir.

Online UUID Generator için tıklayınız.

BLE Scanner : Telefonumuza indireceğimiz bu uygulamayla birlikte çevremizdeki beacon cihazları keşfedebilir. Onlarla ilgili her detayı öğrenebiliriz. Aşağıdaki görsel de ESP32’de yazımını gerçekleştirdiğimiz kodun Android için uygulama olan Beacon Scanner’da görüntüsü.

Beacon Scanner
Eddystone

ESP32’de BLE Eddystone ile URL yayını yapılabilmektedir. Google , Android ve iOS için  google chrome için fiziksel web desteğini çekti. Bu durumdan dolayı google chrome’da artık fiziksel web aracığıyla URL bildirisi gelmemektedir. Bu sebeple çevrenizdeki Beacon’lardan bildiri almak için PhysicalWeb android uygulamasını indirebilirsiniz.

3 advertising paket formata sahiptir:
Eddystone-UID:  iBeacon’a benzemektedir (opaque unique identifier), ama farklı ID yapısına sahiptir.
Eddystone-URL:  URL iletir (Uniform Resource Locator)
Eddystone-TLM: Beacon’ın dahili telemetry data  iletir (batarya voltajı, sıcaklık)

Eddystone Logo

PhysicalWeb

Bu yazı hakkında ne düşünüyorsun ?
  • Gereksiz 
  • Normal 
  • Faydalı 
  • Müthiş 
Sidar ATABEY

About Sidar ATABEY

Elektrik-Elektronik Mühendisi. Makine Mühendisliğinde yan dal programını tamamladı. 1 sene boyunca Erasmus Programı kapsamında Polonya Silesian University of Technology'de eğitim gördü.

View all posts by Sidar ATABEY →