11.1. Bluetooth Neden Kullanılır¶
Ağ kullanımı, kamerayı bir Wi-Fi veya Ethernet ağına bağlayarak oradan erişilebilen her şeyle iletişim kurabilmesini sağlar. Koridorun sonundaki bir dizüstü bilgisayar, başka bir kıtadaki bir sunucu, hücresel ağda dolaşan bir telefon. Ancak bu erişim bazı ön koşullarla gelir. Bir ağın var olması gerekir. Menzil içinde bir erişim noktası bulunmalı, bazı kimlik bilgileri mevcut olmalı, bir yönlendirici kameraya bir adres atamaya razı olmalıdır. Kamera ayrıca bağlantıyı sürdürebilmek için telsizi (veya Ethernet bağlantı noktasını) yeterince yoğun çalışır durumda tutmalıdır.
Bluetooth ise tam tersi durumu kapsar: kısa menzil, altyapı gerektirmez, düşük güç. Kamera ile aynı odadaki bir telefon, aralarında hiçbir şey olmadan doğrudan bir telsiz bağlantısı üzerinden veri alışverişi yapar. Erişim noktası yok, yönlendirici yok, her iki tarafın da herhangi bir ağda olmasına gerek yok. Telsiz, kısa etkinlik patlamaları arasında çoğunlukla kapalı kalır; böylece Wi-Fi ile zar zor bir gün dayanabilecek bir pil aylarca çalışabilir.
11.1.1. Bluetooth’un doğru araç olduğu durumlar¶
Bir kamerada yaygın olan durumlar:
Bir telefon veya tablet kamerayla eşleşir. Yakındaki bir kullanıcı telefonunda bir uygulama açar ve kamerayı yapılandırır, durumunu okur veya sonuçları indirir; bunu yapmak için önce her iki cihazı aynı Wi-Fi ağına bağlamak zorunda kalmaz. Çoğu telefon Bluetooth Low Energy’yi yerel olarak destekler, dolayısıyla kullanıcı deneyimi “önce bu ağa katıl” değil, “uygulamayı aç, bağlan’a bas” şeklindedir.
Giyilebilir bir cihaz veya sensör kameraya rapor verir. Bir nabız bandı, bir termometre, bir işaret vericisi, bir kontak anahtarı; bunların hepsi Bluetooth Low Energy etrafında tasarlanmış pille çalışan cihazlardır. Kamera bir istemci olarak bağlanır, değerlerini okur ve verileri yaptığı diğer işlere katar.
Kamera küçük bir durum akışı yayınlar. Pil seviyesi, en son tespit edilen nesne, kare hızı; bunları okumak isteyen yakındaki herhangi bir cihaz için açığa çıkarılmış birkaç sayı. Eşleşme isteğe bağlıdır; hassas olmayan veriler için kamera, hiçbir bağlantıya gerek kalmadan değerleri doğrudan yayınlayabilir.
İki kamera (veya bir kamera ile bir mikrodenetleyici) ağ olmadan veri paylaşır. Her iki uç birbirini tanır; her iki uç aynı binadadır; odanın bir ucundan diğerine geçmek için baytların buluta gidip geri dönmesi için hiçbir neden yoktur.
11.1.2. Bunun yerine ağ kullanımının doğru araç olduğu durumlar¶
Bluetooth’un yaptığı ödünleşmeler birkaç yaygın durum için yanlıştır:
Menzil dışındaki muhataplar. Bluetooth Low Energy pratikte birkaç metredir, boş alanda en iyi ihtimalle onlarca metredir. Bir binanın öbür ucundaki, şehrin öbür ucundaki veya internetin öbür ucundaki herhangi bir şey Wi-Fi veya Ethernet gerektirir.
Yüksek bant genişlikli bağlantılar. Bluetooth Low Energy pratikte saniyede onlarca ila birkaç yüz kilobit sağlar. Kareleri akışla göndermek veya anlamlı herhangi bir video Wi-Fi gerektirir.
Paylaşılan altyapı üzerinde çoktan-çoğa grup iletişimi. Hepsi tek bir sunucuyla konuşan bir oda dolusu cihaz veya sonuçları paylaşan bir kamera örgüsü; bu desen tam olarak bir IP ağının yapıldığı şeydir.
11.1.3. Klasik değil, Low Energy¶
Günlük kullanımda “Bluetooth” iki farklı telsiz yığınını kapsar. Klasik Bluetooth, kablosuz kulaklıklarda, araç içi seste ve klavye/fare bağlantılarında bulunandır: ses kalitesinde bir telsiz, görece karmaşık bir yığın ve göze çarpan bir güç tüketimi. Bluetooth Low Energy (BLE), marka adını ve 2.4 GHz bandını paylaşan ancak bunun dışında çok az şeyi paylaşan ayrı, daha yeni bir protokoldür. Ortalama gücü çok küçük tutmak için kısa, seyrek telsiz patlamaları etrafında ve akışlı ses yerine bir anahtar/değer veri modeli etrafında kurulmuştur.
Kameradaki MicroPython yalnızca BLE’yi destekler. Klasik Bluetooth API’nin hiçbir parçası değildir. Aşağıda “Bluetooth” BLE anlamına gelir.
11.1.4. Ağ modelinden neler değişir¶
BLE, ağ kullanımının sahip olduğu aynı beş katmanlı yığına sahiptir, ancak üst katmanlar farklı davranır:
“Bir soket aç ve bayt gönder” soyutlaması yoktur. BLE, bir tarafın barındırdığı ve diğer tarafın okuduğu, yazdığı veya abone olduğu küçük bir anahtar/değer veritabanı etrafında kurulmuştur. Kamera adlandırılmış değerler yayınlar (bir pil seviyesi, bir sıcaklık, bir komut yazmacı); eş bunları okur veya izler.
Ada göre adresleme yoktur. Cihazlar, kim olduklarını açıklayan kısa bir yayın reklamı yaparak (advertising) kendilerini tanıtır; eşler bu yayınlar için tarama (scan) yapar ve bağlanmak üzere birini seçer.
Telsiz çoğunlukla boştadır. Her iki uç da bağlantı sırasında ne sıklıkla uyanıp konuşacağı konusunda anlaşır. Aralarda her ikisi de tekrar uyku moduna geçer.
Bu üç fark, BLE API’nin geri kalanını soket modelinden uzaklaştıran şeydir.