Menjalankan Pi sebagai perangkat host bluetooth daripada klien dengan python

Aug 20 2020

Saya mencoba menemukan beberapa contoh kode untuk menggunakan pi sebagai perangkat bluetooth sehingga perangkat lain dapat mencarinya dan memasangkannya. Secara khusus saya ingin membuatnya berperilaku seperti meteran daya sepeda untuk proyek yang saya pikirkan.

Sepertinya saya tidak dapat menemukan kata kunci yang tepat untuk dicari di Google, tetapi dari melihat-lihat situs ini sepertinya mungkin (saya melihat seseorang menggunakannya sebagai printer bluetooth ..)

Hanya beberapa arahan yang benar-benar dibutuhkan - mungkin perpustakaan atau bahkan apa yang harus dicari.

Jawaban

2 ukBaz Aug 20 2020 at 15:59

Asumsi saya adalah bahwa Anda sedang melihat salah satu dari profil / layanan bersepeda standar seperti yang ditentukan oleh Bluetooth SIG.

Ini adalah Bluetooth Hemat Energi (BLE) dan menggunakan spesifikasi GATT.

Di Linux, tumpukan Bluetooth adalah BlueZ yang menggunakan D-Bus untuk mengekspos API-nya. Misalnya GATT API didokumentasikan di:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt

Perangkat Anda akan mengambil peran Peripheral yang berarti membuat server GATT. Ada contohnya di kode sumber BlueZ:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

Periferal juga perlu mengiklankan layanan GATT: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement

Secara default, RPi adalah BR / EDR (klasik) dan LE Bluetooth. Saat bertindak sebagai periferal BLE, sebaiknya konfigurasikan pengontrol ke Bluetooth Low Energy saja. Telah ditemukan bahwa untuk mendapatkan koneksi yang andal ke ponsel Android hal ini diperlukan. Perubahan konfigurasi ini dilakukan di /etc/bluetooth/main.conffile. Pastikan itu berisi yang berikut:

ControllerMode = le