Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
December 10, 2022 08:37 am GMT

Bluetooth LE cihazlarla alma

Dk enerjili Bluetooth (Bluetooth Low Energy), dk gce sahip sensr ve eitli cihazlar iin tasarlanm, klasik Bluetooth'a gre ok daha dk gl Bluetooth imkan veren yapdr. zellikle srekli balant gerektirmeyen fakat uzun pil mrne sahip olmas istenen uygulamalar iin kullanlmaktadr.

Sisteminizdeki Bluetooth alcsn renme

ncelikle sisteminizde bir Bluetooth alcs olmas gerekiyor. Tabi ki bu alclar ok fazla grm olabilirsiniz. Bu alclar USB olarak taklabildii gibi sisteminizin ierisinde entegre olarak da bulunuyor olabilir.

ncelikle sistemimizde bluetooth cihaz olup olmadn anlayabilmek iin kullanacamz komut hcitool ile sisteminize takl olan bluetooth cihazlarn listeleyebilirsiniz.

hcitool dev

Bu komut yazldktan sonra aadaki gibi bir kt beklenmektedir:

Devices:    hci0    00:1A:4D:BA:B1:15

Burada MAC adresi gzken cihaz kendi Bluetooth alcnzdr. Eer cihaz gremiyorsanz alcy kapatp amak veya kartp takmay deneyebilirsiniz.

Dk enerjili Bluetooth cihazlarn tarama

Ayn komut ile sistemde aktif olarak yayn yapan Bluetooth cihazlarn tarayabilirsiniz. Tarama ilemi iin aadaki gibi komut altrlmaldr. Bu tarama ilemi CTRL + C ile kapatmadka taramaya devam edecektir.

sudo hcitool lescan

Bu komut sonrasnda aadaki gibi akan ekilde Bluetooth cihazlarnn MAC adresleri ve tespit edilebiliyorsa isimleri grntlenmektedir.

LE Scan ...CB:...:9D (unknown)CB:...:9D Amazfit NeoA4:...:91 (unknown)A4:...:91 LYWSD03MMC.....A4:...:91 (unknown)A4:...:91 LYWSD03MMC

Bu admla birlikte dk enerjili Bluetooth cihaznn MAC adresini tespit etmi oluyorsunuz ve eriim iin kullanlabilir hale gelmektedir.

Cihaz ile ilk temas

Dk enerjili Bluetooth cihazlara eriebilmek iin farkl bir ara olan gantttool kullanlmaktadr. Bu uygulama, rnein Ubuntu zerinde bluez isimli paket ile gelmektedir. Dolaysyla ncelikle ilgili paketi yklemeniz gerekir.

sudo apt install bluez

nceki balkta rendiimiz Bluetooth cihaznn MAC adresini bu araca vererek ncelikli olarak interaktif bir oturum almas mantkl olacaktr.

sudo gatttool -b CB:1A:4D:BA:B1:9D -I

Bu ekilde ekranda aadaki gibi bir kabuk aldn greceksiniz.

[CB:1A:4D:BA:B1:9D][LE]>

Bu kabuk zerinde ilk olarak connect komutu ile balant salanmas gerekiyor ve "connection successful" cevab alnmas gerekiyor. Bu alnmyorsa gerekten balant saland anlam kesinlikle tamamaktadr.

[CB:1A:4D:BA:B1:9D][LE]>connectAttempting to connect to CB:1A:4D:BA:B1:9DConnection successful[CB:1A:4D:BA:B1:9D][LE]>

Bu adm gerekletiinde cihaz ile eriime ak bir kabua eritiinizi syleyebiliriz.

Temel bilgilere eriim

Cihaza interaktif mod ile balant kurduktan sonra zellikle aadaki 3 komut ile birlikte servisler, handlerlar ve karakteristikler grntlenebiliyor.

lk olarak primary komutu uygulanarak aadaki gibi UUID'lere sahip servisleri gzlemleyebilirsiniz:

