İçindekiler:

CSR1010 ve Dragonboard 410c Kullanarak Bir BLE Aygıtından Değerleri Okuma: 6 Adım
CSR1010 ve Dragonboard 410c Kullanarak Bir BLE Aygıtından Değerleri Okuma: 6 Adım

Video: CSR1010 ve Dragonboard 410c Kullanarak Bir BLE Aygıtından Değerleri Okuma: 6 Adım

Video: CSR1010 ve Dragonboard 410c Kullanarak Bir BLE Aygıtından Değerleri Okuma: 6 Adım
Video: Raspberry Pi 3 & Ultrasonic Sensör 2024, Kasım
Anonim
CSR1010 ve Dragonboard 410c Kullanarak BLE Aygıtından Değerleri Okuma
CSR1010 ve Dragonboard 410c Kullanarak BLE Aygıtından Değerleri Okuma

Bu eğitici, Linaro ile Dragonboard 410c kullanılarak BLE cihazı CSR1010'dan değerlerin nasıl okunacağını gösterir.

Bu örnekte, CSR1010 bir kalp atış hızı sensörünü taklit ediyor.

1. Adım: BLE Aygıtını Tara

Bu adımda BT istemcinizin BLE cihazlarını taramaya hazır olup olmadığını kontrol edin.

root@linaro-alip:/home/linaro# sudo hcitool lescan

LE Scan …18:EE:69:00:CE:00 (bilinmiyor) 18:EE:69:00:CE:00 (bilinmiyor) EE:52:5B:04:00:02 CSR HR Sensörü

2. Adım: Cihazı Bağlama

Cihazımızı bağlamak için gatttool kullanacağız

-b: Aygıt MAC adresi

-t: LE adres türü. Herkese açık veya rastgele olabilir, cihaz özelliklerini kontrol etmeniz gerekir. Bu durumda halka açıktır.

-I: gatttool etkileşimli modu. Cihaza cmd göndermek için bir istem açılacaktır.

root@linaro-alip:/home/linaro# sudo gatttool -b EE:52:5B:04:00:02 -t public -I

İstem açıldığında, cihaza connect cmd gönderebiliriz.

[EE:52:5B:04:00:02][LE]> connectEE:52:5B:04:00:02'ye bağlanmaya çalışılıyor

Bağlantı başarılı

[EE:52:5B:04:00:02][LE]>

Adım 3: Cihaz Özelliklerini Alma

Cihaz Özelliklerini Alma
Cihaz Özelliklerini Alma

Cihaz bağlandıktan sonra, "birincil" cmd'yi göndererek mevcut tüm hizmetleri okuyabiliriz.

Hizmet UUID'sine bağlı olarak, hizmet türünü GATT belirtiminde keşfedebiliriz.

www.bluetooth.com/specations/gatt/services

Adım 4: Cihaz Adını Okuma

Cihaz Adı Okuma
Cihaz Adı Okuma

Genel Erişim Profilinde (uuid=1800) okunan özellikleri inceleyelim. İlk önce ilk resimde açıklanan servis tutamacı değerlerini almamız gerekiyor, bu durumda 5'ten 11'e kadar başlıyor. Şimdi bu aralıktaki tüm tutamaçları cmd char-desc kullanarak alabiliriz.

[EE:52:5B:04:00:02][LE]> char-desc 05 11işlemci: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb tanıtıcı: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0009, uuid: 00002a01-0000fb-1000-8000-00805b, tanıtıcı uuid: 00002803-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000id:0000d, u280u3 -1000-8000-00805f9b34fb tanıtıcı: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0010, uuid: 00002803-0000-1000-1000-8000 00805f9b34fb tanıtıcı: 0x0011, kullanıcı kimliği: 00002a38-0000-1000-8000-00805f9b34fb

Genel Erişim Profili belirtimine göre, UUID 2A00, Cihaz Adına atıfta bulunur.

2a00'ün cihazımızdaki 0x0007 tutacağı olduğunu göz önünde bulundurarak değeri okuyalım

