Pregunta breve: ¿Cómo envío los datos como características de GATT desde un dispositivo BLE periférico (Android UNO + HM-10) a un dispositivo central (es decir, un teléfono inteligente Android)?
Estoy trabajando en un periférico BLE como un proyecto de aprendizaje en este momento. Estoy usando un Arduino Uno y un HM-10. Hasta ahora está funcionando bien: los sensores están funcionando y puedo enviar estos datos desde Arduino Uno a Android utilizando un módulo BLE HM-10 (en realidad, un clon CC2541) en el servicio y la característica estándar para este dispositivo:
- UUID de servicio: 0000 ffe0 -0000-1000-8000-00805f9b34fb
- Característica: UUID: 0000 ffe1 -0000-1000-8000-00805f9b34fb
Trabajando de esta manera, el HM-10 emula una conexión serie de bluetooth tradicional. Todo bien hasta ahora!
Lo que me gustaría hacer ahora es enviar los datos utilizando los servicios y características aceptados del GATT. Por ejemplo, digamos que me gustaría usar el servicio Running Speed and Cadence para enviar mis datos de manera que cualquier aplicación compatible pueda verlos. Necesitaría cambiar el servicio a 0x1814 y las características a:
- Cadencia: 0x27A8
- Velocidad: 0x27A6
- Gradiente: 0x2763
Creo que podría hacer esto usando los comandos AT:
- AT + UUID0x1814
- AT + CHAR0x2763
Creo que estoy bien con todo esto hasta ahora, pero no puedo encontrar orientación sobre cómo definir múltiples características y cómo enviar los datos de mis sensores a mi dispositivo central como características de GATT.
Por ejemplo, mi velocidad es 10kmh-1 y mi cadencia es 80. ¿Cómo especifico las características del GATT para esto y notifico al dispositivo central cuando cambian? También pregunta de bonificación: ¿puedo incluir una característica adicional para el gradiente?
He buscado a fondo, pero no puedo encontrar nada sobre esto. ¡Gracias!