Запуск Pi в качестве хост-устройства Bluetooth, а не клиента в python
Я пытаюсь найти пример кода для использования пи в качестве устройства Bluetooth, чтобы другие устройства могли его искать и подключаться к нему. В частности, я хочу, чтобы он вел себя как измеритель мощности велосипеда для проекта, который я задумал.
Кажется, я не могу найти правильные ключевые слова для поиска в Google, но, глядя на этот сайт, кажется, что это возможно (я видел, что кто-то использовал его в качестве принтера Bluetooth ...)
Просто нужно какое-то направление - может быть, библиотека или даже то, что искать.
Ответы
Я предполагаю, что вы хотите стать одним из стандартных профилей / услуг езды на велосипеде, как это определено Bluetooth SIG.
Это Bluetooth с низким энергопотреблением (BLE), использующий спецификацию GATT.
В Linux стек Bluetooth - это BlueZ, который использует D-Bus для предоставления своего API. Например, API GATT задокументирован по адресу:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt
Ваше устройство будет выполнять роль периферийного устройства, что означает создание сервера GATT. Пример этого есть в исходном коде BlueZ:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server
Периферийное устройство также должно будет рекламировать услугу GATT: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement
По умолчанию RPi - это как BR / EDR (классический), так и LE Bluetooth. При работе в качестве периферийного устройства BLE рекомендуется настроить контроллер только на использование Bluetooth с низким энергопотреблением. Было обнаружено, что это необходимо для надежного подключения к телефонам Android. Это изменение конфигурации выполняется в /etc/bluetooth/main.conf
файле. Убедитесь, что он содержит следующее:
ControllerMode = le