[EE:52:5B:04:00:02][LE]> char-read-hnd 7Karakteristik değer/tanımlayıcı: 43 53 52 20 48 52 20 53 65 6e 73 6f 72

Hex'i ASCII'ye çeviren cihaz adı: ''CSR HR Sensor''

Adım 5: BPM'yi Okumak

[EE:52:5B:04:00:02][LE]> birincil tanıtıcı tanıtıcı: 0x0001, son grp tanıtıcı: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr tanıtıcı: 0x0005, bitiş grp tanıtıcı: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr tanıtıcısı: 0x000c, bitiş grp tanıtıcısı: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr tanıtıcısı: 0x0014, uç grp tanıtıcısı: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr tutamacı: 0x0018, bitiş grp tanıtıcı: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr tanıtıcı: 0x0022, bitiş grp tanıtıcı: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb

Kalp Atış Hızı hizmeti UUID'si 0x180d'dir, bu nedenle işleme aralığı 0x000c'den 0x0013'e kadardır

[EE:52:5B:04:00:02][LE]> char-desc 0x00c 0x0013

tanıtıcı: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000d, kullanıcı kimliği: 00002803-0000-1000-8000-00805f9b34fb tanıtıcı: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34000fb, u uu: 00002902-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb tanıtıcı: 0x0012, uuid: 0000280 1000-8000-00805f9b34fb tanıtıcı: 0x0013, kullanıcı kimliği: 00002a39-0000-1000-8000-00805f9b34fb

Tüm Karakteristik Beyanları okuma (UUID 0x2803).

[EE:52:5B:04:00:02][LE]> karakter-okuma-hnd 0x000d

Karakteristik değer/tanımlayıcı: 10 0e 00 37 2a [EE:52:5B:04:00:02][LE]> char-read-hnd 0x0010 Karakteristik değer/tanımlayıcı: 02 11 00 38 2a [EE:52:5B: 04:00:02][LE]> char-read-hnd 0x0012 Karakteristik değer/tanımlayıcı: 08 13 00 39 2a

Dikkat edin:

- 0x000d tanıtıcısı, bit 10'lu (NOTIFY desteği) 2a37 (Kalp Hızı Ölçümü) hizmeti için CCCD'dir

- 0x0010 tutamacı, 2a38 servisi için CCCD'dir (Vücut Sensörü Konumu) bit 02 ile (READ desteği)

- 0x0012 tanıtıcısı, 2a39 (Kalp Hızı Kontrol Noktası) hizmeti için bit 08 (WRITE desteği) için CCCD'dir

Artık Nabız Ölçümünün yalnızca bildirimle çalıştığını biliyoruz. Bu, ilk önce CCCD'sindeki (UUID 0x2902) değer değişiklikleri için kayıt olmamız gerektiği anlamına gelir, bu durumda bu durumda 0xf tanıtıcısıdır.

[EE:52:5B:04:00:02][LE]> char-write-req 0x00f 0100

Bildirim tutamacı = 0x000e değeri: 16 65 f3 01 Karakteristik değer başarıyla yazıldı Bildirim tutamacı = 0x000e değeri: 16 6d fa 01 Bildirim tutamacı = 0x000e değeri: 16 6d fa 01 Bildirim tutamacı = 0x000e değeri: 16 6c f9 01 Bildirim tutamacı = 0x000e değeri: 16 6a f7 01 Bildirim tutamacı = 0x000e değeri: 16 69 f6 01

Profil spesifikasyonuna göre ikinci onaltılık sayı BPM bilgisidir.

BPM:

6d = 109

6d = 109

6c = 108

6a = 106

69 = 105

Adım 6: Vücut Sensörü Konumunun Okunması

Vücut Sensörü Konumunun Okunması
Vücut Sensörü Konumunun Okunması

Vücut Sensörü Konumu, UUID 0x2A38'dir. Tanımlayıcısına göre, bu özellik temel okumayı destekler, böylece değerini doğrudan okuyabiliriz.

[EE:52:5B:04:00:02][LE]> char-read-hnd 0x11Karakteristik değer/tanımlayıcı: 03

SIG spesifikasyonuna göre 03, "Parmak" anlamına gelir

Önerilen: