es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

BLE: HM10 indica propiedad de no lectura cuando la característica tiene propiedad de lectura.

Estoy intentando usar el HM10 como central para leer datos de un sensor. El HM10 ha sido actualizado con el firmware más reciente V710 para utilizar la funcionalidad de autoaprendizaje.

Aquí está la lista de mensajes que estoy enviando y recibiendo del HM10.

Primero configuro el HM10 como central y activo algunas notificaciones. Luego me conecto a la dirección MAC del sensor. Utilizo el comando AT+FINDSERVICES? para obtener la lista de servicios, luego encuentro todas las características en el rango de ese UUID. Las características en las que estoy interesado son 0021.

Pero aquí es donde empiezan los problemas. Si intento leer esa característica, obtengo OK+DATA-ER, que según la hoja de datos la característica no tiene una propiedad de lectura. Lo mismo ocurre con la notificación.

Pero a partir del comando AT+CHAR vemos que el handle 0021 tiene tanto lectura como notificación. También he intentado leer desde el handle 001E y obtengo el mismo error. Puedo leer datos como el nombre del dispositivo de otro handle, por lo que puedo obtener algunos datos del sensor.

Me pregunto si la respuesta OK+DATA-ER puede significar algo más. ¿O si el handle de la característica no es correcto de alguna manera? Si ese fuera el caso, ¿cómo encontraría el handle correcto?

He intentado conectarme al sensor en mi iPhone utilizando la aplicación LightBlue y puedo tanto leer como suscribirme a la notificación. También he intentado clonar el sensor como un dispositivo virtual en LightBlue y puedo leer y suscribirme desde el HM10 al teléfono. Por lo tanto, el problema parece estar entre el HM10 y el sensor específicamente, y no con cada dispositivo individualmente.

UUID de LightBlue: enlace a la imagen

Lectura de datos en LightBlue: enlace a la imagen

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución

    Basándonos en la información proporcionada, parece que el problema se encuentra en que el HM10 no puede leer la característica a pesar de que se muestra como una propiedad de lectura en el comando AT+CHAR.

    Una posible solución podría ser intentar utilizar el comando AT+READ con el identificador correcto en lugar del UUID de la característica. Para encontrar el identificador correcto, se podría probar utilizando una herramienta de análisis de BLE como el nRF Sniffer o Wireshark para capturar los paquetes BLE intercambiados entre el sensor y la aplicación LightBlue.

    Otra posibilidad podría ser que el sensor no esté respondiendo correctamente a las solicitudes del HM10, lo cual podría deberse a problemas de compatibilidad entre ambos dispositivos o a un sensor defectuoso. En este caso, podría valer la pena probar con un sensor o dispositivo BLE diferente para ver si el problema persiste.

    Por último, es importante tener en cuenta que la respuesta OK+DATA-ER del HM10 podría indicar un error en los datos que se envían o reciben, por lo que podría ser útil verificar el formato de los datos y asegurarse de que coincida con el formato esperado para la característica que se está leyendo.

Comments are closed.