Menjalankan Pi sebagai perangkat host bluetooth daripada klien dengan python
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
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.conf
file. Pastikan itu berisi yang berikut:
ControllerMode = le