İçindekiler:
- 1. Adım: BLE Aygıtını Tara
- 2. Adım: Cihazı Bağlama
- Adım 3: Cihaz Özelliklerini Alma
- Adım 4: Cihaz Adını Okuma
- Adım 5: BPM'yi Okumak
- Adım 6: Vücut Sensörü Konumunun Okunması
Video: CSR1010 ve Dragonboard 410c Kullanarak Bir BLE Aygıtından Değerleri Okuma: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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 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
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ü 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:
Dragonboard 410c Usando IDE Eclipse Para Bir Dragonboard ile Desenvolvendo Uygulamaları Uzaktan Kumanda: 17 Adım
Desenvolvendo Uygulamaları Remotamente Para a Dragonboard 410c Usando IDE Eclipse: O objetivo deste documento é HostPC (Bilgisayar / Dizüstü Bilgisayar) için ortam yapılandırması için gerekli olan en uygun koşullar, HostPC (Bilgisayar / Defter), Alvo (Sürükle
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metin Görüntülemek İçin Başka Bir Arduino Kullanarak Programlamak: 5 Adım
Bir Arduino'yu Kitaplık Olmadan Kayan Bir Metni Görüntülemek için Başka Bir Arduino Kullanarak Programlama: Sony Spresense veya Arduino Uno o kadar pahalı değil ve çok fazla güç gerektirmez. Ancak projenizin güç, alan ve hatta bütçe kısıtlaması varsa Arduino Pro Mini kullanmayı düşünebilirsiniz. Arduino Pro Micro'nun aksine, Arduino Pro Mi
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: 4 Adım
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: Merhaba arkadaşlar bu derste LM35'i Arduino ile nasıl kullanacağımızı öğreneceğiz. Lm35, -55 °C ile 150 °C arasındaki sıcaklık değerlerini okuyabilen bir sıcaklık sensörüdür. Sıcaklıkla orantılı analog voltaj sağlayan 3 terminalli bir cihazdır. Yüksek
Arduino Kullanarak Harici EEPROM'a Veri Okuma ve Yazma: 5 Adım
Arduino Kullanarak Harici EEPROM'a Veri Okuma ve Yazma: EEPROM, Elektrikle Silinebilir Programlanabilir Salt Okunur Bellek anlamına gelir. EEPROM, kalıcı bir bellek biçimi olduğu için çok önemli ve kullanışlıdır. Bu, kart kapatıldığında bile, EEPROM yongasının hala programı koruduğu anlamına gelir
Wemos Kullanarak Raspberry Pi ile Seri Porttan Okuma ve Yazma: 5 Adım
Wemos Kullanarak Raspberry Pi ile Seri Bağlantı Noktasından Okuma ve Yazma: Wemos D1 mini R2 kullanarak Raspberry Pi ile iletişim kurma