CurieBLE

CurieBLE library

Arduino / Genuino 101 ile bu kütüphaneyi kullanarak akıllı telefonlar ve tablet gibi diğer cihazlarla iletişim kurmak ve etkileşim kurmak için BLE özelliklerini kullanmak mümkündür.

Bu kütüphaneyi kullanmak için
#include < CurieBLE .h>

BLE'ye hızlı bir giriş

Bluetooth 4.0 hem şimdi "Bluetooth Classic" olarak etiketlenmiş geleneksel Bluetooth'u ve yeni Bluetooth Düşük Enerji'yi (Bluetooth LE veya BLE) içerir. 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.

bildirmek

Bluetooth 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ıtlar

Merkezi 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'ler

Bir 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ı modelleri

Karakteristik bir değer 20 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.

karakteristik değer
İvmeölçer X 200
İvmeölçer Y 134
İvmeölçer Z 150

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.

karakteristik değer
Motor Hızı, Yön 150,1
İvmeölçer X, Y, Z 200133150

Bu daha verimlidir, ancak 20 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 / bildirmek

Merkezi bir cihazın karakteristik bir şekilde yapabileceği 4 şey vardır:

  • Read: ask the peripheral to send back the current value of the characteristic. Often used for characteristics that don't change very often, for example characteristics used for configuration, version numbers, etc.
  • Write: modify the value of the characteristic. Often used for things that are like commands, for example telling the peripheral to turn a motor on or off.
  • Indicate and Notify: ask the peripheral to continuously send updated values of the characteristic, without the central having to constantly ask for it.

Reklamcılık ve GAP

BLE 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.

GATT

Bluetooth 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.

  • BLEPeripheral used to enable the BLE module
  • BLEDescriptor that prepares the functions that the board will show
  • BLECentral that represent the device the board is connected to
  • BLECharacteristic used to enable the characteristics board offers
  • BLEService used to enable the services board provides

Örnekler


Son düzeltme 2019/12/24 by SM

BLEPeripheral sınıfı

BLEDescriptor sınıfı

Tanımlayıcılar, karakteristik bir değeri tanımlayan tanımlanmış özelliklerdir.

BLECentral sınıfı

Kartın bağlı olduğu cihaz

BLEC karakteristik sınıfı

Kurulun göstermesi gereken BLE özellikleri

BLEService sınıfı

Kartın kullanması gereken BLE hizmeti