Ejecutar el Pi como un dispositivo host bluetooth en lugar de un cliente en Python

Aug 20 2020

Estoy tratando de encontrar un código de ejemplo para usar el pi como un dispositivo bluetooth para que otros dispositivos puedan buscarlo y emparejarse con él. Específicamente quiero que se comporte como un medidor de potencia de bicicleta para el proyecto que tengo en mente.

Parece que no puedo encontrar las palabras clave correctas para buscar en Google, pero al buscar en este sitio parece que es posible (vi que alguien lo usó como una impresora bluetooth ...)

Realmente solo se necesitaba alguna dirección, tal vez una biblioteca o incluso qué buscar.

Respuestas

2 ukBaz Aug 20 2020 at 15:59

Mi suposición es que está buscando ser uno de los perfiles / servicios de ciclismo estándar según lo definido por Bluetooth SIG.

Estos son Bluetooth de baja energía (BLE) y utilizan la especificación GATT.

En Linux, la pila de Bluetooth es BlueZ, que usa D-Bus para exponer su API. Por ejemplo, la API de GATT está documentada en:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/gatt-api.txt

Su dispositivo asumirá la función de periférico, lo que significa crear un servidor GATT. Hay un ejemplo de esto en el código fuente de BlueZ:https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-gatt-server

El periférico también deberá anunciar el servicio GATT: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/test/example-advertisement

Por defecto, el RPi es BR / EDR (clásico) y LE Bluetooth. Cuando actúa como un periférico BLE, es bueno configurar el controlador solo para Bluetooth Low Energy.Se ha descubierto que para obtener una conexión confiable con teléfonos Android, esto es necesario. Este cambio de configuración se realiza en el /etc/bluetooth/main.confarchivo. Asegúrese de que contenga lo siguiente:

ControllerMode = le