Ejecutar el Pi como un dispositivo host bluetooth en lugar de un cliente en Python
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
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.conf
archivo. Asegúrese de que contenga lo siguiente:
ControllerMode = le