[CB:1A:4D:BA:B1:9D][LE]> primaryattr handle: 0x0001, end grp handle: 0x0004 uuid: 00001801-0000-1000-8000-00805f9b34fbattr handle: 0x0005, end grp handle: 0x000b uuid: 00001800-0000-1000-8000-00805f9b34fbattr handle: 0x000c, end grp handle: 0x000f uuid: 00001623-1212-efde-1623-785feabcd123

Ayrca char-desc komutu ile kullanlabilir karakter handlerlarna eriebilirsiniz.

[CB:1A:4D:BA:B1:9D][LE]> char-deschandle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fbhandle: 0x0002, uuid: 00002803-0000-1000-8000-00805f9b34fbhandle: 0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fbhandle: 0x0004, uuid: 00002902-0000-1000-8000-00805f9b34fbhandle: 0x0005, uuid: 00002800-0000-1000-8000-00805f9b34fbhandle: 0x0006, uuid: 00002803-0000-1000-8000-00805f9b34fbhandle: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fbhandle: 0x0008, uuid: 00002803-0000-1000-8000-00805f9b34fbhandle: 0x0009, uuid: 00002a01-0000-1000-8000-00805f9b34fbhandle: 0x000a, uuid: 00002803-0000-1000-8000-00805f9b34fbhandle: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fbhandle: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fbhandle: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fbhandle: 0x000e, uuid: 00001624-1212-efde-1623-785feabcd123handle: 0x000f, uuid: 00002902-0000-1000-8000-00805f9b34fb

Ve son olarak da characteristics komutu ile karakteristik deerleri grebilirsiniz.

[CB:1A:4D:BA:B1:9D][LE]> characteristicshandle: 0x0002, char properties: 0x20, char value handle: 0x0003, uuid: 00002a05-0000-1000-8000-00805f9b34fbhandle: 0x0006, char properties: 0x4e, char value handle: 0x0007, uuid: 00002a00-0000-1000-8000-00805f9b34fbhandle: 0x0008, char properties: 0x4e, char value handle: 0x0009, uuid: 00002a01-0000-1000-8000-00805f9b34fbhandle: 0x000a, char properties: 0x02, char value handle: 0x000b, uuid: 00002a04-0000-1000-8000-00805f9b34fbhandle: 0x000d, char properties: 0x1e, char value handle: 0x000e, uuid: 00001624-1212-efde-1623-785feabcd123

Bir karakteristii okuma yapmak iin o karakteristiin handler'n kullanarak okuma salanabilmektedir.

[CB:1A:4D:BA:B1:9D][LE]> char-read-hnd 0x0005Characteristic value/descriptor: 00 18 

Ve tabi cihazn dokmantasyonlar incelerenek aadaki gibi yazma ilemleri de yaplabilmektedir. Bu sayede rnein LEGO HUB zerinden motor altrabilme, hz ayarlayabilme gibi eyler yaplabilmektedir.

[CB:1A:4D:BA:B1:9D][LE]> char-write-req 0x000f 0100Characteristic value was written successfullyNotification handle = 0x000e value: 0f 00 04 00 01 02 00 00 00 00 00 00 00 00 00 Notification handle = 0x000e value: 0f 00 04 32 01 17 00 00 00 00 10 00 00 00 10 Notification handle = 0x000e value: 0f 00 04 3b 01 15 00 02 00 00 00 02 00 00 00 Notification handle = 0x000e value: 0f 00 04 3c 01 14 00 02 00 00 00 02 00 00 00 

nteraktif mode'tan k iin exit komutu uygulanmas yeterlidir.

Komut zerinden interaktif mod kullanmadan eriim

Yukarda anlatlan fonksiyonlarn bir benzeri interaktif olarak almadan CLI zerinden altrlabilmesi de salanabilmektedir.

gatttool -b CB:1A:4D:BA:B1:9D --char-write-req --handle 0x000e --value 0a0081000060007f0000gatttool -b CB:1A:4D:BA:B1:9D --char-read-hnd --handle 0x000e

Original Link: https://dev.to/aliorhun/bluetooth-le-cihazlarla-calisma-3jb1

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To