Enviar características de GATT personalizadas utilizando HM-10 (en realidad un CC2541)

3

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!

    
pregunta c.early

2 respuestas

1

AT + NOTI desafortunadamente no es el comando correcto. El manual dice:

  

AT + NOTI [P1]

     

Si este valor se establece en 1, cuando el enlace ESTABLECIDO o PERDIDO el módulo enviará   OK + CONN o la cadena OK + LOST a través de UART.

Creo que no es posible hacer lo que quieres. He estado buscando todo el día, pero solo hay una característica personalizada, y solo puedes cambiar el UUID corto. No encontré ninguna forma de obtener datos de otros UUID en modo Central.

Aquí hay más información: BLECentral - Módulo BLE HM-10

Editar: con la nueva versión de firmware > V546, existe la posibilidad de usar UUIds de 128 bits. Encontrará el archivo readme + el software necesario aquí: sitio web jnhuamao . Y V605 afirma:

Lamentablemente, todavía no he logrado actualizar el firmware.

    
respondido por el Jan
0

Creo que estás buscando AT+NOTI . Consulte la hoja de datos para obtener información específica, pero notificar es lo que pasa de esclavo a maestro.

    
respondido por el benthehutt

Lea otras preguntas en las etiquetas