Sisällysluettelo:
- Vaihe 1: Skannaa BLE -laite
- Vaihe 2: Laitteen yhdistäminen
- Vaihe 3: Laitteen ominaisuuksien noutaminen
- Vaihe 4: Laitteen nimen lukeminen
- Vaihe 5: BPM: n lukeminen
- Vaihe 6: Kehon tunnistimen sijainnin lukeminen
Video: Arvojen lukeminen BLE -laitteesta CSR1010: n ja Dragonboard 410c: n avulla: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Tämä opetusohjelma näyttää kuinka lukea arvoja BLE -laitteesta CSR1010 Dragonboard 410c: n ja Linaron avulla
Tässä esimerkissä CSR1010 emuloi sykesensoria.
Vaihe 1: Skannaa BLE -laite
Tarkista tässä vaiheessa, onko BT -asiakas valmis skannaamaan BLE -laitteita.
root@linaro-alip:/home/linaro# sudo hcitool lescan
LE Scan… 18: EE: 69: 00: CE: 00 (tuntematon) 18: EE: 69: 00: CE: 00 (tuntematon) EE: 52: 5B: 04: 00: 02 CSR -HR -anturi
Vaihe 2: Laitteen yhdistäminen
Käytämme laitteen yhdistämiseen gatttoolia
-b: Laitteen MAC -osoite
-t: LE -osoitetyyppi. Voi olla julkinen tai satunnainen, täytyy tarkistaa laitteen tekniset tiedot. Tässä tapauksessa on julkista.
-I: interaktiivinen gatttool -tila. Se avaa kehotteen lähettää cmds laitteeseen
root@linaro -alip:/home/linaro# sudo gatttool -b EE: 52: 5B: 04: 00: 02 -t public -I
Kun kehote on auki, voimme lähettää yhteyden cmd laitteeseen.
[EE: 52: 5B: 04: 00: 02] [LE]> yhdistä Yritetään muodostaa yhteys EE: hen: 52: 5B: 04: 00: 02
Yhteys onnistui
[EE: 52: 5B: 04: 00: 02] [LE]>
Vaihe 3: Laitteen ominaisuuksien noutaminen
Kun laite on yhdistetty, voimme lukea kaikki saatavilla olevat palvelut lähettämällä cmd "ensisijainen"
Palvelun UUID -tunnuksen perusteella voimme löytää palvelun tyypin GATT -määrityksistä
www.bluetooth.com/specifications/gatt/services
Vaihe 4: Laitteen nimen lukeminen
Tarkastellaan yleisen käyttöprofiilin luomia ominaisuuksia (uuid = 1800). Ensin meidän on saatava ensimmäisessä kuvassa kuvatut palvelukahvan arvot, tässä tapauksessa, alkaen 5: stä 11. Nyt voimme hakea kaikki kahvat tällä aikavälillä käyttämällä cmd char-desc
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 05 11kahva: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fb kahva: 0x0006, uuid: 00002803-0000-1000-8000- 00805f9b34fb kahva: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fb kahva: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fb kahva: 0x0009, uuid: 00002a01-0000-1000-8000-00805f9b uuid: 00002803-0000-1000-8000-00805f9b34fb kahva: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fb kahva: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb kahva: 0x000d, uuid: 0000280 -1000-8000-00805f9b34fb kahva: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb kahva: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb kahva: 0x0010, uuid: 00002803-0000-1000-8000- 00805f9b34fb kahva: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb
Yleisen käyttöprofiilin määrityksen mukaan UUID 2A00 viittaa laitteen nimeen.
Ottaen huomioon, että 2a00 on laitteemme kahva 0x0007, luetaan arvo
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 7 Ominaisarvo/kuvaaja: 43 53 52 20 48 52 20 53 65 6e 73 6f 72
Kun heksadesimaali muunnetaan ASCII: ksi, laitteen nimi on: '' CSR HR Sensor"
Vaihe 5: BPM: n lukeminen
[EE: 52: 5B: 04: 00: 02] [LE]> ensisijainen ohjauskahva: 0x0001, päätykahva: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fb attr kahva: 0x0005, päätykahva: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fb attr kahva: 0x000c, päätykahva: 0x0013 uuid: 0000180d-0000-1000-8000-00805f9b34fb attr kahva: 0x0014, päätykahva: 0x0017 uuid: 0000180f-0000-1000-8000- 00805f9b34fb attr kahva: 0x0018, päätykahva: 0x0021 uuid: 00001016-d102-11e1-9b23-00025b00a5a5 attr kahva: 0x0022, päätykahva: 0xffff uuid: 0000180a-0000-1000-8000-00805f9b34fb
Sykepalvelun UUID on 0x180d, joten kahvan väli on 0x000c - 0x0013
[EE: 52: 5B: 04: 00: 02] [LE]> char-desc 0x00c 0x0013
kahva: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb kahva: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb kahva: 0x000e, uuid: 00002a37-0000-1000-8000-00805f9b34fb kahva: 0x000f, uu: 00002902-0000-1000-8000-00805f9b34fb kahva: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb kahva: 0x0011, uuid: 00002a38-0000-1000-8000-00805f9b34fb kahva: 0x0012, uuid: 00002803-00 1000-8000-00805f9b34fb kahva: 0x0013, uuid: 00002a39-0000-1000-8000-00805f9b34fb
Kaikkien ominaisilmoitusten lukeminen (UUID 0x2803).
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x000d
Ominaisarvo/kuvaaja: 10 0e 00 37 2a [EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x0010 Ominaisarvo/kuvaaja: 02 11 00 38 2a [EE: 52: 5B: 04:00:02] [LE]> char-read-hnd 0x0012 Ominainen arvo/kuvaaja: 08 13 00 39 2a
Huomaa, että:
- kahva 0x000d on palvelun 2a37 (sykkeenmittaus) CCCD ja bitti 10 (tuki NOTIFY)
- kahva 0x0010 on CCCD palvelulle 2a38 (kehon anturin sijainti), bitti 02 (tuki LUE)
- kahva 0x0012 on CCCD palvelulle 2a39 (sykeohjauspiste), bitti 08 (tuki WRITE)
Nyt tiedämme, että sykemittaus toimii vain ilmoituksella. Se tarkoittaa, että ensin meidän on rekisteröidyttävä arvonmuutoksiin sen CCCD: ssä (UUID 0x2902), joka tässä tapauksessa on kahva 0xf
[EE: 52: 5B: 04: 00: 02] [LE]> char-write-req 0x00f 0100
Ilmoituskahva = 0x000e -arvo: 16 65 f3 01 Ominaisarvo on kirjoitettu onnistuneesti Ilmoituskahva = 0x000e -arvo: 16 6d fa 01 Ilmoituskahva = 0x000e -arvo: 16 6d fa 01 Ilmoituskahva = 0x000e -arvo: 16 6c f9 01 Ilmoituskahva = 0x000e -arvo: 16 6a f7 01 Ilmoituskahva = 0x000e -arvo: 16 69 f6 01
Profiilimääritysten mukaan toinen heksadesimaaliluku on BPM -tiedot.
BPM:
6d = 109
6d = 109
6c = 108
6a = 106
69 = 105
Vaihe 6: Kehon tunnistimen sijainnin lukeminen
Runkoanturin sijainti on UUID 0x2A38. Kuvaajan mukaan tämä ominaisuus tukee peruslukemista, joten voimme lukea sen arvon suoraan.
[EE: 52: 5B: 04: 00: 02] [LE]> char-read-hnd 0x11Luonteenomainen arvo/kuvaaja: 03
SIG -spesifikaation mukaan 03 tarkoittaa "sormea"
Suositeltava:
Useiden analogisten arvojen lukeminen yhdellä analogisella nastalla: 6 vaihetta (kuvien kanssa)
Useiden analogisten arvojen lukeminen yhdellä analogisella nastalla: Tässä opetusohjelmassa näytän sinulle, kuinka voit lukea useita analogisia arvoja käyttämällä vain yhtä analogiatulonappia
Kosteuden lukeminen Ethernet -anturin avulla: 3 vaihetta
Kosteuden lukeminen Ethernet -anturilla: Hankkeen tarkoituksena oli pystyä lukemaan kosteus- ja lämpötilalukemat ethernet -verkon kautta, jotta tuloksia voitaisiin käyttää kodin automatisointiin (Home Assistant jne.). T9602 -anturilla oli paras muoto esitys ar
Ultraäänitunnistimen (HC-SR04) lukeminen 128 × 128 LCD-näytöllä ja sen visualisointi Matplotlibin avulla: 8 vaihetta
Ultraäänianturin (HC-SR04) tietojen lukeminen 128 × 128 nestekidenäytöllä ja visualisointi sen avulla Matplotlib: Tässä oppaassa käytämme MSP432 LaunchPad + BoosterPackia ultraäänianturin (HC-SR04) tietojen näyttämiseen 128 × 128 Nestekidenäytöllä ja lähetä tiedot sarjaan PC: lle ja visualisoi ne Matplotlibin avulla
Lämpötilan lukeminen LM35 -lämpötila -anturin avulla Arduino Unolla: 4 vaihetta
Lämpötilan lukeminen LM35 -lämpötila -anturin avulla Arduino Unon kanssa: Hei kaverit tässä ohjeessa opimme käyttämään LM35: tä Arduinon kanssa. Lm35 on lämpötila -anturi, joka voi lukea lämpötila -arvot -55 ° C -150 ° C. Se on 3-napainen laite, joka tarjoaa analogisen jännitteen suhteessa lämpötilaan. Korkea
Tietojen lukeminen ja kirjoittaminen ulkoiseen EEPROMiin Arduinon avulla: 5 vaihetta
Tietojen lukeminen ja kirjoittaminen ulkoiselle EEPROM-tietokoneelle Arduinon avulla: EEPROM on lyhenne sanoista Electroically Erasable Programmable Read-Only Memory. EEPROM on erittäin tärkeä ja hyödyllinen, koska se on haihtumaton muistimuoto. Tämä tarkoittaa, että vaikka levy on sammutettu, EEPROM -siru säilyttää edelleen ohjelman, joka