¿El mejor esquema de comunicación para una pantalla Bluetooth LE alimentada por batería?

Tengo un diseño alimentado por batería en el que estoy trabajando usando un Nordic NRF52832. El dispositivo está diseñado para conectarse a un teléfono inteligente y, al recibir un mensaje particular del teléfono, parpadean algunos LED en respuesta adecuada a ese mensaje.

El tiempo de ejecución previsto entre cargas es de 3 meses y hay espacio para una celda LiPo de 200 mAh internamente.

Mi pregunta es: ¿cuál es el esquema de comunicación de mayor eficiencia energética para usar aquí? Para un dispositivo que simplemente necesita enviar información periódicamente, la activación y la publicidad (posiblemente con una solicitud/respuesta de escaneo después, posiblemente para iniciar una conexión y transferir datos que antes de la desconexión) seguida de largos períodos de suspensión parece ser la forma general. las cosas funcionan La responsabilidad recae entonces en el teléfono inteligente para escanear periódicamente en busca de anuncios, colocando el mayor consumo de batería en un dispositivo que se recarga más fácilmente.

Mi mejor suposición en este momento sería hacer que el dispositivo se active periódicamente, anunciarse durante un período de tiempo con la esperanza de que en ese momento el teléfono inteligente escanee, detecte ese anuncio, se conecte, envíe datos a mi dispositivo y luego cierre la conexión. . Mi dispositivo puede entonces actuar sobre estos datos y/o volver a dormir.

Alternativamente, parece que el teléfono inteligente podría anunciar periódicamente si tiene datos para compartir, y mi dispositivo podría despertarse, escanear y recibir un anuncio con los datos apropiados (suponiendo que podamos incluir nuestra carga útil en un anuncio) entonces reaccionar adecuadamente antes de volver a dormir. Si se incluyera una solicitud de escaneo/respuesta de escaneo, podríamos acusar recibo de la carga útil de manera efectiva, evitando que el teléfono envíe paquetes superfluos.

También existe la consideración de operar en un entorno donde varias personas en la misma área tienen un teléfono y un dispositivo y la interferencia donde los datos de un teléfono fueron interpretados por un dispositivo incorrecto sería indeseable. ¿Cómo hago para dirigir los datos a un solo dispositivo con la carga de energía más baja posible?

Además, si pudiera darme algún consejo sobre un recurso adecuado para leer donde podría obtener una mejor comprensión de las mejores prácticas generales en torno a consultas como esta, lo agradecería mucho.

Respuestas (1)

Tiene varias preguntas acumuladas aquí, que no llegan a preguntar simplemente "diseñe esto para mí, para que pueda vendérselo mejor"...

De todos modos, Re: ahorro de energía, el enfoque simple sería sincronizar el reloj de su dispositivo con el del teléfono inteligente en el momento del emparejamiento. Luego, intentará volver a conectarse a intervalos establecidos y solo por un breve período de tiempo, ahorrando así energía. Vuelva a sincronizar los relojes en conexiones exitosas.

Además, si el teléfono inteligente no tiene datos nuevos, simplemente puede omitir la sesión sin establecer la conexión, lo que también ahorrará un poco más de energía.

Re: interferencia, ¿no debería SSP encargarse de esto por usted? Y si eso no es suficiente, puede incluir algún tipo de GUID cifrado con cifrado variable en el tiempo (buen uso para relojes sincronizados) en el protocolo de enlace.

Re: Seguridad, la seguridad de la conexión en sí es un problema de software puro, además del cifrado (que es obligatorio para la especificación 2.1). Dado que posee el protocolo de alto nivel en ambos lados, tiene la opción de hacerlo lo más seguro posible.

Gracias por tomarse el tiempo para responder. Me doy cuenta de que hay una serie de preguntas compuestas, pero pregunté de esta manera porque creo que es probable que este escenario le suceda a otros y, por lo tanto, mantiene la pregunta relevante para futuros buscadores. Tomaré en cuenta sus comentarios, aunque al leer esto me doy cuenta de que la "mejor" respuesta a esta pregunta depende mucho del período de actualización, el tamaño de la carga de datos de actualización y la persistencia del emparejamiento a lo largo del tiempo (ser capaz de sobrevivir al ciclo de encendido del teléfono, etc.), especialmente si uso paquetes publicitarios como pretendo para esto.