Kütüphane
ArduinoBLE
ArduinoBLE Kütüphanesi
Bu kütüphane, donanım BLE ve Bluetooth 4.0 ve üstü için etkinleştirilmiş tüm Arduino kartlarını destekler; bunlar Nano 33 BLE, Arduino NANO 33 IoT , Uno WiFi Rev 2, MKR WiFi 1010'u içerir. BLE'ye hızlı bir girişBluetooth 4.0'da artık "Bluetooth Classic" olarak etiketlenmiş geleneksel Bluetooth ve Bluetooth Düşük Enerji (Bluetooth LE veya BLE) bulunur. BLE, düşük veri hızlarında düşük güç kullanımı için optimize edilmiştir ve basit lityum madeni para büyüklüğündeki pillerden çalışmak üzere tasarlanmıştır. Temel olarak eşzamansız seri bağlantıya (UART) dayanan standart bluetooth iletişiminden farklı olarak, Bluetooth LE telsizi bir topluluk bülten tahtası gibi davranır. Bağlanan bilgisayarlar, bülten tahtasını okuyan topluluk üyeleri gibidir. Her radyo ya bülten tahtası ya da okuyucu görevi görür. Telsiziniz bir bülten panosuysa (Bluetooth LE parlance cihazında çevresel aygıt olarak adlandırılır), topluluktaki tüm radyoların okuması için veri gönderir. Telsiziniz (Blueooth LE terimlerinde merkezi cihaz olarak adlandırılır) bir okuyucu ise, umurunda olduğu bilgilere sahip olan bülten panolarından (çevre aygıtları) herhangi birinden okur. Ayrıca, çevre aygıtları bir istemci-sunucu işlemindeki sunucular olarak düşünebilirsiniz, çünkü bunlar okuyucu radyoların istediği bilgileri içerir. Benzer şekilde, merkezi cihazlar Bluetooth LE dünyasının istemcileridir, çünkü çevre birimlerindeki bilgileri okurlar. Bir Bluetooth LE çevrebirim aygıtını bir bülten tahtası ve merkezi cihazları kartın izleyicisi olarak düşünün. Merkezi cihazlar hizmetleri görüntüler, verileri alır, sonra devam eder. Her işlem hızlıdır (birkaç milisaniye), bu nedenle birden çok merkezi cihaz bir çevre biriminden veri alabilir. Bir çevre birimi tarafından sunulan bilgiler, her biri karakteristiklere ayrılmış olan hizmetler olarak yapılandırılmıştır. Hizmetleri, bir bülten tahtasındaki bildirimler ve özellikleri, bu bildirimlerin ayrı ayrı paragrafları olarak düşünebilirsiniz. Çevresel bir cihazsanız, her servis özelliğini güncellenmesi gerektiğinde güncellersiniz ve merkezi cihazların bunları okuyup okumadıkları konusunda endişelenmeyin. Merkezi bir cihazsanız, çevre birimine bağlanın ve istediğiniz kutuları okuyun. Belirli bir özellik okunabilir ve yazılabilirse, çevresel ve merkezi her ikisini de değiştirebilir. bildirmekBluetooth LE spesifikasyonu, verilerin ne zaman değiştiğini size bildiren , bildirim olarak bilinen bir mekanizma içerir. Bir özelliğe ilişkin bildirim etkinleştirildiğinde ve gönderen kendisine yazdığında, yeni değer, alıcı açıkça bir okuma komutu vermeden otomatik olarak alıcıya gönderilir. Bu genellikle ivmeölçer veya diğer sensör okumaları gibi veri akışı için kullanılır. Bu belirtimde benzer şekilde çalışan belirtme denilen bir varyasyon vardır, ancak belirtim belirtiminde okuyucu, aktarılan verilerin bir bildirimini gönderir. Bluetooth LE'nin istemci-sunucu yapısına, bildirim özelliği ile birlikte genellikle yayınlama ve abone olma modeli denir. Bir özelliği güncelleyinÇevre biriminiz, önemli bir değişiklik olduğunda özellikleri güncellemelidir. Örneğin, bir anahtar kapalı konumdan açık konuma değiştiğinde, özelliğini güncelleyin. Bir analog sensör önemli miktarda değiştiğinde, karakteristiğini güncelleyin. Bir karakteristiğe yazarken olduğu gibi, karakteristiklerinizi düzenli aralıklarla güncelleyebilirsiniz, ancak karakteristik değişmediyse bu işlem gücünü ve enerjisini boşa harcar. Merkezi ve Çevresel AygıtlarMerkezi cihazlar istemcilerdir . Çevresel cihazlardan veri okur ve yazarlar. Çevresel cihazlar sunuculardır . Sensörlerden okunabilir karakteristikler olarak veri sağlar ve motorlar, ışıklar ve benzeri aktüatörleri kontrol etmek için okunabilir / yazılabilir özellikler sağlarlar. Hizmetler, özellikler ve UUID'lerBir BLE çevre birimi hizmetler sunacak ve bu da özellikler sağlayacaktır. Kendi hizmetlerinizi tanımlayabilir veya standart hizmetleri kullanabilirsiniz. Hizmetler, UUID olarak bilinen benzersiz numaralarla tanımlanır. UUID'leri başka bağlamlardan biliyorsunuz. Standart hizmetlerde 16 bit UUID ve özel hizmetlerde 128 bit UUID bulunur. Servisleri ve özellikleri tanımlama yeteneği, kullandığınız radyoya ve ürün yazılımına bağlıdır. Hizmet tasarımı modelleriKarakteristik bir değer 512 bayta kadar olabilir. Bu, hizmetlerin tasarımında önemli bir kısıtlamadır. Bu sınır verildiğinde, uygulamanız için sensörleriniz ve aktüatörleriniz hakkındaki verilerin en etkili şekilde nasıl saklanacağını düşünmelisiniz. En basit tasarım deseni, karakteristik başına bir sensör veya aktüatör değerini ASCII kodlu değerlerde saklamaktır.
Bu aynı zamanda bellek açısından en pahalı olanıdır ve okunması en uzun süredir. Ancak geliştirme ve hata ayıklama için en basit olanıdır. Belirli bir sensör veya aktüatör ile ilişkili birden fazla değer olduğunda, okumaları tek bir karakteristikte birleştirebilirsiniz.
Bu daha verimlidir, ancak 512 bayt sınırını aşmamaya dikkat etmeniz gerekir. Yukarıdaki ivmeölçer özelliği, örneğin ASCII kodlu dize olarak 11 bayt alır. Okuma / yazma / işaret / bildirmekMerkezi bir cihazın karakteristik bir şekilde yapabileceği 4 şey vardır:
Reklamcılık ve GAPBLE cihazları, diğer cihazların Genel Reklam Profili'ni (GAP) kullanarak reklam vererek var olduklarını bilmelerini sağlar. Reklam paketleri bir cihaz adı, başka bilgiler ve sağladığı hizmetlerin bir listesini içerebilir. Reklam paketlerinin boyutu sınırlıdır. Pakete yalnızca tek bir 128 bit hizmet UUID'sini sığdırabileceksiniz. Cihaz adının çok uzun olmadığından emin olun, aksi takdirde buna sığmazsınız. Reklamı yapılmayan ek hizmetler sağlayabilirsiniz. Merkezi cihazlar bunları bağlantı / yapıştırma işlemi yoluyla öğrenecektir. Ancak, reklamı yapılmayan hizmetler cihazları bulmak için kullanılamaz. Bazen bu bir sorun değildir. Örneğin, özel bir hizmete sahip özel bir çevresel aygıtınız olabilir, ancak merkezi aygıt uygulamanızda Pil Hizmetini ve diğer hizmetleri de sağladığını biliyor olabilirsiniz. GATTBluetooth LE protokolü birden çok katman üzerinde çalışır. Genel Öznitelik Profili (GATT) , hizmetleri ve özellikleri tanımlayan ve bunlarda okuma / yazma / bildirme / belirtme işlemlerini etkinleştiren katmandır. GATT hakkında daha fazla bilgi alırken, bir "sunucu" ve "istemci" GATT kavramlarıyla karşılaşabilirsiniz. Bunlar her zaman merkezi ve çevre birimlerine karşılık gelmez. Bununla birlikte, çoğu durumda, çevre birimi GATT sunucusudur (hizmetleri ve özellikleri sağladığı için), merkezi GATT istemcisidir. Kütüphane YapısıKütüphane birden fazla işlevsellik türünü etkinleştirdiğinden, birkaç farklı sınıf vardır.
| BLE sınıfıBLE modülünü etkinleştirmek için kullanılır.
BLEDevice SınıfıTarama sırasında bağlı veya keşfedilen cihazlar hakkında bilgi almak için kullanılır
BLEService SınıfıHizmetler anakartının sağladığı hizmetleri etkinleştirmek veya uzak anakartın sağladığı hizmetlerle etkileşim kurmak için kullanılır.
BLEC Karakteristik SınıfKartın bir hizmette sunduğu özellikler özelliğini etkinleştirmek veya uzak bir kartın sağladığı özelliklerle etkileşim kurmak için kullanılır.
BLEDescriptor SınıfıTahtanın sunduğu bir özelliği tanımlamak için kullanılır |